O agente Python oferece suporte à biblioteca clientePika RabbitMQ , à biblioteca clienteKafka Python e à biblioteca clienteConfluent Kafka , proporcionando visibilidade sobre o desempenho do processamento de mensagens, tanto para mensagens recebidas quanto para mensagens enviadas.
A interface do New Relic mostrará as transações iniciadas via recebimento de mensagens (assinar/consumir mensagens) como Message tarefas em segundo plano. A criação de mensagens também aparece no trace da transação.
Requisitos
Message Queue | Python agent version required |
---|---|
Pika RabbitMQ | 2.88.0.72 |
Kafka Python | 8.2.0.181 |
Kafka Confluente | 8.2.0.181 |
Para obter mais informações, consulte as notas de versão.
Cuidado
As tarefas de mensagem RabbitMQ não são iniciadas para o consumidor usando TornadoConnection.
Cuidado
Ao consumir mensagens via Kafka, as transações são reportadas para cada mensagem à medida que ela é consumida pelo consumidor. A transação não será informada para operações de consumo em massa onde várias mensagens são consumidas de uma só vez.
Melhorias de desempenho com tarefas em segundo plano
Uma maneira de aumentar a capacidade de resposta do aplicativo web é delegar trabalho a processos em segundo plano. fila de mensagens são comumente usadas para essa comunicação entre processos.
No contexto de sistemas de enfileiramento de mensagens, os aplicativos normalmente interagem com corretores de mensagens para enviar e receber mensagens. No caso do RabbitMQ Pika, esta biblioteca cliente permite que o aplicativo Python faça interface com corretores de mensagens que implementam o Advanced Message Queuing Protocol (AMQP) 0.9 ou superior.
O agente Python mostra mensagens enviadas e recebidas usando a biblioteca cliente. Com essa visibilidade, você pode ver detalhes, incluindo:
- Número de mensagens produzidas pelo seu aplicativo
- Tempo que seu aplicativo gasta publicando/produzindo mensagens
- Tempo que seu aplicativo gasta processando/consumindo mensagens
O APM agrupa e relata convenientemente operações que interagem com filas. Ao analisar essas informações, você pode identificar mais facilmente gargalos e áreas para melhoria de desempenho em sua arquitetura de passagem de mensagens.
Métrica suportada
Message Queue | Pika RabbitMQ | Kafka Python | Confluent Kafka |
---|---|---|---|
Publish a Message | Sim - Referido como | Sim - Referido como | Sim - Referido como |
Receive a Message | Sim - Referido como | Sim - Referido como | Sim - Referido como |
Serialization | Não | Sim | Sim |
Deserialization | Não | Não | Sim |
Heartbeat | Não | Sim | Não |
Ver na interface do New Relic
As operações de fila aparecem na páginaTransactions do APM para o aplicativo selecionado.
As métricas Put
(publicar uma mensagem) e Take
(receber uma mensagem) aparecem em Breakdown table e são categorizadas como métrica MessageBroker
para RabbitMQ. Aqui está um exemplo:
one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > (select a transaction): O Breakdown table da transação categoriza as operações de fila como métrica MessageBroker
para RabbitMQ e as rotula como Put
(publicar uma mensagem) ou Take
(receber uma mensagem).
Trace da transação também fornece detalhes adicionais para mensagens.
Dica
Você pode selecionar trace da transação nas páginas Summary ou Transactions do aplicativo no APM.
A páginade resumo do trace de transação pode mostrar operações Put
e Take
para RabbitMQ na seção Componentes mais lentos . Por exemplo:
one.newrelic.com > All capabilities > APM & services > (select an app) > (select a transaction trace): Neste exemplo, o Summary do trace da transação selecionado mostra as operações do RabbitMQ no gráfico de barras coloridas. A seção Slowest components também lista os resultados Put
e Take
do RabbitMQ.