Sinks
A sink is where records leave the pipeline. Every sink has an id and an input naming its
upstream node. A pipeline needs at least one.
stdout
Writes each record to standard output - for local runs, debugging, and kubectl logs.
sinks:
- type: stdout
id: out
input: windowed
format: json # text | json (default: text)text- a compact, human-readable line per record.json- one JSON object per record (the record model), ready to pipe intojqor a log collector.
Keep headrace's own logs off stdout when you parse it: logs go to stderr, and self-telemetry
in --metrics stdout mode interleaves with data, so use --metrics otlp for clean output.
otlp
An OTLP/gRPC exporter - forwards records to any OpenTelemetry-compatible backend (a Collector, or a vendor endpoint).
sinks:
- type: otlp
id: out
input: windowed
endpoint: http://collector:4317 # requiredThis is the other half of the pre-aggregation story: window upstream, then emit the aggregates
over OTLP so your backend ingests signal instead of the raw firehose. endpoint is required;
it speaks plain gRPC, same transport as the otlp source.