Punk-Observe - an OpenTelemetry observability and logging backend This is a BACKEND, not a client. It receives OTLP, stores it, queries it and draws it. To emit telemetry from a Perl application, see Punk::OpenTelemetry. WHAT IS HERE Ingest OTLP over http/protobuf and http/json, gzip and deflate bodies, partial success, and a tenant resolver. Served as a PSGI application, so it mounts into Punk, plackup or anything else that speaks PSGI. Storage a write-ahead log, immutable segments with content-derived series ids, compressed metric chunks, deflated log blocks with a trigram filter, and spans assembled at read time. Queries one language over all three signals, with a planner that refuses an over-budget query and a resumable executor that yields to the event loop. Retention compaction, five-minute and hourly rollups, and deletion by whole block. Drawing server-rendered chart primitives, service graph layout and flamegraph folding. The read interface, dashboards and alerting are not in this release, and neither is a packaged server binary: what ships is the engine and the PSGI receiver, assembled by the host application. gRPC ingest is deliberately not offered. It reports failure in HTTP/2 trailers, PSGI has no trailer channel, and an endpoint answering 200 with no grpc-status is an exporter that looks successful while losing every batch. INSTALLATION perl Makefile.PL make make test make install DOCUMENTATION perldoc Punk::Observe the system, and why it is shaped this way perldoc Punk::Observe::Ingest the receiver perldoc Punk::Observe::Query the query language LICENSE AND COPYRIGHT This software is Copyright (c) 2026 by LNATION. This is free software, licensed under the Artistic License 2.0.