2015-06-23 5 views

ответ

11

Может

$ touch /path/to/your/stats.txt 
$ puma -S /path/to/your/stats.txt 

в другом терминале

$ watch cat /path/to/your/stats.txt 

Результаты в:

--- 
pid: 14364 
config: !ruby/object:Puma::Configuration 
    cli_options: 
    conf: 
    options: 
    :min_threads: 0 
    :max_threads: 16 
    :quiet: false 
    :debug: false 
    :binds: 
    - tcp://0.0.0.0:9292 
    :workers: 0 
    :daemon: false 
    :mode: :http 
    :before_fork: [] 
    :worker_timeout: 60 
    :worker_boot_timeout: 60 
    :worker_shutdown_timeout: 30 
    :state: /path/to/your/stats.txt 
    :config_file: 
    :control_auth_token: 21c9241912a8e0e7ddaabac667ff5682 
    :tag: solar 
    :environment: development 

Но это выглядит статичным :(

Начиная свое приложение с помощью пумы, как это:

$ puma -S /path/to/your/stats.txt -C config/puma.rb --control tcp://0.0.0.0:9191 --control-token foo config.ru 

позволяет позже запрашивать на вашем веб-браузера:

$ http://localhost:9191/stats?token=foo 
or 
$ pumactl -C tcp://0.0.0.0:9191 -T foo stats 

в результате чего :

{ "workers": 3, "phase": 0, "booted_workers": 3 } 

Что выглядит более динамичным ...

Edit_0:

Как рабочие процессы, можно также рычаги инструменты, предоставляемые операционной системой для сбора информации, например, на Linux:

Запуск экземпляра пума:

puma -S p/stats.txt -C config/puma.rb --control tcp://0.0.0.0:9191 --control-token foo config.ru 
[1908] Puma starting in cluster mode... 
[1908] * Version 2.15.3 (ruby 2.1.5-p273), codename: Autumn Arbor Airbrush 
[1908] * Min threads: 8, max threads: 32 
[1908] * Environment: development 
[1908] * Process workers: 3 
[1908] * Preloading application 
[1908] * Listening on tcp://0.0.0.0:9292 
[1908] Use Ctrl-C to stop 
[1908] * Starting control server on tcp://0.0.0.0:9191 
[1908] - Worker 0 (pid: 1921) booted, phase: 0 
[1908] - Worker 1 (pid: 1929) booted, phase: 0 
[1908] - Worker 2 (pid: 1937) booted, phase: 0 

Использование сверху для исследования работников:

$ top -p1921 -p1929 -p1937 -n 1 

дает нам

Tasks: 3 total, 0 running, 3 sleeping, 0 stopped, 0 zombie 
%Cpu(s): 8.4 us, 1.5 sy, 0.0 ni, 88.9 id, 1.2 wa, 0.0 hi, 0.0 si, 0.0 st 
KiB Mem: 4058820 total, 1626576 used, 2432244 free, 56456 buffers 
KiB Swap: 9609212 total,  0 used, 9609212 free. 424948 cached Mem 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND  
1921 benjamin 20 0 1171600 85484 3116 S 0.0 2.1 0:00.38 puma   
1929 benjamin 20 0 1171600 85264 2884 S 0.0 2.1 0:00.37 puma   
1937 benjamin 20 0 1171600 85264 2884 S 0.0 2.1 0:00.42 puma 

, из которых можно разобрать соответствующую информацию, как Загрузка процессора или ОЗУ.

+0

thx @benjamin, но где этот параметр '-S' задокументирован? – Tal

+0

@Tal, в версии puma 2.15.3 вызов «puma --help» показывает короткую документацию. Я обновлю свой ответ, чтобы показать вам контент ... – benjamin

+0

thx @benjamin, но, к сожалению, похоже, что это не дает ключевую информацию, которую я ищу, что является состоянием рабочих (занято/нет) – Tal

0

Вы можете использовать pumactl инструмент:

$ pumactl --help 
+1

thx Yuri, но это не позволяет мне отслеживать количество рабочих/потоков, что и требуется. я что-то упускаю? – Tal

2

Я использую бога или monit.

God является рубиновый камень, Monit является инструментом мониторинга

  • монитор серверов,
  • процессы,
  • отправить уведомления об использовании ресурсов,
  • перезапустить процессы, если разбился,
  • предоставить терминал и веб-интерфейс для проверки состояния процессов.
Смежные вопросы