Package Exports
- @opentelemetry/exporter-metrics-otlp-http
- @opentelemetry/exporter-metrics-otlp-http/build/esm/index.js
- @opentelemetry/exporter-metrics-otlp-http/build/src/index.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 (@opentelemetry/exporter-metrics-otlp-http) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
OpenTelemetry Collector Metrics Exporter for web and node
This module provides exporter for web and node to be used with opentelemetry-collector.
Compatible with opentelemetry-collector versions >=0.48 <=0.50
.
Installation
npm install --save @opentelemetry/exporter-metrics-otlp-http
Service Name
The OpenTelemetry Collector Metrics 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.
To see sample code and documentation for the traces exporter, visit the Collector Trace Exporter for web and node.
Metrics in Web
The OTLPMetricExporter in Web expects the endpoint to end in /v1/metrics
.
import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics-base';
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
const collectorOptions = {
url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:4318/v1/metrics
headers: {}, // an optional object containing custom headers to be sent with each request
concurrencyLimit: 1, // an optional limit on pending requests
};
const exporter = new OTLPMetricExporter(collectorOptions);
const meterProvider = new MeterProvider({});
meterProvider.addMetricReader(new PeriodicExportingMetricReader({
exporter: metricExporter,
exportIntervalMillis: 1000,
}));
// Now, start recording data
const meter = meterProvider.getMeter('example-meter');
const counter = meter.createCounter('metric_name');
counter.add(10, { 'key': 'value' });
Metrics in Node
const { MeterProvider, PeriodicExportingMetricReader } = require('@opentelemetry/sdk-metrics-base');
const { OTLPMetricExporter } = require('@opentelemetry/exporter-metrics-otlp-http');
const collectorOptions = {
url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:4318/v1/metrics
concurrencyLimit: 1, // an optional limit on pending requests
};
const exporter = new OTLPMetricExporter(collectorOptions);
const meterProvider = new MeterProvider({});
meterProvider.addMetricReader(new PeriodicExportingMetricReader({
exporter: metricExporter,
exportIntervalMillis: 1000,
}));
// Now, start recording data
const meter = meterProvider.getMeter('example-meter');
const counter = meter.createCounter('metric_name');
counter.add(10, { 'key': 'value' });
GRPC
For exporting metrics with GRPC please check exporter-metrics-otlp-grpc
PROTOBUF
For exporting metrics with PROTOBUF please check exporter-metrics-otlp-proto
Configuration options as environment variables
Instead of providing options to OTLPMetricExporter
and OTLPTraceExporter
explicitly, environment variables may be provided instead.
OTEL_EXPORTER_OTLP_ENDPOINT=https://localhost:4318
# this will automatically append the version and signal path
# e.g. https://localhost:4318/v1/traces for `OTLPTraceExporter` and https://localhost:4318/v1/metrics for `OTLPMetricExporter`
If the trace and metric exporter endpoints have different providers, the env var for per-signal endpoints are available to use
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://trace-service:4318/v1/traces
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://metric-service:4318/v1/metrics
# version and signal needs to be explicit
The per-signal endpoints take precedence and overrides
OTEL_EXPORTER_OTLP_ENDPOINT
For more details, see OpenTelemetry Specification on Protocol Exporter.
Running opentelemetry-collector locally to see the metrics
- Go to
examples/otlp-exporter-node
- Follow the instructions there to observe the metrics.
Useful links
- 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
License
Apache 2.0 - See LICENSE for more information.