This is release v0.37.0
of Grafana Agent.
Upgrading
Read the relevant upgrade guides for specific instructions on upgrading from older versions:
Notable changes:
The biggest news is that Flow mode has now feature parity with Static mode! That means that you can use Flow components for all static mode use cases.
The v0.37.0 release contains some breaking changes:
Breaking changes
- Set
retry_on_http_429
totrue
by default in thequeue_config
block in static mode'sremote_write
. (@wildum) - Renamed
non_indexed_labels
Loki processing stage tostructured_metadata
. (@vlad-diachenko) - Include
otel_scope_name
andotel_scope_version
in all metrics forotelcol.exporter.prometheus
by default using a new argumentinclude_scope_labels
. (@erikbaranowski) - Static mode Windows Certificate Filter no longer restricted to TLS 1.2 and specific cipher suites. (@mattdurham)
- The
__meta_agent_integration*
and__meta_agent_hostname
labels have been
removed from the targets exposed byprometheus.exporter.*
components and
got replaced by the pair of__meta_component_name
and__meta_component_id
labels. (@tpaschalis) - Flow: Allow
prometheus.exporter.unix
to be specified multiple times and used in modules. This now means all
prometheus.exporter.unix
references will need a labelprometheus.exporter.unix "example"
. (@mattdurham)
Also, it includes a number of new features, including 23 (!) new Flow components, improved evaluation of the Flow component graph, new config converters as well as the ability to run multiple River files at once.
Features
-
New Grafana Agent Flow components:
discovery.consulagent
discovers scrape targets from Consul Agent. (@wildum)discovery.kuma
discovers scrape targets from the Kuma control plane. (@tpaschalis)discovery.linode
discovers scrape targets from the Linode API. (@captncraig)discovery.marathon
discovers scrape targets from Marathon servers. (@wildum)discovery.ionos
discovers scrape targets from the IONOS Cloud API. (@wildum)discovery.triton
discovers scrape targets from Triton Container Monitor. (@erikbaranowski)discovery.nerve
discovers scrape targets from AirBnB's Nerve. (@tpaschalis)discovery.serverset
discovers Serversets stored in Zookeeper. (@thampiotr)discovery.scaleway
discovers scrape targets from Scaleway virtual
instances and bare-metal machines. (@rfratto)faro.receiver
accepts Grafana Faro-formatted telemetry data over the
network and forwards it to other components. (@megumish, @rfratto)prometheus.exporter.azure
collects metrics from Azure. (@wildum)discovery.dockerswarm
discovers scrape targets from Docker Swarm. (@wildum)otelcol.connector.servicegraph
creates service graph metrics from spans. It is the
flow mode equivalent to static mode'sservice_graphs
processor. (@ptodev)otelcol.connector.spanlogs
creates logs from spans. It is the flow mode equivalent
to static mode'sautomatic_logging
processor. (@ptodev)otelcol.processor.k8sattributes
adds Kubernetes metadata as resource attributes
to spans, logs, and metrics. (@acr92)otelcol.processor.probabilistic_sampler
samples logs and traces based on configuration options. (@mar4uk)otelcol.processor.transform
transforms OTLP telemetry data using the
OpenTelemetry Transformation Language (OTTL). It is most commonly used
for transformations on attributes.remote.kubernetes.configmap
loads a configmap's data for use in other components (@captncraig)remote.kubernetes.secret
loads a secret's data for use in other components (@captncraig)prometheus.exporter.agent
exposes the agent's internal metrics. (@hainenber)prometheus.exporter.azure
collects metrics from Azure. (@wildum)prometheus.exporter.cadvisor
exposes cAdvisor metrics. (@tpaschalis)prometheus.exporter.vsphere
exposes vmware vsphere metrics. (@marctc)
-
Flow: allow the HTTP server to be configured with TLS in the config file
using the newhttp
config block. (@rfratto) -
Clustering: add new flag
--cluster.max-join-peers
to limit the number of peers the system joins. (@wildum) -
Clustering: add a new flag
--cluster.name
to prevent nodes without this identifier from joining the cluster. (@wildum) -
Clustering: add IPv6 support when using advertise interfaces to assign IP addresses. (@wildum)
-
Add a
file_watch
block inloki.source.file
to configure how often to poll files from disk for changes viamin_poll_frequency
andmax_poll_frequency
.
In static mode it can be configured in the globalfile_watch_config
viamin_poll_frequency
andmax_poll_frequency
. (@wildum) -
Flow: In
prometheus.exporter.blackbox
, allow setting labels for individual targets. (@spartan0x117) -
Add optional
nil_to_zero
config flag forYACE
which can be set in thestatic
,discovery
, ormetric
config blocks. (@berler) -
The
cri
stage inloki.process
can now be configured to limit line size. -
Flow: Allow
grafana-agent run
to accept a path to a directory of*.river
files.
This will load all River files in the directory as a single configuration;
component names must be unique across all loaded files. (@rfratto, @hainenber) -
Added support for
static
configuration conversion ingrafana-agent convert
andgrafana-agent run
commands. (@erikbaranowski) -
Flow: the
prometheus.scrape
component can now configure the scraping of
Prometheus native histograms. (@tpaschalis) -
Flow: the
prometheus.remote_write
component now supports SigV4 and AzureAD authentication. (@ptodev)
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: