다음을 통해 공유


MQTT Broker에 대한 메트릭

MQTT broker는 솔루션의 상태를 모니터링하고 분석하는 데 사용할 수 있는 일련의 관찰성 메트릭을 제공합니다. 이 문서에서는 MQTT 브로커에 사용할 수 있는 메트릭에 대해 설명합니다.

이러한 메트릭에 대한 옵션을 구성하려면 MQTT broker 진단 설정 구성을 참조 하세요.

MQTT Connect metriccategory 사용자 속성

클라이언트가 broker에 연결할 때 연결 패킷에 호출 metriccategory 된 사용자 속성을 포함할 수 있습니다. 그런 다음 브로커는 모든 세션 기반 메트릭(예: 게시 및 구독)에 태그를 지정 metriccategory category합니다.

예를 들어 자체 검사 프로브가 연결 metriccategory=broker_selftest되면 broker는 이러한 세션의 모든 메트릭에 태그를 지정 category=broker_selftest합니다.

이 기능을 사용하면 대시보드가 토픽을 사용하여 메트릭에 태그를 지정하는 높은 카디널리티 문제 없이 트래픽 원본을 표시할 수 있습니다.

세션에 태그가 지정 metriccategory 되지 category=uncategorized않았습니다.

메시징 메트릭

모든 메트릭에는 메트릭을 hostname 생성한 Pod를 식별하는 태그가 포함됩니다. 개별 메트릭 설명에 나열된 태그가 이 태그에 추가됩니다.

메트릭 설명 태그
aio_broker_publishes_received 프런트 엔드에서 이 메트릭은 클라이언트에서 수신되는 수신 게시 패킷 수를 나타냅니다. 백 엔드의 경우 이 메트릭은 프런트 엔드 노드에서 전송되는 내부 메시지 수를 나타냅니다. category
aio_broker_publishes_sent 프런트 엔드에서 이 메트릭은 클라이언트로 전송되는 나가는 게시 패킷 수를 나타냅니다. 여러 클라이언트가 동일한 토픽을 구독하는 경우 이 메트릭은 동일한 페이로드가 있더라도 전송된 각 메시지를 계산합니다. 이 개수는 ack 패킷을 계산하지 않습니다. 백 엔드의 경우 이 메트릭은 프런트 엔드 노드로 전송되는 내부 메시지 수를 나타냅니다. 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 이 메트릭은 Broker에 저장된 보존된 메시지 수를 계산합니다.
aio_broker_store_retained_bytes 이 메트릭은 broker에서 보존된 메시지를 통해 저장되는 바이트 수를 계산합니다.
aio_broker_store_will_messages 이 메트릭은 broker에 저장되는 메시지 수를 계산합니다.
aio_broker_store_will_bytes 이 메트릭은 broker의 메시지를 통해 저장되는 바이트 수를 계산합니다.
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 의 예상 p99 connect_latency_route_ms
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 의 예상 p99 subscribe_latency_route_ms
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 의 예상 p99 unsubscribe_latency_route_ms
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 게시 패킷을 보내고 PUBACK 패킷을 받는 자체 테스트 클라이언트 간의 시간 간격을 설명합니다. 이 메트릭은 경로당 생성됩니다. 메트릭은 PUBLISH에 성공한 경우에만 생성됩니다.
aio_broker_publish_latency_last_value_ms 의 예상 p99 publish_latency_route_ms
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 연산자 상태 메트릭

이 메트릭 집합은 broker카디널리티 상태를 추적합니다. 원하는 각 메트릭은 보고된 메트릭과 쌍을 이뤄 현재 상태를 표시합니다. 이러한 메트릭은 Kubernetes의 보고서와 다를 수 있는 브로커의 관점에서 정상 Pod 수를 나타냅니다.

예를 들어 백 엔드 노드가 다시 시작되지만 체인에 다시 연결되지 않는 경우 상태 보고서에 불일치가 있을 수 있습니다. Kubernetes는 Pod를 정상으로 보고할 수 있지만 브로커는 제대로 작동하지 않기 때문에 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이고 3개의 체인에 정상 노드가 4개이고 한 체인에 정상 노드가 2개만 있는 경우 2를 보고합니다 backend_vertical_chain_current .

연결 및 구독 메트릭

이러한 메트릭은 broker의 연결 및 구독에 대한 가시성을 제공합니다.

메트릭 설명 태그
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활성 연결이 있는 세션만 제외하고와 동일합니다. false이면 is_persistent 이 개수는 총 세션과 같아야 합니다.
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에서 실패한 디스크 전송 수를 보고합니다.

참고 항목

특정 백 엔드 버퍼 풀, 특히 "reader"라는 동적 버퍼 풀만 디스크 지원 메시지 버퍼 기능을 사용합니다. 이러한 풀은 구독자 메시지 큐를 저장하고 사용량이 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 이 메트릭은 저장소 전송 수신기에서 받은 ack 이벤트 메시지 수를 보고합니다. 이 수는 저장소 전송 발신자가 보낸 ack 이벤트 메시지 수와 같아야 합니다.
aio_broker_store_transfer_ack_event_sender_message_count 이 메트릭은 저장소 전송 발신자가 보낸 ack 이벤트 메시지 수를 보고합니다.
aio_broker_store_transfer_ack_event_sender_transfer_bytes 이 메트릭은 ack 이벤트에 대해 저장소 전송 발신자가 보낸 바이트 수를 보고합니다.
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 이 메트릭은 제거된 클라이언트 수를 보고합니다.