@opentelemetry/exporter-jaeger
Version:
OpenTelemetry Exporter Jaeger allows user to send collected traces to Jaeger
115 lines (82 loc) • 4.76 kB
Markdown
[![NPM Published Version][npm-img]][npm-url]
[![Apache License][license-image]][license-image]
**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.
[](https://jaeger.readthedocs.io/en/latest/), inspired by [Dapper](https://research.google.com/pubs/pub36356.html) and [OpenZipkin](http://zipkin.io/), is a distributed tracing system released as open source by [Uber Technologies](http://uber.github.io/). 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
This project relies on [jaeger-client](https://github.com/jaegertracing/jaeger-client-node) library and is thus only supported for **Node.js**.
Get up and running with Jaeger in your local environment.
[](https://www.jaegertracing.io/docs/latest/) stores and queries traces exported by
applications instrumented with OpenTelemetry. The easiest way to [start a Jaeger
server](https://www.jaegertracing.io/docs/latest/getting-started/) is to paste the below:
```bash
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](https://www.jaegertracing.io/download/):
```bash
jaeger-all-in-one --collector.zipkin.http-port=9411
```
You can then navigate to <http://localhost:16686> to access the Jaeger UI.
```bash
npm install --save @opentelemetry/exporter-jaeger
```
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.
```js
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.
```js
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](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#simple-processor): The implementation of `SpanProcessor` that passes ended span directly to the configured `SpanExporter`.
- [BatchSpanProcessor](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk.md#batching-processor): 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.
- 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 in [GitHub Discussions][discussions-url]
Apache 2.0 - See [LICENSE][license-url] for more information.
[]: https://github.com/open-telemetry/opentelemetry-js/discussions
[]: https://github.com/open-telemetry/opentelemetry-js/blob/main/LICENSE
[]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
[]: https://www.npmjs.com/package/@opentelemetry/exporter-jaeger
[]: https://badge.fury.io/js/%40opentelemetry%2Fexporter-jaeger.svg