Pular para o conteúdo principal
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 },
});