OpenTelemetry Based Observability Support#
Overview#
The Omniverse ecosystem will be adopting OpenTelemetry as a standard for observability functionality. This includes
logging, metrics, traces, and telemetry events. Crash reporting is also included in the realm of observability, but
is not directly supported by OpenTelemetry. To more widely support OpenTelemetry based observability, the omni.telemetry.core
library has been created as a platform and SDK independent helper library that can be used in Omniverse projects to
allow for a consistent feature set and configuration across all Omniverse apps regardless of their deployment environment.
the main goals of this library are:
To provide a helper library that handles all of the OpenTelemetry configuration and startup for logging, metrics, and traces. Telemetry events will be handled as log OpenTelemetry events.
To provide support for observability communications through the OpenTelemetry Protocol (OTLP) for logs, metrics, and traces.
To provide a Carbonite plugin that wraps the
omni.telemetry.core
library and provides access to its functionality for use in Carbonite or Kit based apps and services.To provide the core library in a Carbonite-free way so that other non-Carbonite, non-Kit Omniverse apps can consume it and get the same functionality as any Carbonite or Kit based app would get.
To respect all of the OpenTelemetry configuration environment variables (ie:
OTEL_SERVICE_NAME
, etc ) that apply to the feature sets we are using and offering. The environment variables will always take configuration precedence over other configuration methods.To provide Carbonite/Kit settings that can be used to populate the OpenTelemetry environment variables if not defined.
To merge existing early OpenTelemetry related functionality into the core library.
To convert the existing legacy telemetry events system to support OTLP event/log messages instead. The previous behavior should still be present, just disabled by default.
To provide an optional Kit extension that will manage the launching and lifetime of an OpenTelemetry collector instance for each Kit process.