Назад | Перейти на главную страницу

Как с помощью uwsgitop получить совокупную статистику от всех вассалов uWSGI?

TL; DR

Кто-нибудь может сказать мне, как я могу получить uwsgitop контролировать всех моих вассалов в моей системе император-вассал одним выстрелом?


У меня есть настройка «император-вассал» для моего сервера uWSGI, и мне нужно контролировать всех своих вассалов. Я всегда мог проверить журналы своего приложения на наличие различных данных, но удобнее иметь обновление в реальном времени, полное отображение всей статистики.

Итак, я попробовал пару вещей:

  1. Я создал общий файл .ini, который содержит следующее:

    [uwsgi]
    stats = stats_vassal.sock
    

    Затем в файл .ini каждого вассала я включаю этот общий файл .ini. Проблема с этим подходом в том, что я не получаю никаких значимых данных при запуске uwsgitop с stats_vassal.sock файл. Моя гипотеза относительно того, почему это происходит, заключается в том, что данные в этом сокете постоянно перезаписываются статистикой какого-то вассала, который не используется.

    Тогда я переключился на ....

  2. В файле .ini каждого вассала я установил параметр stats = stats_%n.sock. Теперь я могу бежать uwsgitop на каждой stats_*.sock файл для наблюдения за этим конкретным вассалом.

    Но я хочу иметь возможность контролировать всех вассалов за один раз. uwsgitop кажется, принимает только один аргумент.

Я заглянул в uWSGI's Подсистема метрик, а толкатель статистики "файл" кажется, это то, что я хочу, так как он продолжает добавляться в один файл. Однако, когда я попытался поставить stats-push = file:path=stats_%n.sock,freq=1 в каждом из моих вассальных файлов .ini ИЛИ когда я пытался поставить stats-push = file:path=stats_vassal.sock,freq=1 в моем обычном вассальном файле .ini при перезапуске uWSGI я получаю следующую ошибку:

невозможно найти "файл" stats_pusher

Затем я попытался включить stats_pusher_file плагин в том же файле .ini, но получил следующую ошибку:

!!! НЕВОЗМОЖНО загрузить плагин uWSGI: ./stats_pusher_file_plugin.so: невозможно открыть файл общих объектов: нет такого файла или каталога !!!

И здесь я зашел в тупик.

К сожалению, у uwsgitop не было таких возможностей, но я написал «патч», и с моими изменениями появилась возможность использовать uwsgitop следующим образом: uwsgitop /var/stats и он показывает информацию обо всех вассальных рабочих отдельно на одном экране.

Вы можете проверить код Вот

Образец