Skip to main content
The Midaz chart does not deploy an observability stack. The applications emit OpenTelemetry traces and metrics and expect you to run the collector and the backend. The chart controls whether it injects the OTEL environment variables into the ledger, crm, and tracer deployments, and which endpoint the applications use.
The chart contains no Grafana templates. A grafana: block in your values renders nothing.

Injecting the OTEL environment variables


The otel-collector-lerian.enabled key controls injection and defaults to true:
The chart reads only enabled under this key. It ignores any other key, including the legacy external, extraEnvs, exporters, and opentelemetry-collector.
When enabled, the chart adds these variables to the ledger, crm, and tracer containers: Tracer ships with telemetry off. To turn it on, set global.observability.enabled: true or tracer.configmap.ENABLE_TELEMETRY: "true".

What you must provide


The endpoint is fixed at $(HOST_IP):4317, the node the pod runs on. Keeping enabled: true therefore needs an OTLP collector on port 4317 on every node, usually a DaemonSet with hostNetwork or a host port. Without one, the applications export to a dead endpoint. The injected endpoint has no scheme, so the applications treat it as plaintext. When the deployment environment is production, the chart default, the Ledger does not start with a plaintext exporter unless ALLOW_INSECURE_OTEL names a reason:

Using a different endpoint


You can send telemetry somewhere else: a central collector Service, a managed backend, or your existing observability infrastructure. Turn injection off and set the endpoint once for every component:
A <component>.configmap.OTEL_EXPORTER_OTLP_ENDPOINT value overrides it for that component. An endpoint without https:// is plaintext, so it needs ALLOW_INSECURE_OTEL in production too.

Dashboards


No dashboards ship with the chart. Build them in whatever backend receives the telemetry. For the standalone collector chart, see Infrastructure Helm charts.