Интегральный индикатор загрузки
Модератор: immortal
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: Интегральный индикатор загрузки
Решил у себя организовать именно на этом способе получения информации о загрузке CPU.arturmon писал(а):как в лине load average: 0.00, 0.00, 0.00
средняя нагрузка на систему в последние 1, 5 и 15 минут.
Создал класс "SystemVariables", объект CPU_load со свойством server_CPU_load. В phpMyAdmin посмотрел ID и PROPERTY_ID этого свойства.
Создал скрипт /var/www/scripts/SystemVariables_update.sh:
Код: Выделить всё
#!/bin/bash
echo "UPDATE pvalues SET VALUE=`uptime | grep -o 'load average.*' | cut -c 15-18` WHERE ID=391 AND PROPERTY_ID=233" | mysql -uroot -prootpsw db_terminal
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: Интегральный индикатор загрузки
Данный интегральный индикатор выводит округлённые значения. Если нужно выводить неокруглённые (или округлённые до какого-то знака) - то ищем и правим в файле jsgraphics.js следующий код:
Здесь в скобках после команды toFixed(0) меняем ноль на нужное нам число знаков после запятой.
Долго искал сам, может кому время сэкономлю
Код: Выделить всё
this.lastvalue = this.value;
this.value = Number(d[0]).toFixed(0);
this.valupdated = d[1];
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: Интегральный индикатор загрузки
Нашёл ещё костыли - как запускать скрипты через cron чаще чем 1 раз в минутуKo/|xo3HUk писал(а): Вызываю данный скрипт через cron раз в минуту...
Код: Выделить всё
sudo nano /etc/crontab
* * * * * root /var/www/scripts/SystemVariables_update.sh; /bin/sleep 10; /var/www/scripts/SystemVariables_update.sh; /bin/sleep 10; /var/www/scripts/SystemVariables_update.sh; /bin/sleep 10; /var/www/scripts/SystemVariables_update.sh; /bin/sleep 10; /var/www/scripts/SystemVariables_update.sh; /bin/sleep 10; /var/www/scripts/SystemVariables_update.sh
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
-
- Сообщения: 160
- Зарегистрирован: Ср окт 07, 2015 9:36 am
- Благодарил (а): 51 раз
- Поблагодарили: 27 раз
Re: Интегральный индикатор загрузки
Попользовался немного данным методом, но понял что он не совсем удобен - да, текущие данные я получаю, но вот история не пишется при таком способе, т.к. система не знает когда записывать значения - просто не понимает когда эти значения изменились. Сделал по подобию сценария для ESP8266: переписал скрипт /var/www/scripts/SystemVariables_update.sh:Ko/|xo3HUk писал(а):Создал скрипт /var/www/scripts/SystemVariables_update.sh:Код: Выделить всё
#!/bin/bash echo "UPDATE pvalues SET VALUE=`uptime | grep -o 'load average.*' | cut -c 15-18` WHERE ID=391 AND PROPERTY_ID=233" | mysql -uroot -prootpsw db_terminal
Код: Выделить всё
#!/bin/bash
curl "http://192.168.1.69/objects/?script=SysVar_update&id=CPU_load&1_min=`uptime | grep -o 'load average.*' | sed 's/,//g' | cut -d' ' -f3`&5_min=`uptime | grep -o 'load average.*' | sed 's/,//g' | cut -d' ' -f4`&15_min=`uptime | grep -o 'load average.*' | sed 's/,//g' | cut -d' ' -f5`"
СпойлерПоказать
Код: Выделить всё
if ($params['id']=="") { return; } //Если id-шник отсутствует, то перестаем отрабатывать сценарий
addClass('SystemVariables'); //Создаем класс SystemVariables, если он ещё не создан
addClassObject('SystemVariables',$params['id']); //Создаем в классе SystemVariables объект с именем CPU_load
addClassProperty('SystemVariables', 'updated', 0); //Создаёт свойство класса и указывает, что не нужно хранить историю значений
addClassProperty('SystemVariables', '1_min', 730); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 730 дней
addClassProperty('SystemVariables', '5_min', 730); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 730 дней
addClassProperty('SystemVariables', '15_min', 730); //Создаёт свойство класса и указывает, что необходимо хранить историю значений 730 дней
//Распихиваем всё по свойствам. Если полученное значение пустое, то свойство не записываем
if ($params['updated']!="") { sg(($params['id'].".updated"),$params['updated']); } //Время обновления
if ($params['1_min']!="") { sg(($params['id'].".1_min"),$params['1_min']); } //Данные о ззагрузке ЦПУ за 1 минуту
if ($params['5_min']!="") { sg(($params['id'].".5_min"),$params['5_min']); } //Данные о ззагрузке ЦПУ за 5 минут
if ($params['15_min']!="") { sg(($params['id'].".15_min"),$params['15_min']); } //Данные о ззагрузке ЦПУ за 15 минут
DebMes("SysVar_update request: ".$_SERVER['REQUEST_URI']); // После этого в XRay во вкладке debug можно смотреть результат.
СпойлерПоказать
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)