你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

MQTT 中转站的指标

MQTT 中转站提供了一组可观测性指标,可用于监视和分析解决方案的运行状况。 本文介绍 MQTT 中转站的可用指标。

若要配置这些指标的选项,请参阅 配置 MQTT 中转站诊断设置

MQTT Connect metriccategory 用户属性

当客户端连接到中转站时,它可以在连接数据包中包含一个调用 metriccategory 的用户属性。 然后,中转站会标记所有会话驱动的指标(如发布和订阅),并将其 metriccategory 标记为 category.

例如,如果自检查探测连接 metriccategory=broker_selftest,中转站会标记这些会话 category=broker_selftest中的所有指标。

此功能可帮助仪表板显示流量源,而没有使用主题标记指标的高基数问题。

不带 a metriccategory 的会话标记为 category=uncategorized.

消息传送指标

所有指标都包含 hostname 标记,用于标识生成指标的 Pod。 各个指标说明中列出的标记将添加到此标记。

跃点数 说明 标记
aio_broker_publishes_received 在前端上,此指标表示从客户端接收的传入发布数据包数。 对于后端,此指标表示从前端节点发送的内部消息数。 category
aio_broker_publishes_sent 在前端上,此指标表示发送到客户端的传出发布数据包数。 如果订阅了同一主题的多个客户端,则即使发送的每个消息具有相同的有效负载,此指标也会对发送的每个消息进行计数。 此计数不对确认数据包进行计数。 对于后端,此指标表示发送到前端节点的内部消息数。 category
aio_broker_payload_bytes_received 接收的所有发布的有效负载的总和。 此总和不包括属性的大小或发布数据包本身。 category
aio_broker_payload_bytes_sent 发送的所有发布的有效负载的总和。 此总和不包括属性的大小或发布数据包本身。 category
aio_broker_authentication_successes 此指标计算成功的身份验证请求数。 category
aio_broker_authentication_failures 此指标计算失败的身份验证请求数。 对于无错误身份验证服务器, aio_broker_authentication_successes + aio_broker_authentication_failures = aio_broker_publishes_received = publishes_sent category
aio_broker_authentication_deny 此指标计算被拒绝的身份验证请求数。 category
aio_broker_authorization_allow 此指标计数已成功授权请求。 此指标应始终小于或等于 aio_broker_authentication_successes category
aio_broker_authorization_deny 此指标对被拒绝的授权请求进行计数。 此指标应始终小于或等于 aio_broker_authentication_successes category
aio_broker_qos0_messages_dropped 此指标出于任何原因计算已删除的 QoS0 消息数。 类别 direction 为或 incoming outgoing category, direction
aio_broker_backpressure_packets_rejected 此指标计算由于反压而被拒绝的数据包数。 如果系统容量为 97%,则会拒绝数据包。
aio_broker_store_retained_messages 此指标计算在中转站上存储的保留消息数。
aio_broker_store_retained_bytes 此指标计算通过中转站上的保留消息存储的字节数。
aio_broker_store_will_messages 此指标计算在中转站上存储的消息数。
aio_broker_store_will_bytes 此指标计算通过中转站上的消息存储的字节数。
aio_broker_number_of_routes 路由计数。
aio_broker_connect_route_replication_correctness 描述是否在特定路由中正确复制了来自自测试客户端的连接请求。
aio_broker_connect_latency_route_ms 描述自测试客户端发送 CONNECT 数据包和接收 CONNACK 数据包之间的时间间隔。 此指标按路由生成。 仅当 CONNECT 成功时,才会生成指标。
aio_broker_connect_latency_last_value_ms connect_latency_route_ms 的估计 p99。
aio_broker_connect_latency_mu_ms connect_latency_route_ms 的平均值。
aio_broker_connect_latency_sigma_ms connect_latency_route_ms 的标准偏差。
aio_broker_subscribe_route_replication_correctness 描述是否在特定路由中正确复制了来自自测试客户端的订阅请求。
aio_broker_subscribe_latency_route_ms 描述自测试客户端发送 SUBSCRIBE 数据包和接收 SUBACK 数据包之间的时间间隔。 此指标按路由生成。 仅当 SUBSCRIBE 成功时,才会生成指标。
aio_broker_subscribe_latency_last_value_ms subscribe_latency_route_ms 的估计 p99。
aio_broker_subscribe_latency_mu_ms subscribe_latency_route_ms 的平均值。
aio_broker_subscribe_latency_sigma_ms subscribe_latency_route_ms 的标准偏差。
aio_broker_unsubscribe_route_replication_correctness 描述是否在特定路由中正确复制了来自自测试客户端的取消订阅请求。
aio_broker_unsubscribe_latency_route_ms 描述自测试客户端发送 UNSUBSCRIBE 数据包和接收 UNSUBACK 数据包之间的时间间隔。 此指标按路由生成。 仅当 UNSUBSCRIBE 成功时,才会生成指标。
aio_broker_unsubscribe_latency_last_value_ms unsubscribe_latency_route_ms 的估计 p99。
aio_broker_unsubscribe_latency_mu_ms unsubscribe_latency_route_ms 的平均值。
aio_broker_unsubscribe_latency_sigma_ms subscribe_latency_route_ms 的标准偏差。
aio_broker_publish_route_replication_correctness 描述是否在特定路由中正确复制了来自自测试客户端的取消订阅请求。
aio_broker_publish_latency_route_ms 描述自测试客户端发送 PUBLISH 数据包和接收 PUBACK 数据包之间的时间间隔。 此指标按路由生成。 仅当 PUBLISH 成功时,才会生成指标。
aio_broker_publish_latency_last_value_ms publish_latency_route_ms 的估计 p99。
aio_broker_publish_latency_mu_ms publish_latency_route_ms 的平均值。
aio_broker_publish_latency_sigma_ms publish_latency_route_ms 的标准偏差。
aio_broker_payload_check_latency_last_value_ms 最后一个值的延迟检查的估计 p99。
aio_broker_payload_check_latency_mu_ms 延迟检查的平均值。
aio_broker_payload_check_latency_sigma_ms 有效负载延迟的标准偏差。
aio_broker_payload_check_total_messages_lost 有效负载总消息丢失计数。
aio_broker_payload_check_total_messages_received 收到的消息总数的计数。
aio_broker_payload_check_total_messages_sent 发送的消息总数的计数。
aio_broker_ping_correctness 描述自测试客户端的 ping 是否正常工作。
aio_broker_ping_latency_last_value_ms 最后一个值的 ping 操作的估计 p99。
aio_broker_ping_latency_mu_ms ping 检查的平均值。
aio_broker_ping_latency_route_ms 特定路由的 ping 延迟(以毫秒为单位)。
aio_broker_ping_latency_sigma_ms ping 操作延迟的标准偏差。
aio_broker_publishes_processed_count 描述已发布消息的已处理计数。
aio_broker_publishes_received_per_second 计算每秒接收的已发布消息数。
aio_broker_publishes_sent_per_second 计算每秒接收的已发送消息数。

