MCPcopy
hub / github.com/grafana/alloy

github.com/grafana/alloy @v1.17.1 sqlite

repository ↗ · DeepWiki ↗ · release v1.17.1 ↗
15,554 symbols 71,983 edges 2,030 files 5,778 documented · 37%
README
<img src="https://github.com/grafana/alloy/raw/v1.17.1/docs/sources/assets/logo_alloy_light.svg#gh-dark-mode-only" alt="Grafana Alloy logo" height="100px">
<img src="https://github.com/grafana/alloy/raw/v1.17.1/docs/sources/assets/logo_alloy_dark.svg#gh-light-mode-only" alt="Grafana Alloy logo" height="100px">

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:

  • OpenTelemetry Collector

  • Prometheus
  • Grafana Loki
  • Grafana Pyroscope

  • 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:

Contributing

Refer to our contributors guide to learn how to contribute.

Thanks to all the people who have already contributed!

Extension points exported contracts — how you extend this code

Dependency (Interface)
Dependency is implemented by every test fixture. Install must block until the dep is usable so "Install returned" means [10 …
integration-tests/k8s/harness/harness.go
Defaulter (Interface)
The Defaulter interface allows a type to implement default functionality in Alloy configuration evaluation. [312 implementers]
syntax/types.go
Capsule (Interface)
Capsule is a marker interface for Go values which forces a type to be represented as an Alloy capsule. This is useful fo [11 …
syntax/internal/value/capsule.go
Tokenizer (Interface)
TODO(rfratto): check for optional values Tokenizer is any value which can return a raw set of tokens. [6 implementers]
syntax/token/builder/value_tokens.go
Worker (Interface)
A Worker is a goroutine which performs business logic for a Task which is assigned to it. Each Worker is responsible for [196 …
internal/runner/runner.go
HTTPIntegration (Interface)
HTTPIntegration is an integration that exposes an HTTP handler. Integrations are given a unique base path prefix where [10 …
internal/static/integrations/v2/integrations.go
DebugComponent (Interface)
DebugComponent is an extension interface for components which can report debugging information upon request. [29 implementers]
internal/component/component.go
Service (Interface)
Service is an individual service to run. [13 implementers]
internal/service/service.go

Core symbols most depended-on inside this repo

Equal
called by 3185
internal/component/database_observability/postgres/collector/query_samples.go
Errorf
called by 2276
internal/util/eventually.go
Convert
called by 1925
internal/component/otelcol/extension/extension.go
New
called by 892
internal/component/prometheus/operator/common/crdmanager.go
Run
called by 706
internal/component/loki/source/scheduler.go
Now
called by 637
internal/component/faro/receiver/sourcemaps.go
Equal
called by 542
internal/runtime/tracing/internal/jaegerremote/sampler.go
Unmarshal
called by 485
syntax/syntax.go

Shape

Method 6,360
Function 5,985
Struct 2,641
TypeAlias 266
Interface 231
FuncType 64
Enum 5
Class 2

Languages

Go99%
TypeScript1%

Modules by API surface

internal/service/graphql/graph/generated.go194 symbols
internal/slogadapter/zap.go92 symbols
syntax/ast/ast.go78 symbols
internal/component/pyroscope/scrape/internal/pproflite/pproflite.go73 symbols
internal/component/otelcol/receiver/prometheus/internal/transaction_test.go68 symbols
internal/component/pyroscope/write/promhttp2/http_config_test.go63 symbols
internal/component/prometheus/exporter/windows/config.go52 symbols
syntax/internal/value/decode_test.go48 symbols
internal/component/prometheus/appenders/seriesrefmapping_test.go48 symbols
internal/component/otelcol/processor/tail_sampling/types.go48 symbols
internal/component/beyla/ebpf/beyla_linux.go47 symbols
internal/static/metrics/wal/wal_test.go46 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.18.1 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/computev1.54.0 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
cloud.google.com/go/loggingv1.13.1 · 1×
cloud.google.com/go/longrunningv0.8.0 · 1×
cloud.google.com/go/monitoringv1.24.3 · 1×
cloud.google.com/go/pubsub/v2v2.4.0 · 1×
cloud.google.com/go/secretmanagerv1.16.0 · 1×

Datastores touched

(mongodb)Database · 1 repos
postgresDatabase · 1 repos
testdbDatabase · 1 repos
(mysql)Database · 1 repos
mydbDatabase · 1 repos
dbnameDatabase · 1 repos
adminDatabase · 1 repos
books_storeDatabase · 1 repos

For agents

$ claude mcp add alloy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact