L'agent Python prend en charge les diagnostics de boucle d'événement asyncio . Lorsque des transactions bloquent ou retardent une boucle d'événements, l'agent est capable de générer des diagnostics pour aider à les trouver et à les résoudre.
Exigences
Nécessite l'agent Python version 5.0.0.124 ou supérieure.
Afficher dans l'UI de New Relic
Dans APM, les données de transaction de votre boucle d'événements seront dans la table de répartition des transactions et dans la page des détails trace .
Les métriques de boucle d'événement apparaîtront dans la transaction Breakdown table:


one.newrelic.com > APM & services > (select an app) > Transactions, cliquez sur See transaction table, puis sélectionnez une transaction : L'événement Breakdown table des indicateurs de transaction boucle avec asyncio.
Le temps passé à attendre d’autres transactions sera affiché dans la page de transaction Trace details :

one.newrelic.com APM & services > (select an app) > Transactions > (select a transaction trace) > Trace details: La page Trace details contient un tableau avec des répartitions pour chaque segment (appel de méthode ou de fonction) dans une trace de transaction.
événement Boucle requête NRQL
eventLoopTime
et l'attribut eventLoopWait
sera disponible via une requête NRQL . Un exemple de requête pourrait être :
SELECT count(*) AS 'count', average(eventLoopTime) AS 'loopTime', average(eventLoopWait) AS 'loopWait' FROM Transaction FACET name
Où diagnostiquer les boucles d'événements
Les diagnostics de boucle d'événement seront disponibles par défaut via notre infrastructure aiohttp, sanic et Tornado instrumentation existante. Coroutines utilisant l'API Python de l'agent background_task et les API de décoration web_transaction prennent également en charge les boucles d'événements d'asyncio.