Socket
Socket
Sign inDemoInstall

@opentelemetry/exporter-otlp-http

Package Overview
Dependencies
11
Maintainers
4
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @opentelemetry/exporter-otlp-http

OpenTelemetry Collector Exporter allows user to send collected traces to the OpenTelemetry Collector


Version published
Weekly downloads
36K
increased by8.62%
Maintainers
4
Install size
1.95 MB
Created
Weekly downloads
 

Changelog

Source

0.26.0

:boom: Breaking Change

  • opentelemetry-exporter-collector-grpc, opentelemetry-exporter-otlp-grpc, opentelemetry-exporter-otlp-http, opentelemetry-exporter-otlp-proto
    • #2476 chore!: rename collector exporters (@dyladan)
  • opentelemetry-core, opentelemetry-instrumentation-grpc, opentelemetry-sdk-trace-base, opentelemetry-shim-opentracing

:rocket: (Enhancement)

  • opentelemetry-core, opentelemetry-sdk-trace-base
  • opentelemetry-instrumentation
    • #2450 fix: handle missing package.json file when checking for version (@nozik)
  • opentelemetry-semantic-conventions
    • #2456 feat: upgrade semantic conventions to the latest 1.6.1 version (@weyert)
  • opentelemetry-exporter-collector-proto, opentelemetry-exporter-collector
    • #2438 feat: OTEL_EXPORTER_OTLP_ENDPOINT append version and signal (@longility)

:bug: (Bug Fix)

  • Other
  • opentelemetry-instrumentation-fetch
  • opentelemetry-sdk-trace-base
    • #2434 fix: ReferenceError when OTEL_TRACES_SAMPLER used without OTEL_TRACES_SAMPLER_ARG (@hermanbanken)

:books: (Refine Doc)

:house: (Internal)

  • opentelemetry-exporter-otlp-http
  • opentelemetry-sdk-node
  • Other
  • opentelemetry-context-zone, opentelemetry-core, opentelemetry-exporter-collector-grpc, opentelemetry-exporter-collector-proto, opentelemetry-exporter-collector, opentelemetry-exporter-prometheus, opentelemetry-exporter-zipkin, opentelemetry-instrumentation-fetch, opentelemetry-instrumentation-grpc, opentelemetry-instrumentation-http, opentelemetry-instrumentation-xml-http-request, opentelemetry-propagator-b3, opentelemetry-propagator-jaeger, opentelemetry-resources, opentelemetry-sdk-metrics-base, opentelemetry-sdk-node, opentelemetry-sdk-trace-base, opentelemetry-sdk-trace-web
    • #2462 chore: split stable and experimental packages into groups using directories (@dyladan)
  • opentelemetry-instrumentation-http
  • opentelemetry-instrumentation-fetch
  • opentelemetry-exporter-collector
  • opentelemetry-sdk-trace-base, opentelemetry-sdk-trace-node
  • opentelemetry-exporter-prometheus, opentelemetry-exporter-zipkin, opentelemetry-shim-opentracing

Committers: 18

Readme

Source

OpenTelemetry Collector Exporter for web and node

NPM Published Version dependencies devDependencies Apache License

This module provides exporter for web and node to be used with opentelemetry-collector - last tested with version 0.25.0.

Installation

npm install --save @opentelemetry/exporter-otlp-http

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 Web

The OTLPTraceExporter in Web expects the endpoint to end in /v1/traces.

import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
import { OTLPTraceExporter } from '@opentelemetry/exporter-otlp-http';

const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/traces
  headers: {}, // an optional object containing custom headers to be sent with each request
  concurrencyLimit: 10, // an optional limit on pending requests
};

const provider = new WebTracerProvider();
const exporter = new OTLPTraceExporter(collectorOptions);
provider.addSpanProcessor(new BatchSpanProcessor(exporter, {
  // The maximum queue size. After the size is reached spans are dropped.
  maxQueueSize: 100,
  // The maximum batch size of every export. It must be smaller or equal to maxQueueSize.
  maxExportBatchSize: 10,
  // The interval between two consecutive exports
  scheduledDelayMillis: 500,
  // How long the export can run before it is cancelled
  exportTimeoutMillis: 30000,
}));

provider.register();

Metrics in Web

The OTLPMetricExporter in Web expects the endpoint to end in /v1/metrics.

import { MeterProvider } from '@opentelemetry/sdk-metrics-base';
import { OTLPMetricExporter } from '@opentelemetry/exporter-otlp-http';
const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/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);

// Register the exporter
const meter = new MeterProvider({
  exporter,
  interval: 60000,
}).getMeter('example-meter');

// Now, start recording data
const counter = meter.createCounter('metric_name');
counter.add(10, { 'key': 'value' });

Traces in Node - JSON over http

const { BasicTracerProvider, BatchSpanProcessor } = require('@opentelemetry/sdk-trace-base');
const { OTLPTraceExporter } =  require('@opentelemetry/exporter-otlp-http');

const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/traces
  headers: {
    foo: 'bar'
  }, // an optional object containing custom headers to be sent with each request will only work with http
  concurrencyLimit: 10, // an optional limit on pending requests
};

const provider = new BasicTracerProvider();
const exporter = new OTLPTraceExporter(collectorOptions);
provider.addSpanProcessor(new BatchSpanProcessor(exporter, {
  // The maximum queue size. After the size is reached spans are dropped.
  maxQueueSize: 1000,
  // The interval between two consecutive exports
  scheduledDelayMillis: 30000,
}));

provider.register();

Metrics in Node

const { MeterProvider } = require('@opentelemetry/sdk-metrics-base');
const { OTLPMetricExporter } =  require('@opentelemetry/exporter-otlp-http');
const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/metrics
  concurrencyLimit: 1, // an optional limit on pending requests
};
const exporter = new OTLPMetricExporter(collectorOptions);

// Register the exporter
const meter = new MeterProvider({
  exporter,
  interval: 60000,
}).getMeter('example-meter');

// Now, start recording data
const counter = meter.createCounter('metric_name');
counter.add(10, { 'key': 'value' });

GRPC

For GRPC please check npm-url-grpc

PROTOBUF

For PROTOBUF please check npm-url-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:4317
# this will automatically append the version and signal path
# e.g. https://localhost:4317/v1/traces for `OTLPTraceExporter` and https://localhost:4317/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:4317/v1/traces
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT=https://metric-service:4317/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 traces

  1. Go to examples/otlp-exporter-node
  2. run npm run docker:start
  3. Open page at http://localhost:9411/zipkin/ to observe the traces

License

Apache 2.0 - See LICENSE for more information.

Keywords

FAQs

Last updated on 05 Oct 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc