Alejandría

Busca en Alejandría

Plataformas

Grafana Alloy

Distribución de OpenTelemetry Collector con componentes para recolectar y enviar telemetría.

01

En pocas palabras

Distribución de OpenTelemetry Collector con componentes para recolectar y enviar telemetría.

Qué problema resuelve

Múltiples agentes y configuraciones inconsistentes para métricas, logs y trazas.

Cuándo utilizarlo

Infraestructura con OTEL o Grafana. Ejemplo: centralizar la recolección de telemetría de Kubernetes.

02

De la idea a la práctica

Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.

En el Radar compartido: Trial (valoración de la edición aportada).

Cómo funciona

Configura pipelines que reciben datos, aplican transformaciones y los exportan. Integra componentes de OpenTelemetry y del ecosistema Prometheus y Grafana.

Ejemplo de uso

Recoger logs de pods hacia Loki, métricas hacia un backend Prometheus y trazas hacia Tempo. Añadir etiquetas de servicio y entorno de forma consistente.

Modelo de componentes

Alloy se configura con su propio lenguaje declarativo. Cada bloque es un componente con argumentos y exportaciones, y los componentes se conectan referenciando las salidas de otros, formando un grafo:

// Recibir OTLP desde las aplicaciones
otelcol.receiver.otlp "default" {
  grpc { endpoint = "0.0.0.0:4317" }
  http { endpoint = "0.0.0.0:4318" }
  output {
    traces  = [otelcol.processor.batch.default.input]
    metrics = [otelcol.processor.batch.default.input]
    logs    = [otelcol.processor.batch.default.input]
  }
}

otelcol.processor.batch "default" {
  output {
    traces  = [otelcol.exporter.otlp.tempo.input]
    metrics = [otelcol.exporter.prometheus.default.input]
    logs    = [otelcol.exporter.loki.default.input]
  }
}

otelcol.exporter.otlp "tempo" {
  client { endpoint = "tempo:4317" }
}

otelcol.exporter.prometheus "default" {
  forward_to = [prometheus.remote_write.mimir.receiver]
}

prometheus.remote_write "mimir" {
  endpoint { url = "http://mimir:9009/api/v1/push" }
}

otelcol.exporter.loki "default" {
  forward_to = [loki.write.default.receiver]
}

loki.write "default" {
  endpoint { url = "http://loki:3100/loki/api/v1/push" }
}

Familias de componentes

Prefijo Para qué
otelcol.* Receptores, procesadores y exportadores de OpenTelemetry
prometheus.* Scraping, relabeling y remote_write
loki.* Lectura de archivos, pods o journald, procesado y envío de logs
discovery.* Descubrimiento de objetivos en Kubernetes, nubes, Consul
pyroscope.* Perfiles continuos
beyla.* Instrumentación automática con eBPF

Operación

  • La interfaz web local (puerto 12345 por defecto) muestra el grafo, el estado de cada componente y los datos en vivo, muy útil para depurar.
  • alloy convert traduce configuraciones de OpenTelemetry Collector, Prometheus o Promtail.
  • En Kubernetes se despliega con Helm, como DaemonSet (logs y métricas del nodo) y/o Deployment (receptor central).
  • Reemplaza a Grafana Agent y Promtail, que han llegado al final de su soporte.

Alloy frente al OpenTelemetry Collector

Ambos procesan OTLP. Alloy añade el ecosistema Prometheus y Loki nativo, depuración visual y gestión remota de flota; el Collector oficial es neutral respecto al proveedor y usa configuración YAML. Ver OpenTelemetry.

Criterios de implementación

Configurar buffers, reintentos y límites de memoria. Redactar datos sensibles y controlar cardinalidad; vigilar al propio colector para detectar pérdidas y saturación.

Continúa en las fuentes

Documentación oficial para verificar detalles y explorar más.