This is great! Nice work. I would add one feature request which is the ability to monitor from multiple locations. Otherwise it's a SPOF and you'll never receive a notification if your whole cluster is down.
While Grafana allows you to monitor metrics provided by Prometheus and Alertmanager allows you to configure alerts also based on these metrics, Gatus allows you to directly monitor your service(s) by sending requests to them at interval and evaluating the conditions that make your service(s) "healthy".
As mentioned in the README, Gatus can double as automated user acceptance tests to check if, for instance, an endpoint that you expect to return X has Y instead.
Let me know if that's not clear enough, I can provide more a in-depth example :)
I like the simple UI and visualization of the timeline!
It kinda reminds me of the Prometheus Blackbox exporter. I think you can achieve similar acceptance tests. See https://github.com/prometheus/blackbox_exporter
I think the keyword you might want to add to your README is "Canary".
This can refer to a deployment tactic or a system that actively tests systems in the manner that this system does. So that you can be notified of client-side facing issues that might not be visible server-side without relying on actual clients to beat down the door and shout at you.
I honestly didn't even know that was a thing.
That said, it looks like it doesn't support JSONPath out of the box, though I was able to find a plugin that should allow you to parse JSON. I'm not sure how that would work out, but the point is that this is all-in-one.
Beyond just that, the resource usage of Gatus is significantly lower than running Grafana, Prometheus and alertmanager individually - much less running all of them at the same time.
My personal Kubernetes cluster is quite limited in resources after all, and running Prometheus does make that resource pool even smaller than it already is :p
That said, even for clusters that don't have similar resource restrictions, I find that having all of this together in a single application makes it a lot easier to manage, though I guess that's up to the individual :)
interesting - I deployed https://healthchecks.io/ to a few boxes this morning which pings me in case of downtime based on heartbeat curl calls to designated URL. Works well.
I don't see ms in place of min either. Maybe the OP was confused by the response time range. Ex: 2-12ms. There is no explanation or other text other than the numbers.
That being said. Maybe that can be a more detailed popup as well. Avg response, mean, median, min/max.
I got really excited that this was an nice open source way to track my physical human health metrics over time. Oh well, I guess this just means I have to make one now.
It would be nice if I didn't have to allow third party scripts (from bootstrapcdn and googleapis in this case) in order to view the dashboard. Is there some technical reason the health page can't be entirely first party? (This comment is based on the example status page you linked.)
docker: Error response from daemon: pull access denied for gatus, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
27 comments
[ 2.6 ms ] story [ 76.9 ms ] threadI see the tool itself exposes the Prometheus metrics endpoint so I guess Prometheus already exists in your stack.
As mentioned in the README, Gatus can double as automated user acceptance tests to check if, for instance, an endpoint that you expect to return X has Y instead.
Let me know if that's not clear enough, I can provide more a in-depth example :)
This can refer to a deployment tactic or a system that actively tests systems in the manner that this system does. So that you can be notified of client-side facing issues that might not be visible server-side without relying on actual clients to beat down the door and shout at you.
Beyond just that, the resource usage of Gatus is significantly lower than running Grafana, Prometheus and alertmanager individually - much less running all of them at the same time.
My personal Kubernetes cluster is quite limited in resources after all, and running Prometheus does make that resource pool even smaller than it already is :p
That said, even for clusters that don't have similar resource restrictions, I find that having all of this together in a single application makes it a lot easier to manage, though I guess that's up to the individual :)
But that particular line of thought is cleared up in the second sentence.
(I'm joking, of course, unless this somehow becomes a serious use case at some point xD)
That being said. Maybe that can be a more detailed popup as well. Avg response, mean, median, min/max.
The time ranges use "ms", but the actual timestamps indicate the gap is minutes.
The time on the bottom left is how long ago the oldest status is, while the one on the right is how long ago the latest status is from.
If it's the right tool for the job is the more important question.
I just took care of it: https://github.com/TwinProduction/gatus/commit/e31c017a007fe...
This change will be available from v0.1.3
Unable to find image 'gatus:latest' locally
docker: Error response from daemon: pull access denied for gatus, repository does not exist or may require 'docker login': denied: requested access to the resource is denied. See 'docker run --help'.
docker run -p 8080:8080 --name gatus twinproduction/gatus
So it'll pull from docker hub.