/opentelemetry-js

OpenTelemetry API for Javascript (both Node and browser)

Primary LanguageTypeScriptApache License 2.0Apache-2.0

OpenTelemetry - distributed tracing and stats collection framework

Gitter chat CircleCI Coverage Status Apache License

About this project

This is the JavaScript version of OpenTelemetry, a framework for collecting traces, metrics and logs from applications.

This project is currently in Alpha stage. Its APIs can change at any time and it is not intended to be used in production scenarios!

Quick start

To get started, see @opentelemetry/tracing for an SDK that supports creating traces through manual instrumentation or @opentelemetry/node which provides auto-instrumentation for Node.js applications.

Release Schedule

OpenTelemetry JS is under active development. This release isn't guaranteed to conform to a specific version of the specification, and future releases will not attempt to maintain backwards compatibility with the alpha release.

Component Version Target Date
Tracing API Alpha September 30 2019
Tracing SDK Alpha September 30 2019
Metrics API Alpha tbd
Metrics SDK Alpha tbd
Jaeger Trace Exporter Alpha September 30 2019
Zipkin Trace Exporter Alpha September 30 2019
Prometheus Metrics Exporter Alpha tbd
OpenTracing Bridge Alpha September 30 2019
OpenCensus Bridge Alpha tbd

Contributing

We'd love your help!. Use tags up-for-grabs and good first issue to get started with the project. Follow CONTRIBUTING guide to report issues or submit a proposal.

We have a weekly SIG meeting! See the community page for meeting details and notes.

Packages

API

Package Description
@opentelemetry/types This package provides TypeScript interfaces and enums for the OpenTelemetry core trace and metrics model. It is intended for use both on the server and in the browser.
@opentelemetry/core This package provides default and no-op implementations of the OpenTelemetry types for trace and metrics. It's intended for use both on the server and in the browser.

Implementation / SDKs

Package Description
@opentelemetry/tracing This module provides a full control over instrumentation and span creation. It doesn't load async_hooks or any instrumentation plugin by default. It is intended for use both on the server and in the browser.
@opentelemetry/node This module provides automatic tracing for Node.js applications. It is intended for use on the server only.

Exporters

OpenTelemetry is vendor-agnostic and can upload data to any backend with various exporter implementations. Even though, OpenTelemetry provides support for many backends, vendors/users can also implement their own exporters for proprietary and unofficially supported backends. Currently, OpenTelemetry supports:

Plugins

OpenTelemetry can collect tracing data automatically using plugins. Vendors/Users can also create and use their own. Currently, OpenTelemetry supports automatic tracing for:

To request automatic tracing support for a module not on this list, please file an issue. Alternatively, you can write a plugin yourself.

Shims

Package Description
@opentelemetry/shim-opentracing OpenTracing shim allows existing OpenTracing instrumentation to report to OpenTelemetry

Useful links

License

Apache 2.0 - See LICENSE for more information.