The problem
Most observability stacks are several products glued together: one for logs, one for
metrics, one for traces, each with its own storage, upgrades and access rules. SSO is
common, but access stops at fixed roles. There's no fine-grained control over who can
see which data.
Then there's volume. An ISP's network never stops logging: every CGNAT, BNG, OLT,
RADIUS server and core router sends a constant flood of tiny records, millions a
second, terabytes a day. With records that small, the cost is per record, not per
byte. Each one is parsed, allocated and indexed on its own. Most of these stacks run on
garbage-collected runtimes like the JVM or Go, so every record adds garbage, and every
collection pause stalls ingest. Buffers fill, backpressure reaches the senders, and
syslog over UDP drops records without a trace.
Writing fast is only half of it. You also need answers back from everything you've
already stored, while ingest keeps running.
ZenLog is built to sustain high read and write demand at the same time. Writes take
priority, so data keeps landing under load, and search stays fast across everything
you've accumulated. Access is one model across every signal, down to individual fields
and rows.