Skip to main content

3 posts tagged with "Observability"

Watching a running system — logs, graphs and sequence diagrams.

View All Tags

Draw the sequence diagram from what actually ran

· 6 min read
Kalin Krustev
Author of Blong

Every architecture diagram in a wiki is wrong. Not because anybody was careless, but because a diagram is a claim about what the code does, written by hand, and the code moves. The picture that survives is the one that is generated from a run — and generating it needs records that carry more than a message.

Semantic logging carries exactly enough: the leg each call belongs to, the checkpoints a handler passed, and the branches its decisions took. From those, a sequence diagram of a real execution falls out — and the interesting part is not that it can be drawn, it is what a reader can tell from it.

The log line that knows its own structure

· 8 min read
Kalin Krustev
Author of Blong

A log line is a sentence with a timestamp stapled to it, and everything that has gone wrong with production observability follows from that. Two runs of the same code produce two different strings, because one of them transferred 1001 and the other 9876 — so nothing can be counted, nothing can be compared, and the only thing that scales is a search that scales with your bill. Then the incident arrives and the line you need is the one that was never written, because writing it would have meant logging a customer's balance.

Semantic logging is an attempt to fix both ends at once: mask the values, hash what is left into a template that is the same on every occurrence, mint an identity for the record locally, and ship the structure rather than the text.

Watch every process from one browser tab

· 5 min read
Kalin Krustev
Author of Blong

A development run of Blong is never one process. There is a gateway, one or more realms, a browser bundle, a test run replaying the bug — each with its own terminal, each interleaved with hot-reload noise. The one line you need is somewhere in the middle of one of those windows, and the trace id that would tie the story together is buried inside it.

So we stopped tailing terminals. Every process ships its entries to one small server, and the server fans them out to a viewer in a browser tab. The tab is the log.