opentelemetry-js/packages/opentelemetry-exporter-jaeger
Marc Pichler 7fde94081e
chore: prepare release 2.0.0/0.200.0 (#5521)
2025-03-17 15:40:53 +00:00
..
src feat(sdk-trace-base)!: Add parentSpanContext and remove parentSpanId (#5450) 2025-02-18 17:08:25 +00:00
test feat(resources): use functions over constants for default and empty resources (#5467) 2025-02-19 11:11:36 +00:00
.eslintignore fix(lint): move tslint to eslint (#892) 2020-05-20 20:42:17 -07:00
.eslintrc.js chore(deps): update dependency eslint to v8.43.0 (#3929) 2023-07-06 15:14:56 +02:00
.npmignore chore(packages): add jaeger and zipkin skeletons (#184) 2019-08-09 08:35:15 -07:00
LICENSE chore(packages): add jaeger and zipkin skeletons (#184) 2019-08-09 08:35:15 -07:00
README.md feat(sdk-trace-base): add `spanProcessors` property in `TracerConfig` interface (#5138) 2024-11-12 15:48:00 +00:00
package.json chore: prepare release 2.0.0/0.200.0 (#5521) 2025-03-17 15:40:53 +00:00
tsconfig.json chore(semconv): Separate SemConv releases to allow different versioning (#4904) 2024-08-20 21:29:59 +00:00

README.md

(Deprecated) OpenTelemetry Jaeger Trace Exporter for Node.js

NPM Published Version Apache License

NOTE: Support for @opentelemetry/exporter-jaeger will end March 2024, please use any of the following packages instead:

  • @opentelemetry/exporter-trace-otlp-proto
  • @opentelemetry/exporter-trace-otlp-grpc
  • @opentelemetry/exporter-trace-otlp-http

NOTE: Bundling (with e.g. webpack, rollup, esbuild, ...) is not supported by this package. Please use @opentelemetry/exporter-trace-otlp-proto instead.

OpenTelemetry Jaeger Trace Exporter allows the user to send collected traces to Jaeger.

Jaeger, inspired by Dapper and OpenZipkin, is a distributed tracing system released as open source by Uber Technologies. It is used for monitoring and troubleshooting microservices-based distributed systems, including:

  • Distributed context propagation
  • Distributed transaction monitoring
  • Root cause analysis
  • Service dependency analysis
  • Performance / latency optimization

Prerequisites

This project relies on jaeger-client library and is thus only supported for Node.js.

Get up and running with Jaeger in your local environment.

Jaeger stores and queries traces exported by applications instrumented with OpenTelemetry. The easiest way to start a Jaeger server is to paste the below:

docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:latest

Or run the jaeger-all-in-one(.exe) executable from the binary distribution archives:

jaeger-all-in-one --collector.zipkin.http-port=9411

You can then navigate to http://localhost:16686 to access the Jaeger UI.

Installation

npm install --save @opentelemetry/exporter-jaeger

Usage

Install the exporter on your application and pass the options, it must contain a service name.

Furthermore, the host option (which defaults to localhost), can instead be set by the OTEL_EXPORTER_JAEGER_AGENT_HOST environment variable to reduce in-code config. If both are set, the value set by the option in code is authoritative.

import { JaegerExporter } from '@opentelemetry/exporter-jaeger';

const options = {
  tags: [], // optional
  // You can use the default UDPSender
  host: 'localhost', // optional
  port: 6832, // optional
  // OR you can use the HTTPSender as follows
  // endpoint: 'http://localhost:14268/api/traces',
  maxPacketSize: 65000 // optional
}
const exporter = new JaegerExporter(options);

Now, register the exporter.

const tracerProvider = new NodeTracerProvider({
  spanProcessors: [new BatchSpanProcessor(exporter)]
})

const tracer = traceProvider.getTracer('my-tracer')

You can use built-in SimpleSpanProcessor or BatchSpanProcessor or write your own.

  • SimpleSpanProcessor: The implementation of SpanProcessor that passes ended span directly to the configured SpanExporter.
  • BatchSpanProcessor: The implementation of the SpanProcessor that batches ended spans and pushes them to the configured SpanExporter. It is recommended to use this SpanProcessor for better performance and optimization.

License

Apache 2.0 - See LICENSE for more information.