O Elasticsearch é um popular motor de busca e análise. A integração do AppSignal para Node.js com o Elasticsearch fornece instrumentação automática para o cliente Node.js do Elasticsearch.
Instalação
O cliente Node.js do Elasticsearch inclui instrumentação via OpenTelemetry. Ele irá relatar dados automaticamente para o pacote AppSignal para Node.js. Nenhuma configuração adicional é necessária para instrumentar o Elasticsearch em sua aplicação.
Recursos
A instrumentação embutida captura spans para consultas de busca, operações de índice e outras interações com seu cluster Elasticsearch. A integração enviará spans do AppSignal representando o tempo de execução de cada chamada da API do Elasticsearch com informações sobre a operação.
Configuração
A instrumentação automática pode ser desativada a partir da versão 9.x do @elastic/elasticsearch.
Se você estiver usando a versão 8.x do @elastic/elasticsearch, certifique-se de estar usando o @elastic/transport versão 8.10.0 ou superior.
Você pode desativar a instrumentação do Elasticsearch:
- definindo uma variável de ambiente;
OTEL_ELASTICSEARCH_ENABLED=false
- usando um
Transport personalizado.
import {
Transport,
TransportRequestOptions,
TransportRequestParams,
} from "@elastic/transport";
class CustomTransport extends Transport {
async request(
params: TransportRequestParams,
options: TransportRequestOptions = {},
): Promise<any> {
options.openTelemetry = { enabled: false };
return super.request(params, options);
}
}
const client = new Client({
/*
your client config...
*/
Transport: CustomTransport,
});
Você também pode manter a instrumentação habilitada e desativá-la para uma única chamada de API passando um objeto TransportRequestOptions personalizado como segundo argumento para qualquer chamada de API:
const response = await client.search({ ... }, {
openTelemetry: { enabled: false },
});