Создание временной серии с top и nodeJS - PullRequest
0 голосов
/ 28 ноября 2018

Я хотел бы создать временной ряд и добавить его в InfluxDb для демонстрации.Я подумал об использовании команды top (top -pid 1393 -stats cpu) и использовал значение CPU.А затем используйте NodeJS, чтобы извлечь данные и внедрить их в InfluxDB.Тем не менее, есть пара, но ...: 1- У верхней команды есть раздел дисплея: ее можно удалить?2- В Node я бы назвал (неоднократно) "top -pid 1393 -stats cpu -l 1" с опцией "-l 1", чтобы получить только один образец.Я чувствую, что это неправильное использование факта, что top генерирует данные с заданными интервалами (в основном, я воссоздаю в Node, что top делает автоматически)

Есть ли лучший способ сделать это - в идеальном мире я бызапустите top в узле и "передайте" поток вывода в переменную асинхронным способом (чтобы выполнить вставку в InfluxDB).

Спасибо за любые подсказки, которые у вас могут быть.Кристиан

Ответы [ 3 ]

0 голосов
/ 01 декабря 2018

Для отслеживания метрик, потребляющих ресурсы процесса (поправьте меня, если я неправильно понял ваши намерения), вам вообще не нужны ваши ресурсы NodeJS.

Все, что вам нужно, это запустить агент Telegraf с этот плагин настроен на машинах, на которые вы нацеливаетесь.

Направьте выходной плагин на ваш Influx - и все.

0 голосов
/ 01 декабря 2018

Как уже упоминалось в других комментариях, есть специальные инструменты для этой задачи.В любом случае, если вы все еще хотите сделать это программно, я бы предложил:

  1. запустить top в неинтерактивном режиме, как описано здесь: https://unix.stackexchange.com/questions/255100/get-top-output-for-non-interactive-shell
  2. readнепосредственно информация, которая вам нужна от /proc/<pid of your process>/<file of interest>
0 голосов
/ 29 ноября 2018

На самом деле, для этого есть модуль узла: см. Использование npm.Обратите внимание, что у вас могут возникнуть проблемы при установке модуля использования, сгенерированного перестройкой node-gyp (для использования требуется этот модуль, для которого требуется XCode на платформе Mac - см. https://github.com/nodejs/node-gyp). Чтобы решить эту проблему, посмотрите здесь: xcode-выбрать активную папку разработчика ошибка ) Спасибо - C

...