Можно ли прочитать / proc / {pid} / stat и передать клиенту в режиме реального времени? - PullRequest
0 голосов
/ 01 августа 2011

Предположим, я хочу отслеживать MySQL, насколько я знаю, вся информация о времени выполнения MySQL хранится в /proc/{mysql_pid}/stat. так можно ли читать и анализировать статистическую информацию mysql через node.js и клиент отображает график в реальном времени?

nagios и альтернатива такие тяжелые, и иногда я просто хочу следить за информацией о прогрессе. так что я хочу легкое решение.

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Я предполагаю, что вы не пытались реализовать решение своей проблемы.Что именно вы подразумеваете под «в реальном времени»?О каком клиенте вы говорите?

Если вы говорите о клиенте веб-браузера, то нет причин, по которым вы не могли бы обновлять какой-либо вид дисплея каждые полсекунды с помощью множества клиентов (или гораздо быстрее)., если графики не слишком сложны).

Вы должны быть более конкретны, если хотите получить более конкретный ответ, чем этот.

0 голосов
/ 01 августа 2011

Я пытался использовать Node Inotify , которая является отличной библиотекой.Тем не менее, похоже, что файловая система proc не обрабатывает события inotify при изменении файлов статистики.Однако, если вы смотрите файл в обычной файловой системе, вот как вы можете сделать это, используя эту библиотеку:

sys     = require('sys');
fs      = require('fs');
Inotify = require('inotify').Inotify;

var inotify = new Inotify(); 

function callback(ev) {
  console.log(sys.inspect(ev));
}

var home_dir = {
    path:      '/proc/5499/stat'
  , watch_for: Inotify.IN_ALL_EVENTS
  , callback:  callback
};

var home_watch_descriptor = inotify.addWatch(home_dir);

Просто измените Inotify.IN_ALL_EVENTS на любое действие, которое вы хотитеследить за этим, что задокументировано на странице github, на которую я ссылаюсь.

Извините, это не решает вашу конкретную проблему, но я решил опубликовать ее в информативном порядке.

...