Elasticsearch is een populaire zoek- en analyse-engine. De AppSignal voor Node.js-integratie voor Elasticsearch biedt automatische instrumentatie voor de Elasticsearch Node.js-client.
Installatie
De Elasticsearch Node.js-client bevat instrumentatie via OpenTelemetry. Deze rapporteert automatisch gegevens aan het AppSignal voor Node.js-pakket. Er is geen aanvullende configuratie nodig om Elasticsearch in uw applicatie te instrumenteren.
Functionaliteiten
De ingebouwde instrumentatie legt spans vast voor zoekqueries, indexbewerkingen en andere interacties met uw Elasticsearch-cluster. De integratie stuurt AppSignal-spans die de uitvoeringstijd vertegenwoordigen van elke Elasticsearch API-aanroep, met informatie over de bewerking.
Configuratie
De automatische instrumentatie kan worden uitgeschakeld vanaf versie 9.x van @elastic/elasticsearch.
Als u versie 8.x van @elastic/elasticsearch gebruikt, zorg er dan voor dat u @elastic/transport versie 8.10.0 of hoger gebruikt.
U kunt de instrumentatie van Elasticsearch uitschakelen door:
- een omgevingsvariabele in te stellen;
OTEL_ELASTICSEARCH_ENABLED=false
- een aangepaste
Transport te gebruiken.
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,
});
U kunt de instrumentatie ook ingeschakeld laten en deze uitschakelen voor één enkele API-aanroep door een aangepast TransportRequestOptions-object door te geven als tweede argument aan elke API-aanroep:
const response = await client.search({ ... }, {
openTelemetry: { enabled: false },
});