Getting started with Grafana Agent
This guide helps users get started with the Grafana Agent. For getting started with the Grafana Agent Operator, please refer to the Operator-specific documentation.
Currently, there are six ways to install the agent:
- Use our Docker container
- Use the Kubernetes install script (recommended basic)
- Use the Kubernetes manifest
- Installing the static binaries locally
- Using Grafana Labs' official Tanka configs (recommended advanced)
- Using the Windows Installer
docker run \ -v /tmp/agent:/etc/agent/data \ -v /path/to/config.yaml:/etc/agent/agent.yaml \ grafana/agent:v0.16.1
/tmp/agent with the folder you wish to store WAL data in. WAL data is
where metrics are stored before they are sent to Prometheus. Old WAL data is
cleaned up every hour, and will be used for recovering if the process happens to
To override the default flags passed to the container, add the following flags
to the end of the
docker run command:
--config.file=path/to/agent.yaml, replacing the argument with the full path to your Agent’s YAML configuration file.
/tmp/agent/datawith the directory you wish to use for storing data. Note that
/tmpmay get deleted by most operating systems after a reboot.
Note that using paths on your host machine must be exposed to the Docker container through a bind mount for the flags to work properly.
Kubernetes install script
Running this script automatically downloads and applies our recommended
Grafana Agent Kubernetes deployment manifests (requires
envsubst (GNU gettext)).
Two manifests will be installed: one for collecting metrics, and the other for
collecting logs. You will be prompted for input for each manifest that is
Warning: Always verify scripts from the internet before running them.
NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install.sh)" | kubectl -ndefault apply -f - NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install-loki.sh)" | kubectl apply -f - NAMESPACE="default" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/grafana/agent/release/production/kubernetes/install-tempo.sh)" | kubectl apply -f -
Note: For the above script to scrape your pods, they must conform to the following rules:
- The pod must not have an annotation matching
prometheus.io/scrape: "false"(this wouldn’t be there unless you explicitly add it or if you deploy a Helm chart that has it).
- The pod must have a port with a name ending in
-metrics. This is the port that will be scraped by the Agent. A lot of people using Helm struggle with this, since Helm charts don’t usually follow this. You would need to add a new scrape config to scrape helm charts or find a way to tweak the Helm chart to follow this rules.
- The pod must have a label named name with any non-empty value. Helm usually lets you add extra labels, so this is less of a problem for Helm users.
- The pod must currently be running. (i.e., Kubernetes must not report it having a phase of Succeeded or Failed).
If you wish to manually modify the Kubernetes manifest before deploying it
yourself, you can do so by downloading the
Our Releases page contains instructions for downloading static binaries that are published with every release. These releases contain the plain binary alongside system packages for Windows, Red Hat, and Debian.