我正在为Elixir应用程序构建一些监控,并希望跟踪进程消息队列的总长度 - 如果它们超过任何合理值,这意味着系统无法跟上。在现实生活系统中如何查询?
:erlang.system_info/1
似乎没有提供它,而且您只能从:erlang.process_info/1
获取每个进程的信息。我不喜欢使用后者并手动聚合消息队列长度,因为可能有数千个相关的GenServer进程,并对它们进行仪表化感觉像是不必要的开销。我记得Wombat OAM有这个功能,这让我觉得可能性很大,但我可能错了。