TwiN / gatus

⛑ Automated developer-oriented status page
https://gatus.io
Apache License 2.0
6.16k stars 410 forks source link

Feature Request: client health update #95

Closed kensel closed 2 years ago

kensel commented 3 years ago

Is there a way or better tool that can have the client send updates to Gatus.

For example having a cron job that executes a curl against http(s)://gatus.example.com/client/{computer name}/{service name}/{check}

With a monitor that if the check for heartbeat hasn’t been received in 10 minutes it will generate an alert? This would make it possible for systems only allowed to send out but not in based on network segmentation to provide updates. Thank you, Kensel

TwiN commented 3 years ago

@kensel Would #64 fulfill your needs? It's one of the features I've been contemplating working on in the near future.

kensel commented 3 years ago

64 has a similar reasoning with segmented networks but I think it doesn't quite make sense when you are looking at 50 micro segments with 2-3 systems on it having to deploy another system to host the Gatus sub nodes. I guess it wold also depend on the reasoning where as #64 would be monitoring systems on the nodes I'm just looking for confirmation the nodes are up.

In regards to the comments about pulling vs. pushing I agree when transferring data like metrics that varies and can be large and overload the monitoring system. The different arguments play out with Prometheus(pull) vs Influx(push). But for small regular pings the data isn't the important part and could be just the fact that there was http request in the first place, it is the time between the pings that becomes important. If we can have clients push it would make it possible with an internet accessible Gatus endpoint to setup systems that can be turned on and ping back without regards for the firewall configuration of temporary sites, especially if it is possible for something like a dynamic registration that doesn't require the individual computers to be registered initially.

TwiN commented 3 years ago

This will most likely not be implemented (at least, not in the short term) for the same first reason I gave on #165, however, you can technically do this by leveraging the postgres storage that I merged into master a couple of days ago, even though it's kind of hacky 😅

TwiN commented 2 years ago

Moved to #229