コンテンツにスキップ

ActiveMQ

インストールと設定

ActiveMQ の設定

ActiveMQ は Java で記述されており、jmx prometheus プラグインを使用してメトリクスを公開できます。

1.1 jmx-exporter をダウンロード

ダウンロード先:https://github.com/prometheus/jmx_exporter

1.2 ActiveMQ の jmx 設定を追加

ActiveMQ の conf ディレクトリに jmx.yaml ファイルを追加し、内容は以下のとおりです。

lowercaseOutputName: true
lowercaseOutputLabelNames: true
blacklistObjectNames:
  - "org.apache.activemq:clientId=*,*"
whitelistObjectNames:
  - "org.apache.activemq:destinationType=Queue,*"
  - "org.apache.activemq:destinationType=Topic,*"
  - "org.apache.activemq:type=Broker,brokerName=*"
  - "org.apache.activemq:type=Topic,brokerName=*"
  - "org.apache.activemq:type=Broker,brokerName=*,destinationType=Queue,destinationName=*,endpoint=*,clientId=*,consumerId=*"
  - "org.apache.activemq:type=Broker,brokerName=*,destinationType=Topic,destinationName=*,endpoint=*,clientId=*,consumerId=*"
rules:
- pattern: org.apache.activemq:type=Broker,brokerName=(\S+),destinationType=(\S+),destinationName=(\S+),endpoint=(\S+),clientId=(\S+),consumerId=(\S+),?>(\w+)
  name: "activemq_consumer_$7"
  labels:
    broker_name: "$1"
    destination_type: "$2"
    destination_name: "$3"
    endpoint: "$4"
    client_id: "$5"
    consumer_id: "$6"

- pattern: org.apache.activemq<type=Broker, brokerName=(\S*), destinationType=Queue, destinationName=(\S*)><>(\w+)
  name: activemq_queue_$3
  attrNameSnakeCase: true
  labels:
    broker_name: "$1"
    destination_name: "$2"
    destination_type: "Queue"

- pattern: org.apache.activemq<type=Broker, brokerName=(\S*), destinationType=Topic, destinationName=(\S*)><>(\w+)
  name: activemq_topic_$3
  attrNameSnakeCase: true
  labels:
    broker_name: "$1"
    destination_name: "$2"
    destination_type: "Topic"

- pattern: org.apache.activemq<type=Broker, brokerName=(\S*)><>CurrentConnectionsCount
  name: activemq_connections
  type: GAUGE
  labels:
    broker_name: "$1"
    connection_type: current
- pattern: org.apache.activemq<type=Broker, brokerName=(\S*)><>TotalConnectionsCount
  name: activemq_connections
  type: GAUGE
  labels:
    broker_name: "$1"
    connection_type: total

- pattern: org.apache.activemq<type=Broker, brokerName=(\S*)><>Total(.*)Count
  name: activemq_$2_total
  type: COUNTER
  labels:
    broker_name: "$1"

- pattern: org.apache.activemq<type=Broker, brokerName=(\S*)><>(.*)PercentUsage
  name: activemq_$2_usage_ratio
  type: GAUGE
  labels:
    broker_name: "$1"
  valueFactor: 0.01

1.3 起動パラメータを調整

ActiveMQ の bin ディレクトリで、setenv ファイルを修正し、次の内容を追加します。

ACTIVEMQ_OPTS="-javaagent:${ACTIVEMQ_BASE}/jmx_prometheus_javaagent-1.2.0.jar=8081:${ACTIVEMQ_BASE}/conf/jmx.yaml"

現在設定されているポート番号は 8081 です。後続の収集で使用するため、変更はできますが、収集側のポートと一致させる必要があります。

1.4 ActiveMQ を再起動

bin/activemq stop bin/activemq start

DataKit

コレクターを有効にする

prometheus コレクターを有効にして ActiveMQ のメトリクスを収集します。 DataKit インストールディレクトリconf.d/samples に移動し、次のコマンドを実行します。

cp prom.conf.sample activemq.conf

activemq.conf の内容を調整します。主に次の内容を変更します。

[[inputs.prom]]
  ## Exporter URLs.
  urls = ["http://localhost:8081/metrics"]
  source = "activemq"
  ...
  • 再起動

調整が完了したら、Datakit を再起動します。

datakit service -R

メトリクス

