How Grafana Alloy works
A typical observability setup has three layers: data sources that generate telemetry, collection tools that gather and process it, and storage backends with visualization frontends for querying and exploring data.
Alloy sits in the collection layer between your data sources and your backends. It performs three main jobs.
Collect telemetry data
Alloy gathers telemetry from sources in your infrastructure. You can scrape Prometheus endpoints, receive OpenTelemetry Protocol (OTLP) data, tail log files, use service discovery in Kubernetes or Docker, and integrate with specialized systems.
Transform and process data
Before data reaches storage, Alloy can filter unwanted data, redact secrets, enrich labels and metadata, standardize attribute names, apply sampling, convert formats, and route different data types to different destinations.
Send to backends
Alloy delivers processed telemetry to the systems you choose, including Grafana Cloud, self-managed Grafana stack components such as Mimir, Loki, Tempo, and Pyroscope, Prometheus-compatible databases, and OpenTelemetry-compatible backends. You can also send to multiple destinations from one configuration.
Default Alloy engine and OpenTelemetry Engine
Most beginners start with the default Alloy engine. You write pipelines in Alloy configuration syntax (.alloy files), using Alloy components that connect collect → process → send steps.
Alloy also embeds an OpenTelemetry Engine: a bundled OpenTelemetry Collector distribution that runs with standard Collector YAML through the alloy otel command.
For this introduction, focus on the default Alloy engine and Alloy syntax. The OpenTelemetry Engine is an optional path you can explore later.
In the next milestone, you look at Alloy components and how they form a pipeline.
More to explore (optional)
At this point in your path, you can explore the following topics: