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
- 현재 지정된 큐에 있는 Cryostat 메시지 수입니다. 여기에는 예약, 페이지링 및 전송 중 메시지가 포함됩니다.
artemis_durable_persistent_size
- 현재 지정된 큐에 있는 Cryostat 메시지의 영구 크기입니다. 여기에는 예약, 페이지링 및 전송 중 메시지가 포함됩니다.
artemis_messages_acknowledged
- 큐가 생성된 이후 지정된 큐에서 확인된 메시지 수입니다.
artemis_messages_added
- 큐가 생성된 이후 지정된 큐에 추가된 메시지 수입니다.
artemis_message_count
- 현재 지정된 큐에 있는 메시지 수입니다. 여기에는 예약, 페이지링 및 전송 중 메시지가 포함됩니다.
artemis_messages_killed
- 큐가 생성된 이후 지정된 큐에서 제거된 메시지 수입니다. 메시지가 구성된 최대 전송 시도 수를 초과하면 브로커가 메시지를 종료합니다.
artemis_messages_expired
- 큐가 생성된 이후 지정된 큐에서 만료된 메시지 수입니다.
artemis_persistent_size
- 현재 지정된 큐에 있는 모든 메시지(비효율 및 실행 불가능한)의 영구 크기입니다. 여기에는 예약, 페이지링 및 전송 중 메시지가 포함됩니다.
artemis_scheduled_durable_message_count
- 지정된 큐의 예약된 메시지 수입니다.
artemis_scheduled_durable_persistent_size
- 지정된 큐의 영구 크기, 예약된 메시지입니다.
artemis_scheduled_message_count
- 지정된 큐의 예약된 메시지 수입니다.
artemis_scheduled_persistent_size
- 지정된 큐에 있는 예약된 메시지의 영구 크기입니다.
위에 나열되지 않은 상위 수준 브로커 메트릭의 경우 하위 수준 메트릭을 집계하여 이를 계산할 수 있습니다. 예를 들어 총 메시지 수를 계산하려면 브로커 배포의 모든 큐의 artemis_message_count
메트릭을 집계할 수 있습니다.
AMQ Broker를 온프레미스 배포하는 경우 브로커를 호스팅하는 JVM(Java Virtual Machine)에 대한 지표도 Prometheus 형식으로 내보냅니다. 이는 OpenShift Container Platform에서 AMQ Broker 배포에 적용되지 않습니다.