Broker 操作员运行状况指标

这组指标跟踪 中转站的基数状态。 每个所需指标与报告指标配对以显示当前状态。 这些指标表示从中转站的角度来看,运行状况正常的 Pod 数可能与 Kubernetes 的报告不同。

例如,如果后端节点重启但未重新连接到其链,则运行状况报告可能存在差异。 Kubernetes 可能会将 Pod 报告为正常,而中转站会将其报告为关闭状态,因为它无法正常运行。

所需指标 报告指标
aio_broker_backend_replicas aio_broker_backend_replicas_current
aio_broker_backend_vertical_chain aio_broker_backend_vertical_chain_current
aio_broker_frontend_replicas aio_broker_frontend_replicas_current

注意

backend_vertical_chain_current 报告最不正常链中的正常节点数。 例如,如果预期的链长度为 4,并且三个链有 4 个正常节点,而一个链只有 2 个正常节点, backend_vertical_chain_current 则报告 2。

连接和订阅指标

这些指标为中转站上的连接和订阅提供可观测性。

跃点数 说明 标记
aio_broker_total_sessions 在前端和单节点代理上,此指标表示存在多少个客户端会话。 此计数不包括断开连接的持久性会话,因为客户端可能会重新连接到其他前端节点。 对于后端,此指标表示其与链中的其他节点的连接。 在操作员上,此指标表示连接了多少个前端节点和后端节点。 对于身份验证服务器,此指标表示连接的前端辅助角色数(每个线程每个前端 1 个)。 mqtt_version:[v3/v5]
仅后端节点标记:
is_tail:[true/false]
chain_id:[n]
aio_broker_store_total_sessions 此指标表示后端链中的会话数。 同一链中的后端节点应报告相同数量的会话,每个链的总和应等于前端total_sessions的总和。 is_persistent:[true/false]
is_tail:[true/false]
chain_id:[n]
aio_broker_connected_sessions 同样 aio_broker_total_sessions,只有具有活动连接的会话除外。
aio_broker_store_connected_sessions 同样 aio_broker_store_total_sessions,只有具有活动连接的会话除外。 如果 is_persistent 为 false,则此计数应等于会话总数。
aio_broker_total_subscriptions 在前端上,此指标表示当前连接的会话拥有的订阅数。 此计数不包括断开连接的持久性会话,因为客户端可能会重新连接到其他前端节点。 在运算符上,此指标表示前端和后端节点。 对于身份验证服务器,此指标表示连接的前端辅助角色数(每个线程每个前端 1 个)。
aio_broker_store_total_subscriptions 此指标表示后端链中的订阅数。 同一链中的后端节点应报告相同数量的订阅。 此计数不一定与前端 total_subscriptions匹配,因为此指标也会跟踪断开连接的持久会话。

