RabbitMQ

Supported OS Linux Mac OS Windows

Intégration3.1.0

Dashboard RabbitMQ

Présentation

Ce check permet de surveiller RabbitMQ avec l’Agent Datadog. Il peut être utilisé pour :

  • Surveiller des statistiques liées aux files d’attente : la taille de file d’attente, le nombre de clients, les messages sans accusé de réception, les messages renvoyés, etc.
  • Surveiller des statistiques liées aux nœuds : processus en attente, sockets utilisés, descripteurs de fichiers utilisés, etc.
  • Surveiller la disponibilité et le nombre de connexions des vhosts.

Et plus encore.

Configuration

Installation

Le check RabbitMQ est inclus avec le package de l’Agent Datadog. Vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

Préparer RabbitMQ

Activez le plug-in de gestion RabbitMQ. L’utilisateur Agent doit au minimum disposer du tag monitoring et de ces autorisations :

AutorisationCommande
conf^aliveness-test$
write^amq\.default$
read.*

Créez un utilisateur Agent pour votre vhost par défaut avec les commandes suivantes :

rabbitmqctl add_user datadog <SECRET>
rabbitmqctl set_permissions  -p / datadog "^aliveness-test$" "^amq\.default$" ".*"
rabbitmqctl set_user_tags datadog monitoring

Ici, / correspond au host par défaut. Définissez ce paramètre sur le hostname virtuel que vous avez spécifié. Consultez la documentation relative à RabbitMQ pour en savoir plus.

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Collecte de métriques
  1. Modifiez le fichier rabbitmq.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques RabbitMQ. Consultez le fichier d’exemple rabbitmq.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    Remarque : par défaut, l’Agent effectue des checks sur toutes les files d’attente, tous les vhosts et tous les nœuds, mais vous pouvez définir des listes ou des expressions régulières pour limiter ce comportement. Consultez le fichier rabbitmq.d/conf.yaml pour découvrir des exemples.

  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. Pour modifier l’emplacement du fichier de log par défaut, définissez la variable d’environnement RABBITMQ_LOGS ou ajoutez ces lignes à votre fichier de configuration RabbitMQ (/etc/rabbitmq/rabbitmq.conf) :

      log.dir = /var/log/rabbit
      log.file = rabbit.log
    
  2. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  3. Modifiez la section logs de votre fichier rabbitmq.d/conf.yaml pour commencer à recueillir vos logs RabbitMQ :

    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. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>rabbitmq
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"rabbitmq_api_url":"%%host%%:15672/api/","username": <NOMUTILISATEUR>, "password": <MOTDEPASSE>}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "rabbitmq", "service": "rabbitmq", "log_processing_rules": [{"type":"multi_line","name":"logs_starts_with_equal_sign", "pattern": "="}]}

Validation

Lancez la sous-commande status de l’Agent et cherchez rabbitmq dans la section Checks.

Données collectées

Métriques

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

L’Agent tague les métriques rabbitmq.queue.* par nom de file d’attente et les métriques rabbitmq.node.* par nom de nœud.

Événements

Pour des raisons de performances, le check RabbitMQ limite le nombre d’exchanges, de files d’attente et de nœuds pour lesquels il recueille des métriques. Si le check se rapproche de cette limite, il envoie un événement de type warning sur votre flux d’événements.

Si vous avez besoin d’augmenter le nombre d’exchanges, de files d’attente ou de nœuds, contactez l’assistance Datadog.

Checks de service

rabbitmq.aliveness
Renvoie le statut d’un host virtuel basé sur l’API RabbitMQ API Aliveness. L’API Aliveness créera une file d’attente de test, puis publiera et lira un message de cette file d’attente. Renvoie OK si le code d’état de l’API est 200 et CRITICAL pour les autres cas.
Statuses: ok, critical

rabbitmq.status
Renvoie le statut du serveur RabbitMQ. Renvoie OK si l’Agent a pu contacter l’API et CRITICAL pour les autres cas.
Statuses: ok, critical

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles :

FAQ