Esta referência abrangente documenta todas as métricas do RabbitMQ coletadas pela integração do OpenTelemetry Collector. Cada métrica inclui descrições detalhadas e exemplos práticos de consultas NRQL.
Dica
Novo no monitoramento do RabbitMQ? Comece pelo guia de visão geral para entender a arquitetura da integração e as opções de implantação.
Entendendo as métricas do RabbitMQ
A integração do RabbitMQ com OpenTelemetry coleta métricas por meio da API de gerenciamento do RabbitMQ, fornecendo visibilidade abrangente da integridade e do desempenho do seu message broker.
Categorias de métricas:
- Métricas do nó - Uso de recursos no nível do nó, incluindo memória, disco, descritores de arquivo e estatísticas da VM Erlang
- Métricas de fila - Contagem de mensagens, atividade do consumidor e vazão em nível de fila por fila
- Métricas de mensagem - Taxas de publicação, entrega e confirmação de mensagens
- Métricas de E/S - Operações de leitura/gravação de disco e latência para persistência de mensagens
- Métricas de conexão - Eventos de ciclo de vida de conexão e canal
Atributos comuns de métrica:
Todas as métricas incluem estes atributos para filtragem e agrupamento:
instrumentation.provider = 'opentelemetry'- Identifica métricas desta integraçãorabbitmq.deployment.name- Seu identificador de implantaçãorabbitmq.server.endpoint- Endpoint da API de gerenciamentohost.name- Nome do host onde o RabbitMQ está sendo executado
Importante
Ao consultar métricas do RabbitMQ, sempre inclua instrumentation.provider = 'opentelemetry' na sua cláusula WHERE para garantir que você obtenha apenas dados desta integração.
Métricas de recursos do nó
As métricas de recursos do nó rastreiam memória, disco, descritores de arquivo e recursos da VM Erlang para cada nó RabbitMQ.
Métrica de memória
Tipo: Gauge\ Unidade: Bytes\ Descrição: Total de memória usada pelo nó RabbitMQ em bytes.
Caso de uso: Monitorar o consumo de memória do nó para evitar condições de esgotamento de memória.
Exemplos de NRQL:
Visualizar o uso atual de memória:
SELECT latest(rabbitmq.node.mem_used) / 1024 / 1024 AS 'Memory Used (MB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_used'FACET host.nameAcompanhe as tendências de memória:
SELECT latest(rabbitmq.node.mem_used) / 1024 / 1024 AS 'Memory Used (MB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_used'FACET host.nameTIMESERIESPorcentagem de utilização de memória:
SELECT (latest(rabbitmq.node.mem_used) / latest(rabbitmq.node.mem_limit)) * 100 AS 'Memory Utilization %'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Bytes\ Descrição: Limite de memória configurado para o nó RabbitMQ.
Caso de uso: Compare com a memória usada para calcular a utilização e acionar alarmes.
Exemplos de NRQL:
Visualizar limites de memória:
SELECT latest(rabbitmq.node.mem_limit) / 1024 / 1024 / 1024 AS 'Memory Limit (GB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_limit'FACET host.nameCálculo da margem de memória:
SELECT (latest(rabbitmq.node.mem_limit) - latest(rabbitmq.node.mem_used)) / 1024 / 1024 AS 'Available Memory (MB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTipo: Gauge\ Unidade: Booleano (0 ou 1)\ Descrição: Status do alarme de memória (0 = sem alarme, 1 = alarme acionado).
Caso de uso: Alertar quando ocorrerem violações do limiar de memória.
Exemplos de NRQL:
Verifique o status do alarme:
SELECT latest(rabbitmq.node.mem_alarm) AS 'Memory Alarm'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_alarm'FACET host.nameAlertar em alarme de memória:
SELECT latest(rabbitmq.node.mem_alarm)FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_alarm' AND rabbitmq.node.mem_alarm = 1FACET host.nameTipo: Gauge\ Unidade: Bytes por segundo\ Descrição: Taxa de variação do uso de memória por segundo.
Caso de uso: Monitorar a taxa de crescimento da memória para detectar vazamentos de memória.
Exemplos de NRQL:
Visualizar a taxa de crescimento da memória:
SELECT latest(rabbitmq.node.mem_used_details.rate) / 1024 AS 'Memory Growth Rate (KB/s)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mem_used_details.rate'FACET host.nameTIMESERIESMétricas de disco
Tipo: Gauge\ Unidade: Bytes\ Descrição: Espaço em disco disponível em bytes.
Caso de uso: Monitorar a disponibilidade de espaço em disco para evitar condições de disco cheio.
Exemplos de NRQL:
Visualizar espaço em disco disponível:
SELECT latest(rabbitmq.node.disk_free) / 1024 / 1024 / 1024 AS 'Disk Free (GB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.disk_free'FACET host.namePorcentagem de utilização de disco:
SELECT ((latest(rabbitmq.node.disk_free_limit) - latest(rabbitmq.node.disk_free)) / latest(rabbitmq.node.disk_free_limit)) * 100 AS 'Disk Usage %'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Bytes\ Descrição: Limiar do limite de espaço livre em disco.
Caso de uso: Compare com o espaço livre em disco para calcular a utilização.
Exemplos de NRQL:
Visualizar limite de disco livre:
SELECT latest(rabbitmq.node.disk_free_limit) / 1024 / 1024 / 1024 AS 'Disk Free Limit (GB)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.disk_free_limit'FACET host.nameTipo: Gauge\ Unidade: Booleano (0 ou 1)\ Descrição: Status do alarme de espaço livre em disco (0 = sem alarme, 1 = alarme acionado).
Caso de uso: Alertar quando ocorrerem violações do limite de espaço em disco.
Exemplos de NRQL:
Verificar o status do alarme de disco:
SELECT latest(rabbitmq.node.disk_free_alarm) AS 'Disk Alarm'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.disk_free_alarm'FACET host.nameMétricas de descritor de arquivo e socket
Tipo: Gauge\ Unidade: Descritores de arquivo\ Descrição: Número de descritores de arquivo atualmente em uso.
Caso de uso: Monitore o uso de descritores de arquivo para evitar o esgotamento.
Exemplos de NRQL:
Visualizar o uso de descritores de arquivo:
SELECT latest(rabbitmq.node.fd_used) AS 'FDs Used'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.fd_used'FACET host.nameUtilização de descritores de arquivo:
SELECT (latest(rabbitmq.node.fd_used) / latest(rabbitmq.node.fd_total)) * 100 AS 'FD Utilization %'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Descritores de arquivo\ Descrição: Número total de descritores de arquivo disponíveis.
Caso de uso: Compare com os descritores de arquivo usados para calcular a utilização.
Exemplos de NRQL:
Visualizar limite de descritores de arquivo:
SELECT latest(rabbitmq.node.fd_total) AS 'Total FDs'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.fd_total'FACET host.nameTipo: Gauge\ Unidade: Sockets\ Descrição: Número de sockets de rede atualmente em uso.
Caso de uso: Monitore o uso de sockets para rastrear a atividade de conexão.
Exemplos de NRQL:
Visualizar o uso de sockets:
SELECT latest(rabbitmq.node.sockets_used) AS 'Sockets Used'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.sockets_used'FACET host.nameTIMESERIESUtilização de socket:
SELECT (latest(rabbitmq.node.sockets_used) / latest(rabbitmq.node.sockets_total)) * 100 AS 'Socket Utilization %'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTipo: Gauge\ Unidade: Sockets\ Descrição: Número máximo de sockets disponíveis.
Caso de uso: Compare com os sockets usados para calcular a utilização.
Exemplos de NRQL:
Visualizar limite de sockets:
SELECT latest(rabbitmq.node.sockets_total) AS 'Total Sockets'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.sockets_total'FACET host.nameMétricas da VM Erlang
Tipo: Gauge\ Unidade: Processos\ Descrição: Número de processos Erlang atualmente em uso.
Caso de uso: Monitorar o uso de processos Erlang para evitar o esgotamento do limite de processos.
Exemplos de NRQL:
Visualizar o uso do processo Erlang:
SELECT latest(rabbitmq.node.proc_used) AS 'Erlang Processes Used'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.proc_used'FACET host.nameUtilização do processo:
SELECT (latest(rabbitmq.node.proc_used) / latest(rabbitmq.node.proc_total)) * 100 AS 'Process Utilization %'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Processos\ Descrição: Número máximo de processos Erlang permitidos.
Caso de uso: Compare com processos usados para calcular a utilização.
Exemplos de NRQL:
Visualizar limite de processos do Erlang:
SELECT latest(rabbitmq.node.proc_total) AS 'Max Erlang Processes'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.proc_total'FACET host.nameTipo: Gauge\ Unidade: Processos\ Descrição: Número de processos Erlang aguardando execução.
Caso de uso: Monitore o tamanho da fila do escalonador da VM Erlang para detectar a saturação da CPU.
Exemplos de NRQL:
Visualizar profundidade da fila de execução:
SELECT latest(rabbitmq.node.run_queue) AS 'Run Queue Depth'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.run_queue'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Processadores\ Descrição: Número de processadores de CPU disponíveis para o nó.
Caso de uso: Informações de recursos do sistema para planejamento de capacidade.
Exemplos de NRQL:
Visualizar contagem de CPU:
SELECT latest(rabbitmq.node.processors) AS 'CPU Count'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.processors'FACET host.nameTipo: Gauge\ Unidade: Milissegundos\ Descrição: Tempo de atividade do nó em milissegundos.
Caso de uso: Monitorar a estabilidade do nó e detectar reinicializações.
Exemplos de NRQL:
Visualizar tempo de atividade do nó:
SELECT latest(rabbitmq.node.uptime) / 1000 / 60 / 60 / 24 AS 'Uptime (days)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.uptime'FACET host.nameDetectar reinicializações recentes:
SELECT latest(rabbitmq.node.uptime) / 1000 / 60 AS 'Uptime (minutes)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.uptime' AND rabbitmq.node.uptime < 3600000FACET host.nameTipo: Gauge\ Unidade: Trocas por segundo\ Descrição: Taxa de trocas de contexto por segundo.
Caso de uso: Monitorar o desempenho da VM Erlang e a atividade do escalonador.
Exemplos de NRQL:
Visualizar taxa de troca de contexto:
SELECT latest(rabbitmq.node.context_switches_details.rate) AS 'Context Switches/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.context_switches_details.rate'FACET host.nameTIMESERIESMétrica de coleta de lixo
Tipo: Gauge\ Unidade: Execuções de GC por segundo\ Descrição: Taxa de execuções de coleta de lixo por segundo.
Caso de uso: Monitorar a frequência do GC para detectar pressão de memória.
Exemplos de NRQL:
Visualizar taxa de GC:
SELECT latest(rabbitmq.node.gc_num_details.rate) AS 'GC Runs/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.gc_num_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Bytes por segundo\ Descrição: Taxa de bytes recuperados pela coleta de lixo por segundo.
Caso de uso: Monitorar a eficiência do GC e a recuperação de memória.
Exemplos de NRQL:
Visualizar taxa de recuperação do GC:
SELECT latest(rabbitmq.node.gc_bytes_reclaimed_details.rate) / 1024 / 1024 AS 'GC Reclaimed (MB/s)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.gc_bytes_reclaimed_details.rate'FACET host.nameTIMESERIESMétricas de E/S e persistência
As métricas de E/S rastreiam operações de leitura/gravação em disco e latência para persistência de mensagens.
Operações de E/S de disco
Tipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de leitura de E/S por segundo.
Caso de uso: Monitorar a atividade de leitura de disco para recuperação de mensagens.
Exemplos de NRQL:
Visualizar taxa de operações de leitura:
SELECT latest(rabbitmq.node.io_read_count_details.rate) AS 'Read Ops/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_read_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Bytes por segundo\ Descrição: Taxa de bytes lidos por segundo.
Caso de uso: Monitorar a taxa de transferência de leitura de disco.
Exemplos de NRQL:
Visualizar vazão de leitura:
SELECT latest(rabbitmq.node.io_read_bytes_details.rate) / 1024 / 1024 AS 'Read Throughput (MB/s)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_read_bytes_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Milissegundos\ Descrição: Taxa média de tempo de leitura de E/S.
Caso de uso: Monitorar a latência de leitura para problemas de desempenho.
Exemplos de NRQL:
Visualizar latência de leitura:
SELECT latest(rabbitmq.node.io_read_avg_time_details.rate) AS 'Avg Read Time (ms)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_read_avg_time_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de escrita de E/S por segundo.
Caso de uso: Monitorar a atividade de escrita em disco para persistência de mensagens.
Exemplos de NRQL:
Visualizar taxa de operações de gravação:
SELECT latest(rabbitmq.node.io_write_count_details.rate) AS 'Write Ops/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_write_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Bytes por segundo\ Descrição: Taxa de bytes gravados por segundo.
Caso de uso: Monitorar a taxa de transferência de gravação em disco.
Exemplos de NRQL:
Visualizar vazão de gravação:
SELECT latest(rabbitmq.node.io_write_bytes_details.rate) / 1024 / 1024 AS 'Write Throughput (MB/s)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_write_bytes_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Milissegundos\ Descrição: Taxa média de tempo de escrita de E/S.
Caso de uso: Monitorar a latência de escrita para problemas de desempenho.
Exemplos de NRQL:
Visualizar latência de escrita:
SELECT latest(rabbitmq.node.io_write_avg_time_details.rate) AS 'Avg Write Time (ms)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_write_avg_time_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de sincronização de E/S por segundo.
Caso de uso: Monitorar a frequência do fsync para operações de durabilidade.
Exemplos de NRQL:
Taxa de operação de sincronização de visualização:
SELECT latest(rabbitmq.node.io_sync_count_details.rate) AS 'Sync Ops/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_sync_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Milissegundos\ Descrição: Taxa média de tempo de sincronização de E/S.
Caso de uso: Monitorar a latência de sincronização para desempenho de durabilidade.
Exemplos de NRQL:
Latência de sincronização da visualização:
SELECT latest(rabbitmq.node.io_sync_avg_time_details.rate) AS 'Avg Sync Time (ms)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_sync_avg_time_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de busca de E/S por segundo.
Caso de uso: Monitorar a atividade de busca em disco.
Exemplos de NRQL:
Visualizar taxa de operação de busca:
SELECT latest(rabbitmq.node.io_seek_count_details.rate) AS 'Seek Ops/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_seek_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Milissegundos\ Descrição: Taxa média de tempo de busca de E/S.
Caso de uso: Monitorar a latência de busca.
Exemplos de NRQL:
Visualizar latência de busca:
SELECT latest(rabbitmq.node.io_seek_avg_time_details.rate) AS 'Avg Seek Time (ms)'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_seek_avg_time_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de reabertura de arquivos por segundo.
Caso de uso: Monitorar a rotatividade de descritores de arquivo.
Exemplos de NRQL:
Visualizar taxa de reabertura:
SELECT latest(rabbitmq.node.io_reopen_count_details.rate) AS 'Reopen Ops/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.io_reopen_count_details.rate'FACET host.nameTIMESERIESMétricas de armazenamento de mensagens
Tipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de leitura do armazenamento de mensagens por segundo.
Caso de uso: Monitorar leituras de persistência de mensagens.
Exemplos de NRQL:
Visualizar taxa de leitura do armazenamento de mensagens:
SELECT latest(rabbitmq.node.msg_store_read_count_details.rate) AS 'Msg Store Reads/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.msg_store_read_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de gravação do armazenamento de mensagens por segundo.
Caso de uso: Monitorar gravações de persistência de mensagens.
Exemplos de NRQL:
Visualizar taxa de gravação do armazenamento de mensagens:
SELECT latest(rabbitmq.node.msg_store_write_count_details.rate) AS 'Msg Store Writes/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.msg_store_write_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de leitura de índice de fila por segundo.
Caso de uso: Monitorar leituras de índice de fila.
Exemplos de NRQL:
Visualizar taxa de leitura do índice da fila:
SELECT latest(rabbitmq.node.queue_index_read_count_details.rate) AS 'Queue Index Reads/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.queue_index_read_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Operações por segundo\ Descrição: Taxa de operações de escrita de índice de fila por segundo.
Caso de uso: Monitorar escritas de índice de fila.
Exemplos de NRQL:
Visualizar taxa de gravação do índice da fila:
SELECT latest(rabbitmq.node.queue_index_write_count_details.rate) AS 'Queue Index Writes/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.queue_index_write_count_details.rate'FACET host.nameTIMESERIESMétricas do banco de dados Mnesia
Tipo: Gauge\ Unidade: Transações por segundo\ Descrição: Taxa de transações de RAM do Mnesia por segundo.
Caso de uso: Monitorar a atividade de transação da RAM do banco de dados.
Exemplos de NRQL:
Visualizar a taxa de transação de RAM do Mnesia:
SELECT latest(rabbitmq.node.mnesia_ram_tx_count_details.rate) AS 'Mnesia RAM Tx/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mnesia_ram_tx_count_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Transações por segundo\ Descrição: Taxa de transações de disco do Mnesia por segundo.
Caso de uso: Monitorar a atividade de transações de disco do banco de dados.
Exemplos de NRQL:
Visualizar a taxa de transações de disco do Mnesia:
SELECT latest(rabbitmq.node.mnesia_disk_tx_count_details.rate) AS 'Mnesia Disk Tx/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.mnesia_disk_tx_count_details.rate'FACET host.nameTIMESERIESMétricas de fila
As métricas de fila fornecem insights sobre o fluxo de mensagens, backlogs e atividade do consumidor por fila.
Tipo: Gauge\ Unidade: Consumidores\ Descrição: Número de consumidores conectados à fila.
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Monitorar conexões de consumidores para detectar desconexões.
Exemplos de NRQL:
Visualizar consumidores por fila:
SELECT latest(rabbitmq.consumer.count) AS 'Consumers'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.consumer.count'FACET rabbitmq.queue.nameEncontre filas sem consumidores:
SELECT latest(rabbitmq.consumer.count)FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.consumer.count'AND rabbitmq.consumer.count = 0FACET rabbitmq.queue.name
Tipo: Gauge\ Unidade: Mensagens\ Descrição: Número de mensagens prontas para entrega.
Dimensões:
rabbitmq.queue.name: Nome da filastate: Estado da mensagem (pronta, não confirmada)Caso de uso: Monitorar o backlog da fila para detectar acúmulo de mensagens.
Exemplos de NRQL:
Visualizar mensagens prontas por fila:
SELECT latest(rabbitmq.message.current) AS 'Ready Messages'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.current'AND state = 'ready'FACET rabbitmq.queue.nameAcompanhe as tendências de mensagens prontas:
SELECT latest(rabbitmq.message.current)FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.current'AND state = 'ready'FACET rabbitmq.queue.nameTIMESERIES
Tipo: Gauge\ Unidade: Mensagens\ Descrição: Número de mensagens entregues, mas ainda não confirmadas.
Dimensões:
rabbitmq.queue.name: Nome da filastate: Estado da mensagem (pronta, não confirmada)Caso de uso: Rastreie mensagens não confirmadas para detectar consumidores lentos.
Exemplos de NRQL:
Visualizar mensagens não reconhecidas:
SELECT latest(rabbitmq.message.current) AS 'Unacked Messages'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.current'AND state = 'unacknowledged'FACET rabbitmq.queue.name
Tipo: Gauge\ Unidade: Mensagens\ Descrição: Número total de mensagens na fila em todos os estados.
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Monitoramento da profundidade geral da fila.
Exemplos de NRQL:
Visualizar total de mensagens por fila:
SELECT sum(rabbitmq.message.current) AS 'Total Messages'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.current'FACET rabbitmq.queue.name
Tipo: Contador\ Unidade: Mensagens\ Descrição: Número total de mensagens publicadas na fila.
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Monitorar a taxa de ingestão de mensagens.
Exemplos de NRQL:
Visualizar taxa de publicação de mensagens:
SELECT rate(sum(rabbitmq.message.published), 1 minute) AS 'Publish Rate (msg/min)'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.published'FACET rabbitmq.queue.nameTIMESERIES
Tipo: Contador\ Unidade: Mensagens\ Descrição: Número total de mensagens entregues aos consumidores.
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Acompanhar a vazão de entrega de mensagens.
Exemplos de NRQL:
Visualizar taxa de entrega de mensagens:
SELECT rate(sum(rabbitmq.message.delivered), 1 minute) AS 'Delivery Rate (msg/min)'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.delivered'FACET rabbitmq.queue.nameTIMESERIES
Tipo: Contador\ Unidade: Mensagens\ Descrição: Número total de mensagens confirmadas pelos consumidores.
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Monitorar a conclusão do processamento de mensagens.
Exemplos de NRQL:
Visualizar taxa de reconhecimento:
SELECT rate(sum(rabbitmq.message.acknowledged), 1 minute) AS 'Ack Rate (msg/min)'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.acknowledged'FACET rabbitmq.queue.nameTIMESERIES
Tipo: Contador\ Unidade: Mensagens\ Descrição: Número de mensagens descartadas (rejeitadas ou expiradas).
Dimensões:
rabbitmq.queue.name: Nome da filaCaso de uso: Identificar perda de mensagens.
Exemplos de NRQL:
Visualizar mensagens descartadas:
SELECT sum(rabbitmq.message.dropped) AS 'Dropped Messages'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.dropped'FACET rabbitmq.queue.nameSINCE 1 hour agoAcompanhar taxa de descarte:
SELECT rate(sum(rabbitmq.message.dropped), 1 minute) AS 'Drop Rate (msg/min)'FROM MetricWHERE instrumentation.provider = 'opentelemetry'AND metricName = 'rabbitmq.message.dropped'FACET rabbitmq.queue.nameTIMESERIES
Métricas de conexão e ciclo de vida
As métricas de conexão e ciclo de vida rastreiam eventos do ciclo de vida de conexões, canais e filas.
Tipo: Gauge\ Unidade: Conexões por segundo\ Descrição: Taxa de novas conexões criadas por segundo.
Caso de uso: Monitorar padrões de estabelecimento de conexão.
Exemplos de NRQL:
Visualizar a taxa de criação de conexões:
SELECT latest(rabbitmq.node.connection_created_details.rate) AS 'Connections Created/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.connection_created_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Conexões por segundo\ Descrição: Taxa de conexões fechadas por segundo.
Caso de uso: Monitorar padrões de encerramento de conexão.
Exemplos de NRQL:
Visualizar taxa de fechamento de conexões:
SELECT latest(rabbitmq.node.connection_closed_details.rate) AS 'Connections Closed/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.connection_closed_details.rate'FACET host.nameTIMESERIESCompare a criação de conexões vs. o fechamento:
SELECT latest(rabbitmq.node.connection_created_details.rate) AS 'Created', latest(rabbitmq.node.connection_closed_details.rate) AS 'Closed'FROM MetricWHERE instrumentation.provider = 'opentelemetry'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Canais por segundo\ Descrição: Taxa de canais criados por segundo.
Caso de uso: Monitorar o ciclo de vida do canal.
Exemplos de NRQL:
Visualizar taxa de criação de canais:
SELECT latest(rabbitmq.node.channel_created_details.rate) AS 'Channels Created/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.channel_created_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Canais por segundo\ Descrição: Taxa de canais fechados por segundo.
Caso de uso: Monitorar a terminação de canal.
Exemplos de NRQL:
Visualizar taxa de encerramento do canal:
SELECT latest(rabbitmq.node.channel_closed_details.rate) AS 'Channels Closed/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.channel_closed_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Filas por segundo\ Descrição: Taxa de filas declaradas por segundo.
Caso de uso: Monitorar a atividade de declaração de filas.
Exemplos de NRQL:
Visualizar taxa de declaração de fila:
SELECT latest(rabbitmq.node.queue_declared_details.rate) AS 'Queues Declared/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.queue_declared_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Filas por segundo\ Descrição: Taxa de filas criadas por segundo.
Caso de uso: Monitorar a criação de filas.
Exemplos de NRQL:
Visualizar taxa de criação de filas:
SELECT latest(rabbitmq.node.queue_created_details.rate) AS 'Queues Created/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.queue_created_details.rate'FACET host.nameTIMESERIESTipo: Gauge\ Unidade: Filas por segundo\ Descrição: Taxa de filas excluídas por segundo.
Caso de uso: Monitorar a exclusão de filas.
Exemplos de NRQL:
Visualizar taxa de exclusão de fila:
SELECT latest(rabbitmq.node.queue_deleted_details.rate) AS 'Queues Deleted/sec'FROM MetricWHERE instrumentation.provider = 'opentelemetry' AND metricName = 'rabbitmq.node.queue_deleted_details.rate'FACET host.nameTIMESERIESQual é o próximo?
Agora que você tem a referência completa das métricas do RabbitMQ, coloque esse conhecimento em prática:
Saber mais:
- Visão geral - Saiba mais sobre a arquitetura de integração do RabbitMQ e opções de implantação
- Encontre e consulte seus dados - Navegue pela interface do New Relic e escreva consultas NRQL
Tomar providências:
- Configurar alertas - Configure alertas para profundidade de filas, uso de memória e espaço em disco
- Construa dashboards - Crie dashboards personalizados para visualizar suas métricas do RabbitMQ