Telemetry Egress
The primary data plane: raw kernel/OS events become OCSF records and land in Kafka. It spans the Kernel Drivers → Endpoint Agent → Gateway → Kafka.
Sequence
Stages
- Collect.
sources/turn driver and OS signals into a uniformEDREvent(service/src/event.rs). Kernel-callback and minifilter events arrive from the drivers; ETW, the Event Log, WFP tamper watch, and lifecycle events are produced in-agent. - Normalize.
pipeline/normalizercanonicalizes fields (paths, identifiers). - Deduplicate.
pipeline/dedupdrops repeats via a bloom filter (utils/bloom_filter) — cheap suppression of high-volume duplicates before the expensive stages. - Enrich.
pipeline/enricherattaches process-tree ancestry (utils/process_tree) so an event carries its parent chain. - Map to OCSF.
pipeline/mapperemits the flatOcsfEventwith the rightclass_uid(see the UID table in Proto Contracts). - Batch & ship.
pipeline/batchergroups events into anOcsfBatchRequest;channel::telemetrysends it over theOcsfEventServicegRPC (lazy-connected, keep-alive, mTLS). The gateway schema-encodes each event and produces toocsf-events.
Failure handling
If the gRPC send fails, channel::ndjson spools the batch to a local NDJSON file and replays it once
the link recovers — telemetry is not lost across a gateway outage. mTLS certs hot-swap on renewal
without dropping the pipeline (see Enrollment).