open-telemetry / open-telemetry/opentelemetry-java-instrumentation

Support Akka/Pekko Cluster

Open
#10,104 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

contribution welcome enhancement new instrumentation
Dominant language
Java
Stars
2.6k
Forks
1.2k
Avg merge
2d 18h
Merged PRs (30d)
228

Description

Is your feature request related to a problem? Please describe.

Akka (and its fork Pekko) has the concept of Cluster, or communication between multiple nodes of the same service. OTel is already capable of message propagation through Akka Actors, but the propagation is broken if the message passes to a different node through Akka Remoting, which is what Cluster uses under-the-hood.

Describe the solution you'd like

I'd like to see auto-instrumentation support Akka Remoting.

Describe alternatives you've considered

No response

Additional context

Akka Remoting got a big overhaul starting in Akka 2.6, so 2.5 and lower would either need a separate instrumentation or not be instrumented. As Pekko was forked off 2.6, the Akka 2.6 instrumentation can be copied for Pekko, just renaming the classes.

Also, Kamon's auto-instrumentation agent already supports Akka Remoting, both 2.5 and 2.6. Their code is also open source under the Apache license, so it might be a good starting point to see how they instrumented Remoting to use it as an inspiration for how to instrument it in OTel.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing Akka 2.6 instrumentation and Kamon's auto-instrumentation agent, using the linked Akka Remoting documentation to understand the remoting path. Determine the supported Akka and Pekko versions and verify that propagation works when messages cross cluster nodes, including the stated limitations for Akka 2.5 and older.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.