OpenTelemetry API for JavaScript
This package provides everything needed to interact with the unstable OpenTelemetry Logs API, including all TypeScript interfaces, enums, and no-op implementations. It is intended for use both on the server and in the browser.
Beta Software - Use at your own risk
The logs API is considered alpha software and there is no guarantee of stability or long-term support. When the API is stabilized, it will be made available and supported long-term in the @opentelemetry/api
package and this package will be deprecated.
Quick Start
Purposefully left blank until SDK is available.
Version Compatibility
Because the npm installer and node module resolution algorithm could potentially allow two or more copies of any given package to exist within the same node_modules
structure, the OpenTelemetry API takes advantage of a variable on the global
object to store the global API. When an API method in the API package is called, it checks if this global
API exists and proxies calls to it if and only if it is a compatible API version. This means if a package has a dependency on an OpenTelemetry API version which is not compatible with the API used by the end user, the package will receive a no-op implementation of the API.
Advanced Use
API Methods
If you are writing an instrumentation library, or prefer to call the API methods directly rather than using the register
method on the Tracer/Meter/Logger Provider, OpenTelemetry provides direct access to the underlying API methods through the @opentelemetry/api-logs
package. API entry points are defined as global singleton objects trace
, metrics
, logs
, propagation
, and context
which contain methods used to initialize SDK implementations and acquire resources from the API.
const api = require("@opentelemetry/api-logs");
const loggerProvider = createLoggerProvider();
api.logs.setGlobalLoggerProvider(loggerProvider);
api.logs.getLoggerProvider();
const logger = api.logs.getLogger(name, version);
logger.emitEvent({ name: 'event-name', domain: 'event-domain' });
logger.emitLogRecord({ severityNumber: 1, body: 'log data' });
Useful links
License
Apache 2.0 - See LICENSE for more information.