Package Exports
- @sumologic/opentelemetry-node
- @sumologic/opentelemetry-node/dist/sumologic-opentelemetry-node.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@sumologic/opentelemetry-node) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Sumo Logic OpenTelemetry Node
An all-in-one runner for node.js projects used to enable OpenTelemetry auto-instrumentation.
It contains all supported detectors, propagators and auto-instrumentation plugins.
Usage
Instead of running your script like node index.js
, do npx @sumologic/opentelemetry-node index.js
.
Your index.js
file will run automatically with a started @opentelemetry/sdk-node
.
Remember to provide configuration using environment variables:
OTEL_EXPORTER_OTLP_ENDPOINT
- source URL of your traces collectorOTEL_SERVICE_NAME
- a logical service name that represents its business logicOTEL_RESOURCE_ATTRIBUTES
- extra attributes attached to all spans
e.g. OTEL_SERVICE_NAME=api OTEL_RESOURCE_ATTRIBUTES="application=default,deployment=test" OTEL_EXPORTER_OTLP_ENDPOINT=https://... npx @sumologic/opentelemetry-node index.js
.
To speed up npx @sumologic/opentelemetry-node
command, you can do npm i -g @sumologic/opentelemetry-node
.
Instrumented packages
This package enables all officially supported core and contrib auto-instrumentation plugins defined in @opentelemetry/auto-instrumentations-node, that is:
- opentelemetry/instrumentation-amqplib
- opentelemetry/instrumentation-aws-lambda
- opentelemetry/instrumentation-aws-sdk
- opentelemetry/instrumentation-bunyan
- [opentelemetry/instrumentation-cassandra-driver](https://www.npmjs.com/package/@opentelemetry/instrumentation-cassandra-driver
- opentelemetry/instrumentation-connect
- [opentelemetry/instrumentation-cucumber](https://www.npmjs.com/package/@opentelemetry/instrumentation-cucumber
- opentelemetry/instrumentation-dataloader
- opentelemetry/instrumentation-dns
- opentelemetry/instrumentation-express
- opentelemetry/instrumentation-fastify
- opentelemetry/instrumentation-fs
- opentelemetry/instrumentation-generic-pool
- opentelemetry/instrumentation-graphql
- opentelemetry/instrumentation-grpc
- opentelemetry/instrumentation-hapi
- opentelemetry/instrumentation-http
- opentelemetry/instrumentation-ioredis
- opentelemetry/instrumentation-knex
- opentelemetry/instrumentation-koa
- opentelemetry/instrumentation-lru-memoizer
- opentelemetry/instrumentation-memcached
- opentelemetry/instrumentation-mongodb
- opentelemetry/instrumentation-mongoose
- opentelemetry/instrumentation-mysql
- opentelemetry/instrumentation-mysql2
- opentelemetry/instrumentation-nestjs-core
- opentelemetry/instrumentation-net
- opentelemetry/instrumentation-pg
- opentelemetry/instrumentation-pino
- opentelemetry/instrumentation-redis
- opentelemetry/instrumentation-redis-4
- opentelemetry/instrumentation-restify
- opentelemetry/instrumentation-router
- opentelemetry/instrumentation-socket.io
- opentelemetry/instrumentation-tedious
- opentelemetry/instrumentation-undici
- opentelemetry/instrumentation-winston
Manual instrumentation
In order to create spans manually, install @opentelemetry/api
package: npm i @opentelemetry/api@^1.9.0
.
Example:
const opentelemetry = require('@opentelemetry/api');
const tracer = opentelemetry.trace.getTracer('default');
const span = tracer.startSpan('operation');
span.end();