alloy is a free, open source monitoring & observability project written in Go and released under Apache-2.0. It has 3,662 GitHub stars, 760 forks and 1,237 open issues, and was last pushed 7 hours ago. On this registry it ranks #116 of 270 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 92 stars over the last 30 tracked days.

What is alloy?

Grafana Alloy is an open source OpenTelemetry Collector distribution with programmable pipelines that collects metrics, logs, traces, and profiles, and it is built for teams that run observability infrastructure and want a single agent in place of several separate collectors and exporters.

What it is

Grafana Alloy is a distribution of the OpenTelemetry Collector, written in Go and released under the Apache-2.0 licence. It ships dozens of upstream OpenTelemetry Collector components alongside its own components, all configured through an expression-based configuration syntax rather than the static pipeline YAML that the upstream collector uses. The project is maintained in the Grafana organisation and lists components for OpenTelemetry Collector, Prometheus, Grafana Loki, and Grafana Pyroscope, following what the README calls Grafana's "big tent" philosophy of working with other vendors and open source databases rather than only Grafana's own backends.

The concrete problem it solves is agent sprawl. Rather than running a plain upstream OpenTelemetry Collector for traces, a Prometheus scraping setup for metrics, and separate shippers for logs and profiles, an operator runs Alloy and wires receivers, processors, and exporters together in one configuration language. Pipeline stages are referenced directly by each other, as in the README example where otelcol.receiver.otlp fans metrics, logs, and traces into otelcol.processor.batch, which forwards to otelcol.exporter.otlp. It replaces the hand-assembled multi-agent stack with one binary, one config, and one debugging surface.

Key capabilities

  • Programmable pipelines expressed in an expression-based syntax, with components such as otelcol.receiver.otlp, otelcol.processor.batch, and otelcol.exporter.otlp chained through output references.
  • OpenTelemetry Collector distribution: supports dozens of upstream collector components plus new components that use Alloy's own pipeline model.
  • Big tent integrations with OpenTelemetry Collector, Prometheus, Grafana Loki, and Grafana Pyroscope, so pipelines are not locked to a single backend.
  • Kubernetes-native components that interact with native and custom Kubernetes resources, with no separate Kubernetes operator required.
  • Shareable pipelines published as modules, so a pipeline can be reused by other teams.
  • Automatic workload distribution by forming a cluster of Alloy instances, instead of manually sharding work per instance.
  • Centralized configuration retrieval from a server through the remotecfg block, plus a built-in UI for visualizing and debugging pipelines.

Who uses it and how

  • Kubernetes platform teams that want one agent handling cluster telemetry without deploying and learning a separate Kubernetes operator.
  • Large fleets that configure multiple Alloy instances into a cluster for automatic workload distribution, rather than assigning scrapes by hand.
  • Organisations that keep configuration out of the instances themselves and pull it from a server via remotecfg, centralising change control.
  • Multi-signal environments exporting metrics, logs, traces, and profiles to more than one destination, where the big tent integrations matter more than single-vendor depth.
  • Pipeline authors who package and share configurations as modules across teams.

Getting started

The README does not name a package, container image, or compose file; it points to Grafana's documentation for installation instructions, a getting-started guide, and the full list of components. Start at the install page under grafana.com/docs/alloy/latest/get-started/ and follow the getting-started steps.

How it compares

Alloy sits between the upstream OpenTelemetry Collector and the backends it feeds: it is a distribution of the collector, so it competes with a plain collector deployment, but it also bundles Prometheus, Loki, and Pyroscope integration that a vanilla collector leaves to separate tooling. Teams already standardised on the OpenTelemetry Collector's YAML configuration are the closest adjacent audience, since Alloy reuses the collector's component vocabulary but not its configuration format.

When to use it — and when not to

Alloy is a good fit for self-hosters already running Kubernetes and several telemetry backends, and for teams willing to adopt its expression-based syntax and keep pace with a rapid release cadence of a minor release roughly every three weeks. Teams that need their existing OpenTelemetry Collector YAML to run unchanged should not pick it, because the configuration language is Alloy's own and must be translated. The honest caveats are that a large open issue count sits against the project, and the README defers most operational detail to Grafana's documentation, so the repository alone is a thin starting point.

project readme (upstream, from github) — read inline

Latest Release Documentation link

Grafana Alloy is an open source OpenTelemetry Collector distribution with built-in Prometheus pipelines and support for metrics, logs, traces, and profiles.

What can Alloy do?

  • Programmable pipelines: Use a rich expression-based syntax for configuring powerful observability pipelines.

  • OpenTelemetry Collector Distribution: Alloy is a distribution of OpenTelemetry Collector and supports dozens of its components, alongside new components that make use of Alloy's programmable pipelines.

  • Big tent: Alloy embraces Grafana's "big tent" philosophy, where Alloy can be used with other vendors or open source databases. It has components to perfectly integrate with multiple telemetry ecosystems:

  • Kubernetes-native: Use components to interact with native and custom Kubernetes resources; no need to learn how to use a separate Kubernetes operator.

  • Shareable pipelines: Use modules to share your pipelines with the world.

  • Automatic workload distribution: Configure Alloy instances to form a cluster for automatic workload distribution.

  • Centralized configuration support: Alloy supports retrieving its configuration from a server for centralized configuration management.

  • Debugging utilities: Use the built-in UI for visualizing and debugging pipelines.

Example

otelcol.receiver.otlp "example" {
  grpc {
    endpoint = "127.0.0.1:4317"
  }

  output {
    metrics = [otelcol.processor.batch.example.input]
    logs    = [otelcol.processor.batch.example.input]
    traces  = [otelcol.processor.batch.example.input]
  }
}

otelcol.processor.batch "example" {
  output {
    metrics = [otelcol.exporter.otlp.default.input]
    logs    = [otelcol.exporter.otlp.default.input]
    traces  = [otelcol.exporter.otlp.default.input]
  }
}

otelcol.exporter.otlp "default" {
  client {
    endpoint = "my-otlp-grpc-server:4317"
  }
}

Getting started

Check out our documentation to see:

Release cadence

A new minor release is planned every three weeks. Patch releases are published every one to two weeks.

The release cadence is best-effort: if necessary, releases may be performed outside of this cadence, or a scheduled release date can be moved forwards or backwards.

Minor releases published on cadence include updating dependencies for upstream OpenTelemetry Collector code if new versions are available. Minor releases published outside of the release cadence may not include these dependency updates.

Patch and security releases may be published at any time.

Community

To engage with the Alloy community:

  • Chat with us on our community Slack channel. To invite yourself to the Grafana Slack, visit and join the #alloy channel.

  • Ask questions on the Grafana community site.

  • File an issue for bugs, issues, and feature suggestions.

  • Attend the monthly community call.

Contributing

Refer to our contributors guide to learn how to contribute.

Thanks to all the people who have already contributed!

Frequently asked questions

Is alloy free to use?

alloy is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does alloy do?

OpenTelemetry Collector distribution with programmable pipelines

What is alloy written in?

alloy is primarily written in Go. Its source is publicly available at https://github.com/grafana/alloy, and it has 3,662 GitHub stars.