Naar hoofdinhoud gaan
Zorg ervoor dat u de AppSignal collector installeert voordat u verdergaat met deze instructies.

Installeer de OpenTelemetry-pakketten

Gebruik npm om de OpenTelemetry SDK en de OTLP-exporter toe te voegen aan de dependencies van uw applicatie:
npm install @opentelemetry/sdk-node \
  @opentelemetry/api \
  @opentelemetry/sdk-trace-node \
  @opentelemetry/sdk-metrics \
  @opentelemetry/exporter-trace-otlp-proto \
  @opentelemetry/exporter-metrics-otlp-proto \
  @opentelemetry/auto-instrumentations-node \
  @opentelemetry/semantic-conventions \
  @opentelemetry/resources
Het pakket @opentelemetry/auto-instrumentations-node instrumenteert de meeste applicaties en libraries automatisch. Bekijk de README van het pakket voor een lijst met libraries en frameworks die het instrumenteert. U kunt aanvullende instrumentaties voor libraries en frameworks vinden in het OpenTelemetry-register.

Configureer OpenTelemetry in uw applicatie

Voeg dit bestand opentelemetry.cjs toe aan uw applicatie met de OpenTelemetry-exporter en AppSignal-configuratie. Zorg ervoor dat u de onderstaande waarden bijwerkt met de naam, omgeving en push API-sleutel van uw AppSignal-applicatie, en vervang het exporter-endpoint zo nodig door het adres van uw AppSignal collector.
const os = require("os");
const { NodeSDK } = require("@opentelemetry/sdk-node");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const {
  PeriodicExportingMetricReader,
  AggregationTemporality,
} = require("@opentelemetry/sdk-metrics");
const { resourceFromAttributes } = require("@opentelemetry/resources");
const { ATTR_SERVICE_NAME } = require("@opentelemetry/semantic-conventions");
const {
  OTLPTraceExporter,
} = require("@opentelemetry/exporter-trace-otlp-proto");
const {
  OTLPMetricExporter,
} = require("@opentelemetry/exporter-metrics-otlp-proto");
const {
  getNodeAutoInstrumentations,
} = require("@opentelemetry/auto-instrumentations-node");

// Vervang deze waarden door de naam, omgeving en push API-sleutel van uw
// AppSignal-applicatie. Deze worden gebruikt door de onderstaande resource-attributenconfiguratie.
const name = "My app";
const pushApiKey = "0000-0000-0000-0000";

const environment = process.env.NODE_ENV || "production";

// Stel de naam in van de service die wordt gemonitord. Een veelgebruikte keuze is de
// naam van het gebruikte framework. Deze wordt gebruikt om traces en metrieken in AppSignal te groeperen.
const serviceName = "My service name";

// Vervang `http://localhost:8099` door het adres van uw AppSignal collector
// als deze op een andere host draait.
const endpoint = "http://localhost:8099";

const revision = childProcess.execSync("git rev-parse --short HEAD").toString();

const resource = new resourceFromAttributes({
  "appsignal.config.name": name,
  "appsignal.config.environment": environment,
  "appsignal.config.push_api_key": "0000-0000-0000-0000",
  "appsignal.config.revision": revision,
  "appsignal.config.language_integration": "node.js",
  "appsignal.config.app_path": process.cwd(),
  "host.name": os.hostname(),
  [ATTR_SERVICE_NAME]: "My service name",
});

const sdk = new NodeSDK({
  resource,
  traceExporter: new OTLPTraceExporter({
    url: `${endpoint}/v1/traces`,
  }),
  metricReader: new PeriodicExportingMetricReader({
    exportIntervalMillis: 10000,
    exporter: new OTLPMetricExporter({
      url: `${endpoint}/v1/metrics`,
    }),
  }),
  instrumentations: [getNodeAutoInstrumentations()],
});

sdk.start();

Start uw applicatie met OpenTelemetry

Om uw applicatie met OpenTelemetry uit te voeren, dient u de vlag --require te gebruiken om het bestand opentelemetry.cjs te laden voordat uw applicatie wordt gestart:
node --require ./opentelemetry.cjs index.js
Werk uw package.json-bestand bij om --require toe te voegen aan het commando dat uw app start.
{
  // andere configuratie...
  "scripts": {
    "server": "node --require ./opentelemetry.cjs index.js"
  }
}
U kunt de vlag --require ook gebruiken met tools zoals ts-node en nodemon. Wanneer u een wrapper-CLI gebruikt, zoals nest start of fastify start, om uw applicatie te starten, gebruik dan de omgevingsvariabele NODE_OPTIONS om de vlag door te geven aan de Node.js-runtime:
NODE_OPTIONS='--require ./appsignal.cjs' nest start

Test de app!

Nu alle componenten zijn verbonden, start u uw app met de vereiste command-line argumenten en test u of er gegevens binnenkomen in AppSignal. Controleer specifiek de pagina’s “Errors > Issue list” en “Performance > Traces”. Als u na het volgen van onze installatie-instructies nog steeds geen gegevens ziet in AppSignal, laat het ons weten en wij helpen u uw OpenTelemetry-installatie te voltooien!