メトリクス名 説明 単位
connections 現在 ActiveMQ Broker に接続しているクライアント接続数
consumer_total これまでに作成されたコンシューマー(Consumer)の累計数
dequeue_total すべてのキュー/トピックで正常に消費されたメッセージ総数
enqueue_total すべてのキュー/トピックで受信した新規メッセージ総数
jobschedulerstore_usage_ratio JobSchedulerStore の使用率。永続タスクストレージの占有率を示します パーセント(%)
memory_usage_ratio ActiveMQ Broker が使用するメモリの設定上限に対する割合 パーセント(%)
message_total 現在 Broker 上に存在するすべてのメッセージ数(処理待ちおよび未確認のメッセージを含む)
producer_total これまでに作成されたメッセージプロデューサー(Producer)の累計数
queue_always_retroactive このキューで「常時遡及」機能が有効かどうか。新しいコンシューマーが過去のメッセージを取得できます ブール値(0/1)
queue_average_blocked_time リソース不足によりキューがブロックされた時間の平均値 ミリ秒(ms)
queue_average_enqueue_time メッセージがキューに入るまでの平均時間 ミリ秒(ms)
queue_average_message_size キュー内メッセージの平均バイトサイズ バイト(B)
queue_blocked_producer_warning_interval キュー満杯によりプロデューサーがブロックされた際の警告間隔 秒(s)
queue_blocked_sends キュー満杯によりプロデューサーがブロックされた累計回数
queue_cache_enabled このキューでキャッシュ機構が有効かどうか ブール値(0/1)
queue_consumer_count このキューを購読または監視しているコンシューマー数
queue_cursor_full キューのメッセージカーソル(Cursor)が最大容量に達しているかどうか ブール値(0/1)
queue_cursor_memory_usage キューカーソルが使用しているメモリ量 バイト(B)
queue_cursor_percent_usage キューカーソルのメモリ使用量が総割り当てメモリに占める割合 パーセント(%)
queue_dequeue_count このキューから正常に消費されたメッセージ数
queue_dispatch_count コンシューマーへの配信を試行した累計メッセージ数
queue_dlq デッドレターキュー(DLQ)に移されたメッセージ数
queue_duplicate_from_store_count ネットワークまたはその他の問題により、永続ストレージからメッセージが重複して読み込まれた回数
queue_enqueue_count このキューに追加されたメッセージ数
queue_expired_count TTL 設定により期限切れになったメッセージ数
queue_forward_count このキューがメッセージを他の宛先へ転送した累計回数
queue_in_flight_count コンシューマーによって処理中だが、まだ確認されていないメッセージ数
queue_max_audit_depth 重複メッセージ監査時の最大記録件数
queue_max_enqueue_time メッセージがキューに入るまでの最大時間 ミリ秒(ms)
queue_max_message_size キュー内の単一メッセージの最大バイトサイズ バイト(B)
queue_max_page_size ページング読み込み時の最大ページサイズ
queue_max_producers_to_audit 追跡および重複チェックに使用できるプロデューサーの最大数
queue_memory_limit このキューにメッセージ保存用として割り当てられる最大メモリ バイト(B)
queue_memory_percent_usage キューの現在のメモリ使用量が設定上限に占める割合 パーセント(%)
queue_memory_usage_byte_count キューが現在実際に使用しているメモリ量 バイト(B)
queue_memory_usage_portion キューの全体メモリ使用における割合 浮動小数点数(0〜1)
queue_min_enqueue_time メッセージがキューに入るまでの最小時間 ミリ秒(ms)
queue_min_message_size キュー内の単一メッセージの最小バイトサイズ バイト(B)
queue_paused このキューが一時停止状態かどうか ブール値(0/1)
queue_prioritized_messages このキューでメッセージ優先順位付け機能が有効かどうか ブール値(0/1)
queue_producer_count 現在このキューにメッセージを送信しているプロデューサー数
queue_producer_flow_control プロデューサーフロー制御が有効かどうか ブール値(0/1)
queue_queue_size 現在このキューで消費待ちのメッセージ総数
queue_send_duplicate_from_store_to_dlq 永続ストレージからデッドレターキューへ送られた重複メッセージ数
queue_store_message_size キュー内のすべてのメッセージが永続ストレージ上で占める総サイズ バイト(B)
queue_temp_usage_limit キューの一時メッセージストレージの最大制限 バイト(B)
queue_temp_usage_percent_usage キューの一時ストレージ使用量が設定上限に占める割合 パーセント(%)
queue_total_blocked_time キューがリソース不足によりブロックされた累計時間 ミリ秒(ms)
queue_use_cache このキューでキャッシュ機構が有効かどうか ブール値(0/1)
store_usage_ratio 主要メッセージストレージ(ファイルシステムやデータベースなど)の使用率 パーセント(%)
temp_usage_ratio 一時メッセージストレージの使用率 パーセント(%)
topic_always_retroactive このトピックで「常時遡及」機能が有効かどうか。新しいコンシューマーが過去のメッセージを取得できます ブール値(0/1)
topic_average_blocked_time リソース不足によりトピックがブロックされた時間の平均値 ミリ秒(ms)
topic_average_enqueue_time メッセージがトピックに入るまでの平均時間 ミリ秒(ms)
topic_average_message_size トピック内メッセージの平均バイトサイズ バイト(B)
topic_blocked_producer_warning_interval トピック満杯によりプロデューサーがブロックされた際の警告間隔 秒(s)
topic_blocked_sends トピック満杯によりプロデューサーがブロックされた累計回数
topic_cache_enabled このトピックでキャッシュ機構が有効かどうか ブール値(0/1)
topic_consumer_count このトピックを購読または監視しているコンシューマー数
topic_cursor_full トピックのメッセージカーソル(Cursor)が最大容量に達しているかどうか ブール値(0/1)
topic_cursor_memory_usage トピックカーソルが使用しているメモリ量 バイト(B)
topic_cursor_percent_usage トピックカーソルのメモリ使用量が総割り当てメモリに占める割合 パーセント(%)
topic_dequeue_count このトピックから正常に消費されたメッセージ数
topic_dispatch_count コンシューマーへの配信を試行した累計メッセージ数
topic_dlq デッドレタートピック(DLQ)に移されたメッセージ数
topic_duplicate_from_store_count ネットワークまたはその他の問題により、永続ストレージからメッセージが重複して読み込まれた回数
topic_enqueue_count このトピックに追加されたメッセージ数
topic_expired_count TTL 設定により期限切れになったメッセージ数
topic_forward_count このトピックがメッセージを他の宛先へ転送した累計回数
topic_in_flight_count コンシューマーによって処理中だが、まだ確認されていないメッセージ数
topic_max_audit_depth 重複メッセージ監査時の最大記録件数
topic_max_enqueue_time メッセージがトピックに入るまでの最大時間 ミリ秒(ms)
topic_max_message_size トピック内の単一メッセージの最大バイトサイズ バイト(B)
topic_max_page_size ページング読み込み時の最大ページサイズ
topic_max_producers_to_audit 追跡および重複チェックに使用できるプロデューサーの最大数
topic_memory_limit このトピックにメッセージ保存用として割り当てられる最大メモリ バイト(B)
topic_memory_percent_usage トピックの現在のメモリ使用量が設定上限に占める割合 パーセント(%)
topic_memory_usage_byte_count トピックが現在実際に使用しているメモリ量 バイト(B)
topic_memory_usage_portion トピックの全体メモリ使用における割合 浮動小数点数(0〜1)
topic_min_enqueue_time メッセージがトピックに入るまでの最小時間 ミリ秒(ms)
topic_min_message_size トピック内の単一メッセージの最小バイトサイズ バイト(B)
topic_prioritized_messages メッセージ優先順位付け機能が有効かどうか ブール値(0/1)
topic_producer_count 現在このトピックにメッセージを送信しているプロデューサー数
topic_producer_flow_control プロデューサーフロー制御が有効かどうか ブール値(0/1)
topic_queue_size 現在このトピックで消費待ちのメッセージ総数
topic_send_duplicate_from_store_to_dlq 永続ストレージからデッドレタートピックへ送られた重複メッセージ数
topic_store_message_size トピック内のすべてのメッセージが永続ストレージ上で占める総サイズ バイト(B)
topic_temp_usage_limit トピックの一時メッセージストレージの最大制限 バイト(B)
topic_temp_usage_percent_usage トピックの一時ストレージ使用量が設定上限に占める割合 パーセント(%)
topic_total_blocked_time トピックがリソース不足によりブロックされた累計時間 ミリ秒(ms)
topic_use_cache このトピックでキャッシュ機構が有効かどうか ブール値(0/1)

フィードバック

このページは役に立ちましたか?