-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Instrumentation] Opentracing on P2P Messages #438
Comments
Issue Status: 1. Open 2. Started 3. Submitted 4. Done This issue now has a funding of 250.0 DAI (250.0 USD @ $1.0/DAI) attached to it.
|
Brief design:
|
Hi @d1vyank, do you have a brief write-up of your plan of attack for this issue? |
Hi @mkosowsk, I'm still working out the details but here is the approach I've mapped out so far:
|
Thank you! Quick update: I've been reading up on the Ethereum 2.0 architecture to understand the types of p2p messages and their flows so that I can trace them. |
Update: I've put up a PR for the first part (execution tracing), reviews appreciated! The second part (distributed tracing) requires a bit of design. I've been looking into the libp2p spec and couldn't find any provision for tracing related information to be transported at the protocol level. libp2p simply offers data streams between peers without defining what flows through them, unlike gRPC which allows metadata to be attached to request headers. I propose that we define a metadata field in the p2p message protobuf at the application layer to allow us to propagate traces between nodes. |
Update: Execution tracing is merged in. Distributed tracing is blocked on #528. To propagate traces between nodes we need to attach trace information to p2p messages. However, the wire format of these messages has not been defined yet. I'd be happy to look at this again once this is decided, if I have availability at the time. |
@prestonvanloon do you feel that @d1vyank's efforts warrant a payout of this bounty or is distributed tracing required? (looks like this is currently blocked by #528). Thanks! 👍 |
@d1vyank Let's visit that issue at a later date. We're still deciding on the wire protocol for the future. This is actually a topic for discussion tomorrow: ethereum/eth2.0-pm#8 @mkosowsk, I think this is good to go for the original request. Sorry about the delay! |
@prestonvanloon thanks! @ceresstation please pay out at your earliest convenience :) |
@d1vyank can you start / submit work on the issue again? It currently shows that you've stopped work. I'll pay you out as soon as that's done :) |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Workers have applied to start work. These users each claimed they can complete the work by 2 months, 1 week from now. 1) d1vyank has applied to start work (Funders only: approve worker | reject worker). Restarting work to collect bounty for execution tracing. Learn more on the Gitcoin Issue Details page. |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work has been started. These users each claimed they can complete the work by 2 months from now. 1) d1vyank has been approved to start work. Restarting work to collect bounty for execution tracing. Learn more on the Gitcoin Issue Details page. |
@d1vyank Just need you to submit work and then I can pay you out here :) |
Issue Status: 1. Open 2. Started 3. Submitted 4. Done Work for 250.0 DAI (250.0 USD @ $1.0/DAI) has been submitted by: @ceresstation please take a look at the submitted work:
|
Similar to #437, this task is to add tracing to Prysm, starting with P2P messages.
https://github.com/opentracing/opentracing-go
https://www.jaegertracing.io/
The ideal use case is to trace a P2P request from start to finish to determine where bottlenecks might be. Imagine that a request for a block body took 4 seconds from receiving the request to the reply. A tracing framework would be able to help us understand where the slowdown might be.
Some of the requirements to close this issue:
--disable-tracing
.If there are more requirements discovered in the design, please add them to the issue in a comment or editing this description.
The text was updated successfully, but these errors were encountered: