2

我有一个在 docker 容器中运行的 Vernemq 代理,我想知道给定时间点的活动客户端数量。我目前正在使用该$SYS/broker/queue/processes主题来获取活动进程,但我不确定这是否正确获取连接客户端数量的指标。我浏览了mqttSYS主题,它说我可以通过主题获取当前连接的客户端的数量。$SYS/broker/clients/connected但是,当我订阅该主题时,我没有看到任何消息。Vernemq 是否需要任何配置更改来获取连接的客户端?或者是否有任何其他指标可以用于相同的?

docker compose 文件如下所示

container_name:
    image: vernemq/vernemq:1.10.2-1
    environment:
      DOCKER_VERNEMQ_LOG__CONSOLE: 'console'
      DOCKER_VERNEMQ_LOG__CONSOLE__LEVEL: 'debug'
      DOCKER_VERNEMQ_ALLOW_ANONYMOUS: 'on'
      DOCKER_VERNEMQ_SYSTREE_INTERVAL: '5000'

谢谢。

4

1 回答 1

0

AFAIK VerneMQ 没有直接衡量 MQTT 客户端数量的指标,但您应该能够从指标中减去socket_close指标socket_open以获得当前连接的客户端数量。这些指标也应该可以通过$SYS。有关可用指标的更多信息,另请参阅https://docs.vernemq.com/monitoring/introduction 。

请注意,您还可以转到状态页面以快速了解已连接客户端的数量和整体集群状态:https ://docs.vernemq.com/monitoring/status

请注意,该$SYS主题不在 MQTT 规范中,因此不同的代理实现它的方式不同 - 正如您已经发现的那样;)

于 2020-05-13T19:41:18.313 回答