0.34.1 • Published 9 months ago

@traceo-sdk/opentelemetry-node v0.34.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

Traceo SDK for Node.js

Library for integration with the Traceo Platform.

The Traceo platform offers the ability to collect and visualize data from OpenTelemetry. OpenTelemetry, also known as OTel for short, is a vendor-neutral open-source Observability framework for instrumenting, generating, collecting, and exporting telemetry data such as traces, metrics, logs. Docs.

How Traceo use OTel instruments?

By using custom metrics and spans exporters (logs in near future). After receiving data from Otel instruments, the data is successively sent to the Traceo platform, where it is aggregated and visualized.

Installation

To install this SDK add this package to your package.json like below:

yarn add @traceo-sdk/opentelemetry-node

or

npm install @traceo-sdk/opentelemetry-node

Hint: This package require also @traceo-sdk/node package to full integaration.

Usage

First what you need is to initialize TraceoClient in your application.

import { TraceoClient } from "@traceo-sdk/node";

new TraceoClient(<project_id>, {
    host: <traceo_host>
});

Metrics

To use the exporter for metrics you need to import TraceoMetricExporter from @traceo-sdk/opentelemetry-node like below.

import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
import { Resource } from "@opentelemetry/resources";
import { TraceoMetricExporter } from "@traceo-sdk/opentelemetry-node";

//other code...

this.meterProvider = new MeterProvider({
    resource: new Resource({
        'service.name': 'traceo-otel'
    })
});

this.meterProvider.addMetricReader(new PeriodicExportingMetricReader({
    exporter: new TraceoMetricExporter(),
    exportIntervalMillis: 10000
}));

Spans

To use the exporter for spans you need to import TraceoTracingExporter from @traceo-sdk/opentelemetry-node like below.

import { SimpleSpanProcessor } from "@opentelemetry/tracing";
import { NodeTracerProvider } from "@opentelemetry/node";
import { TraceoTracingExporter } from "@traceo-sdk/opentelemetry-node";

//other code...

this.tracerProvider = new NodeTracerProvider();
this.tracerProvider.addSpanProcessor(new SimpleSpanProcessor(new TraceoTracingExporter()));
this.tracerProvider.register();

Support

Feel free to create Issues, Pull Request and Discussion. If you want to contact with the developer working on this package click here.