v0.8.0: the map grows up
v0.8.0 is about the screen people actually look at. The service map has been the product's front page since v0.1 and a graph of circles for just as long. This release taught it to say more — and it needed no new collection: everything below is drawn from telemetry that was already arriving.
-
The database is on the map. A service that spends most of its latency in PostgreSQL used to be drawn as a lonely circle with nothing to explain it, because the map only drew what sends telemetry — and a database, cache or broker sends none. They are now first-class nodes, derived from the exit spans of the services calling them: no new agent, no new table, nothing to switch on. On a zero-code install the eBPF sensor reads the SQL and Redis wire protocols in the kernel, so the database appears in the first five minutes with nothing configured. Each edge carries call volume, error rate and the latency the caller experienced — the number that answers where is the time going — and four services drawn against one cache is a blast radius that was previously invisible. A broker is drawn from both ends, so a queue is never a dead end. See the service map.
-
The map stopped throwing away the connections nothing else can see. An edge whose far end never sent telemetry — an eBPF flow to a workload nobody has instrumented — was dropped outright, because a graph edge needs two nodes and only one existed. So the one screen built to show connections was deleting the connections it could least afford to lose. Those endpoints are now drawn as undetected peers: hollow outlines, counted apart from services, carrying no metrics because we have none. Each one is a candidate for the next thing to instrument.
-
Group the graph the way you think about your estate. Past about forty nodes an ungrouped graph is a hairball. Group by draws a labelled container around each Kubernetes namespace or each service group — resolved exactly the way the health board's auto-grouping resolves it, so a box on the map and a group on the board can never disagree about where a service lives. A service that declares neither is drawn outside every boundary rather than swept into an invented "other". Plus edge volume on every edge on demand, for when the question is which of these paths carries the traffic, and a legend that explains every channel in use.
-
A sidebar grouped by the question each screen answers. Nine of thirteen entries sat under one "Observe" heading — a list, not a structure, that grew with every module and said nothing about how the screens relate. They are now layers: Topology (what is out there, and is it well), Signals (what happened), Operations (what needs me), Infrastructure (what it runs on, and what that costs). The first-five-minutes path is unchanged, and a layer whose every screen belongs to a module you don't run disappears rather than labelling a gap.
-
The golden screens are now checked on every change. The browser test suite covering the map, traces, logs, flame graphs and settings could only be run by hand, against a stack started with authentication weakened — so it never ran as a gate, and three of its tests had quietly rotted across two releases. It now runs against a real authenticated instance, unattended, on every change.
-
The one-file quickstart was still running v0.2 images. The README tells you to download a single compose file and run it; that file's image default had been pinned by hand in July and never moved, so the fastest way to try Avuru Obs has been evaluating a five-release-old build. It now follows the newest release, and it is stamped at release time so it cannot go stale again.
Full detail in the release notes.