[인프라] RabbitMQ Prometheus 개별 Queue Metric 수집 방법

개요

  • RabbitMQ 에서 개별 Queue 정보를 Prometheus Metric 으로 수집 가능 한지 조사 진행합니다.

참고


RabbitMQ Per-Object

  • RabbitMQ 공식 홈페이지에서 확인 결과, Per-Object 를 이용하여 개별 Metric 정보를 제공받을 수 있다고 합니다.
  • Per-Obejct Metric 정보를 제공받으려면, prometheus.return_per_object_metrics = true 로 옵션을 설정해 주어야 합니다.


Per-Object 옵션 설정하기

  • 현재 RabbitMQ 를 Docker Container 로 실행중입니다.
  • Per-Object 옵션을 설정하려면, RabbitMQ 컨테이너 Bash 로 접근해야 합니다.
  • Bash 접근하는 명령어는 다음과 같습니다.
> docker exec -it rabbitmq bash
  • docker exec -it rabbitmq bash 명령어를 통해, RabbitMQ 컨테이너 내부로 접근할 수 있습니다.
  • rabbitmq 컨테이너 내부에 접근 완료 하였다면, rabbitmqctl eval 'application:set_env(rabbitmq_prometheus, return_per_object_metrics, true).' 명령어를 Command 에 직접 입력하여 명령어를 실행해 줍니다.
  • 위 명령어를 실행해야 prometheus.return_per_object_metrics = true 옵션이 true 로 설정됩니다.

Prometheus 에서 Per-Object 수집 확인

  • 앞서, RabbitMQ 컨테이너에 직접 접속 하여 prometheus.return_per_object_metrics = true 옵션을 설정 완료 하였습니다.
  • 그럼 실제로 Prometheus 에서 Per-Object Metric을 수집하는지 확인 진행합니다.
  • IP:9090 으로 접속하고, rabbitmq_queue_messages_unacked 메시지를 입력하여 개별 Queue 정보가 표시 되는지 확인합니다.
  • 확인 결과, 개별 Queue 정보가 수집 되는 것을 확인할 수 있습니다.


주의 사항

  • Per-Object 옵션을 true 로 설정하게 되면, 기존의 수집하던 Metric 정보 보다 더 많은 양의 Metric 정보를 수집하기 떄문에 CPU, Memory 에 부하가 발생할 수 있는 문제가 있습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY