Grafana Agent v0.35 release: horizontal auto scaling, easy Flow mode migration, and more
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:
grafana-agent convert --format=prometheus --output=OUTPUT_CONFIG_PATH INPUT_CONFIG_PATH
For example, given this existing Prometheus config:
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:
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:
grafana-agent run --config.format=prometheus /path/to/prometheus.yaml
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:
- prometheus.exporter.cloudwatch
- prometheus.exporter.kafka
- prometheus.exporter.elasticsearch
- prometheus.exporter.squid
- prometheus.exporter.mongodb
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!