Skip to content
OpenTelemetry API for Javascript (both Node and browser)
TypeScript JavaScript Shell
Branch: master
Clone or download
dyladan and mayurkale22 feat: Add prometheus exporter (#483)
* fix(http-plugin): move node-sdk to dev deps

* feat: update dependencies

* feat: server implementation and tests

* fix: remove console logger

* fix: add types

* feat(prometheus-exporter): counter and gauge

* feat(prometheus-exporter): implement counter and gauge

* feat(prometheus-exporter): export configuration interface

* fix: linting

* fix: typo

Co-Authored-By: Mayur Kale <mayurkale@google.com>

* chore: document ExporterConfig

* fix: dependencies

* fix: typo

Co-Authored-By: Mayur Kale <mayurkale@google.com>

* chore: document sanitize method and make behavior more strict

* chore: do not use global prom-client registry

* chore: add defaults to description and metric endpoint

* test: export couter, gauge, multiple, and none

* test: sanitize prom metric names

* fix: typo

Co-Authored-By: Mayur Kale <mayurkale@google.com>

* chore: make _server read only

* test: add tests for prom export configuration

* style: make comments descriptive

* test: update tests for label sets

* fix: lint
Latest commit 460d986 Nov 11, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci ci: install minimal lint & doc deps (#508) Nov 11, 2019
.github Propose to add @obecny as the CODEOWNERS. (#505) Nov 8, 2019
benchmark Add initial benchmark suite (#390) Oct 19, 2019
doc Refactor: Consistent package naming and structure (#413) Oct 8, 2019
examples feat(scope-zone): new scope manager to support async operations in web ( Nov 11, 2019
packages feat: Add prometheus exporter (#483) Nov 11, 2019
.commitlintrc.yml chore: add commitlint and husky (#128) Jul 25, 2019
.editorconfig Add EditorConfig file (#24) Jun 17, 2019
.gitignore chore: bump typescript version to ^3.7.2 (#497) Nov 8, 2019
.npmignore Initial skeleton (#2) Jun 10, 2019
.nycrc refactor: unit tests (#198) Aug 14, 2019
CONTRIBUTING.md chore: update CONTRIBUTING.md (#445) Oct 21, 2019
LICENSE Initial commit May 10, 2019
README.md feat(scope-zone): new scope manager to support async operations in web ( Nov 11, 2019
RELEASING.md chore(lerna): add lerna-changelog (#432) Oct 16, 2019
codecov.yml 🤖Add codecov (#64) Jul 2, 2019
karma.base.js chore: fixing coverage for karma using istanbul (#466) Nov 1, 2019
karma.webpack.js chore: fixing coverage for karma using istanbul (#466) Nov 1, 2019
lerna.json chore(plugin): postgres-pool plugin skeleton (#473) Nov 5, 2019
package.json chore: bump typescript version to ^3.7.2 (#497) Nov 8, 2019
tslint.base.js chore: set explicit naming convention (#262) Sep 17, 2019
webpack.node-polyfills.js Tracer web (#334) Oct 7, 2019

README.md

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.

The v0.2 alpha release includes:

  • Tracing API
  • Tracing SDK (Node and Web)
  • Metrics API
  • Jaeger Trace Exporter
  • Zipkin Trace Exporter
  • OpenTracing Bridge
  • HTTP, GRPC, DNS Instrumentations
  • Document Load for web
  • Metrics SDK (Counter and Gauge support) - Export work is underway.

See the project milestones for details on upcoming releases. The dates and features described here are estimates, and subject to change.

Future release targets include:

Component Version Target Date
Prometheus Metrics Exporter Alpha v0.3 November 15 2019
mongodb Instrumentation Alpha v0.3 November 15 2019
postgres Instrumentation Alpha v0.3 November 15 2019
OpenCensus Bridge Alpha v0.3 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.

Approvers (@open-telemetry/js-approvers):

Find more about the approver role in community repository.

Maintainers (@open-telemetry/js-maintainers):

Find more about the maintainer role in community repository.

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/metrics This module provides instruments and meters for reporting of time series data.
@opentelemetry/node This module provides automatic tracing for Node.js applications. It is intended for use on the server only.
@opentelemetry/web This module provides automated instrumentation and tracing for Web applications. It is intended for use in the browser 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:

Trace Exporters

Metric Exporters

Plugins

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

Node Plugins

Web Plugins

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.

You can’t perform that action at this time.