Появилась мысль сделать кикстартер проект. Сформировать всем месте ТЗ по этому проекту и вложиться деньгами(скажем по $1-2 с человека). По результатам выложить это на suckless, чтобы у всех у нас был хороший гибкий мониторинг. Вообще, такой proj хорош тем, кто хочет поднять свой скилл на си, но если таких не найдется, давайте соберемся шекелями и пусть нам запилят мониторинг
В общем есть у меня скрипт на питоне, который имеет конфиг:
data = {
'item0':
{
'job': 'myout',
'type': 'system',
'timeout': 2,
'state': 'enable',
},
'item1':
{
'name': '',
'bracket': '',
'job': 'internet',
'type': 'function',
'timeout': 5,
'state': 'enable',
'result': 'UP:LOAD'
},
'item2':
{
'name': '',
'bracket': '',
'job': "weather",
'type': 'function',
'timeout': 300,
'state': 'enable',
# 'result': '☔:0'
'result': 'W:0'
},
'item4':
{
'name': '',
'bracket': '',
'job': 'traffic',
'type': 'function',
'timeout': 1,
'state': 'enable',
'result': 'D:0B U:0B '
},
'item5':
{
'name': '',
'bracket': '||',
'job': 'disk',
'type': 'function',
'timeout': 60,
'state': 'enable',
'result': 'RH:-1,-1,-1'
},
'item6':
{
'name': '',
'bracket': '',
'job': "day",
'type': 'function',
'timeout': 15,
'state': 'enable',
'result': 'Дн.'
},
}
Скрипт обходит все item, парсит что это «функция», берет имя функции, и выполняет функцию с указанным таймаутом. Далее пишет информацию в общий массив и отдельный тред берет весь массив и пишет информацию в xsetroot -name. Но в целом всё это я так бы сейчас не написал. Это не православно. Православно как?
делаем конфиг в yml вида:
- item1
- path: /some/script.py
- timeout: 15
- state: enable
- result: 'UP:LOAD'
Далее в сишке обходим все item, запускаем скрипты с заданным таймаутом и пишем в какой-то общий массив. И с таймаутом 2 секунды запускаем xsetroot и подставляем всю инфу. Таким образом мы можем в мониторинг добавлять свои скрипты хоть на питоне, хоть на луа, хоть на sh и мониторинг будет забирать от них выхлоп. Было бы круто:)
А то некрасиво это:
ps_mem |grep monitoring.py
17.3 MiB + 241.5 KiB = 17.5 MiB monitoring.py
ps_mem |grep dwm
1.3 MiB + 199.5 KiB = 1.5 MiB dwm
Сам мониторинг занимает больше памяти, чем wm, лол
Кто возьмётся написать православный monitoring на си для dwm? =)