v0.5.0
It's been a while since the last release, but the Agent is back with a new performance-focused minor version! The v0.5.0
release is notable primarily for its new scrape targets API and shared instance mode.
Shared instances mode combines the scrape configs of "compatible" instance configs together, lowering the number of Prometheus components that are spawned. This affects users of integrations and the scraping service, and will reduce the overall CPU and memory utilization for the Agent process. Shared instances mode is now the default mode.
The previous default behavior, now called "distinct instances mode" is deprecated and may be removed in a future release. Please report any problems you may see with the shared instances mode and your use cases for distinct instances if you do not want it to be removed.
Switching to shared instances mode should be transparent with the following exceptions:
- Metrics for Prometheus components (service discovery, scraping, remote_write, WAL) will be aggregated by the shared instance rather than individual instance config names. When shared instances mode is enabled, the
instance_name
label changes toinstance_group_name.
- The scrape targets API will report the
instance_group_name
rather than the individual instance name. This behavior may change in a future release.
Notable changes:
- [FEATURE] A scrape targets API has been added to show every target the Agent is currently scraping, when it was last scraped, how long it took to scrape, and errors from the last scrape, if any. (@rfratto)
- [FEATURE] "Shared Instance Mode" is the new default mode for spawning Prometheus instances, and will improve CPU and memory usage for users of integrations and the scraping service. (@rfratto)
- [ENHANCEMENT] Memory stability and utilization of the WAL has been improved, and the reported number of active series in the WAL will stop double-counting recently churned series. (@rfratto)
- [ENHANCEMENT] Changing scrape_configs and remote_write configs for an instance will now be dynamically applied without restarting the instance. This will result in less missing metrics for users of the scraping service that change a config. (@rfratto)
- [ENHANCEMENT] The Tanka configuration now uses k8s-alpha. (@Duologic)
- [BUGFIX] The Tanka configuration will now also deploy a single-replica deployment specifically for scraping the Kubernetes API. This deployment acts together with the Daemonset to scrape the full cluster and the control plane. (@gotjosh)
- [BUGFIX] The node_exporter filesystem collector will now work on Linux systems without needing to manually set the blocklist and allowlist of filesystems. (@rfratto)
Installation:
Grafana Cloud Agent is currently distributed in plain binary form, Docker
container images, and a Kubernetes install script. Choose whichever fits your
use-case best.
Kubernetes Install Script
The following script will download a Kubernetes manifest for the Agent and
prompt for remote_write credentials. It requires curl and envsubst (GNU gettext).
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/v0.5.0/production/kubernetes/install.sh)" | kubectl apply -f -
Docker container:
docker pull "grafana/agent:v0.5.0"
Binary
We provide precompiled binary executables for the most common operating systems.
Choose from the assets below for your matching operating system. Example for the
linux
operating system on amd64
:
# download the binary
curl -O -L "https://github.com/grafana/agent/releases/download/v0.5.0/agent-linux-amd64.zip"
# extract the binary
unzip "agent-linux-amd64.zip"
# make sure it is executable
chmod a+x "agent-linux-amd64"
agentctl
agentctl
, a tool for helping you interact with the Agent,
is available as a Docker image:
docker pull "grafana/agentctl:v0.5.0"
Or as a binary. Like before, choose the assets below that matches your
operating system. For example, with linux
on amd64
:
# download the binary
curl -O -L "https://github.com/grafana/agent/releases/download/v0.5.0/agentctl-linux-amd64.zip"
# extract the binary
unzip "agentctl-linux-amd64.zip"
# make sure it is executable
chmod a+x "agentctl-linux-amd64"