Pular para o conteúdo principal

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.