Metrics#

Metrics in Omniverse Kit provide a standardized way to collect, monitor, and export numerical telemetry data from Kit-based applications. Using the industry-standard OpenTelemetry framework, Kit enables developers to track performance, resource utilization, and operational statistics for observability and analysis purposes. Each metric in code is managed through an ‘instrument’ object. This instrument is used to modify the metric’s current value and any splits based on attached attributes. Each instrument will record a single numerical value that will be periodically exported. Each combination of attached attributes on a metric will effectively split it to a unique metric value for that attribute set.

Overview#

Kit’s metrics system is built on top of OpenTelemetry, a vendor-neutral framework for emitting telemetry data. This allows metrics to be exported to any OpenTelemetry-compatible observability platform for comprehensive system analysis.

Metrics in Kit can track various aspects of application behavior including:

  • Performance monitoring: Frame rates, rendering times, operation latencies

  • Resource utilization: CPU, GPU, and memory usage

  • Operational statistics: Stage loading times, streaming quality metrics

  • Error tracking: Failure rates and error counts

  • Custom application metrics: Any domain-specific measurements

Implementation#

The metrics functionality is provided by the omni.observability.core library, which serves as a bridge between the Kit framework and the OpenTelemetry ecosystem. This library provides a standardized way of configuring and initializing the OpenTelemetry framework and provides helpers to make it easier to create and emit metrics values.

Note

The omni.metrics.core extension also exists and wraps the carb.metrics plugin, but will be deprecated in upcoming Kit versions.

Metrics can be configured through environment variables and carb settings to control collection, export endpoints, timeouts, export intervals, and metric resources.

Supported Metric Types#

Kit supports the standard OpenTelemetry instrument types:

  • Counters: Monotonically increasing values (e.g., request counts, error counts). All added values must be non-negative.

  • Up/Down Counters: A counter instrument that can go up and down (ie: active connections count).

  • Gauges: Records values for specific points in time that can go up or down (e.g., memory usage, active connections). Individual values are maintained and not aggregated, resulting in a graphable metric value over time.

  • Histograms: Statistical distributions of values (e.g., request latencies, file sizes). The individual values are often lost and replaced with a simple count of values that fell into a number of ‘buckets’.

Each of these instruments also has an ‘asynchronous’ version. Instead of directly passing a new value to add or record in the instrument, a callback is registered with the instrument that allows the current value of the metric to be collected as needed. These asynchronous versions have “Observable” in their instrument names.

Integration with Observability Platforms#

Because Kit uses OpenTelemetry, metrics can be exported to any OpenTelemetry-compatible backend. This includes:

  • Time-series databases

  • Visualization and dashboarding tools

  • Distributed tracing systems

  • Application performance monitoring (APM) platforms

  • Cloud-native monitoring solutions

  • Enterprise monitoring and analytics systems

This flexibility allows you to integrate Kit metrics into your existing observability infrastructure using standard OpenTelemetry exporters and protocols.

Built-in Kit Metrics#

Kit and its extensions automatically collect metrics to help monitor application health and performance.

Note

These built-in metrics are especially important for Omniverse on DGX Cloud deployments, where observability and monitoring are critical for cloud-based applications.

Streaming Metrics#

These metrics are collected from streaming sessions and provide quality of service (QoS) information. They are exposed by the omni.kit.livestream.webrtc extension.

Metric

Description

Unit

streaming.bitrate

Average streaming bit rate

bps

streaming.framerate

Average streaming frame rate

fps

streaming.roundtripdelay

Average round trip delay

ms

See Also#