- Helm values — control the operator deployment itself (replicas, resources, log level, images)
- AutoInstrumentation CRD — control which pods are instrumented and how
Operator Helm values
Pass values at install or upgrade time with--set flags or a values.yaml file.
Deployment
integer
default:"1"
Number of operator replicas. For high availability, set to
3 and configure podAntiAffinity.string
default:"RollingUpdate"
Kubernetes deployment strategy. Use
Recreate if you need to avoid running two operator versions simultaneously.string
default:""
Priority class for the operator pod. Set to
system-cluster-critical for production environments.Resource limits
string
default:"100m"
CPU request for the operator pod.
string
default:"128Mi"
Memory request for the operator pod.
string
default:"500m"
CPU limit for the operator pod.
string
default:"512Mi"
Memory limit for the operator pod.
Observability
string
default:"info"
Operator log level. Accepts
debug, info, warn, or error.boolean
default:"false"
Emit the operator’s own telemetry via OpenTelemetry. Requires
observability.otel.endpoint.string
default:""
OTLP endpoint to send operator telemetry to, for example
http://openlit:4318.Provider images
The operator uses pre-built init container images for each instrumentation provider. By default these inherit the operator’s own image tag.string
default:"ghcr.io/openlit/openlit-ai-instrumentation"
Image repository for the OpenLIT instrumentation provider.
string
default:"ghcr.io/openlit/openllmetry-ai-instrumentation"
Image repository for the OpenLLMetry instrumentation provider.
string
Image repository for the OpenInference instrumentation provider.
Instrumentation defaults
string
default:"openlit"
Default instrumentation provider used when none is specified in the
AutoInstrumentation CR. Accepts openlit, openinference, openllmetry, or custom.string
default:"latest"
Default provider image tag.
string
default:"IfNotPresent"
Image pull policy for init containers.
AutoInstrumentation CRD
TheAutoInstrumentation custom resource defines which pods to instrument, how to instrument them, and where to send telemetry.
Full spec reference
Pod selection
LabelSelector
required
Pods matching this selector in the same namespace will be instrumented. Supports
matchLabels (exact match) and matchExpressions (operators: In, NotIn, Exists, DoesNotExist).LabelSelector
Pods matching this selector are skipped, even if they match
spec.selector. Use to exclude system components or debug pods.AutoInstrumentation resources only affect pods in the same namespace. To instrument pods across namespaces, create a separate AutoInstrumentation resource in each namespace.Python instrumentation
boolean
default:"true"
Enable or disable Python instrumentation.
string
default:"openlit"
Instrumentation provider. Accepted values:
string
default:"latest"
Provider image tag to use.
string
default:""
Comma-separated list of additional pip packages to install in the init container, e.g.
langchain>=0.1.0,chromadb>=0.4.0.string
default:""
Full image reference for a custom init container. Required when
provider is custom.OTLP configuration
string
required
OTLP HTTP endpoint. Must be a valid HTTP or HTTPS URL.
string
default:""
HTTP headers as comma-separated
key=value pairs, e.g. authorization=Bearer token123,x-api-key=secret. Used for authentication with external backends.integer
default:"30"
Request timeout in seconds. Accepted range: 1–300.
Resource attributes
Resource attributes are attached to every span and metric as OpenTelemetry resource attributes. The operator also automatically addsk8s.pod.name, k8s.namespace.name, k8s.deployment.name, k8s.node.name, and related Kubernetes attributes.
string
default:""
Maps to
deployment.environment. Example: production.string
default:""
Maps to
service.name. Overrides the auto-detected service name.string
default:""
Maps to
service.namespace.string
default:""
Maps to
service.version. Example: v2.1.0.