A New Relic integração no host do RabbitMQ reporta dados métricos e de configuração do seu serviço RabbitMQ, incluindo métricas importantes relacionadas ao cluster, vhosts, filas, exchanges e consumidor.
Compatibilidade e requisitos
Nossa integração é compatível com:
- RabbitMQ versão 3.0 ou superior para dados métricos.
- RabbitMQ versão 3.7 ou superior para dados de inventário.
Antes de instalar a integração, certifique-se de atender aos seguintes requisitos:
Plug-in de gerenciamento RabbitMQ configurado.
Ferramenta de linha de comando RabbitMQ, Rabbitmqctl, no
PATH
do usuário root.Se o RabbitMQ não estiver em execução no Kubernetes ou Amazon ECS, você deverá instalar o agente de infraestrutura em um host executando o RabbitMQ. De outra forma:
- Se estiver executando no Kubernetes, consulte estes requisitos.
- Se estiver executando no ECS, consulte estes requisitos.
Instalar e ativar
Para instalar a integração RabbitMQ, siga as instruções para seu ambiente:
Notas Adicionais:
Advanced:
integração também estão disponíveis em formato tarball para permitir a instalação fora de um gerenciador de pacote.
On-host integrations do not automatically update.
Para obter melhores resultados, atualize regularmente o pacote de integração e o agente de infraestrutura.
Importante
Esta integração pode monitor apenas uma instância do servidor RabbitMQ por host.
Este documento ajudou você na instalação?
Configurar a integração
A configuração no formato YAML de uma integração é onde você pode colocar as credenciais de login necessárias e configurar como os dados são coletados. Quais opções você altera dependem de sua configuração e preferência.
Existem diversas formas de configurar a integração, dependendo de como ela foi instalada:
- Se habilitado via Kubernetes: consulte Monitorar serviços em execução no Kubernetes.
- Se habilitado via Amazon ECS: consulte Monitorar serviços em execução no ECS.
- Se instalado no host: edite a configuração no arquivo de configuração YAML da integração,
rabbitmq-config.yml
.
Para obter um exemplo de configuração, consulte Exemplo de arquivo de configuração.
O arquivo de configuração possui configurações comuns aplicáveis a todas as integrações como interval
, timeout
, inventory_source
. Para ler tudo sobre essas configurações comuns, consulte nosso documento Formato de configuração .
Importante
Se você ainda estiver usando nossos arquivos de configuração/definição legados, consulte este documento para obter ajuda.
Configurações específicas relacionadas ao RabbitMQ são definidas usando a seção env
do arquivo de configuração. Essas configurações controlam a conexão com sua instância RabbitMQ, bem como outras configurações de segurança e recurso. A lista de configurações válidas é descrita na próxima seção deste documento.
Cluster environments
Em ambientes cluster, a integração coleta métricas de todo o cluster com apenas uma instância da integração conectada a um nó. Esta instância deve usar METRICS=true
e INVENTORY=true
. Para o restante dos nós, apenas o inventário deve ser coletado usando METRICS=false
e INVENTORY=true
. Para saber mais sobre isso, consulte configurações de instância.
Se você estiver executando um ambiente cluster no Kubernetes, você precisa implantar o RabbitMQ como um StatefulSet e configurar o agente para consultar todas as métricas do pod RabbitMQ. Defina a condição de correspondência de descoberta automática no arquivo de configuração com este valor:
discovery: command: exec: /var/db/newrelic-infra/nri-discovery-kubernetes match: podName: rabbitmq-0
Importante
A integração tem uma limitação no número de filas que podem ser coletadas. Caso o número de filas ultrapasse 2.000, após o aplicativo de filtros de filas, a integração não reportará nenhuma delas. Oferecemos uma solução alternativa que preservará todas as métricas, mas desabilitará o registro da entidade. Para aplicar a solução alternativa, adicione a seguinte variável de ambiente ao arquivo de configuração:
integrations:- name: nri-rabbitmq env: # Integration configuration parameters. METRICS: true DISABLE_ENTITIES: true QUEUES_MAX_LIMIT: "0"
Configurações da instância RabbitMQ
A integração RabbitMQ coleta informações métricas(M) e de Inventário(I). Verifique a coluna Applies To abaixo para descobrir quais configurações podem ser usadas para cada coleção específica:
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
Contexto | Descrição | Padrão | Aplica-se a |
---|---|---|---|
HOSTNAME | Nome do host ou IP do plug-in de gerenciamento RabbitMQ. | host local | MI |
PORT | Número da porta do plug-in de gerenciamento RabbitMQ. | 15672 | MI |
USERNAME | Usuário que está se conectando ao plug-in de gerenciamento RabbitMQ. | N/A | MI |
PASSWORD | Senha para conectar-se ao plug-in de gerenciamento RabbitMQ. | N/A | MI |
TIMEOUT | Tempo limite em segundos para atingir o tempo limite da conexão com o endpoint RabbitMQ. | 30 | MI |
MANAGEMENT_PATH_PREFIX | Prefixo de gerenciamento RabbitMQ. | N/A | MI |
USE_SSL | Opção de conexão usando SSL. | false | MI |
CA_BUNDLE_DIR | Localização do certificado SSL no host. | N/A | MI |
CA_BUNDLE_FILE | Localização do certificado SSL no host. | N/A | MI |
NODE_NAME_OVERRIDE | Substitui o nome do nó local em vez de recuperá-lo do RabbitMQ. | N/A | MI |
CONFIG_PATH | Caminho absoluto para o arquivo de configuração do RabbitMQ. | N/A | MI |
QUEUES | Nomes de filas a serem coletados no formato de uma matriz JSON de strings. Se um nome de fila corresponder exatamente (sensível a maiúsculas e minúsculas) a um deles, ele será coletado. Exemplo:
| N/A | EU |
QUEUES_REGEXES | Nomes de filas a serem coletados no formato de uma matriz JSON de cadeias de caracteres REGEX. Se o nome de uma fila corresponder a um deles, ela será coletada. Exemplo:
| N/A | MI |
EXCHANGES | Troque nomes para coletar no formato de uma matriz JSON de strings. Se um nome de troca corresponder exatamente (sensível a maiúsculas e minúsculas) a um deles, ele será coletado. | N/A | MI |
EXCHANGES_REGEXES | Troca nomes para coletar no formato de uma matriz JSON de strings REGEX. Se um nome de troca corresponder a um destes, ele será coletado. | N/A | MI |
VHOSTS | Nomes Vhost a serem coletados no formato de uma matriz JSON de strings. Se um nome de vhost corresponder exatamente (sensível a maiúsculas e minúsculas) a um deles, ele será incluído. Isto também afeta apenas a entidade coletora pertencente aos vhosts especificados. | N/A | MI |
VHOSTS_REGEXES | Nomes Vhost a serem coletados no formato de uma matriz JSON de strings REGEX. Se um nome de vhost corresponder a um destes, o vhost e qualquer entidade pertencente a este vhost serão coletados. | N/A | MI |
METRICS | Defina como | false | |
INVENTORY | Defina como | false | |
EVENTS | Defina como | false | |
DISABLE_ENTITIES | Configure se serão criados lançamentos de inventário para entidade durante a coleta de métricas. Para ser usado apenas como solução alternativa para coletar grandes quantidades de filas. | false | |
QUEUES_MAX_LIMIT | Define a quantidade máxima de Filas que podem ser processadas, caso esse número seja atingido todas as filas serão descartadas. Se definido como '0' nenhum limite é aplicado, isto é usado com DISABLE_ENTITIES=true para evitar aumento de memória no agente. | 2000 |
Os valores para estas configurações podem ser definidos de diversas maneiras:
- Adicionando o valor diretamente no arquivo de configuração. Esta é a forma mais comum.
- Substituindo os valores das variáveis de ambiente usando a notação
{{}}
. Isso requer o agente de infraestrutura v1.14.0+. Leia mais aqui. - Usando o gerenciamento de segredos. Use isto para proteger informações sensíveis, como senhas, a serem expostas em texto simples no arquivo de configuração. Para obter mais informações, consulte Gerenciamento de segredos.
Etiquetas/atributo personalizado
Variáveis de ambiente podem ser usadas para controlar definições de configuração, como e, em seguida, são passadas para o agente de infraestrutura. Para obter instruções sobre como usar esse recurso, consulte Configurar o agente de infraestrutura. Você pode decorar ainda mais sua métrica usando etiquetas. Os rótulos permitem que você adicione pares de valores principais atributo à sua métrica que você pode usar para consultar, filtrar ou agrupar sua métrica.
Nosso arquivo de configuração de amostra padrão inclui exemplos de rótulos, mas, como não são obrigatórios, você pode remover, modificar ou adicionar novos de sua escolha.
labels: env: production role: rabbitmq
Exemplo de configuração
Aqui está um exemplo de arquivo de configuração:
Para obter mais informações sobre a estrutura geral da configuração de integração no host, consulte Configuração.
Encontre e use dados
Os dados deste serviço são reportados para um dashboard de integração.
métrica estão anexadas a estes tipos de eventos:
Você pode consultar esses dados para fins de resolução de problemas ou para criar gráficos e dashboards personalizados.
Para saber mais sobre como encontrar e usar seus dados, consulte Compreender os dados de integração.
Dados métricos
A integração RabbitMQ recolhe os seguintes dados métricos atributo. Cada nome de métrica é prefixado com um indicador de categoria e um ponto, como fila. ou nó..
Exemplo de evento vhost do RabbitMQ
Estes atributos estão anexados ao tipo de evento RabbitmqVhostSample
:
Nome | Descrição |
---|---|
| Número de conexões atuais no estado bloqueadas. |
| Número de conexões atuais no estado de bloqueio. |
| Número de conexões atuais no estado fechado. |
| Número de conexões atuais no estado de fechamento. |
| Número de conexões atuais no fluxo de estado. |
vhost.connectionsOpening | Quantidade de conexões atuais na abertura estadual. |
vhost.connectionsRunning | Número de conexões atuais no estado em execução. |
vhost.connectionsStarting | Número de conexões atuais no estado inicial. |
vhost.connectionsTotal | Número de conexões atuais para um determinado vhost do RabbitMQ. |
vhost.connectionsTuning | Número de conexões atuais no ajuste de estado. |
Evento de amostra do nó RabbitMQ
Estes atributos estão anexados ao tipo de evento RabbitmqNodeSample
:
Nome | Descrição |
---|---|
node.averageErlangProcessesWaiting | Número médio de processos Erlang aguardando execução. No RabbitMQ isso é visto como |
| Alarme de disco do nó (0 ou 1). 0 mostra que o alarme não disparou e 1 mostra que o alarme disparou. No RabbitMQ isso é visto como |
| Espaço livre em disco atual em bytes. No RabbitMQ isso é visto como |
| A contagem total de descritores de arquivo. No RabbitMQ isso é visto como |
| A contagem total de descritores de arquivo usados. No RabbitMQ isso é visto como |
| Número de descritores de arquivo usados como soquetes. No RabbitMQ isso é visto como |
| Número total de descritores de arquivos disponíveis como soquetes. No RabbitMQ isso é visto como |
| Alarme de memória do host (0 ou 1). 0 mostra que o alarme não disparou e 1 mostra que o alarme disparou. No RabbitMQ isso é visto como |
| Memória usada em bytes. No RabbitMQ isso é visto como |
| Número de partições de rede vistas por nó. No RabbitMQ isso é visto como |
| Limite do processo Erlang. No RabbitMQ isso é visto como |
| Processos Erlang usados. No RabbitMQ isso é visto como |
| Nó em execução (0 ou 1). 0 mostra que o nó não está em execução e 1 mostra que o nó está em execução. No RabbitMQ isso é visto como |
Evento de amostra de troca RabbitMQ
Estes atributos estão anexados ao tipo de evento RabbitmqExchangeSample
:
Nome | Descrição |
---|---|
| Número de ligações para uma troca específica. |
| Contagem de mensagens publicadas de um canal nesta troca. No RabbitMQ isso é visto como |
| Taxa de mensagens publicadas de um canal nesta exchange por segundo. No RabbitMQ isso é visto como |
| Contagem de mensagens publicadas desta troca em uma fila. No RabbitMQ isso é visto como |
| Taxa de mensagens publicadas nesta troca em uma fila por segundo. No RabbitMQ isso é visto como |
Evento de exemplo de fila RabbitMQ
Estes atributos estão anexados ao tipo de evento RabbitmqQueueSample
:
Nome | Descrição |
---|---|
| Número de ligações para uma fila específica. |
| Número de consumidores ativos que podem receber imediatamente quaisquer mensagens enviadas para a fila. No RabbitMQ isso é visto como |
| Número de consumidores por fila. No RabbitMQ isso é visto como consumidor. |
| A proporção de tempo que o consumidor de uma fila pode receber novas mensagens (utilização por segundo). No RabbitMQ isso é visto como Esta métrica está disponível apenas no RabbitMQ versão 3.3 ou superior. |
| Bytes consumidos pelo processo Erlang associado à fila. No RabbitMQ isso é visto como |
| Contagem de mensagens prontas para serem entregues aos clientes. No RabbitMQ isso é visto como |
| Taxa de mensagens prontas para serem entregues aos clientes por segundo. No RabbitMQ isso é visto como |
| Contagem de mensagens por fila entregues aos clientes, mas ainda não confirmadas. No RabbitMQ isso é visto como |
| Taxa de mensagens por fila entregues aos clientes, mas ainda não reconhecidas por segundo. No RabbitMQ isso é visto como |
| Contagem de mensagens entregues aos clientes e confirmadas por fila. No RabbitMQ isso é visto como |
| Taxa de mensagens entregues aos clientes e confirmadas por segundo por fila. No RabbitMQ isso é visto como |
| Contagem de mensagens entregues em modo de confirmação ao consumidor por fila. No RabbitMQ isso é visto como |
| Taxa de mensagens entregues em modo de confirmação ao consumidor por fila por segundo. No RabbitMQ isso é visto como |
| Contagem de mensagens publicadas por fila. No RabbitMQ isso é visto como |
| Taxa de mensagens publicadas por segundo por fila. No RabbitMQ isso é visto como |
| Contagem do subconjunto de mensagens em modo de confirmação que teve o sinalizador reentregue definido por fila. No RabbitMQ isso é visto como |
| Taxa de subconjunto de mensagens em modo de confirmação que teve o sinalizador reentregue definido por fila por segundo. No RabbitMQ isso é visto como |
| Soma de mensagens entregues em modo de confirmação ao consumidor, em modo sem confirmação ao consumidor, em modo de confirmação em resposta a basic.get e em modo sem confirmação em resposta a basic.get. por fila. No RabbitMQ isso é visto como |
| Taxa por segundo da soma de mensagens entregues em modo de confirmação ao consumidor, em modo sem confirmação ao consumidor, em modo de confirmação em resposta a basic.get e em modo sem confirmação em resposta a basic.get por fila. No RabbitMQ isso é visto como |
| Contagem do total de mensagens na fila. No RabbitMQ isso é visto como |
| Taxa do total de mensagens na fila. No RabbitMQ isso é visto como |
Metadados do sistema
Outros metadados incluem:
Nome | Descrição |
---|---|
| A versão do servidor RabbitMQ. Exemplo: 3.6.7. |
| A versão do plug-in de gerenciamento RabbitMQ. Por exemplo: 3.6.7. |
Dados de inventário
A integração captura o parâmetro de configuração do RabbitMQ no arquivo /etc/rabbitmq/rabbitmq.conf
. dados de inventário são capturados apenas no RabbitMQ versão 3.7 ou superior; os dados de inventário aparecerão na páginaInventory da interface da infraestrutura, na fonte config/rabbitmq
.
Cuidado
Esteja ciente de que qualquer informação sensível que você colocar no arquivo rabbit.conf
aparecerá na página Inventory na interface da infraestrutura. Isso inclui itens como os seguintes da AWS:
cluster_formation.aws.secret_key,cluster_formation.aws.access_key_id
Resolução de problemas
Dicas de resolução de problemas:
Verifique o código-fonte
Esta integração é um software de código aberto. Isso significa que você pode navegar pelo código-fonte e enviar melhorias, ou criar seu próprio fork e construí-lo.