Monitoring & Observability
The NVIDIA Cluster Agent and Operator provide built-in monitoring through Prometheus metrics, structured logging, and OpenTelemetry tracing.
Monitoring Data
Metrics
Prerequisites
To use the PodMonitor and ServiceMonitor examples below, you must first install the Prometheus Operator. Follow the Prometheus Operator installation guide to set this up in your cluster.
The cluster agent and operator emit Prometheus-style metrics. The following metric labels are available by default. The full list of available metrics are updated regularly and therefore not listed.
Cluster maintainers can scrape the available metrics. See a full example of how to do this with an OpenTelemetry Collector in the cluster cluster monitoring example.
Use the following examples of a PodMonitor for NVCA Operator and ServiceMonitor for NVCA for reference:
Sample NVCA Operator PodMonitor
Sample NVCA ServiceMonitor
Logs
Both the Cluster Agent and Cluster Agent Operator emit logs locally by default.
Local logs for the NVIDIA Cluster Agent Operator can be obtained via kubectl:
Similarly, NVIDIA Cluster Agent logs can be obtained with the following command via kubectl:
Current function-level inference container logs are not supported for functions deployed on non-NVIDIA-managed clusters. Customers are encouraged to emit logs directly from their inference containers running on their own clusters to any third-party tool, there are no public egress limitations for containers.
Tracing
The NVIDIA Cluster Agent exports OpenTelemetry traces to Lightstep. The
lightstep exporter requires an access token and an OTLP gRPC endpoint.
otelConfig.endpoint is required when otelConfig.accessToken is set, including
on NVCA and Operator 3.7.2. A successful Kubernetes patch only confirms that the
API accepted the configuration; the Operator must reconcile it before tracing
is enabled.
Enable tracing with Lightstep
-
Get a Lightstep access token and export it as
LS_ACCESS_TOKENin your shell. -
Select the endpoint for your Lightstep project. For direct ingestion, use
ingest.lightstep.com:443for the US region oringest.eu.lightstep.com:443for the EU region. For a managed collector, obtain its endpoint from your administrator. Usehost:portwithout anhttps://prefix. See the Lightstep tracing quickstart. -
List the backends and select the one to configure:
-
Apply the configuration. This command requires Python 3 and sends the token through standard input instead of including it in the
kubectlarguments. -
Check the Operator logs and the agent rollout:
Wait for the Operator to reconcile the change and replace the agent Pod. Then deploy or invoke a function and confirm that new spans appear in your Lightstep project. An existing ready agent or a successful patch alone does not confirm trace delivery.
If the Operator logs otelConfig.endpoint is required when otelConfig.accessToken is set, reapply the configuration with the endpoint.
A merge patch preserves existing fields, so an old endpoint can mask an
incomplete configuration example. Always specify the endpoint and token
together when enabling tracing.
For a Helm-managed backend, persist the same endpoint in otel.endpoint along
with otel.enabled, otel.lightstep.serviceName, and
otel.lightstep.accessToken in your Helm values.