Grafana Agent
Grafana Agent has reached End-of-Life (EOL) on November 1, 2025. It is recommended migrating to the Grafana Alloy collector, which is built on the foundation of Grafana Agent Flow.
This is release v0.35.0 of Grafana Agent.
Upgrading
Read the relevant upgrade guides for specific instructions on upgrading from older versions:
Notable changes:
BREAKING CHANGES: This release has breaking changes. Please read entries carefully and consult the upgrade guide for specific instructions.
Breaking changes
-
The algorithm for the "hash" action of
otelcol.processor.attributeshas changed. The change was made in PR #22831 of opentelemetry-collector-contrib. (@ptodev) -
otelcol.exporter.lokinow includes the instrumentation scope in its output. (@ptodev) -
otelcol.extension.jaeger_remote_samplingremoves the/HTTP endpoint. The/samplingendpoint is still functional. The change was made in PR #18070 of opentelemetry-collector-contrib. (@ptodev) -
The field
versionandauthstruct block fromwalk_paramsinprometheus.exporter.snmpand SNMP integration have been removed. The auth block now can be configured at top level, together withmodules(@marctc) -
Rename
discovery.filetolocal.file_matchto make it more clear that it discovers file on the local filesystem, and so it doesn't get confused with Prometheus' file discovery. (@rfratto) -
Remove the
discovery_target_decodefunction in favor of using discovery components to better match the behavior of Prometheus' service discovery. (@rfratto) -
In the traces subsystem for Static mode, some metrics are removed and others are renamed. (@ptodev)
-
Removed metrics:
- "blackbox_exporter_config_last_reload_success_timestamp_seconds" (gauge)
- "blackbox_exporter_config_last_reload_successful" (gauge)
- "blackbox_module_unknown_total" (counter)
- "traces_processor_tail_sampling_count_traces_sampled" (counter)
- "traces_processor_tail_sampling_new_trace_id_received" (counter)
- "traces_processor_tail_sampling_sampling_decision_latency" (histogram)
- "traces_processor_tail_sampling_sampling_decision_timer_latency" (histogram)
- "traces_processor_tail_sampling_sampling_policy_evaluation_error" (counter)
- "traces_processor_tail_sampling_sampling_trace_dropped_too_early" (counter)
- "traces_processor_tail_sampling_sampling_traces_on_memory" (gauge)
- "traces_receiver_accepted_spans" (counter)
- "traces_receiver_refused_spans" (counter)
- "traces_exporter_enqueue_failed_log_records" (counter)
- "traces_exporter_enqueue_failed_metric_points" (counter)
- "traces_exporter_enqueue_failed_spans" (counter)
- "traces_exporter_queue_capacity" (gauge)
- "traces_exporter_queue_size" (gauge)
-
Renamed metrics:
- "traces_receiver_refused_spans" is renamed to "traces_receiver_refused_spans_total"
- "traces_receiver_accepted_spans" is renamed to "traces_receiver_refused_spans_total"
- "traces_exporter_sent_metric_points" is renamed to "traces_exporter_sent_metric_points_total"
-
-
The
remote_samplingblock has been removed fromotelcol.receiver.jaeger. (@ptodev)
Deprecations
otelcol.exporter.jaegerhas been deprecated and will be removed in Agent v0.38.0. (@ptodev)
Features
-
The Pyroscope scrape componen2 hours agot computes and sends delta profiles automatically when required to reduce bandwidth usage. (@cyriltovena)
-
Support
stage.geoipinloki.process. (@akselleirv) -
Integrations: Introduce the
squidintegration. (@armstrmi) -
Support custom fields in MMDB file for
stage.geoip. (@akselleirv) -
Added json_path function to river stdlib. (@jkroepke)
-
Add
format,join,tp_lower,replace,split,trim,trim_prefix,trim_suffix,trim_space,to_upperfunctions to river stdlib. (@jkroepke) -
Flow UI: Add a view for listing the Agent's peers status when clustering is enabled. (@tpaschalis)
-
Add a new CLI command
grafana-agent convertfor converting a river file from supported formats to river. (@erikbaranowski) -
Add support to the
grafana-agent runCLI for converting a river file from supported formats to river. (@erikbaranowski) -
Add boringcrypto builds and docker images for Linux arm64 and x64. (@mattdurham)
-
New Grafana Agent Flow components:
discovery.filediscovers scrape targets from files. (@spartan0x117)discovery.kubeletcollect scrape targets from the Kubelet API. (@gcampbell12)module.httpruns a Grafana Agent Flow module loaded from a remote HTTP endpoint. (@spartan0x117)2 hours agootelcol.processor.attributesaccepts telemetry data from otherotelcolcomponents and modifies attributes of a span, log, or metric. (@ptodev)prometheus.exporter.cloudwatch- scrape AWS CloudWatch metrics (@thepalbi)prometheus.exporter.elasticsearchcollects metrics from Elasticsearch. (@marctc)prometheus.exporter.kafkacollects metrics from Kafka Server. (@oliver-zhang)prometheus.exporter.mongodbcollects metrics from MongoDB. (@marctc)prometheus.exporter.squidcollects metrics from a squid server. (@armstrmi)prometheus.operator.probes- discovers Probe resources in your Kubernetes cluster and scrape the targets they reference. (@captncraig)pyroscope.ebpfcollects system-wide performance profiles from the current host (@korniltsev)otelcol.exporter.loadbalancing- export traces and logs to multiple OTLP gRPC endpoints in a load-balanced way. (@ptodev)
-
New Grafana Agent Flow command line utilities:
grafana-agent tools prometheus.remote_writeholds a collection of remote write-specific tools. These have been ported over from theagentctlcommand. (@rfratto)
-
A new
actionargument forotelcol.auth.headers. (@ptodev) -
New
metadata_keysandmetadata_cardinality_limitarguments forotelcol.processor.batch. (@ptodev) -
New
boolean_attributeandottl_conditionsampling policies forotelcol.processor.tail_sampling. (@ptodev) -
A new
initial_offsetargument forotelcol.receiver.kafka. (@ptodev)
Other changes
- Mongodb integration has been re-enabled. (@jcreixell, @marctc)
For a full list of changes, please refer to the CHANGELOG!
Installation
Refer to our installation guides for how to install the variants of Grafana Agent: