Description
Overview:
Starlette is a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services. It supports both HTTP and WebSockets. With over 500K downloads a month, it is growing rapidly in popularity: https://pypistats.org/packages/starlette
Currently, customers will not see see data in NR when monitoring their Starlette ASGI application. This MMF addresses this, giving those customers visibility their transactions and downstream services.
The key is to show transactions data and ensure they can also view those transactions are viewable in DT.
Acceptance Criteria:
-
Extract and send web-transaction events (start/end time) for http requests (not web sockets since they do not create transactions, since this can cause memory explosion for long-running transactions)
-
Attach appropriate attributes to those events i.e.
- number of bytes on output automatically captured
- Request headers automatically captured
- Request method
- Request URI
- Response headers
- Response status
-
Send span event data / trace id? (goal here to to ensure those transactions translate to a span and there is an id that is passed from the transaction to the external service so we can track them in DT view.
-
Add to New Relic docs and website that we offer Starlette support
-
Units Tests
-
Demo