Ежедневные и ежемесячные проценты доступности через Прометей? (или ежемесячная продолжительность работы) [решено] - PullRequest
0 голосов
/ 06 октября 2019

Требуются цифры доступности для одной или нескольких сервисов Docker.

Мы используем Prometheus для сбора метрик в среде Docker Swarm. Работает нормально!

Как мы можем получить ежедневные и / или ежемесячные показатели?

Ответы [ 2 ]

1 голос
/ 14 октября 2019

Правила записи помогут вам систематизировать и группировать принятые вами метрики на регулярной основе, а их результаты попадают в прометей.

0 голосов
/ 14 октября 2019

Предложение в другом ответе может быть хорошим шагом вперед. Спасибо @vinodk.

Спросив многих разработчиков на эту тему, я наконец нашел достаточно хорошее решение. Итак, если у вас есть какие-либо улучшения, пожалуйста, опубликуйте их.

Решение, которое я выбрал до сих пор:

  • Используйте Prometheus в качестве источника измерений доступности. Прометей нужен в любом случае для регулярного мониторинга.
  • Чтобы предотвратить потерю данных мониторинга при сбое образа или узла Docker, сопоставьте том данных с внешним файловым хранилищем, например S3.
  • Используйте панель инструментов Grafana, чтобы настроить запрос, что именно нужно. Таким образом, вы можете указать временной диапазон, легенду и т. Д.
  • С помощью панели Grafana для экспорта данных в CSV.

Вот пример: в Grafana сначала создайте источник данных Prometheus, затем добавьте панель, см. Шаги ниже. Затем вы можете легко экспортировать данные в Excel, выбрав раскрывающийся список рядом с заголовком панели> еще> Экспорт в CSV. Важно, чтобы у вас был минимальный шаг, достаточно большой.

enter image description here

А как насчет альтернатив?

1) Сохранять результаты Prometheus в удаленной базе данных и запрашивать их отдельно. Это немного излишне - просто получать проценты доступности за месяц.

2) Создание очень простого приложения Spring Boot, которое периодически восстанавливает работоспособность и сохраняет ее в базе данных. Мне потребовался целый день, чтобы создать такое решение (в основном, модульное тестирование ;-). Лучше сделать запрос к Прометею, используя такой запрос:

http://localhost:9090/api/v1/query_range?query=avg_over_time(up[1h])*100&start=2019-10-19T09:20:00.000Z&end=2019-10-19T10:00:00.000Z&step=10m

3) Вы можете использовать инструмент «Телеграф», который занимает меньше места в памяти. Он может хранить данные в InfluxDb. Мне нравится решение / архитектура / стандарт Prometheus для мониторинга, поэтому этот вариант не подходит в моем случае.

4) Мы используем Spring Boot для наших приложений. Spring Boot Admin неприменим, поскольку он только смотрит на текущую ситуацию и не сохраняет результаты.

...