Data Plane Architecture
Purpose
How telemetry flows from source to storage — the data plane.
Flow
source -> OTel SDK / auto-instrumentation -> Alloy (collect/process/batch)
-> OTLP/remote_write -> Grafana Cloud (Mimir | Loki | Tempo)
Components
| Stage | Component | Notes |
|---|---|---|
| Instrumentation | OpenTelemetry | SDK + auto-instrumentation, vendor-neutral |
| Collection | Grafana Alloy | Per-cluster DaemonSet + gateway; glc_ write tokens |
| Metrics | Mimir | Prometheus remote_write |
| Logs | Loki | Alloy → Loki push |
| Traces | Tempo | OTLP → Tempo |
Write auth
Data-plane writes use glc_-prefixed access-policy tokens. The glsa_ service-account tokens
are for API/management, not ingest — mixing them surfaces as 401s at the Mimir/Loki/Tempo write
endpoints.
Processing & enrichment
[stub: dataplane-processing]— fill this in. Greppable doc-debt marker.
Related
- Control Plane Architecture
- Collector Config Templates
- Sampling Policy
Local graph
Linked from 5 notes
ADR-008: Adopt Grafana Cloud + OpenTelemetry + Alloy as the ShipSolid Observability Standard
- **Status**: Accepted - **Date**: 2026-06-09
Control Plane Architecture
How the platform is configured, governed, and changed — the control plane.
01 — Platform Architecture
How the platform is built — views, planes, signals, and the decision record indexes.
Platform Overview (C4 L1-L2)
The platform at a glance — C4 Level 1 (System Context) and Level 2 (Containers).
Collector Config Templates
Reusable Alloy / OTel collector configuration templates by workload class.
Related notes
Signal Forge ADR-005: Separate collector configmaps per deployment mode
Keeps cloud and local Alloy collector configs in separate files rather than one conditional configmap, so each mode's exporters stay explicit and uncoupled.
Signal Forge ADR-003: Span metrics generated before tail sampling
Places the spanmetrics connector ahead of tail_sampling so RED metrics reflect all traffic instead of only the ~25% of traces that survive sampling.
Signal Forge ADR-002: SpanLink for async RabbitMQ propagation (not parent-child)
Uses a SpanLink, not a parent-child span relationship, to connect RabbitMQ consumer spans back to the producer span across async, retry-prone delivery.
Architecture Overview
Signal Forge's topology, service communication, trace propagation, and per-signal pipeline flow across local and Grafana Cloud deployment modes.