Charmed OpenTelemetry Collector operator for Kubernetes.
- This charm is written in the reconciler pattern.
- A key design choice for the charm is that all telemetry goes to all exporters. Splitting telemetry can still be accomplished by tiering multiple otelcol apps.
- The charm uses a custom otelcol distribution, which does not include all of contrib.
Refer to
manifest.yamlin the rock repo for included components.
charmcraft pack
juju deploy ./opentelemetry-collector-k8s_ubuntu@24.04-amd64.charm otelcol \
--resource opentelemetry-collector-image=ubuntu/opentelemetry-collector \
--queue_size=500 \
--extra_alert_labels="environment:dev"You can "recreate the world" with a dedicated charm action,
juju run otelcol/0 reconcileIn this example, otelcol is a collection agent pushing directly to backends.
graph LR
subgraph app-model
app-one --- otelcol
app-two --- otelcol
end
subgraph observability-model
otelcol ---|send-remote-write| mimir
otelcol ---|send-loki-logs| loki
otelcol ---|send-traces| tempo
otelcol ---|grafana-dashboards-consumer| grafana
end
| Workload container | Rock repo | Dockerhub |
|---|---|---|
otelcol |
opentelemetry-collector-rock |
ubuntu/opentelemetry-collector |
| GitHub branch | Charmhub track | Supported until |
|---|---|---|
track/2 |
2 |
2026-07 |
- opentelemetry-collector (VM charm)
- grafana-agent-k8s
Please see the Juju SDK docs for guidelines on enhancements to this charm following best practice guidelines, and the contributing doc for developer guidance.