[Feature] Heartbeats - Track tasks occurring

Laravel’s Envoyer provides a service called Heartbeats. It’s a peculiar little feature that seems to be incredibly hard to find an alternative to in other services. This kind of feature in Sentry would be an amazing bonus for users. Here is a simple design outline:

  • Users create a new token in their project area. It needs to be given a name by the user and a timeframe that it should recur between. This can be like a cron job where you can get very specific, down to it should happen on the 5th our of the 2nd day of each month. Or you can KISS with simple Minute/Hour/Day type spans broken down.
  • Tokens then are a parameter on a URL endpoint. This can be requested with either GET or POST.
  • Users can then request to the endpoint in their scripts. And the application will track whether or not it has received an update in the specified timeframe. If it has, all is good. If not, alert the user (email or in-dash notification) that the heartbeat isn’t happening.

Of course, dealing with time is much trickier than writing about the feature. But in essence this is the fundamentals of what is needed. If provided it could help sys admins and developers keep a much better eye on their internals more easily.

We talked about doing this and were calling the prototype “Monitors”. I think in fact that @mitsuhiko had worked on a prototype during a hack week.

The gray area comes down to “is this something we should own?”, since Sentry’s premise is about product teams less so than systems monitoring.

Teams should be capable of knowing if their stuff is functioning properly.
Simply because you don’t get an error to track doesn’t mean things are
working as they should. I’d see it as an alternative way to track error

In case anyone comes across this, HealthCheck.io provides just this feature request as a service. Extra bonus it is Open Source as well on GitHub. There are a few services I’ve found this morning that do it, but for just the simplest “yes/no” and last hit time, this one seems to win for cost, openness, and clear UX.

I’d still like to see this kind of thing in Sentry though. Having one dashboard to monitor this all from is incredibly useful so I’m not having to keep up with multiple places and logins.

I already have server monitoring. I signed up with sentry to track errors not monitor metrics. These are totally unrelated. I’d rather sentry focus on one thing, error tracking

The token described in op is also a very terrible way to monitor servers. Look into statsd, graphite, grafana, server density, etc

It is http://healthchecks.io
Thanks, awesome, it looks like just what I want.

A regular background task which has gone down is an error and defining the error in “deadman” style (like the train-driver deadman mechanism) can be convenient and simple, so it’s a shame sentry doesn’t do it, although of course there are arguments that you end up with an alert but no useful diagnostics.

This would be a very convenient way to get notified when something breaks in the application-Sentry integration. Firewall misconfiguration, for instance. This is a use case that cannot be immediately solved by using some other service.

Currently, is there any suggested way to monitor that Sentry integration works?