SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы
Список вопросов ПечатьМетки: мониторинг python rrdtool
| RemiZOffAlex Создано: 2018-06-24 07:40:51.648920 Обновлено: 2018-06-24 07:40:51.648920 |
|---|
|
Файл minimonitor.py #!/usr/bin/env python3
__author__ = 'RemiZOffAlex'
__email__ = 'remizoffalex@mail.ru'
"""
pip3 install rrdtool
"""
import os
import time
import rrdtool
# Библиотека получения информации о нагрузке системы
import psutil
fname = 'database.rrd'
if not os.path.isfile(fname):
rrdtool.create(
fname,
# шаг 300с — данные, хранимые в БД будут привязаны к «сетке», шагом в пять минут
"--step", "5s",
# Источник
# cpu - название источника
# type - GAUGE
# heartbeat - 5m
# min, max - предельные значения
'DS:cpu:GAUGE:1m:0:100',
# описываем какие отчёты хотим хранить в БД.
# последние 48 часов, каждые 5 мин
# 0.5 - xff
# 576 (48 часов и каждые 5 минут)
'RRA:AVERAGE:0.5:1m:2d',
'RRA:MAX:0.5:1m:2d'
)
while True:
val = psutil.cpu_percent(interval=1)
print(val)
rrdtool.update(fname, '-t', 'cpu', 'N:' + str(val))
rrdtool.graph( 'graph.png',
# За какой период показать график: 30 минут
"--start", "-2h",
"--title", "CPU",
"--disable-rrdtool-tag",
"--imgformat" , "PNG" ,
# "--vertical-label=CPU",
"--watermark", "https://SpecialistOff.NET/ from RemiZOffAlex",
"-w 800", "-h 300",
"DEF:valcpu1=" + fname + ":cpu:AVERAGE",
"DEF:valcpu2=" + fname + ":cpu:MAX",
# Заливка области
"AREA:valcpu1#000099:CPU среднее",
"LINE1:valcpu2#0000FF:CPU максимальное")
time.sleep(3)
|