The New Relic Python agent supports asyncio event loop diagnostics. When there are transactions blocking or delaying an event loop, the agent is able to generate diagnostics to help find and resolve them.
Requires New Relic Python agent version 188.8.131.52 or higher.
View in New Relic UI
In APM, your event loop transaction data will be in the transaction breakdown table and the trace details page.
Event loop metrics will appear in the transaction Breakdown table:
Time spent waiting on other transactions will be shown in the transaction Trace details page:
Event Loop NRQL Queries
eventLoopWait attributes will be available via NRQL query. An example query might be:
SELECT count(*) as 'count', average(eventLoopTime) as 'loopTime', average(eventLoopWait) as 'loopWait' FROM Transaction facet name
In New Relic Insights, you might see results like this:
Where to diagnose event loops
Event loop diagnostics will be available by default through our existing aiohttp, sanic, and Tornado instrumentation frameworks. Coroutines using the Python agent API background_task and web_transaction decorator APIs also support asyncio's event loops.