We have several K8S clusters which we need to monitor from one operator cluster (cluster A) We are using Prometheus on each cluster to monitor the cluster itself, now in addition we want to monitor from a specific api of application which will tell us if our cluster (according to our specific services) is functinal or not, im not talking about monitor the cluster ,we want the the operator will monitor 3 application on each cluster( all the 3 applications are deployed on all the monitored clusters)
Cluster A (operator) should monitor service/apps on cluster B,C,D etc
e.g. The operator cluster will call to deplyed app in clusterA like host://app1/status
to get the status if 0 or 1, and save the status in some DB. (maybe prometehusDB) and report them outside the cluster.
Currently after some search I found this option but maybe there is more which I dont khow
Use blackbox exporter - https://github.com/prometheus/blackbox_exporter
Create my own programs (in golang) which will like a cronjob and which will be runing in the operator cluster using prom lib.
https://github.com/prometheus/client_golang
I mean running a rest call and use Prometheus api to store the status inside Prometheus tsdb
via go "github.com/prometheus/client_golang/prometheus/promhttp" code. but not sure how..
- Federation ??
In addition, in case I was able to collect all the data from the clusters into the operator cluster, How and where should I keep it? in Prometheus db tsdb? other way ?
What should be the best practice to support our case ? How should we do it ?