Skip to main content
APA
Sponsored byCAST AI — Kubernetes cost optimizationBetter Stack — Uptime monitoring and log managementVictoriaMetrics — Fast, open-source time series database and drop-in Prometheus replacement.

Grafana Alloy logoGrafana Alloy Prometheus Alert Rules

7 Prometheus alerting rules for Grafana Alloy.Exported via Embedded exporter.These rules cover critical and warning conditions — copy and paste the YAML into your Prometheus configuration.

⚠️

Alert thresholds depend on the nature of your applications. Some queries may have arbitrary tolerance thresholds. Building an efficient monitoring platform takes time. 😉

12.7.Grafana Alloy logoEmbedded exporter(7 rules)

wget https://raw.githubusercontent.com/samber/awesome-prometheus-alerts/refs/heads/master/dist/rules/grafana-alloy/embedded-exporter.yml
critical

12.7.1.Grafana Alloy service down

Alloy on instance {{ $labels.instance }} is not responding or has stopped running.

- alert: GrafanaAlloyServiceDown
  expr: count by (instance) (alloy_build_info offset 2h) unless count by (instance) (alloy_build_info)
  for: 0m
  labels:
    severity: critical
  annotations:
    summary: Grafana Alloy service down (instance {{ $labels.instance }})
    description: "Alloy on instance {{ $labels.instance }} is not responding or has stopped running.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

12.7.2.Grafana Alloy OpenTelemetry exporter failing to send data

The OpenTelemetry exporter in Alloy under job {{ $labels.job }} has a success rate below 95% for sending spans, metrics, or logs to their destination, meaning telemetry data delivery is failing, possibly due to a payload issue or an unreachable endpoint.

- alert: GrafanaAlloyOpenTelemetryExporterFailingToSendData
  expr: (1 - (sum by (job) (rate({__name__=~"otelcol_exporter_send_failed_(spans|metric_points|log_records)_total"}[1m])) / (sum by (job) (rate({__name__=~"otelcol_exporter_send_failed_(spans|metric_points|log_records)_total"}[1m])) + sum by (job) (rate({__name__=~"otelcol_exporter_sent_(spans|metric_points|log_records)_total"}[1m]))))) < 0.95
  for: 10m
  labels:
    severity: warning
  annotations:
    summary: Grafana Alloy OpenTelemetry exporter failing to send data (instance {{ $labels.instance }})
    description: "The OpenTelemetry exporter in Alloy under job {{ $labels.job }} has a success rate below 95% for sending spans, metrics, or logs to their destination, meaning telemetry data delivery is failing, possibly due to a payload issue or an unreachable endpoint.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
critical

12.7.3.Grafana Alloy OpenTelemetry receiver refusing data

The OpenTelemetry receiver in Alloy under job {{ $labels.job }} has a success rate below 95% for pushing spans, metrics, or logs into the pipeline, meaning telemetry data is being dropped, possibly due to limits imposed by otelcol.processor.memory_limiter.

- alert: GrafanaAlloyOpenTelemetryReceiverRefusingData
  expr: (1 - (sum by (job) (rate({__name__=~"otelcol_receiver_refused_(spans|metric_points|log_records)_total"}[1m])) / (sum by (job) (rate({__name__=~"otelcol_receiver_refused_(spans|metric_points|log_records)_total"}[1m])) + sum by (job) (rate({__name__=~"otelcol_receiver_accepted_(spans|metric_points|log_records)_total"}[1m]))))) < 0.95
  for: 10m
  labels:
    severity: critical
  annotations:
    summary: Grafana Alloy OpenTelemetry receiver refusing data (instance {{ $labels.instance }})
    description: "The OpenTelemetry receiver in Alloy under job {{ $labels.job }} has a success rate below 95% for pushing spans, metrics, or logs into the pipeline, meaning telemetry data is being dropped, possibly due to limits imposed by otelcol.processor.memory_limiter.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

12.7.4.Grafana Alloy unhealthy components

One or more Alloy pipeline components (receivers, exporters, processors, discovery, etc.) under job {{ $labels.job }} are reporting a non-healthy status, even though the Alloy process itself is still running.

- alert: GrafanaAlloyUnhealthyComponents
  expr: sum by (job) (alloy_component_controller_running_components{health_type!="healthy"}) > 0
  for: 15m
  labels:
    severity: warning
  annotations:
    summary: Grafana Alloy unhealthy components (instance {{ $labels.instance }})
    description: "One or more Alloy pipeline components (receivers, exporters, processors, discovery, etc.) under job {{ $labels.job }} are reporting a non-healthy status, even though the Alloy process itself is still running.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

12.7.5.Grafana Alloy slow component evaluations

Component {{ $labels.component_id }} at path {{ $labels.component_path }} under job {{ $labels.job }} is taking too long to evaluate, which can lead to stale scrape targets or delayed pipeline processing.

- alert: GrafanaAlloySlowComponentEvaluations
  expr: sum by (job, component_path, component_id) (rate(alloy_component_evaluation_slow_seconds[10m])) > 0
  for: 15m
  labels:
    severity: warning
  annotations:
    summary: Grafana Alloy slow component evaluations (instance {{ $labels.instance }})
    description: "Component {{ $labels.component_id }} at path {{ $labels.component_path }} under job {{ $labels.job }} is taking too long to evaluate, which can lead to stale scrape targets or delayed pipeline processing.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

12.7.6.Grafana Alloy cluster not converging

Alloy cluster nodes under job {{ $labels.job }} report a different number of peers, meaning the gossip-based cluster is not converging.

- alert: GrafanaAlloyClusterNotConverging
  expr: stddev by (job) (sum without (state) (cluster_node_peers)) != 0
  for: 10m
  labels:
    severity: warning
  annotations:
    summary: Grafana Alloy cluster not converging (instance {{ $labels.instance }})
    description: "Alloy cluster nodes under job {{ $labels.job }} report a different number of peers, meaning the gossip-based cluster is not converging.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"
warning

12.7.7.Grafana Alloy cluster node unhealthy

Alloy node under job {{ $labels.job }} is reporting a gossip protocol health score above 0, indicating clustering issues that may prevent the node from properly participating in the cluster.

- alert: GrafanaAlloyClusterNodeUnhealthy
  expr: cluster_node_gossip_health_score > 0
  for: 10m
  labels:
    severity: warning
  annotations:
    summary: Grafana Alloy cluster node unhealthy (instance {{ $labels.instance }})
    description: "Alloy node under job {{ $labels.job }} is reporting a gossip protocol health score above 0, indicating clustering issues that may prevent the node from properly participating in the cluster.\n  VALUE = {{ $value }}\n  LABELS = {{ $labels }}"