OpenTelemetry Collector Exporter for node with protobuf

This module provides exporter for node to be used with opentelemetry-collector - last tested with version 0.25.0.
Installation
npm install --save @opentelemetry/exporter-collector-proto
Service Name
The OpenTelemetry Collector Exporter does not have a service name configuration.
In order to set the service name, use the service.name resource attribute as prescribed in the OpenTelemetry Resource Semantic Conventions.
Traces in Node - PROTO over http
const { BasicTracerProvider, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
const { CollectorTraceExporter } = require('@opentelemetry/exporter-collector-proto');
const collectorOptions = {
url: '<opentelemetry-collector-url>',
headers: {
foo: 'bar'
},
};
const provider = new BasicTracerProvider();
const exporter = new CollectorTraceExporter(collectorOptions);
provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
provider.register();
Metrics in Node - PROTO over http
const { MeterProvider } = require('@opentelemetry/sdk-metrics-base');
const { CollectorMetricExporter } = require('@opentelemetry/exporter-collector-proto');
const collectorOptions = {
url: '<opentelemetry-collector-url>',
};
const exporter = new CollectorMetricExporter(collectorOptions);
const meter = new MeterProvider({
exporter,
interval: 60000,
}).getMeter('example-meter');
const counter = meter.createCounter('metric_name');
counter.add(10, { 'key': 'value' });
Running opentelemetry-collector locally to see the traces
- Go to examples/collector-exporter-node
- run
npm run docker:start
- Open page at
http://localhost:9411/zipkin/ to observe the traces
Useful links
License
Apache 2.0 - See LICENSE for more information.