Socket
Socket
Sign inDemoInstall

@opentelemetry/exporter-collector

Package Overview
Dependencies
11
Maintainers
4
Versions
167
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @opentelemetry/exporter-collector

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


Version published
Weekly downloads
34K
decreased by-22.92%
Maintainers
4
Install size
1.63 MB
Created
Weekly downloads
 

Changelog

Source

0.25.0

:boom: Breaking Change

  • opentelemetry-api-metrics, opentelemetry-context-zone-peer-dep, opentelemetry-context-zone, opentelemetry-core, opentelemetry-exporter-collector-grpc, opentelemetry-exporter-collector-proto, opentelemetry-exporter-collector, opentelemetry-exporter-jaeger, opentelemetry-exporter-prometheus, opentelemetry-exporter-zipkin, opentelemetry-instrumentation-fetch, opentelemetry-instrumentation-grpc, opentelemetry-instrumentation-http, opentelemetry-instrumentation-xml-http-request, opentelemetry-instrumentation, opentelemetry-propagator-jaeger, opentelemetry-sdk-metrics-base, opentelemetry-sdk-node, opentelemetry-sdk-trace-base, opentelemetry-sdk-trace-node, opentelemetry-sdk-trace-web, opentelemetry-shim-opentracing
    • #2340 chore: rename sdks to better represent what they are [#2146] (@vmarchaud)

:rocket: (Enhancement)

  • opentelemetry-exporter-collector-grpc, opentelemetry-exporter-collector-proto, opentelemetry-exporter-collector, opentelemetry-exporter-zipkin
    • #1775 fix(@opentelemetry/exporter-collector): remove fulfilled promises cor… (@aabmass)
  • opentelemetry-exporter-collector
    • #2336 feat: use Blob in sendBeacon to add application/json type (@jufab)

:bug: (Bug Fix)

  • opentelemetry-instrumentation-grpc, opentelemetry-instrumentation-http, opentelemetry-instrumentation-jaeger, opentelemetry-exporter-zipkin, opentelemetry-sdk-trace-base
    • #2499 fix: 2389- replaced logger unformatted strings with template literals (@PaurushGarg)
  • opentelemetry-instrumentation-fetch
    • #2411 fix(instrumentation-fetch): fetch(string, Request) silently drops request body (@t2t2)
  • opentelemetry-sdk-trace-base
    • #2396 fix: respect sampled flag in Span Processors, fix associated tests (@quickgiant)

:books: (Refine Doc)

  • Other
  • opentelemetry-resources, opentelemetry-semantic-conventions

:house: (Internal)

  • opentelemetry-core, opentelemetry-exporter-collector-grpc, opentelemetry-exporter-collector-proto, opentelemetry-instrumentation-http, opentelemetry-sdk-trace-node
  • opentelemetry-propagator-b3, opentelemetry-propagator-jaeger, opentelemetry-resources, opentelemetry-sdk-metrics-base
    • #2406 chore: Fix lint warnings in propagator-jaeger, propagator-b3, resources, and sdk-metrics-base packages (@alisabzevari)
  • opentelemetry-core
  • opentelemetry-resource-detector-aws, opentelemetry-resource-detector-gcp, opentelemetry-sdk-node
  • opentelemetry-exporter-collector-grpc, opentelemetry-exporter-collector-proto, opentelemetry-exporter-collector, opentelemetry-exporter-jaeger, opentelemetry-exporter-zipkin, opentelemetry-instrumentation-fetch, opentelemetry-instrumentation-grpc, opentelemetry-instrumentation-http, opentelemetry-instrumentation-xml-http-request, opentelemetry-sdk-node, opentelemetry-sdk-trace-node, opentelemetry-sdk-trace-web, opentelemetry-shim-opentracing
  • opentelemetry-api-metrics, opentelemetry-context-zone-peer-dep
  • Other
    • #2397 chore: change codeowners to point to team (@dyladan)
    • #2385 chore: move api into dependencies in integration tests (@Flarna)

Committers: 11

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-collector

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 CollectorTraceExporter 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 { CollectorTraceExporter } from '@opentelemetry/exporter-collector';

const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/trace
  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 CollectorTraceExporter(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 CollectorMetricExporter in Web expects the endpoint to end in /v1/metrics.

import { MeterProvider } from '@opentelemetry/sdk-metrics-base';
import { CollectorMetricExporter } from '@opentelemetry/exporter-collector';
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 CollectorMetricExporter(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 { CollectorTraceExporter } =  require('@opentelemetry/exporter-collector');

const collectorOptions = {
  url: '<opentelemetry-collector-url>', // url is optional and can be omitted - default is http://localhost:55681/v1/trace
  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 CollectorTraceExporter(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 { CollectorMetricExporter } =  require('@opentelemetry/exporter-collector');
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 CollectorMetricExporter(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

Running opentelemetry-collector locally to see the traces

  1. Go to examples/collector-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 18 Aug 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