状态存储指标

这组指标跟踪状态存储的总体状态

跃点数 说明 标记
aio_broker_state_store_deletions 此指标计算收到的删除密钥请求数,包括成功删除和错误。
aio_broker_state_store_insertions 此指标计算收到的新密钥插入请求数,包括成功插入和错误。
aio_broker_state_store_keynotify_requests 此指标计算接收的监视密钥更改(KEYNOTIFY)的请求数,包括成功的修改和错误。
aio_broker_state_store_modifications 此指标计算收到的修改密钥请求数,包括成功的修改和错误。
aio_broker_state_store_notifications_sent 此指标计算状态存储在密钥值更改和客户端通过 KEYNOTIFY 注册时发送的通知消息数。
aio_broker_state_store_retrievals 此指标计算收到的键值检索请求数,包括成功检索和错误。

磁盘支持的消息缓冲区指标

这些指标为 磁盘支持的消息缓冲区提供可观测性。

跃点数 说明 标记
aio_broker_buffer_pool_used_percent 报告单个前端或后端缓冲池的已用缓冲区百分比。 name
aio_broker_disk_transfers_completed 报告在给定后端 Pod 上完成的磁盘传输数。 跟踪从缓冲池传输到磁盘的发布总数。
aio_broker_disk_transfers_failed 报告给定后端 Pod 上失败的磁盘传输数。

注意

只有某些后端缓冲池(特别是名为“读取器”的动态池)使用磁盘支持的消息缓冲区功能。 当使用量超过 75% 时,这些池存储订阅服务器消息队列并将元素传输到磁盘。

故障恢复指标

跃点数 说明
aio_broker_store_transfer_batch_receiver_message_count 此指标报告存储传输接收方接收的消息数。 此计数应等于存储传输发送方发送的邮件数。
aio_broker_store_transfer_batch_sender_transfer_bytes 此指标报告存储传输发送方发送的字节数。
aio_broker_store_transfer_batch_sender_message_count 此指标报告存储传输发送方发送的消息数。
aio_broker_store_transfer_ack_event_receiver_message_count 此指标报告存储传输接收器收到的确认事件消息数。 此计数应等于存储传输发送方发送的确认事件消息数。
aio_broker_store_transfer_ack_event_sender_message_count 此指标报告存储传输发送方发送的确认事件消息数。
aio_broker_store_transfer_ack_event_sender_transfer_bytes 此指标报告存储传输发送方为确认事件发送的字节数。
aio_broker_store_transfer_patch_tracker_receiver_message_count 此指标报告存储传输接收器收到的修补程序跟踪器消息数。 此计数应等于存储传输发送方发送的修补程序跟踪器消息数。
aio_broker_store_transfer_patch_tracker_sender_message_count 此指标报告存储传输发送方发送的修补程序跟踪器消息数。

开发人员指标

这些指标可用于开发人员调试。

跃点数 说明
aio_broker_patch_tracker_held_patches 此指标报告链中节点当前保存的修补程序数。
aio_broker_ack_handler_pending_transactions 此指标报告 ack 处理程序中当前挂起的事务数。
aio_broker_client_connected 此指标报告连接了多少个客户端。
aio_broker_client_disconnected 此指标报告断开连接的客户端数。
aio_broker_client_removed 此指标报告删除了多少个客户端。