Erlang 使用ranch,如何判断侦听器何时终止?

Erlang 使用ranch,如何判断侦听器何时终止?,erlang,ranch,Erlang,Ranch,我正在用Erlang编写一个TCP服务器,使用。客户端将在连接断开后立即重新连接,这意味着一种特定的故障模式是侦听器每秒启动和终止几十次 我想检测这种情况,并将统计数据发布到statsd,以便在生产中进行监控 所以,我可以用Ranch中的一些东西来监视侦听器何时被回收?或者我可以使用Erlang中的某些东西来监控整个节点的进程死亡率,而不必链接到每个进程,以及这些进程是由其他主管启动的,因此我没有对它们的引用?这不是对我问题的直接回答,但我选择,要有一个单独的进程定期轮询ranch\u服务器:c

我正在用Erlang编写一个TCP服务器,使用。客户端将在连接断开后立即重新连接,这意味着一种特定的故障模式是侦听器每秒启动和终止几十次

我想检测这种情况,并将统计数据发布到statsd,以便在生产中进行监控


所以,我可以用Ranch中的一些东西来监视侦听器何时被回收?或者我可以使用Erlang中的某些东西来监控整个节点的进程死亡率,而不必链接到每个进程,以及这些进程是由其他主管启动的,因此我没有对它们的引用?

这不是对我问题的直接回答,但我选择,要有一个单独的进程定期轮询ranch\u服务器:count\u connectionsmy\u ref,并将其发布到statsd。

我实际上会使用进程\u flagtrap\u exit执行此操作,在协议定义中为true。这样,您就可以在终止例程中更新进程statsd本身。最简单的方法可能是将您的协议处理程序转换为gen_服务器,因为gen_服务器会自动捕获回调,如下所示:请澄清这一点好吗?我很难理解协议是如何陷于崩溃的。