Grafana Cloud vs OpenTelemetry
Se você está usando o Grafana Cloud que já tem tudo o que é necessário para observabilidade, vale a pena mencionar algumas coisas que têm a ver com o OTel e o Prometheus.
Vamos imaginar o cenário que temos o Prometheus fora do cluster kubernetes, mas gerenciado pelo Grafana Cloud.
Grafana Agent
O Grafana Agent é a peça que faz a ponte entre seu ambiente local e o Prometheus hospedado no Grafana Cloud.
O Prometheus no Grafana Cloud é um Prometheus gerenciado pela Grafana e não faz scrape direto das suas aplicações locais, sendo necessário que algo envie as métricas para ele
Grafana Agent atua como um coletor local que faz o scrape das métricas localmente (Node Exporter, aplicações, etc) e envia (remote write) essas métricas para o Prometheus no Grafana Cloud, mas também pode coletar logs para o Grafana Loki e traces para Grafana Tempo (O Jaeger do Grafana).
Node Exporter --→ Grafana Agent --→ Prometheus (Grafana Cloud)
Aplicação -------↗ ↓
Loki/Tempo (Grafana Cloud)
A principal diferença para um Prometheus local:
- Prometheus local: faz scrape direto dos alvos
- Grafana Agent: faz scrape e envia para o Prometheus Cloud
O Grafana Agent é mais leve que um Prometheus completo porque:
- Não armazena as métricas localmente
- Não tem interface de consulta
- Foca apenas em coletar e enviar
O Grafana Agent pode trabalhar em conjunto com o OpenTelemetry de duas maneiras:
- Grafana Agent Flow (mais novo):
- Tem suporte nativo ao protocolo OpenTelemetry (OTLP)
- Pode atuar como um OpenTelemetry Collector porque ele implementa as mesmas funcionalidades básicas de um Collector, incluindo:
Recepção de dados: Suporta o protocolo OTLP (OpenTelemetry Protocol) podendo receber métricas, logs e traces e usa as mesmas portas padrão (4317 para gRPC, 4318 para HTTP)Processamento: Pode fazer batch de dados, filtragem e transformação.- Exportação: Pode enviar para diferentes backends, suporta diferentes protocolos e pode fazer roteamento dos dados.
A principal diferença é que o Grafana Agent é otimizado para o ecossistema Grafana Cloud, enquanto o OpenTelemetry Collector é mais genérico e suporta mais backends e configurações.