newrelic / newrelic/newrelic-java-agent
AWS S3 instrumentation reports 2 externals
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 240
- Forks
- 170
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 21
Description
Description
The S3 SDK uses an HTTP library to retrieve data/objects from S3.
The instrumentation module for S3 reports an external whenever it does a request. And the instrumentation for the HTTP library will also report an external, resulting in 2 externals for each S3 request.
In the image, the span named s3://nr-downloads-main - S3/listObjects is the external created by the S3 instrumentation.
And the span named https://nr-downloads-main.s3.amazonaws.com - CommonsHttp/execute is the one created by the HTTP library.
Acceptance Criteria
Each request to S3 should only report one external.
Design Consideration/Limitations
One possible solution is to make the S3 tracer a leaf. This way the HTTP instrumentation will not report an external.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the S3 instrumentation module and the HTTP-library instrumentation that create the s3://.../S3/listObjects and https://.../CommonsHttp/execute externals. Trace one S3 request through both instrumentations, then verify that each request reports only one external as specified by the acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, java
- Domain
- observability-sre
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100