Skip to content

v0.37.0

Compare
Choose a tag to compare
@updater-for-ci updater-for-ci released this 10 Oct 12:21
· 738 commits to main since this release
v0.37.0
5c430a4

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 to true by default in the queue_config block in static mode's remote_write. (@wildum)
  • Renamed non_indexed_labels Loki processing stage to structured_metadata. (@vlad-diachenko)
  • Include otel_scope_name and otel_scope_version in all metrics for otelcol.exporter.prometheus
    by default using a new argument include_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 by prometheus.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 label prometheus.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's service_graphs processor. (@ptodev)
    • otelcol.connector.spanlogs creates logs from spans. It is the flow mode equivalent
      to static mode's automatic_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 new http 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 in loki.source.file to configure how often to poll files from disk for changes via min_poll_frequency and max_poll_frequency.
    In static mode it can be configured in the global file_watch_config via min_poll_frequency and max_poll_frequency. (@wildum)

  • Flow: In prometheus.exporter.blackbox, allow setting labels for individual targets. (@spartan0x117)

  • Add optional nil_to_zero config flag for YACE which can be set in the static, discovery, or metric config blocks. (@berler)

  • The cri stage in loki.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 in grafana-agent convert and grafana-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: