Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём неправильно. Необходимо обновить браузер или попробовать использовать другой.
РАЗБОРСтатья
Монитор ресурсов через WEB, или мониторим свою VPS с помощью Grafana с самописными метриками
Есть свой vps.
Есть желание самому создавать метрики и мониторить их.
Текущие реализации монитора ресурсов на vps мне не нравятся.
Хочется сделать так, чтоб ты вбил адрес в браузере и увидел некий "дайджест" по состоянию твоей машины.
Стек
Grafana
Python 3.9
Фреймворк prometheus_client для того, чтоб реализовывать свои метрики
prometheus DB
VPS
Свой домен
Настройка Grafana
Не буду расписывать тут как установить графану, ибо мануалов в сети более, чем достаточно. Например официальный
Укажу лишь нюансы, которые могут понадобиться. Мне захотелось вывести графану в отдельный поддомен типа https://domain.com/grafs
Для этого в конфиге nginx настраиваем обратный прокси:
Запуск скрипта: python3 app.py. Для удобства можно скрипт сделать демоном, либо положить в докер.
Добавляем метрики в Grafana
Опять же, ка кдобавить datasource в графану мануалов в сети великое множество, например этот = повторяться не буду.
Но как говорил Ваилий Иванович петьке: "Но есть один нюанс!"
Нюанс в том, что подключеная Datasource к Grafana должна смотреть еще и наши самописные метрики.
Для этго идем в конфиг прометеуса и добавляем ему джобу
Чтоб убедиться в том, что все работает корректно, посмотрим что выдают наши самописные метрики: curl localhost:8000
Если метрики работают корректно, то будет что-то такое:
# HELP python_gc_objects_collected_total Objects collected during gc
# TYPE python_gc_objects_collected_total counter
python_gc_objects_collected_total{generation="0"} 57.0
python_gc_objects_collected_total{generation="1"} 292.0
python_gc_objects_collected_total{generation="2"} 0.0
# HELP python_gc_objects_uncollectable_total Uncollectable object found during GC
# TYPE python_gc_objects_uncollectable_total counter
python_gc_objects_uncollectable_total{generation="0"} 0.0
python_gc_objects_uncollectable_total{generation="1"} 0.0
python_gc_objects_uncollectable_total{generation="2"} 0.0
# HELP python_gc_collections_total Number of times this generation was collected
# TYPE python_gc_collections_total counter
python_gc_collections_total{generation="0"} 62.0
python_gc_collections_total{generation="1"} 5.0
python_gc_collections_total{generation="2"} 0.0
# HELP python_info Python platform information
# TYPE python_info gauge
python_info{implementation="CPython",major="3",minor="8",patchlevel="0",version="3.8.0"} 1.0
# HELP process_virtual_memory_bytes Virtual memory size in bytes.
# TYPE process_virtual_memory_bytes gauge
process_virtual_memory_bytes 2.51322368e+08
# HELP process_resident_memory_bytes Resident memory size in bytes.
# TYPE process_resident_memory_bytes gauge
process_resident_memory_bytes 2.2777856e+07
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.61753591402e+09
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 81.83
# HELP process_open_fds Number of open file descriptors.
# TYPE process_open_fds gauge
process_open_fds 7.0
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1024.0
# HELP system_cpu_percent_usage % использования cpu
# TYPE system_cpu_percent_usage gauge
system_cpu_percent_usage 2.9
# HELP system_ram_percent_usage % использования оперативы
# TYPE system_ram_percent_usage gauge
system_ram_percent_usage 50.7
# HELP system_disk_usage % занятого места на диске
# TYPE system_disk_usage gauge
system_disk_usage 68.0
Все самописные метрики не просто так начинаются с одного слова "system" - благодаря этому метрики лягут в один раздел.
Если залогиниться в графане на своем домене, затем создать дашборд, создать график, то вы увидите там:
Наши метрики работают. Осталось настроить визуализацию. Много ума для этого не надо. Просто тыкаешься и что-то в итоге получится, т.к. интерфейс интуитивный.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь. Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.
Комментарии
1