如何使用 uwsgitop 从所有 uWSGI vassals 获取所有统计数据的汇总?

Ani*_*amy 8 monitoring configuration performance-monitoring uwsgi

TL; 博士

谁能告诉我如何uwsgitop在我的皇帝封臣设置中一次性监控所有封臣?


我的 uWSGI 服务器有一个皇帝封臣设置,我需要监控我所有的封臣。我可以随时检查我的应用程序日志中的各种数据,但实时更新、全面显示所有统计数据更方便。

所以,我尝试了几件事:

  1. 我创建了一个常见的 .ini 文件,其中包含以下内容:

    [uwsgi]
    stats = stats_vassal.sock
    
    Run Code Online (Sandbox Code Playgroud)

    然后,在每个 vassal 的 .ini 文件中,我包含了那个通用的 .ini 文件。这种方法的问题在于,当我uwsgitop使用stats_vassal.sock文件运行时,我没有得到任何有意义的数据。我关于为什么会发生这种情况的假设是,该套接字中的数据不断被一些未使用的 vassal 的统计数据覆盖。

    然后我切换到......

  2. 在每个 vassal 的 .ini 文件中,我设置了一个 option stats = stats_%n.sock。现在,我可以uwsgitop在每个stats_*.sock文件上运行以监视特定的 vassal。

    但我希望能够一次性监控所有封臣。uwsgitop似乎只接受一个论点。

我研究了 uWSGI 的Metrics 子系统“文件”统计信息推送器似乎是我想要的,因为它一直附加到一个文件中。但是,当我尝试放入stats-push = file:path=stats_%n.sock,freq=1每个 vassal .ini 文件尝试放入stats-push = file:path=stats_vassal.sock,freq=1通用 vassal .ini 文件时,当我重新启动 uWSGI 时出现以下错误:

无法找到“文件”stats_pusher

然后我尝试将stats_pusher_file插件包含在同一个 .ini 文件中,但出现以下错误:

!!!无法加载 uWSGI 插件:./stats_pusher_file_plugin.so:无法打开共享对象文件:没有这样的文件或目录!!!

这就是我陷入死胡同的地方。

小智 0

不幸的是 uwsgitop 没有这样的可能性,但我写了“补丁”,并且通过我的更改,可以以这种方式使用 uwsgitop :uwsgitop /var/stats它在一个屏幕上单独显示所有附庸工人信息。

您可以在这里检查代码

样本