DeepStream OpenTelemetry Support
DeepStream provides OpenTelemetry support via nvmultiurisrcbin, enabling the export of pipeline performance metrics to observability platforms like Prometheus and Grafana.
OpenTelemetry support is available for both x86 (DeepStream 9.0 onwards) and Jetson platforms. The Gst-nvdslogger plugin collects performance data (FPS, latency, frame numbers) from the GStreamer pipeline. This data is stored in shared memory structures managed by the nvds_rest_metrics library and exported to OpenTelemetry collectors using OTLP/HTTP.
OpenTelemetry is supported through nvmultiurisrcbin. To activate it, incorporate nvmultiurisrcbin into your pipeline.
Configuration
Configure OpenTelemetry using environment variables:
Set the following parameters in the deepstream-test5 application configuration file (/opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test5/configs/test5_config_file_nvmultiurisrcbin_src_list_attr_all.txt):
Supported Prometheus Metrics
Stream Performance Metrics
System Resource Metrics
gpu_memory_gb is not applicable on aarch64 devices (e.g., Jetson Thor) as they use unified memory, so it returns -1.
OpenTelemetry Collector Configuration
To filter out inactive stream metrics, add the following processor to your collector configuration:
If exporting to Prometheus, set metric_expiration >= otlp-interval to drop stale metrics:
For steps to set up and run the OpenTelemetry Collector, refer to the DeepStream OpenTelemetry Collector README.
References
For more information about OpenTelemetry, refer to the following resources:
- OTLP/HTTP Specification - OpenTelemetry Protocol specification for HTTP transport
- OpenTelemetry Documentation - Official OpenTelemetry documentation
- OpenTelemetry Collector - OpenTelemetry Collector documentation