> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración de la observabilidad

> Apunta la telemetría de Midaz a tu colector de OpenTelemetry: las variables de entorno que inyecta el chart, el endpoint OTLP fijo y cómo sobrescribirlo.

El chart de Midaz **no** despliega un stack de observabilidad. Emite trazas y métricas de OpenTelemetry y espera que tú ejecutes el colector y el backend. Lo que el chart controla es una sola cosa: si las variables de entorno de OTEL se inyectan en los deployments `ledger` y `crm`.

<Note>
  Versiones anteriores del chart incluían un stack Grafana OTEL LGTM. Esos templates se eliminaron en la versión **v5.0.0** del chart; la clave `grafana:` sigue existiendo en `values.yaml`, pero el chart no renderiza ningún recurso de Grafana, por lo que definir `grafana.enabled: true` no tiene efecto.
</Note>

## Inyección de las variables de entorno de OTEL

***

La inyección se controla con `otel-collector-lerian.enabled`, cuyo valor por defecto es `true`:

```yaml theme={null}
otel-collector-lerian:
  enabled: true
```

<Warning>
  El esquema de esta clave es estricto: solo se acepta `enabled`. Las claves heredadas (`external`, `extraEnvs`, `exporters`, `opentelemetry-collector`) se rechazan al ejecutar `helm install` o `helm upgrade`.
</Warning>

Cuando está habilitada, el chart agrega estas variables a los contenedores `ledger` y `crm`:

| Variable                      | Valor                                 |
| :---------------------------- | :------------------------------------ |
| `POD_IP`                      | `status.podIP` (referencia de campo)  |
| `HOST_IP`                     | `status.hostIP` (referencia de campo) |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `$(HOST_IP):4317`                     |
| `OTEL_RESOURCE_ATTRIBUTES`    | `k8s.pod.ip=$(POD_IP)`                |

## Lo que debes proporcionar

***

El endpoint es **fijo en `$(HOST_IP):4317`**: el nodo donde se ejecuta el pod. Por lo tanto, mantener `enabled: true` requiere un colector OTLP accesible en el puerto 4317 de cada nodo, normalmente desplegado como DaemonSet con `hostNetwork` o un host port. Sin él, las aplicaciones exportan a un endpoint inexistente.

## Uso de un endpoint diferente

***

Para enviar la telemetría a otro destino —un colector centralizado como Service, un backend gestionado, tu infraestructura de observabilidad existente— deja la inyección deshabilitada y define el endpoint directamente en el ConfigMap de la aplicación:

```yaml theme={null}
otel-collector-lerian:
  enabled: false

ledger:
  configmap:
    OTEL_EXPORTER_OTLP_ENDPOINT: "otel-collector.observability.svc.cluster.local:4317"

crm:
  configmap:
    OTEL_EXPORTER_OTLP_ENDPOINT: "otel-collector.observability.svc.cluster.local:4317"
```

## Dashboards

***

El chart no incluye dashboards. Créalos en el backend que reciba la telemetría.

Para el chart independiente del colector, consulta [Charts de Helm de infraestructura](/es/platform/helm/infrastructure/infrastructure-helm).
