Standard Kubernetes monitoring — CPU, memory, pod counts — tells you almost nothing about AI platform health. When a model serving endpoint returns 200 OK but latency doubles, CPU metrics won't show the GPU memory fragmentation causing it. When a training job runs for 72 hours with 5% GPU utilization, Prometheus default scrape won't capture it. AI platforms need purpose-built observability.
The Four Pillars + One
Traditional observability has three pillars: metrics, logs, traces. AI platforms add two more:
- Metrics — System metrics, Kubernetes metrics, GPU metrics, application metrics
- Logs — Application logs, audit logs, training job logs, inference request logs
- Traces — Request traces through the inference pipeline, data pipeline traces
- GPU telemetry — Utilization, memory, temperature, power, error counts per GPU
- Model metrics — Inference latency, throughput, accuracy drift, data distribution shift
The Stack
Prometheus + Thanos/Mimir
Prometheus for metric collection. For multi-cluster and long-term storage, add Thanos (sidecar mode) or Grafana Mimir. Key metric sources:
- kube-state-metrics — Kubernetes object state
- node-exporter — Node-level system metrics
- DCGM Exporter — NVIDIA GPU metrics (utilization, memory, temperature, ECC errors)
- cAdvisor — Container resource metrics
- Custom exporters — Application-specific metrics
Grafana Loki
Lightweight log aggregation. Deploy Promtail as DaemonSet for log collection. Index by namespace, pod, container, and custom labels. For training jobs, capture stdout/stderr and store alongside training metrics. For inference, log request/response pairs for debugging and compliance.
Grafana Tempo or Jaeger
Distributed tracing for inference pipelines. When a prediction request flows through: load balancer → preprocessing → model inference → postprocessing → response, you need to see where latency hides. OpenTelemetry SDK in your application code, Tempo for trace storage and query.
Grafana Dashboards
Build role-specific dashboards:
- Platform team — Cluster health, GPU pool utilization, node autoscaler activity, cost allocation
- ML engineers — Training job progress, GPU utilization per job, checkpoint status, estimated completion time
- Data scientists — Model inference latency, throughput, error rates, accuracy metrics
- Management — Cost per team, GPU utilization trends, platform adoption metrics
Kubernetes Recipes
Practical guide for container orchestration and deployment — hands-on patterns you can use today.
View on Amazon →GPU-Specific Monitoring
GPU monitoring deserves special attention:
- GPU utilization vs GPU memory utilization — Low compute utilization with high memory utilization means the model fits but the workload isn't compute-bound. Might benefit from a smaller GPU.
- SM (streaming multiprocessor) utilization — More granular than overall GPU utilization. Shows actual compute engine usage.
- NVLink bandwidth — For multi-GPU training, NVLink saturation indicates communication bottlenecks
- ECC errors — Increasing correctable ECC errors predict GPU hardware failure. Alert on trends, not individual events.
- Power consumption — Correlates with actual work. Idle GPU + high power = stuck kernel or driver issue.
Alerting Strategy
Alert on symptoms, not causes:
- GPU utilization below 10% for more than 1 hour (wasted spend)
- Inference latency P99 exceeds SLO threshold
- Training job progress stalled (no checkpoint for 2x expected interval)
- GPU temperature exceeding thermal throttle threshold
- PersistentVolume usage above 85% (training data storage)
Federated Learning and Privacy-preserving RAGs
Implement secure AI models using federated learning techniques.
Start on Pluralsight →What Open Empower Delivers
We build purpose-built observability stacks for AI platforms on Kubernetes. From DCGM GPU metrics to model performance monitoring to cost dashboards — visibility that drives optimization and reliability.
Luca Berton
