Menu
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.

Grafana Agent Flow is a distribution of the OpenTelemetry Collector.

Each distribution offers a different collection of components and capabilities. As a distribution, Grafana Agent Flow includes dozens of OpenTelemetry-native components from the OpenTelemetry project and introduces new features such as programmable pipelines, clustering support, and the ability to share pipelines around the world.

In addition to being an OpenTelemetry Collector distribution, Grafana Agent Flow also includes first-class support for the Prometheus and Loki ecosystems, allowing you to mix-and-match your pipelines.

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 Flow configuration generator

The Grafana Agent Flow 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

  • Install Grafana Agent Flow.
  • Learn about the core Concepts of Grafana Agent Flow.
  • Follow our Tutorials for hands-on learning of Grafana Agent Flow.
  • Consult our Tasks instructions to accomplish common objectives with Grafana Agent Flow.
  • Check out our Reference documentation to find specific information you might be looking for.