Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Grafana Agent Grafana Agent Flow
Open source

Grafana Agent Flow (Beta)

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.

BETA: Grafana Agent Flow is a beta feature. Beta features are subject to frequent breaking changes while the feature is being matured.

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"

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

Next steps

Current limitations

The goal of Grafana Agent Flow is to eventually support the same use cases that Grafana Agent does today. Some functionality may be missing while Grafana Agent Flow is still in development:

  • An equivalent list of integrations
  • An equivalent to the scraping service

Provide feedback

Feedback about Grafana Agent Flow and its configuration language can be provided in our dedicated GitHub discussion for feedback.