apm-agent-python
apm-agent-python copied to clipboard
Aiobotocore invalid timings
Description of the bug
The Elastic APM agent reports incorrect timing for operations involving aiobotocore. Because aiobotocore performs asynchronous I/O using boto3, the measured span duration reflects only a small part (1–2 seconds) of the actual time required to download a file. As a result, the reported duration is significantly shorter than the true elapsed time.
To Reproduce
- Set up Elastic APM agent in a project using aioboto3 or aiobotocore.
- Upload a large file (e.g. >50 MB) and download it from code using
await s3_client.get_object(...)(you also need to read the response) or similar. - Observe the reported span duration in the APM dashboard (e.g. Kibana).
- Compare it with the actual download time measured independently (e.g.
await+time.perf_counter_ns()).
Environment
- OS: Linux
- Python version: 3.12
- Framework and version: FastAPI 0.115.14
- APM Server version: N/A
- Agent version: 6.22.3