Supported OS Linux Windows Mac OS

インテグレーションバージョン5.3.2

RabbitMQ ダッシュボード

概要

このチェックは、Datadog Agent を通じて RabbitMQ を監視します。

  • キューサイズ、コンシューマー数、未承認メッセージ、再配信メッセージなどのキューベースの統計を追跡できます。
  • 待機プロセス、使用されたソケット、使用されたファイルディスクリプタなどのノードベースの統計を追跡できます。
  • vhost の稼働状態や接続数を監視できます。

セットアップ

インストール

RabbitMQ チェックは Datadog Agent パッケージに含まれています。サーバーに追加でインストールする必要はありません。

構成

RabbitMQ は、RabbitMQ Management PluginRabbitMQ Prometheus Plugin の 2 つの方法でメトリクスを公開します。Datadog インテグレーションは両方のバージョンをサポートしています。使用するバージョンに関連する構成説明については、このファイルの指示に従ってください。また、Datadog インテグレーションには、それぞれのバージョンに対応するすぐに使えるダッシュボードとモニターが付属しており、ダッシュボードとモニターのタイトルで区別されています。

RabbitMQ の準備

RabbitMQ Prometheus Plugin

RabbitMQ v3.8 から RabbitMQ Prometheus Plugin がデフォルトで有効になっています。

RabbitMQ の Prometheus プラグインバージョンは、Datadog Agent による Python 3 のサポートが必要なため、Agent v6 以降でのみサポート可能です。Prometheus プラグインバージョンのインテグレーションを構成する前に、Agent がアップデートされていることを確認してください。

インスタンス構成で prometheus_plugin セクションを設定します。prometheus_plugin オプションを使用する場合、Management Plugin に関連する設定は無視されます。

instances:
  - prometheus_plugin:
      url: http://<HOST>:15692

これにより、1 つの RabbitMQ ノードで /metrics エンドポイントのスクレイピングが可能になります。また、Datadog は /metrics/detailed エンドポイントからもデータを収集することができます。

instances:
  - prometheus_plugin:
      url: http://<HOST>:15692
      unaggregated_endpoint: detailed?family=queue_coarse_metrics

 これにより、/metrics/detailed エンドポイントをスクレイピングして、キューの粗いメトリクスを収集することができます。

RabbitMQ Management Plugin

プラグインを有効化します。Agent ユーザーは、少なくともmonitoringタグとこれらの必要な権限が必要です。

アクセス許可コマンド
conf^aliveness-test$
write^amq\.default$
read.*

次のコマンドで、デフォルトの vhost 用に Agent ユーザーを作成します。

rabbitmqctl add_user datadog <シークレット>
rabbitmqctl set_permissions  -p / datadog "^aliveness-test$" "^amq\.default$" ".*"
rabbitmqctl set_user_tags datadog monitoring

ここで、/ はデフォルトのホストを表します。これを、指定した仮想ホスト名に設定してください。詳細については、RabbitMQ のドキュメントを参照してください。

ホスト

ホストで実行中の Agent に対してこのチェックを構成するには

メトリクスの収集
  1. RabbitMQ メトリクスの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの rabbitmq.d/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル rabbitmq.d/conf.yaml を参照してください。

    : Agent は、デフォルトですべてのキュー、vhost、ノードをチェックしますが、リストまたは正規表現を指定してこれを制限できます。例については、rabbitmq.d/conf.yaml を参照してください。

  2. Agent を再起動します

ログ収集

