See your production system as a living city

Services are buildings. Calls are roads. Traces are the traffic on them. Trace Town turns your telemetry into a place, so you can tell what your system is doing from across the room without reading a single number.

Runs in your browser on sample data. No sign-up, nothing to install.

An isometric town on a green island: five districts of office towers, water towers, storage tanks and factories, each with a wooden signpost naming it, joined by roads with crowds walking along them.
The same town during an incident: a storm sky, rain down the edges of the frame, lightning, red bands on three buildings and scaffolding going up over two of them.

An incident looks like an incident

A dashboard makes you read numbers and infer state. A town expresses state as a place. A roofline that has gone red, a street with traffic backed up, scaffolding going up over a block, a sky turning to storm — you take all of it in at once, from the far side of the room, without reading anything.

Nothing here is decoration. Every one of those is a signal with exactly one meaning, and nothing else shares it.

What maps to what

Every signal has one visual meaning, and nothing else shares it.

Request rateBuilding height, on a log scale — five requests a second gets a skyline, not a car park.
Error rateA lit band at the roofline: green, amber, red. Bright enough to read across the town, and it pulses when it is bad.
p99 latencyCongestion. Walkers slow down and queue at the door of whatever is being slow.
Live tracesPeople on the roads — blue for a clean call, red for a failed one. A queue handing work to a worker gets porters carrying crates.
Sustained failureThe building closes for repairs: scaffolding, a crane, cones in the road.
Overall healthThe weather, from clear through to a storm with lightning over the town.
Service domainIts own district — a parcel of streets in open country, with a signpost at the edge.

The streets are your architecture

Roads only exist where something actually calls something. A district with one road in and one road out is well factored, because it is; a district with eight roads crossing its boundary looks like what it is. Nobody has to read a number to know which they are looking at.

Buildings tell you what a thing is before you read its name. A cache is a water tower, a database a tank farm, a queue a railway station, a worker a factory, a cron job a clock tower, and a third party you don't run gets a satellite dish on the roof.

Street level in the town: a water tower, a railway station, a clock tower and storage tanks, with two lanes of small figures walking in opposite directions, some carrying crates.

How it works

Trace Town reads the OpenTelemetry signals you already produce. Per-service request rate, error rate and latency give you the buildings; the service graph gives you the roads — so the town lays itself out from your real topology rather than a diagram somebody drew once and stopped updating.

Every backend reduces to one normalised snapshot, so the renderer neither knows nor cares where the data came from. Connect Prometheus — or anything Prometheus-compatible, which includes Grafana Cloud and Mimir — and it reads standard OpenTelemetry metrics with no vendor API and no proxy. SigNoz works too.

Prometheus OpenTelemetry Grafana Cloud SigNoz

Your town, arranged your way

The layout seeds itself from the observed call graph, and you can rearrange it: drag a building onto any block and the roads re-route as you go. Zone the town by call graph, by building type, or by your own domains — some teams want a database beside the service that uses it, others want every database together. Whatever you place by hand stays where you put it.

Open the town →