
Show HN: Automated Health Dashboard - TwinProduction
https://github.com/TwinProduction/gatus
======
akeck
The dashboard abbreviates "minutes" with "ms", but to me that reads
"milliseconds". I think it should probably use "min".

~~~
TwinProduction
I don't remember abbreviating minutes with ms, could you please tell me where
you're seeing this so that I can fix it?

~~~
akeck
[https://status.twinnation.org/](https://status.twinnation.org/)

The time ranges use "ms", but the actual timestamps indicate the gap is
minutes.

~~~
TwinProduction
Ah, the range that you're seeing on the top right corner of each service is
the minimum and maximum response time.

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.

------
ilyas121
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.

~~~
zhs
Same! If you haven't already come across it
[https://gyrosco.pe/](https://gyrosco.pe/) might be worth a look.

~~~
ilyas121
Love this, just wish I could run it locally offline :(

------
EE84M3i
I think it would be helpful if this said at the top of the readme what it's
checking the health of. Looks like HTTP services maybe? HTTPS? TCP?

~~~
mqus
Yeah, I first thought it was about monitoring _my_ health, aka fitness, pulse
measurement etc. :D

But that particular line of thought is cleared up in the second sentence.

~~~
TwinProduction
Who knows, maybe in the next version, you'll be able to link up your heart
rate monitor.

(I'm joking, of course, unless this somehow becomes a serious use case at some
point xD)

------
monkeydust
interesting - I deployed [https://healthchecks.io/](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.

------
dewey
Maybe I'm misunderstanding it but what's the difference to using Grafana /
Prometheus / Alertmanager?

I see the tool itself exposes the Prometheus metrics endpoint so I guess
Prometheus already exists in your stack.

~~~
TwinProduction
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
:)

~~~
oauea
Isn't that similar to using
[https://github.com/prometheus/blackbox_exporter](https://github.com/prometheus/blackbox_exporter)
with prometheus, alertmanager and grafana?

~~~
TwinProduction
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 :)

------
rid
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.

------
s09dfhks
docker run -p 8080:8080 --name gatus gatus

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'.

~~~
ShakataGaNai
You have to build it, for it to run with that name. To skip the build step you
probably want:

docker run -p 8080:8080 --name gatus twinproduction/gatus

So it'll pull from docker hub.

------
TheCowboy
Do any general purpose dashboard libraries/frameworks exist that people
like/recommend?

------
Reelin
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.)

~~~
TwinProduction
I originally wanted to serve as little content as possible to reduce the
resource usage as much as possible, but tbh, it's probably not necessary.

I just took care of it:
[https://github.com/TwinProduction/gatus/commit/e31c017a007fe...](https://github.com/TwinProduction/gatus/commit/e31c017a007fe3dfefddb2ab74127ec53fb40892)

This change will be available from v0.1.3

------
colsandurz
Does this work with Apple Health?? Is there an easy way to get data out of
Apple Health?

~~~
dewey
If you export the health data (It's possible), expose it through some http
service and then scrape it with that tool it'll work.

If it's the right tool for the job is the more important question.