Agent バージョン 6.0 以降で利用可能

  1. デフォルトのログファイルの場所を変更するには、RABBITMQ_LOGS 環境変数を設定するか、以下の行を RabbitMQ 構成ファイル (/etc/rabbitmq/rabbitmq.conf) に追加します。

      log.dir = /var/log/rabbit
      log.file = rabbit.log
    
  2. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
    
  3. RabbitMQ ログの収集を開始するには、rabbitmq.d/conf.yaml ファイルの logs セクションを編集します。

    logs:
      - type: file
        path: /var/log/rabbit/*.log
        source: rabbitmq
        service: myservice
        log_processing_rules:
          - type: multi_line
            name: logs_starts_with_equal_sign
            pattern: "="
    
  4. Agent を再起動します

コンテナ化

Datadog の Docker コンテナオートディスカバリーを活用することができます。RabbitMQ 固有の設定は、auto_conf.yaml の設定例を参照してください。

Kubernetes などのコンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

メトリクスの収集
パラメーター
<INTEGRATION_NAME>rabbitmq
<INIT_CONFIG>空白または {}
<INSTANCE_CONFIG>{"prometheus_plugin": {"url": "http://%%host%%:15692"}}
ログ収集

Agent v6.0 以降で利用可能

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。

パラメーター
<LOG_CONFIG>{"source": "rabbitmq", "service": "rabbitmq", "log_processing_rules": [{"type":"multi_line","name":"logs_starts_with_equal_sign", "pattern": "="}]}

検証

Agent の status サブコマンドを実行し、Checks セクションで rabbitmq を探します。

収集データ

メトリクス

rabbitmq.alarms.file_descriptor_limit
(gauge)
[OpenMetrics] is 1 if file descriptor limit alarm is in effect
rabbitmq.alarms.free_disk_space.watermark
(gauge)
[OpenMetrics] is 1 if free disk space watermark alarm is in effect
rabbitmq.alarms.memory_used_watermark
(gauge)
[OpenMetrics] is 1 if VM memory watermark alarm is in effect
rabbitmq.auth_attempts.count
(count)
[OpenMetrics] Total number of authentication attempts
rabbitmq.auth_attempts.failed.count
(count)
[OpenMetrics] Total number of failed authentication attempts
rabbitmq.auth_attempts.succeeded.count
(count)
[OpenMetrics] Total number of successful authentication attempts
rabbitmq.build_info
(gauge)
[OpenMetrics] RabbitMQ & Erlang/OTP version info
rabbitmq.channel.acks_uncommitted
(gauge)
[OpenMetrics] Message acknowledgements in a transaction not yet committed
rabbitmq.channel.consumers
(gauge)
[OpenMetrics] Consumers on a channel
rabbitmq.channel.get.ack.count
(count)
[OpenMetrics] Total number of messages fetched with basic.get in manual acknowledgement mode
rabbitmq.channel.get.count
(count)
[OpenMetrics] Total number of messages fetched with basic.get in automatic acknowledgement mode
Shown as message
rabbitmq.channel.get.empty.count
(count)
[OpenMetrics] Total number of times basic.get operations fetched no message
rabbitmq.channel.messages.acked.count
(count)
[OpenMetrics] Total number of messages acknowledged by consumers
Shown as message
rabbitmq.channel.messages.confirmed.count
(count)
[OpenMetrics] Total number of messages published into an exchange and confirmed on the channel
Shown as message
rabbitmq.channel.messages.delivered.ack.count
(count)
[OpenMetrics] Total number of messages delivered to consumers in manual acknowledgement mode
Shown as message
rabbitmq.channel.messages.delivered.count
(count)
[OpenMetrics] Total number of messages delivered to consumers in automatic acknowledgement mode
Shown as message
rabbitmq.channel.messages.published.count
(count)
[OpenMetrics] Total number of messages published into an exchange on a channel
Shown as message
rabbitmq.channel.messages.redelivered.count
(count)
[OpenMetrics] Total number of messages redelivered to consumers
Shown as message
rabbitmq.channel.messages.unacked
(gauge)
[OpenMetrics] Delivered but not yet acknowledged messages
Shown as message
rabbitmq.channel.messages.uncommitted
(gauge)
[OpenMetrics] Messages received in a transaction but not yet committed
Shown as message
rabbitmq.channel.messages.unconfirmed
(gauge)
[OpenMetrics] Published but not yet confirmed messages
Shown as message
rabbitmq.channel.messages.unroutable.dropped.count
(count)
[OpenMetrics] Total number of messages published as non-mandatory into an exchange and dropped as unroutable
Shown as message
rabbitmq.channel.messages.unroutable.returned.count
(count)
[OpenMetrics] Total number of messages published as mandatory into an exchange and returned to the publisher as unroutable
Shown as message
rabbitmq.channel.prefetch
(gauge)
[OpenMetrics] Total limit of unacknowledged messages for all consumers on a channel
Shown as message
rabbitmq.channel.process_reductions.count
(count)
[OpenMetrics] Total number of channel process reductions
rabbitmq.channels
(gauge)
[OpenMetrics] Channels currently open
rabbitmq.channels.closed.count
(count)
[OpenMetrics] Total number of channels closed
rabbitmq.channels.opened.count
(count)
[OpenMetrics] Total number of channels opened
rabbitmq.cluster.exchange_bindings
(gauge)
[OpenMetrics] Number of bindings for an exchange. This value is cluster-wide.
rabbitmq.cluster.exchange_name
(gauge)
[OpenMetrics] Enumerates exchanges without any additional info. This value is cluster-wide. A cheaper alternative to exchange_bindings
rabbitmq.cluster.vhost_status
(gauge)
[OpenMetrics] Whether a given vhost is running
rabbitmq.connection.channels
(gauge)
[OpenMetrics] Channels on a connection
rabbitmq.connection.incoming_bytes.count
(count)
[OpenMetrics] Total number of bytes received on a connection
Shown as byte
rabbitmq.connection.incoming_packets.count
(count)
[OpenMetrics] Total number of packets received on a connection
Shown as packet
rabbitmq.connection.outgoing_bytes.count
(count)
[OpenMetrics] Total number of bytes sent on a connection
Shown as byte
rabbitmq.connection.outgoing_packets.count
(count)
[OpenMetrics] Total number of packets sent on a connection
Shown as packet
rabbitmq.connection.pending_packets
(gauge)
[OpenMetrics] Number of packets waiting to be sent on a connection
Shown as packet
rabbitmq.connection.process_reductions.count
(count)
[OpenMetrics] Total number of connection process reductions
rabbitmq.connections
(gauge)
[OpenMetrics, Management CLI] Number of current connections to a given rabbitmq vhost, tagged 'rabbitmq_vhost:' Connections currently open
Shown as connection
rabbitmq.connections.closed.count
(count)
[OpenMetrics] Total number of connections closed or terminated
rabbitmq.connections.opened.count
(count)
[OpenMetrics] Total number of connections opened
rabbitmq.connections.state
(gauge)
Number of connections in the specified connection state
Shown as connection
rabbitmq.consumer_prefetch
(gauge)
[OpenMetrics] Limit of unacknowledged messages for each consumer
rabbitmq.consumers
(gauge)
[OpenMetrics] Consumers currently connected
rabbitmq.disk_space.available_bytes
(gauge)
[OpenMetrics] Disk space available in bytes
Shown as byte
rabbitmq.disk_space.available_limit_bytes
(gauge)
[OpenMetrics] Free disk space low watermark in bytes
Shown as byte
rabbitmq.erlang.gc.reclaimed_bytes.count
(count)
[OpenMetrics] Total number of bytes of memory reclaimed by Erlang garbage collector
Shown as byte
rabbitmq.erlang.gc.runs.count
(count)
[OpenMetrics] Total number of Erlang garbage collector runs
rabbitmq.erlang.mnesia.committed_transactions.count
(count)
[OpenMetrics] Number of committed transactions.
Shown as transaction
rabbitmq.erlang.mnesia.failed_transactions.count
(count)
[OpenMetrics] Number of failed (i.e. aborted) transactions.
Shown as transaction
rabbitmq.erlang.mnesia.held_locks
(gauge)
[OpenMetrics] Number of held locks.
rabbitmq.erlang.mnesia.lock_queue
(gauge)
[OpenMetrics] Number of transactions waiting for a lock.
Shown as transaction
rabbitmq.erlang.mnesia.logged_transactions.count
(count)
[OpenMetrics] Number of transactions logged.
Shown as transaction
rabbitmq.erlang.mnesia.memory_usage_bytes
(gauge)
[OpenMetrics] Total number of bytes allocated by all mnesia tables
Shown as byte
rabbitmq.erlang.mnesia.restarted_transactions.count
(count)
[OpenMetrics] Total number of transaction restarts.
Shown as transaction
rabbitmq.erlang.mnesia.tablewise_memory_usage_bytes
(gauge)
[OpenMetrics] Number of bytes allocated per mnesia table
Shown as byte
rabbitmq.erlang.mnesia.tablewise_size
(gauge)
[OpenMetrics] Number of rows present per table
rabbitmq.erlang.mnesia.transaction_coordinators
(gauge)
[OpenMetrics] Number of coordinator transactions.
Shown as transaction
rabbitmq.erlang.mnesia.transaction_participants
(gauge)
[OpenMetrics] Number of participant transactions.
Shown as transaction
rabbitmq.erlang.net.ticktime_seconds
(gauge)
[OpenMetrics] Inter-node heartbeat interval
Shown as second
rabbitmq.erlang.processes_limit
(gauge)
[OpenMetrics] Erlang processes limit
Shown as process
rabbitmq.erlang.processes_used
(gauge)
[OpenMetrics] Erlang processes used
Shown as process
rabbitmq.erlang.scheduler.context_switches.count
(count)
[OpenMetrics] Total number of Erlang scheduler context switches
rabbitmq.erlang.scheduler.run_queue
(gauge)
[OpenMetrics] Erlang scheduler run queue
rabbitmq.erlang.uptime_seconds
(gauge)
[OpenMetrics] Node uptime
Shown as second
rabbitmq.erlang.vm.allocators
(gauge)
[OpenMetrics] Allocated (carrierssize) and used (blockssize) memory for the different allocators in the VM. See erts_alloc(3).
rabbitmq.erlang.vm.atom_count
(gauge)
[OpenMetrics] The number of atom currently existing at the local node.
rabbitmq.erlang.vm.atom_limit
(gauge)
[OpenMetrics] The maximum number of simultaneously existing atom at the local node.
rabbitmq.erlang.vm.dirty_cpu_schedulers
(gauge)
[OpenMetrics] The number of scheduler dirty CPU scheduler threads used by the emulator.
Shown as thread
rabbitmq.erlang.vm.dirty_cpu_schedulers_online
(gauge)
[OpenMetrics] The number of dirty CPU scheduler threads online.
Shown as thread
rabbitmq.erlang.vm.dirty_io_schedulers
(gauge)
[OpenMetrics] The number of scheduler dirty I/O scheduler threads used by the emulator.
Shown as thread
rabbitmq.erlang.vm.dist.node_queue_size_bytes
(gauge)
[OpenMetrics] The number of bytes in the output distribution queue. This queue sits between the Erlang code and the port driver.
Shown as byte
rabbitmq.erlang.vm.dist.node_state
(gauge)
[OpenMetrics] The current state of the distribution link. The state is represented as a numerical value where pending=1',up_pending=2' and `up=3'.
rabbitmq.erlang.vm.dist.port_input_bytes
(gauge)
[OpenMetrics] The total number of bytes read from the port.
Shown as byte
rabbitmq.erlang.vm.dist.port_memory_bytes
(gauge)
[OpenMetrics] The total number of bytes allocated for this port by the runtime system. The port itself can have allocated memory that is not included.
Shown as byte
rabbitmq.erlang.vm.dist.port_output_bytes
(gauge)
[OpenMetrics] The total number of bytes written to the port.
Shown as byte
rabbitmq.erlang.vm.dist.port_queue.size_bytes
(gauge)
[OpenMetrics] The total number of bytes queued by the port using the ERTS driver queue implementation.
Shown as byte
rabbitmq.erlang.vm.dist.proc.heap_size_words
(gauge)
[OpenMetrics] The size in words of the youngest heap generation of the process. This generation includes the process stack. This information is highly implementation-dependent, and can change if the implementation changes.
rabbitmq.erlang.vm.dist.proc.memory_bytes
(gauge)
[OpenMetrics] The size in bytes of the process. This includes call stack, heap, and internal structures.
Shown as byte
rabbitmq.erlang.vm.dist.proc.message_queue_len
(gauge)
[OpenMetrics] The number of messages currently in the message queue of the process.
Shown as message
rabbitmq.erlang.vm.dist.proc.min_bin_vheap_size_words
(gauge)
[OpenMetrics] The minimum binary virtual heap size for the process.
rabbitmq.erlang.vm.dist.proc.min_heap_size_words
(gauge)
[OpenMetrics] The minimum heap size for the process.
rabbitmq.erlang.vm.dist.proc.reductions
(gauge)
[OpenMetrics] The number of reductions executed by the process.
rabbitmq.erlang.vm.dist.proc.stack_size_words
(gauge)
[OpenMetrics] The stack size, in words, of the process.
rabbitmq.erlang.vm.dist.proc.status
(gauge)
[OpenMetrics] The current status of the distribution process. The status is represented as a numerical value where exiting=1',suspended=2', runnable=3',garbage_collecting=4', running=5' andwaiting=6'.
rabbitmq.erlang.vm.dist.proc.total_heap_size_words
(gauge)
[OpenMetrics] The total size, in words, of all heap fragments of the process. This includes the process stack and any unreceived messages that are considered to be part of the heap.
rabbitmq.erlang.vm.dist.recv.avg_bytes
(gauge)
[OpenMetrics] Average size of packets, in bytes, received by the socket.
Shown as byte
rabbitmq.erlang.vm.dist.recv.cnt
(gauge)
[OpenMetrics] Number of packets received by the socket.
rabbitmq.erlang.vm.dist.recv.dvi_bytes
(gauge)
[OpenMetrics] Average packet size deviation, in bytes, received by the socket.
Shown as byte
rabbitmq.erlang.vm.dist.recv.max_bytes
(gauge)
[OpenMetrics] Size of the largest packet, in bytes, received by the socket.
Shown as byte
rabbitmq.erlang.vm.dist.recv_bytes
(gauge)
[OpenMetrics] Number of bytes received by the socket.
Shown as byte
rabbitmq.erlang.vm.dist.send.avg_bytes
(gauge)
[OpenMetrics] Average size of packets, in bytes, sent from the socket.
Shown as byte
rabbitmq.erlang.vm.dist.send.cnt
(gauge)
[OpenMetrics] Number of packets sent from the socket.
rabbitmq.erlang.vm.dist.send.max_bytes
(gauge)
[OpenMetrics] Size of the largest packet, in bytes, sent from the socket.
Shown as byte
rabbitmq.erlang.vm.dist.send.pend_bytes
(gauge)
[OpenMetrics] Number of bytes waiting to be sent by the socket.
Shown as byte
rabbitmq.erlang.vm.dist.send_bytes
(gauge)
[OpenMetrics] Number of bytes sent from the socket.
Shown as byte
rabbitmq.erlang.vm.ets_limit
(gauge)
[OpenMetrics] The maximum number of ETS tables allowed.
rabbitmq.erlang.vm.logical_processors
(gauge)
[OpenMetrics] The detected number of logical processors configured in the system.
rabbitmq.erlang.vm.logical_processors.available
(gauge)
[OpenMetrics] The detected number of logical processors available to the Erlang runtime system.
rabbitmq.erlang.vm.logical_processors.online
(gauge)
[OpenMetrics] The detected number of logical processors online on the system.
rabbitmq.erlang.vm.memory.atom_bytes_total
(gauge)
[OpenMetrics] The total amount of memory currently allocated for atoms. This memory is part of the memory presented as system memory.
Shown as byte
rabbitmq.erlang.vm.memory.bytes_total
(gauge)
[OpenMetrics] The total amount of memory currently allocated. This is the same as the sum of the memory size for processes and system.
Shown as byte
rabbitmq.erlang.vm.memory.dets_tables
(gauge)
[OpenMetrics] Erlang VM DETS Tables count.
rabbitmq.erlang.vm.memory.ets_tables
(gauge)
[OpenMetrics] Erlang VM ETS Tables count.
rabbitmq.erlang.vm.memory.processes_bytes_total
(gauge)
[OpenMetrics] The total amount of memory currently allocated for the Erlang processes.
Shown as byte
rabbitmq.erlang.vm.memory.system_bytes_total
(gauge)
[OpenMetrics] The total amount of memory currently allocated for the emulator that is not directly related to any Erlang process. Memory presented as processes is not included in this memory.
Shown as byte
rabbitmq.erlang.vm.msacc.alloc_seconds.count
(count)
[OpenMetrics] Total time in seconds spent managing memory. Without extra states this time is spread out over all other states.
Shown as second
rabbitmq.erlang.vm.msacc.aux_seconds.count
(count)
[OpenMetrics] Total time in seconds spent handling auxiliary jobs.
Shown as second
rabbitmq.erlang.vm.msacc.bif_seconds.count
(count)
[OpenMetrics] Total time in seconds spent in BIFs. Without extra states this time is part of the 'emulator' state.
Shown as second
rabbitmq.erlang.vm.msacc.busy_wait_seconds.count
(count)
[OpenMetrics] Total time in seconds spent busy waiting. Without extra states this time is part of the 'other' state.
Shown as second
rabbitmq.erlang.vm.msacc.check_io_seconds.count
(count)
[OpenMetrics] Total time in seconds spent checking for new I/O events.
Shown as second
rabbitmq.erlang.vm.msacc.emulator_seconds.count
(count)
[OpenMetrics] Total time in seconds spent executing Erlang processes.
Shown as second
rabbitmq.erlang.vm.msacc.ets_seconds.count
(count)
[OpenMetrics] Total time in seconds spent executing ETS BIFs. Without extra states this time is part of the 'emulator' state.
Shown as second
rabbitmq.erlang.vm.msacc.gc_full_seconds.count
(count)
[OpenMetrics] Total time in seconds spent doing fullsweep garbage collection. Without extra states this time is part of the 'gc' state.
Shown as second
rabbitmq.erlang.vm.msacc.gc_seconds.count
(count)
[OpenMetrics] Total time in seconds spent doing garbage collection. When extra states are enabled this is the time spent doing non-fullsweep garbage collections.
Shown as second
rabbitmq.erlang.vm.msacc.nif_seconds.count
(count)
[OpenMetrics] Total time in seconds spent in NIFs. Without extra states this time is part of the 'emulator' state.
Shown as second
rabbitmq.erlang.vm.msacc.other_seconds.count
(count)
[OpenMetrics] Total time in seconds spent doing unaccounted things.
Shown as second
rabbitmq.erlang.vm.msacc.port_seconds.count
(count)
[OpenMetrics] Total time in seconds spent executing ports.
Shown as second
rabbitmq.erlang.vm.msacc.send_seconds.count
(count)
[OpenMetrics] Total time in seconds spent sending messages (processes only). Without extra states this time is part of the 'emulator' state.
Shown as second
rabbitmq.erlang.vm.msacc.sleep_seconds.count
(count)
[OpenMetrics] Total time in seconds spent sleeping.
Shown as second
rabbitmq.erlang.vm.msacc.timers_seconds.count
(count)
[OpenMetrics] Total time in seconds spent managing timers. Without extra states this time is part of the 'other' state.
Shown as second
rabbitmq.erlang.vm.port_count
(gauge)
[OpenMetrics] The number of ports currently existing at the local node.
rabbitmq.erlang.vm.port_limit
(gauge)
[OpenMetrics] The maximum number of simultaneously existing ports at the local node.
rabbitmq.erlang.vm.process_count
(gauge)
[OpenMetrics] The number of processes currently existing at the local node.
Shown as process
rabbitmq.erlang.vm.process_limit
(gauge)
[OpenMetrics] The maximum number of simultaneously existing processes at the local node.
Shown as process
rabbitmq.erlang.vm.schedulers
(gauge)
[OpenMetrics] The number of scheduler threads used by the emulator.
rabbitmq.erlang.vm.schedulers_online
(gauge)
[OpenMetrics] The number of schedulers online.
rabbitmq.erlang.vm.smp_support
(gauge)
[OpenMetrics] 1 if the emulator has been compiled with SMP support, otherwise 0.
rabbitmq.erlang.vm.statistics.bytes_output.count
(count)
[OpenMetrics] Total number of bytes output to ports.
Shown as byte
rabbitmq.erlang.vm.statistics.bytes_received.count
(count)
[OpenMetrics] Total number of bytes received through ports.
Shown as byte
rabbitmq.erlang.vm.statistics.context_switches.count
(count)
[OpenMetrics] Total number of context switches since the system started.
rabbitmq.erlang.vm.statistics.dirty_cpu_run_queue_length
(gauge)
[OpenMetrics] Length of the dirty CPU run-queue.
rabbitmq.erlang.vm.statistics.dirty_io_run_queue_length
(gauge)
[OpenMetrics] Length of the dirty IO run-queue.
rabbitmq.erlang.vm.statistics.garbage_collection.bytes_reclaimed.count
(count)
[OpenMetrics] Garbage collection: bytes reclaimed.
Shown as byte
rabbitmq.erlang.vm.statistics.garbage_collection.number_of_gcs.count
(count)
[OpenMetrics] Garbage collection: number of GCs.
rabbitmq.erlang.vm.statistics.garbage_collection.words_reclaimed.count
(count)
[OpenMetrics] Garbage collection: words reclaimed.
rabbitmq.erlang.vm.statistics.reductions.count
(count)
[OpenMetrics] Total reductions.
rabbitmq.erlang.vm.statistics.run_queues_length
(gauge)
[OpenMetrics] Length of normal run-queues.
rabbitmq.erlang.vm.statistics.runtime_milliseconds.count
(count)
[OpenMetrics] The sum of the runtime for all threads in the Erlang runtime system. Can be greater than wall clock time.
Shown as millisecond
rabbitmq.erlang.vm.statistics.wallclock_time_milliseconds.count
(count)
[OpenMetrics] Information about wall clock. Same as erlangvmstatisticsruntimemilliseconds except that real time is measured.
Shown as millisecond
rabbitmq.erlang.vm.thread_pool_size
(gauge)
[OpenMetrics] The number of async threads in the async thread pool used for asynchronous driver calls.
rabbitmq.erlang.vm.threads
(gauge)
[OpenMetrics] 1 if the emulator has been compiled with thread support, otherwise 0.
rabbitmq.erlang.vm.time_correction
(gauge)
[OpenMetrics] 1 if time correction is enabled, otherwise 0.
rabbitmq.erlang.vm.wordsize_bytes
(gauge)
[OpenMetrics] The size of Erlang term words in bytes.
Shown as byte
rabbitmq.exchange.messages.ack.count
(gauge)
Number of messages in exchanges delivered to clients and acknowledged
Shown as message
rabbitmq.exchange.messages.ack.rate
(gauge)
Rate of messages in exchanges delivered to clients and acknowledged per second
Shown as message
rabbitmq.exchange.messages.confirm.count
(gauge)
Count of messages in exchanges confirmed
Shown as message
rabbitmq.exchange.messages.confirm.rate
(gauge)
Rate of messages in exchanges confirmed per second
Shown as message
rabbitmq.exchange.messages.deliver_get.count
(gauge)
Sum of messages in exchanges delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get
Shown as message
rabbitmq.exchange.messages.deliver_get.rate
(gauge)
Rate per second of the sum of exchange messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get
Shown as message
rabbitmq.exchange.messages.publish.count
(gauge)
Count of messages in exchanges published
Shown as message
rabbitmq.exchange.messages.publish.rate
(gauge)
Rate of messages in exchanges published per second
Shown as message
rabbitmq.exchange.messages.publish_in.count
(gauge)
Count of messages published from channels into this exchange
Shown as message
rabbitmq.exchange.messages.publish_in.rate
(gauge)
Rate of messages published from channels into this exchange per sec
Shown as message
rabbitmq.exchange.messages.publish_out.count
(gauge)
Count of messages published from this exchange into queues
Shown as message
rabbitmq.exchange.messages.publish_out.rate
(gauge)
Rate of messages published from this exchange into queues per second
Shown as message
rabbitmq.exchange.messages.redeliver.count
(gauge)
Count of subset of messages in exchanges in deliver_get which had the redelivered flag set
Shown as message
rabbitmq.exchange.messages.redeliver.rate
(gauge)
Rate of subset of messages in exchanges in deliver_get which had the redelivered flag set per second
Shown as message
rabbitmq.exchange.messages.return_unroutable.count
(gauge)
Count of messages in exchanges returned to publisher as unroutable
Shown as message
rabbitmq.exchange.messages.return_unroutable.rate
(gauge)
Rate of messages in exchanges returned to publisher as unroutable per second
Shown as message
rabbitmq.global.consumers
(gauge)
[OpenMetrics] Current number of consumers
rabbitmq.global.messages.acknowledged.count
(count)
[OpenMetrics] Total number of messages acknowledged by consumers
Shown as message
rabbitmq.global.messages.confirmed.count
(count)
[OpenMetrics] Total number of messages confirmed to publishers
Shown as message
rabbitmq.global.messages.dead_lettered.confirmed.count
(count)
[OpenMetrics] Total number of messages dead-lettered and confirmed by target queues
Shown as message
rabbitmq.global.messages.dead_lettered.delivery_limit.count
(count)
[OpenMetrics] Total number of messages dead-lettered due to delivery-limit exceeded
Shown as message
rabbitmq.global.messages.dead_lettered.expired.count
(count)
[OpenMetrics] Total number of messages dead-lettered due to message TTL exceeded
Shown as message
rabbitmq.global.messages.dead_lettered.maxlen.count
(count)
[OpenMetrics] Total number of messages dead-lettered due to overflow drop-head or reject-publish-dlx
Shown as message
rabbitmq.global.messages.dead_lettered.rejected.count
(count)
[OpenMetrics] Total number of messages dead-lettered due to basic.reject or basic.nack
Shown as message
rabbitmq.global.messages.delivered.consume_auto_ack.count
(count)
[OpenMetrics] Total number of messages delivered to consumers using basic.consume with automatic acknowledgment
Shown as message
rabbitmq.global.messages.delivered.consume_manual_ack.count
(count)
[OpenMetrics] Total number of messages delivered to consumers using basic.consume with manual acknowledgment
Shown as message
rabbitmq.global.messages.delivered.count
(count)
[OpenMetrics] Total number of messages delivered to consumers
Shown as message
rabbitmq.global.messages.delivered.get_auto_ack.count
(count)
[OpenMetrics] Total number of messages delivered to consumers using basic.get with automatic acknowledgment
Shown as message
rabbitmq.global.messages.delivered.get_manual_ack.count
(count)
[OpenMetrics] Total number of messages delivered to consumers using basic.get with manual acknowledgment
Shown as message
rabbitmq.global.messages.get_empty.count
(count)
[OpenMetrics] Total number of times basic.get operations fetched no message
rabbitmq.global.messages.received.count
(count)
[OpenMetrics] Total number of messages received from publishers
Shown as message
rabbitmq.global.messages.received_confirm.count
(count)
[OpenMetrics] Total number of messages received from publishers expecting confirmations
Shown as message
rabbitmq.global.messages.redelivered.count
(count)
[OpenMetrics] Total number of messages redelivered to consumers
Shown as message
rabbitmq.global.messages.routed.count
(count)
[OpenMetrics] Total number of messages routed to queues or streams
Shown as message
rabbitmq.global.messages.unroutable.dropped.count
(count)
[OpenMetrics] Total number of messages published as non-mandatory into an exchange and dropped as unroutable
Shown as message
rabbitmq.global.messages.unroutable.returned.count
(count)
[OpenMetrics] Total number of messages published as mandatory into an exchange and returned to the publisher as unroutable
Shown as message
rabbitmq.global.publishers
(gauge)
[OpenMetrics] Current number of publishers
rabbitmq.identity_info
(gauge)
[OpenMetrics] RabbitMQ node & cluster identity info
rabbitmq.io.read_bytes.count
(count)
[OpenMetrics] Total number of I/O bytes read
Shown as byte
rabbitmq.io.read_ops.count
(count)
[OpenMetrics] Total number of I/O read operations
Shown as operation
rabbitmq.io.read_time_seconds.count
(count)
[OpenMetrics] Total I/O read time
Shown as second
rabbitmq.io.reopen_ops.count
(count)
[OpenMetrics] Total number of times files have been reopened
rabbitmq.io.seek_ops.count
(count)
[OpenMetrics] Total number of I/O seek operations
Shown as operation
rabbitmq.io.seek_time_seconds.count
(count)
[OpenMetrics] Total I/O seek time
Shown as second
rabbitmq.io.sync_ops.count
(count)
[OpenMetrics] Total number of I/O sync operations
Shown as operation
rabbitmq.io.sync_time_seconds.count
(count)
[OpenMetrics] Total I/O sync time
Shown as second
rabbitmq.io.write_bytes.count
(count)
[OpenMetrics] Total number of I/O bytes written
Shown as byte
rabbitmq.io.write_ops.count
(count)
[OpenMetrics] Total number of I/O write operations
Shown as operation
rabbitmq.io.write_time_seconds.count
(count)
[OpenMetrics] Total I/O write time
Shown as second
rabbitmq.msg_store.read.count
(count)
[OpenMetrics] Total number of Message Store read operations
Shown as operation
rabbitmq.msg_store.write.count
(count)
[OpenMetrics] Total number of Message Store write operations
Shown as operation
rabbitmq.node.disk_alarm
(gauge)
Does the node have disk alarm
rabbitmq.node.disk_free
(gauge)
Current free disk space
Shown as byte
rabbitmq.node.fd_used
(gauge)
Used file descriptors
rabbitmq.node.mem_alarm
(gauge)
Does the host has memory alarm
rabbitmq.node.mem_limit
(gauge)
Memory usage high watermark in bytes
Shown as byte
rabbitmq.node.mem_used
(gauge)
Memory used in bytes
Shown as byte
rabbitmq.node.partitions
(gauge)
Number of network partitions this node is seeing
rabbitmq.node.run_queue
(gauge)
Average number of Erlang processes waiting to run
Shown as process
rabbitmq.node.running
(gauge)
Is the node running or not
rabbitmq.node.sockets_used
(gauge)
Number of file descriptors used as sockets
rabbitmq.overview.messages.ack.count
(gauge)
Number of messages delivered to clients and acknowledged
Shown as message
rabbitmq.overview.messages.ack.rate
(gauge)
Rate of messages delivered to clients and acknowledged per second
Shown as message
rabbitmq.overview.messages.confirm.count
(gauge)
Count of messages confirmed
Shown as message
rabbitmq.overview.messages.confirm.rate
(gauge)
Rate of messages confirmed per second
Shown as message
rabbitmq.overview.messages.deliver_get.count
(gauge)
Sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get
Shown as message
rabbitmq.overview.messages.deliver_get.rate
(gauge)
Rate per second of the sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get
Shown as message
rabbitmq.overview.messages.drop_unroutable.count
(gauge)
Count of messages dropped as unroutable
Shown as message
rabbitmq.overview.messages.drop_unroutable.rate
(gauge)
Rate of messages dropped as unroutable per second
Shown as message
rabbitmq.overview.messages.publish.count
(gauge)
Count of messages published
Shown as message
rabbitmq.overview.messages.publish.rate
(gauge)
Rate of messages published per second
Shown as message
rabbitmq.overview.messages.publish_in.count
(gauge)
Count of messages published from channels into this overview
Shown as message
rabbitmq.overview.messages.publish_in.rate
(gauge)
Rate of messages published from channels into this overview per sec
Shown as message
rabbitmq.overview.messages.publish_out.count
(gauge)
Count of messages published from this overview into queues
Shown as message
rabbitmq.overview.messages.publish_out.rate
(gauge)
Rate of messages published from this overview into queues per second
Shown as message
rabbitmq.overview.messages.redeliver.count
(gauge)
Count of subset of messages in deliver_get which had the redelivered flag set
Shown as message
rabbitmq.overview.messages.redeliver.rate
(gauge)
Rate of subset of messages in deliver_get which had the redelivered flag set per second
Shown as message
rabbitmq.overview.messages.return_unroutable.count
(gauge)
Count of messages returned to publisher as unroutable
Shown as message
rabbitmq.overview.messages.return_unroutable.rate
(gauge)
Rate of messages returned to publisher as unroutable per second
Shown as message
rabbitmq.overview.object_totals.channels
(gauge)
Total number of channels
Shown as item
rabbitmq.overview.object_totals.connections
(gauge)
Total number of connections
Shown as connection
rabbitmq.overview.object_totals.consumers
(gauge)
Total number of consumers
Shown as item
rabbitmq.overview.object_totals.queues
(gauge)
Total number of queues
Shown as item
rabbitmq.overview.queue_totals.messages.count
(gauge)
Total number of messages (ready plus unacknowledged)
Shown as message
rabbitmq.overview.queue_totals.messages.rate
(gauge)
Rate of number of messages (ready plus unacknowledged)
Shown as message
rabbitmq.overview.queue_totals.messages_ready.count
(gauge)
Number of messages ready for delivery
Shown as message
rabbitmq.overview.queue_totals.messages_ready.rate
(gauge)
Rate of number of messages ready for delivery
Shown as message
rabbitmq.overview.queue_totals.messages_unacknowledged.count
(gauge)
Number of unacknowledged messages
Shown as message
rabbitmq.overview.queue_totals.messages_unacknowledged.rate
(gauge)
Rate of number of unacknowledged messages
Shown as message
rabbitmq.process.max_fds
(gauge)
[OpenMetrics] Open file descriptors limit
rabbitmq.process.max_tcp_sockets
(gauge)
[OpenMetrics] Open TCP sockets limit
rabbitmq.process.open_fds
(gauge)
[OpenMetrics] Open file descriptors
rabbitmq.process.open_tcp_sockets
(gauge)
[OpenMetrics] Open TCP sockets
rabbitmq.process.resident_memory_bytes
(gauge)
[OpenMetrics] Memory used in bytes
Shown as byte
rabbitmq.process_start_time_seconds
(gauge)
[OpenMetrics] Start time of the process since unix epoch in seconds.
Shown as second
rabbitmq.queue.active_consumers
(gauge)
Number of active consumers, consumers that can immediately receive any messages sent to the queue
rabbitmq.queue.bindings.count
(gauge)
Number of bindings for a specific queue
rabbitmq.queue.consumer_capacity
(gauge)
[OpenMetrics] Consumer capacity
rabbitmq.queue.consumer_utilisation
(gauge)
The ratio of time that a queue's consumers can take new messages
Shown as fraction
rabbitmq.queue.consumers
(gauge)
Number of consumers
rabbitmq.queue.disk_reads.count
(count)
[OpenMetrics] Total number of times queue read messages from disk
rabbitmq.queue.disk_writes.count
(count)
[OpenMetrics] Total number of times queue wrote messages to disk
rabbitmq.queue.head_message_timestamp
(gauge)
[OpenMetrics, Management CLI] Timestamp of the head message of the queue Timestamp of the first message in the queue, if any
Shown as millisecond
rabbitmq.queue.index.read_ops.count
(count)
[OpenMetrics] Total number of Queue Index read operations
Shown as operation
rabbitmq.queue.index.write_ops.count
(count)
[OpenMetrics] Total number of Queue Index write operations
Shown as operation
rabbitmq.queue.memory
(gauge)
Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap, and internal structures
Shown as byte
rabbitmq.queue.message_bytes
(gauge)
Number of bytes of messages ready to be delivered to clients
Shown as message
rabbitmq.queue.messages
(gauge)
[OpenMetrics, Management CLI] Count of the total messages in the queue, which is the sum of ready and unacknowledged messages (total queue depth)
Shown as message
rabbitmq.queue.messages.ack.count
(gauge)
Number of messages in queues delivered to clients and acknowledged
Shown as message
rabbitmq.queue.messages.ack.rate
(gauge)
Number per second of messages delivered to clients and acknowledged
Shown as message
rabbitmq.queue.messages.bytes
(gauge)
[OpenMetrics] Size in bytes of ready and unacknowledged messages
Shown as byte
rabbitmq.queue.messages.deliver.count
(gauge)
Count of messages delivered in acknowledgement mode to consumers
Shown as message
rabbitmq.queue.messages.deliver.rate
(gauge)
Rate of messages delivered in acknowledgement mode to consumers
Shown as message
rabbitmq.queue.messages.deliver_get.count
(gauge)
Sum of messages in queues delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get.
Shown as message
rabbitmq.queue.messages.deliver_get.rate
(gauge)
Rate per second of the sum of messages in queues delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get.
Shown as message
rabbitmq.queue.messages.paged_out
(gauge)
[OpenMetrics] Messages paged out to disk
rabbitmq.queue.messages.paged_out_bytes
(gauge)
[OpenMetrics] Size in bytes of messages paged out to disk
Shown as byte
rabbitmq.queue.messages.persistent
(gauge)
[OpenMetrics] Persistent messages
Shown as message
rabbitmq.queue.messages.persistent_bytes
(gauge)
[OpenMetrics] Size in bytes of persistent messages
Shown as byte
rabbitmq.queue.messages.publish.count
(gauge)
Count of messages in queues published
Shown as message
rabbitmq.queue.messages.publish.rate
(gauge)
Rate per second of messages published
Shown as message
rabbitmq.queue.messages.published.count
(count)
[OpenMetrics] Total number of messages published to queues
Shown as message
rabbitmq.queue.messages.ram
(gauge)
[OpenMetrics] Ready and unacknowledged messages stored in memory
Shown as message
rabbitmq.queue.messages.ram_bytes
(gauge)
[OpenMetrics] Size of ready and unacknowledged messages stored in memory
Shown as byte
rabbitmq.queue.messages.rate
(gauge)
Count per second of the total messages in the queue
Shown as message
rabbitmq.queue.messages.ready
(gauge)
[OpenMetrics] Messages ready to be delivered to consumers
Shown as message
rabbitmq.queue.messages.ready_bytes
(gauge)
[OpenMetrics] Size in bytes of ready messages
Shown as byte
rabbitmq.queue.messages.ready_ram
(gauge)
[OpenMetrics] Ready messages stored in memory
Shown as message
rabbitmq.queue.messages.redeliver.count
(gauge)
Count of subset of messages in queues in deliver_get which had the redelivered flag set
Shown as message
rabbitmq.queue.messages.redeliver.rate
(gauge)
Rate per second of subset of messages in deliver_get which had the redelivered flag set
Shown as message
rabbitmq.queue.messages.unacked
(gauge)
[OpenMetrics] Messages delivered to consumers but not yet acknowledged
Shown as message
rabbitmq.queue.messages.unacked_bytes
(gauge)
[OpenMetrics] Size in bytes of all unacknowledged messages
Shown as byte
rabbitmq.queue.messages.unacked_ram
(gauge)
[OpenMetrics] Unacknowledged messages stored in memory
Shown as message
rabbitmq.queue.messages_ready
(gauge)
Number of messages ready to be delivered to clients
Shown as message
rabbitmq.queue.messages_ready.rate
(gauge)
Number per second of messages ready to be delivered to clients
Shown as message
rabbitmq.queue.messages_unacknowledged
(gauge)
Number of messages delivered to clients but not yet acknowledged
Shown as message
rabbitmq.queue.messages_unacknowledged.rate
(gauge)
Number per second of messages delivered to clients but not yet acknowledged
Shown as message
rabbitmq.queue.process_memory_bytes
(gauge)
[OpenMetrics] Memory in bytes used by the Erlang queue process
Shown as byte
rabbitmq.queue.process_reductions.count
(count)
[OpenMetrics] Total number of queue process reductions
rabbitmq.queues
(gauge)
[OpenMetrics] Queues available
rabbitmq.queues.created.count
(count)
[OpenMetrics] Total number of queues created
rabbitmq.queues.declared.count
(count)
[OpenMetrics] Total number of queues declared
rabbitmq.queues.deleted.count
(count)
[OpenMetrics] Total number of queues deleted
rabbitmq.raft.entry_commit_latency_seconds
(gauge)
[OpenMetrics] Time taken for a log entry to be committed
Shown as second
rabbitmq.raft.log.commit_index
(gauge)
[OpenMetrics] Raft log commit index
rabbitmq.raft.log.last_applied_index
(gauge)
[OpenMetrics] Raft log last applied index
rabbitmq.raft.log.last_written_index
(gauge)
[OpenMetrics] Raft log last written index
rabbitmq.raft.log.snapshot_index
(gauge)
[OpenMetrics] Raft log snapshot index
rabbitmq.raft.term.count
(count)
[OpenMetrics] Current Raft term number
rabbitmq.resident_memory_limit_bytes
(gauge)
[OpenMetrics] Memory high watermark in bytes
Shown as byte
rabbitmq.schema.db.disk_tx.count
(count)
[OpenMetrics] Total number of Schema DB disk transactions
Shown as transaction
rabbitmq.schema.db.ram_tx.count
(count)
[OpenMetrics] Total number of Schema DB memory transactions
Shown as transaction
rabbitmq.telemetry.scrape.duration_seconds.count
(count)
[OpenMetrics] Scrape duration
Shown as second
rabbitmq.telemetry.scrape.duration_seconds.sum
(count)
[OpenMetrics] Scrape duration
Shown as second
rabbitmq.telemetry.scrape.encoded_size_bytes.count
(count)
[OpenMetrics] Scrape size, encoded
Shown as byte
rabbitmq.telemetry.scrape.encoded_size_bytes.sum
(count)
[OpenMetrics] Scrape size, encoded
Shown as byte
rabbitmq.telemetry.scrape.size_bytes.count
(count)
[OpenMetrics] Scrape size, not encoded
Shown as byte
rabbitmq.telemetry.scrape.size_bytes.sum
(count)
[OpenMetrics] Scrape size, not encoded
Shown as byte

イベント

サービスチェック

rabbitmq.aliveness
Only available with the RabbitMQ Management Plugin. Returns the status of a vhost based on the RabbitMQ Aliveness API. The Aliveness API creates a test queue, then publishes and consumes a message from that queue. Returns OK if the status code from the API is 200 and CRITICAL otherwise.
Statuses: ok, critical

rabbitmq.status
Only available with the RabbitMQ Management Plugin. Returns the status of the RabbitMQ server. Returns OK if the agent was able to contact the API and CRITICAL otherwise.
Statuses: ok, critical

rabbitmq.openmetrics.health
Only available with the RabbitMQ Prometheus Plugin. Returns CRITICAL if the Agent is unable to connect to the OpenMetrics endpoint, otherwise returns OK.
Statuses: ok, critical

トラブルシューティング

Prometheus Plugin への移行

Prometheus Plugin は、Management Plugin とは異なるメトリクスを公開します。 ここでは、Management Plugin から Prometheus Plugin に移行する際に注意すべき点を説明します。

  • この表でメトリクスを検索してください。メトリクスの説明に [OpenMetricsV2] タグが含まれていれば、Prometheus Plugin で利用可能です。Management Plugin のみで利用可能なメトリクスは、説明にタグを持ちません。
  • Management Plugin のメトリクスを使用しているダッシュボードやモニターは機能しません。OpenMetrics Version と表示されているダッシュボードやモニターに切り替えてください。
  • デフォルトの構成では、集計されたメトリクスが収集されます。これは、例えば、キューによってタグ付けされたメトリクスが存在しないことを意味します。オプション prometheus_plugin.unaggregated_endpoint を構成すると、集計せずにメトリクスを取得することができます。
  • サービスチェックの rabbitmq.statusrabbitmq.openmetrics.health に置き換えられました。サービスチェックの rabbitmq.aliveness は、Prometheus Plugin では同等のものはありません。

Prometheus Plugin では、いくつかのタグが変更されます。以下の表は、より一般的なタグの変更点を説明したものです。

管理Prometheus
queue_namequeue
rabbitmq_vhostvhostexchange_vhostqueue_vhost
rabbitmq_exchangeexchange

詳しくは、タグファミリーに基づいて RabbitMQ キューをタグ付けを参照してください。

ご不明な点は、Datadog のサポートチームまでお問合せください。

その他の参考資料

お役に立つドキュメント、リンクや記事: