Menu

This is documentation for the next version of Agent. For the latest stable release, go to the latest version.

Grafana Agent Flow mode
Open source

Grafana Agent Flow

Grafana Agent Flow is a component-based revision of Grafana Agent with a focus on ease-of-use, debuggability, and ability to adapt to the needs of power users.

Components allow for reusability, composability, and focus on a single task.

  • Reusability allows for the output of components to be reused as the input for multiple other components.
  • Composability allows for components to be chained together to form a pipeline.
  • Single task means the scope of a component is limited to one narrow task and thus has fewer side effects.

Features

  • Write declarative configurations with a Terraform-inspired configuration language.
  • Declare components to configure parts of a pipeline.
  • Use expressions to bind components together to build a programmable pipeline.
  • Includes a UI for debugging the state of a pipeline.

Example

river
// Discover Kubernetes pods to collect metrics from
discovery.kubernetes "pods" {
  role = "pod"
}

// Scrape metrics from Kubernetes pods and send to a prometheus.remote_write
// component.
prometheus.scrape "default" {
  targets    = discovery.kubernetes.pods.targets
  forward_to = [prometheus.remote_write.default.receiver]
}

// Get an API key from disk.
local.file "apikey" {
  filename  = "/var/data/my-api-key.txt"
  is_secret = true
}

// Collect and send metrics to a Prometheus remote_write endpoint.
prometheus.remote_write "default" {
  endpoint {
    url = "http://localhost:9009/api/prom/push"

    basic_auth {
      username = "MY_USERNAME"
      password = local.file.apikey.content
    }
  }
}

Grafana Agent configuration generator

The Grafana Agent configuration generator will help you get a head start on creating flow code.

Note: This feature is experimental, and it doesn’t support all River components.

Next steps