How grafana-cold-storage/agent works
Grafana Agent is an EOL OpenTelemetry Collector distribution whose Flow mode lets users configure components as programmable telemetry pipelines. The principal workflow is configuring collection, optional processing, and delivery of metrics, logs, traces, or profiles. The README documents the component-wiring model and ecosystem support; the tree shows representative implementations and a Flow component-node manager. Since most runtime wiring source was not sampled, edges are limited to documented pipeline flow and directly supported component behavior.
Main entry points: component_node_manager.go Component nodes · processor.go OTel processors · connector.go OTel connectors · exporter.go OTel exporters
Components 19
Flow runtime
- Flow command
cmd/grafana-agent-flow/main.go - Component nodes
internal/flow/internal/controller/component_node_manager.go - Component registry
internal/component/all/all.go
Component capabilities
- Service discovery
internal/component/discovery/discovery.go - Prometheus operator
internal/component/prometheus/operator/common/crdmanager.go - Profile scraping
internal/component/pyroscope/scrape/manager.go
Log pipeline
- Log sources
internal/component/loki/source/file/file.go - Log processing
internal/component/loki/process/stages/pipeline.go - Loki delivery
internal/component/loki/write/write.go - Loki clients
internal/component/common/loki/client/manager.go
OpenTelemetry pipeline
- OTel receivers
internal/component/otelcol/receiver/receiver.go - OTel processors
internal/component/otelcol/processor/processor.go - OTel connectors
internal/component/otelcol/connector/connector.go - OTel exporters
internal/component/otelcol/exporter/exporter.go
Static integrations
- Integration manager
static/integrations/manager.go - Integration controller
static/integrations/v2/controller.go - Instance groups
static/metrics/instance/group_manager.go
Other components
- Agent operator
- Telemetry backends
Connections 21
- Agent operator → Flow command: runs
- Flow command → Component nodes: starts runtime
- Component nodes → Component registry: looks up components
- Component nodes → Service discovery: instantiates
- Component nodes → Prometheus operator: instantiates
- Component nodes → Profile scraping: instantiates
- Component nodes → Log sources: instantiates
- Component nodes → Log processing: instantiates
- Component nodes → Loki delivery: instantiates
- Component nodes → OTel receivers: instantiates
- Component nodes → OTel processors: instantiates
- Component nodes → OTel connectors: instantiates
- Component nodes → OTel exporters: instantiates
- Log sources → Log processing: forwards entries
- Loki delivery → Loki clients: uses clients
- OTel receivers → OTel processors: forwards signals
- OTel processors → OTel connectors: forwards signals
- OTel connectors → OTel exporters: forwards signals
- OTel exporters → Telemetry backends: exports telemetry
- Integration manager → Instance groups: applies scrape configs
- Integration controller → Telemetry backends: exposes metrics