kelvin-exporter-jaeger
v0.12.2
Published
OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger
Downloads
3
Maintainers
Readme
OpenTelemetry Jaeger Trace Exporter for Node.js
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
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
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 = {
serviceName: 'my-service',
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.
tracer.addSpanProcessor(new BatchSpanProcessor(exporter));
You can use built-in SimpleSpanProcessor
or BatchSpanProcessor
or write your own.
- SimpleSpanProcessor: The implementation of
SpanProcessor
that passes ended span directly to the configuredSpanExporter
. - BatchSpanProcessor: The implementation of the
SpanProcessor
that batches ended spans and pushes them to the configuredSpanExporter
. It is recommended to use thisSpanProcessor
for better performance and optimization.
Useful links
- To know more about Jaeger, visit: https://www.jaegertracing.io/docs/latest/getting-started/
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For help or feedback on this project, join us on gitter
License
Apache 2.0 - See LICENSE for more information.