newrelic / newrelic/newrelic-java-agent
[Spike] Investigate Feasibility of WebSocket Instrumentation
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 240
- Forks
- 170
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 21
Description
Related to: https://new-relic.atlassian.net/browse/NR-308847
Out of the box instrumentation for WebSockets has long been requested but it has proven difficult due to the constraints of the NR Transaction model. We would like to do a spike to determine if there is a workable solution.
This is likely to be a very large and complicated effort. A goal of any solution would be a general approach that is well documented in a new agent spec and is applicable across most, if not all, APM agents.
The goal of this spike is to determine if a working solution can be implemented for the Java agent and, if so, engage with other APM agent teams to determine if a similar approach is workable. Creating a new agent spec would be an ideal outcome but could be a follow-on task.
Some documentation on related efforts:
- https://newrelic.atlassian.net/wiki/spaces/APM/pages/4544922444/Web+Socket+Instrumentation+-+Phase+1+-+Instrumentation
- https://newrelic.atlassian.net/wiki/spaces/APM/pages/4547641596/Web+Socket+Instrumentation+-+Phase+2+-+Tracing
- https://community.splunk.com/t5/Community-Blog/Instrumenting-Java-Websocket-Messaging/ba-p/629425
- https://github.com/breedx-splk/java-ws-stomp?tab=readme-ov-file
- https://github.com/DataDog/dd-trace-py/pull/5215
- https://github.com/DataDog/browser-sdk/issues/2019
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 with the linked New Relic WebSocket Instrumentation Phase 1 and Phase 2 documentation, then review the referenced java-ws-stomp repository and related DataDog issues and pull requests. Determine whether a workable Java agent approach exists, record its constraints and applicability to other APM agents, and document the feasibility findings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- observability-sre
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100