У нас есть несколько кластеров K8S, которые нам нужно отслеживать из одного операторского кластера (кластер A). Мы используем Prometheus на каждом кластере для мониторинга самого кластера, теперь, кроме того, мы хотим отслеживать с определенного API-интерфейса приложение, которое сообщит нам, является ли наш кластер (в соответствии с нашими конкретными услугами) функциональным или нет, я не говорю о мониторинге кластера, мы хотим, чтобы оператор контролировал 3 приложения в каждом кластере (все 3 приложения развернуты на всех наблюдаемые кластеры)
Кластер A (оператор) должен отслеживать службы / приложения в кластере B, C, D и т. Д.
например Кластер операторов будет вызывать деплоенное приложение в clusterA, например host://app1/status
, чтобы получить статус 0 или 1 и сохранить статус в некоторой БД. (возможно, prometehusDB) и сообщать о них вне кластера.
В настоящее время после некоторых поисков я нашел эту опцию, но, возможно, есть другие, которые я не показываю
Используйте экспортер черного ящика - https://github.com/prometheus/blackbox_exporter
Создавайте свои собственные программы (на golang), которым понравится cronjob и которые будут запускаться в кластере операторов с помощью prom lib.
https://github.com/prometheus/client_golang
Я имею в виду выполнение вызова отдыха и использование Prometheus api для сохранения статуса внутри Prometheus tsdb
с помощью кода go github.com/prometheus/client_golang/prometheus/promhttp. но не знаю как ..
- Федерация ??
Кроме того, если мне удалось собрать все данные из кластеров в операторский кластер, как и где мне их хранить? в Prometheus db tsdb? другой путь ?
Что должно быть наилучшей практикой в поддержку нашего дела? Как мы должны это сделать?