sixty

documentation

What sixty measures, and how to install it

An agent in your application measures what every operation does — rows returned, queries issued, time spent, bytes sent, errors thrown — and ships summaries. The collector compares each release against the one before it and tells you which deploy changed what.

Two consequences worth knowing before anything else. There are no thresholds to configure, because the comparison is against your own previous release rather than against a number somebody guessed. And nothing can be compared until a second release has reported, so the first deploy after an install is quiet by design.

Pick your language

Every server agent measures the same core signals and writes the same wire format. What differs is what the runtime allows: only Python can separate computing from waiting, only Node instruments your functions without being asked, only PHP has to work without a background thread, and query plans need Postgres.

In front of the server

A server span ends when the response is written, which is well before anything is on screen. These measure the half that happens afterwards — and, on a phone or in a Supabase-only app, the half that has no server span at all.

The rest of it

  • What each agent tracks — one table, 8 agents, every signal. The page to read if you are choosing between two of them or wondering why a finding never appears.
  • Every signal — what each kind of finding means, in what unit, and what sort of code change causes it.
  • How it works — deploy anchoring, quantile sketches, how a query gets attributed to the function that issued it, and what the agent costs the application.
  • MCP server — how your editor reads findings, claims one, fixes it and records what it did.

Two rules every agent holds to

It cannot break your application. Every measurement path is wrapped so that a failure inside the agent cannot surface as an application error. When the collector is unreachable the agent keeps measuring into a bounded buffer and drops the oldest window rather than growing; nothing blocks, nothing retries forever, and the application does not find out.

It never learns anything about your users. No user id, no session id, no cookie, no IP address, and no value from any query — statements are normalized to their shape before anything leaves the process. That is a property of the code rather than a setting, which means it is also a question this product cannot answer for anybody, including us.

Sixty docs — what each agent measures, and how to install it