Skip to content

Monitoring

Monitoring answers how the platform is behaving right now and over a window you choose: what ran, what is still running, what took too long, and which step is responsible.

It is the surface somebody opens when something is already wrong, which is worth saying because it shapes what is on it. Nothing here requires you to have set up a measurement in advance.

Every run records facts as it goes: when it was accepted, when it started, when it ended, and how long each step took. A snapshot is those facts read back over the window you asked for and summarised.

Two consequences follow, and the second one surprises people.

It is fast, because reading a window of recorded facts is a bounded read rather than a walk over every run that ever happened.

And it can only tell you about facts that were being recorded at the time. A window that reaches back before a measurement existed will show you the runs but not that measurement. This is the opposite of the event log, which holds what happened and can be asked new questions afterwards. Monitoring is a measurement, and a measurement has to have been taken.

How many runs in the window, and how they ended.

How long they took, including the shape of it rather than only the average. An average hides the run that took four minutes; a percentile does not, and it is usually the percentile that matches what somebody is complaining about.

How many were running at once, averaged over the window, which is the number to look at when everything is slow rather than one thing being broken.

Which step was slowest, and which step was most often the slowest. Those are different questions and the second is usually the more useful: one run’s worst step might be bad luck, while the step that is worst most often is where the problem lives.

The most recent runs, so you can go from a number straight to the run behind it.

Monitoring tells you which run and which step. Runs tells you what that run actually did, step by step, with what each step was given and what it returned. The two are meant to be used in that order.

If a run is stuck rather than slow, look for the Gate. A run waiting on a person is not a performance problem, and the clock on it is an SLA rather than a duration.