Help build the future of open source observability software Open positions

Check out the open source projects we support Downloads

Grot cannot remember your choice unless you click the consent notice at the bottom.

Grafana Agent v0.35 release: horizontal auto scaling, easy Flow mode migration, and more

Grafana Agent v0.35 release: horizontal auto scaling, easy Flow mode migration, and more

18 Jul, 2023 3 min

Grafana Agent v0.35 is here!

The latest release of the Grafana Agent brings with it loads of new features and enhancements. Today, we’ll highlight our work on horizontal scalability and making it simpler than ever to get started using the Agent. Let’s take a look!

Easily migrate to Grafana Agent Flow mode

We want to make it as simple as possible to get started using Grafana Agent in Flow mode, a component-based version of Grafana Agent that’s flexible and easy to use. With this philosophy in mind, we have introduced a way to convert a Prometheus or Prometheus Agent config into a Flow config. Let’s take a look at an example where we start with a prometheus.yaml config and generate an equivalent flow.river config:

bash
grafana-agent convert --format=prometheus --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH

For example, given this existing Prometheus config:

yaml
global:
  scrape_timeout:    45s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:12345"]

remote_write:
  - name: "grafana-cloud"
    url: "https://prometheus-us-central1.grafana.net/api/prom/push"
    basic_auth:
      username: USERNAME
      password: PASSWORD

The grafana-agent convert command would result in this Flow mode config:

river
prometheus.scrape "prometheus" {
	targets = [{
		__address__ = "localhost:12345",
	}]
	forward_to     = [prometheus.remote_write.default.receiver]
	job_name       = "prometheus"
	scrape_timeout = "45s"
}

prometheus.remote_write "default" {
	endpoint {
		name = "grafana-cloud"
		url  = "https://prometheus-us-central1.grafana.net/api/prom/push"

		basic_auth {
			username = "USERNAME"
			password = "PASSWORD"
		}

		queue_config {
			capacity             = 2500
			max_shards           = 200
			max_samples_per_send = 500
		}

		metadata_config {
			max_samples_per_send = 500
		}
	}
}

If you’re not ready to switch over to Flow config, you can also run the Prometheus config without having to save it as a Flow config. This allows you to try Flow mode without having to modify your existing Prometheus configuration infrastructure. In the following example, we view and interact with the Flow mode UI when starting the Agent with the same Prometheus config as above:

bash
grafana-agent run --config.format=prometheus /path/to/prometheus.yaml
An illustration shows the prometheus.scrape and prometheus.remote_write in healthy states.

In an upcoming release, you will be able to convert even more formats to Flow config, including:

Automatically scale your Grafana Agent deployments

Clustering, currently in beta, enables Flow mode to easily coordinate a fleet of agents working together for workload distribution and high availability.

With clustering, you can use HorizontalPodAutoscalers on Kubernetes to dynamically increase or decrease the number of agents in response to memory or CPU load.

With the v0.35 release, clustered agents can auto-distribute Prometheus and Pyroscope scrape targets. This capability can be enabled in the following components by adding a new clustering block:

We’ll keep expanding clustering, so stay tuned for more news in the future!

Monitor even more production environments

We’ve added new Prometheus exporter components to Flow mode so it’s easier than ever to monitor your production environments:

We would like to thank the folks at Percona for their quick turnaround in resolving an issue that enabled us to build prometheus.exporter.mongodb.

Learn more about Grafana Agent

For more information on the latest release, please refer to our Grafana Agent documentation or check out our Grafana Agent upgrade guide.

As always, we’d love to hear from you, so feel free to drop into our Grafana Labs Community Slack workspace or check out the Grafana Agent repo directly. We look forward to your comments and feedback!