OTLP Tap
A Go project for understanding OTLP below the dashboard: receive telemetry over gRPC or HTTP, decode it, process it, store it in Parquet, and query it back as OTLP JSON.
The pipeline
Three signals, one path
Why build a receiver from scratch
Most observability tools hide the protocol and storage details behind a dashboard. OTLP Tap keeps those details visible: how the OTLP request is decoded, how each signal becomes rows, how processors fit between a receiver and a store, and how query results are shaped back into OTLP.
The project implements milestones 1-8 from its roadmap: traces, metrics, logs, Parquet/Arrow storage, an OTLP-shaped query API, a Grafana datasource plugin, and optional batch, tail-sampling, and backpressure processors. A parity smoke test against the upstream OpenTelemetry Collector caught receiver behavior such as gzip-compressed OTLP, but the project does not try to be a replacement for the Collector.
Built
What’s real here
Nothing on this page runs OTLP Tap. It is a server-side Go pipeline, while this site is static. The page describes the real codebase and links to the repository for the receiver, storage, query API, and Grafana plugin.