How it works
When you create anAutoInstrumentation custom resource and label your pods to match its selector, the operator’s admission webhook intercepts each pod creation request and mutates the pod spec to add:
- An init container that copies instrumentation packages to a shared volume
- Environment variables that configure OpenTelemetry (service name, OTLP endpoint, resource attributes)
- A volume mount so the application container picks up the instrumentation via
PYTHONPATH
Key benefits
- Zero code changes — instrument existing AI applications by adding a label
- OpenTelemetry-native — built on OTel standards, compatible with any OTLP-compatible backend
- Provider flexibility — choose from OpenLIT, OpenInference, OpenLLMetry, or bring your own image
- Kubernetes-native — uses CRDs, admission webhooks, and RBAC following Kubernetes patterns
What gets instrumented
LLM Providers
OpenAI, Anthropic, Google, Azure OpenAI, AWS Bedrock, Ollama, Groq, Cohere, Mistral, and more
AI / Agentic Frameworks
LangChain, LlamaIndex, CrewAI, Haystack, AG2, DSPy, Guardrails, and more
Vector Databases
ChromaDB, Pinecone, Qdrant, Milvus, Weaviate, and more
Supported languages
Python
Full supportComplete instrumentation for all Python-based AI applications and AI agents
JavaScript
Coming soonComplete instrumentation for all JS/TS-based AI applications and AI agents
More languages
RoadmapJava, Go, and other languages planned for future releases
Get started
Quickstart
Get the operator running and instrumenting a workload in 5 minutes
Installation
Full installation guide including prerequisites, Helm, and upgrade paths
Instrumentations
Learn about supported providers and how to annotate your deployments
Destinations
Send telemetry to OpenLIT, Grafana Cloud, Datadog, SigNoz, New Relic, and more
