5장. 브로커 런타임 메트릭 모니터링
AMQ Broker를 설치할 때 Prometheus 지표 플러그인이 설치에 포함됩니다. Prometheus는 확장 가능한 대규모 시스템을 모니터링하여 장기간에 걸쳐 과거 런타임 데이터를 저장하도록 구축된 소프트웨어입니다. 플러그인을 활성화하려면 브로커 구성을 수정해야 합니다. 활성화하면 플러그인은 브로커에 대한 런타임 지표를 수집하고 이를 Prometheus 형식으로 내보냅니다. 그런 다음 Prometheus를 사용하여 메트릭을 검토할 수 있습니다. Grafana와 같은 그래픽 도구를 사용하여 데이터의 고급 시각화를 구성할 수도 있습니다.
Prometheus 지표 플러그인을 사용하면 Prometheus 형식으로 브로커 지표를 수집하고 내보낼 수 있습니다. 그러나 Red Hat 은 Prometheus 자체의 설치 또는 구성이나 Grafana와 같은 시각화 툴을 지원하지 않습니다. Prometheus 또는 Grafana 설치, 구성 또는 실행에 대한 지원이 필요한 경우 커뮤니티 지원 및 문서와 같은 리소스의 제품 웹 사이트를 참조하십시오.
Prometheus 플러그인에서 수집한 브로커 메트릭 외에도 브로커 구성을 수정하여 브로커의 호스트 JVM(Java Virtual Machine)과 관련된 표준 메트릭 세트를 캡처할 수 있습니다. 특히 Garbage Collection(GC), 메모리 및 스레드에 대한 JVM 메트릭을 캡처할 수 있습니다.
다음 섹션은 다음과 같습니다.
5.1. 메트릭 개요
브로커 인스턴스의 상태 및 성능을 모니터링하려면 AMQ Broker에 Prometheus 플러그인을 사용하여 브로커 런타임 메트릭을 모니터링하고 저장할 수 있습니다. AMQ Broker Prometheus 플러그인은 브로커 런타임 지표를 Prometheus 형식으로 내보내 Prometheus 자체를 사용하여 데이터에 대한 쿼리를 시각화하고 실행할 수 있습니다.
Grafana와 같은 그래픽 도구를 사용하여 Prometheus 플러그인에서 수집하는 메트릭에 대한 고급 시각화 및 대시보드를 구성할 수도 있습니다.
플러그인이 Prometheus 형식으로 내보내는 메트릭은 다음과 같습니다.
브로커 메트릭
artemis_address_memory_usage
- 메모리 내 메시지에 대해 이 브로커의 모든 주소에서 사용하는 바이트 수입니다.
artemis_address_memory_usage_percentage
-
이 브로커의 모든 주소가
global-max-size
매개변수의 백분율로 사용하는 메모리입니다. artemis_connection_count
- 이 브로커에 연결된 고객 수입니다.
artemis_total_connection_count
- 이 브로커에 연결된 클라이언트의 수가 시작되었기 때문입니다.
주소 메트릭
artemis_routed_message_count
- 하나 이상의 큐 바인딩으로 라우팅되는 메시지 수입니다.
artemis_unrouted_message_count
- 큐 바인딩으로 라우팅 되지 않은 메시지 수입니다.
대기열 메트릭
artemis_consumer_count
- 지정된 큐의 메시지를 사용하는 클라이언트 수입니다.
artemis_delivering_durable_message_count
- 지정된 큐가 현재 소비자에게 전달되고 있는 불안정한 메시지 수입니다.
artemis_delivering_durable_persistent_size
- 지정된 큐가 현재 소비자에게 전달되고 있는 불완전한 메시지의 영구 크기입니다.
artemis_delivering_message_count
- 지정된 큐가 현재 소비자에게 전달되고 있는 메시지 수입니다.
artemis_delivering_persistent_size
- 지정된 큐가 현재 소비자에게 전달되고 있는 메시지의 영구 크기입니다.
artemis_durable_message_count
- 지정된 큐에 현재 없는 메시지 수입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_durable_persistent_size
- 현재 지정된 큐에 있는 미완성 메시지의 영구 크기입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_messages_acknowledged
- 대기열이 생성된 이후 지정된 큐에서 확인되는 메시지 수입니다.
artemis_messages_added
- 큐가 생성된 이후 지정된 큐에 추가된 메시지 수입니다.
artemis_message_count
- 지정된 큐에 현재 메시지 수입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_messages_killed
- 큐가 생성된 이후 지정된 큐에서 삭제된 메시지 수입니다. 메시지가 구성된 최대 전달 시도 수를 초과하면 브로커가 메시지를 종료합니다.
artemis_messages_expired
- 큐가 생성된 이후 지정된 큐에서 만료된 메시지 수입니다.
artemis_persistent_size
- 현재 지정된 큐에 있는 모든 메시지의 영구 크기(아니요 및 비내화 가능)입니다. 여기에는 scheduled, paged, in-delivery 메시지가 포함됩니다.
artemis_scheduled_durable_message_count
- 지정된 큐에서 미완성, 예약된 메시지 수입니다.
artemis_scheduled_durable_persistent_size
- 지정된 큐에 위치하고 예약된 메시지의 영구 크기입니다.
artemis_scheduled_message_count
- 지정된 큐에서 예약된 메시지 수입니다.
artemis_scheduled_persistent_size
- 지정된 큐에서 예약된 메시지의 영구 크기입니다.
위에 나열되지 않은 고급 브로커 메트릭의 경우 하위 수준 메트릭을 집계하여 이러한 메트릭을 계산할 수 있습니다. 예를 들어 총 메시지 수를 계산하려면 브로커 배포의 모든 대기열에서 artemis_message_count
지표를 집계할 수 있습니다.
AMQ Broker를 온프레미스 배포를 위해 브로커를 호스팅하는 Java 가상 머신(JVM)에 대한 메트릭도 Prometheus 형식으로 내보냅니다. 이는 OpenShift Container Platform의 AMQ Broker 배포에 적용되지 않습니다.