你当前正在访问 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 | 此指标报告删除了多少个客户端。 |