Grafana Cloud vs OpenTelemetry
Si estás usando Grafana Cloud que ya tiene todo lo necesario para observabilidad, vale la pena mencionar algunas cosas relacionadas con OTel y Prometheus.
Imaginemos el escenario donde tenemos Prometheus fuera del cluster kubernetes, pero gestionado por Grafana Cloud.
Grafana Agent
Grafana Agent es la pieza que hace de puente entre tu ambiente local y el Prometheus alojado en Grafana Cloud.
Prometheus en Grafana Cloud es un Prometheus gestionado por Grafana y no hace scrape directo de tus aplicaciones locales, siendo necesario que algo envíe las métricas hacia él.
Grafana Agent actúa como un recolector local que hace scrape de las métricas localmente (Node Exporter, aplicaciones, etc.) y envía (remote write) esas métricas a Prometheus en Grafana Cloud, pero también puede recolectar logs para Grafana Loki y traces para Grafana Tempo (el Jaeger de Grafana).
Node Exporter --→ Grafana Agent --→ Prometheus (Grafana Cloud)
Aplicación -------↗ ↓
Loki/Tempo (Grafana Cloud)
La principal diferencia con un Prometheus local:
- Prometheus local: hace scrape directo de los objetivos
- Grafana Agent: hace scrape y envía a Prometheus Cloud
Grafana Agent es más ligero que un Prometheus completo porque:
- No almacena las métricas localmente
- No tiene interfaz de consulta
- Se enfoca únicamente en recolectar y enviar
Grafana Agent puede trabajar en conjunto con OpenTelemetry de dos maneras:
- Grafana Agent Flow (más nuevo):
- Tiene soporte nativo al protocolo OpenTelemetry (OTLP)
- Puede actuar como un OpenTelemetry Collector porque implementa las mismas funcionalidades básicas de un Collector, incluyendo:
Recepción de datos: Soporta el protocolo OTLP (OpenTelemetry Protocol) pudiendo recibir métricas, logs y traces y usa los mismos puertos por defecto (4317 para gRPC, 4318 para HTTP)Procesamiento: Puede hacer batch de datos, filtrado y transformación.- Exportación: Puede enviar a diferentes backends, soporta diferentes protocolos y puede hacer enrutamiento de los datos.
La principal diferencia es que Grafana Agent está optimizado para el ecosistema Grafana Cloud, mientras que OpenTelemetry Collector es más genérico y soporta más backends y configuraciones.