-
Notifications
You must be signed in to change notification settings - Fork 1.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
Libp2p introspection #775
Comments
Hey @aarshkshah1992 - can you add a fleshed out description to this with goals, scope, todos, etc? |
@raulk Please can you take a look at fleshed out issue & let me know what you think ? |
We've decided to go a different way by adding Prometheus metrics for all of the libp2p subsystems. I don't see us pick up this work any time soon, in fact, we've removed the unused introspection package in #1978. Our current metrics effort is tracked in #1356, and we've just added Prometheus metrics for the swarm in #1973. The resource manager has already been exporting metrics for a while. |
This is a long-lived meta-issue to track the Libp2p introspection work. Please note that this work is heavy WIP & the details below will be subject to frequent change as we progress with this feature.
Goal & Scope
Design
* Build the snapshot of the node/introspection protocol by allowing libp2p subsystems to register themselves as state providers & then sourcing the data from these providers.
* Serve the data sourced above to clients over the wire. For eg: A websocket server that serves the data as protobuf.
To this end, we have currently defined two interfaces:
AND
Implementations of both these components can then be injected into an "Introspectable" host which can expose them to it's subsystems(for sourcing the data) & clients(for serving the data). This detail is captured by an additional interface that a host which is interested in being introspected must implement:
Current State
go-libp2p-core
in (Long-lived branch): Introspection capability for go-libp2p go-libp2p-core#112.Endpoint
&Introspector
interfaces have been implemented in the newly createdgo-libp2p-introspector
repo. This currently enables clients to fetch the available introspection data in protobuf over a Websocket server.BasicHost
implements theIntrospectableHost
interface and can be introspected. PR is at (Long-lived branch): Introspection capability for go-libp2p #792go-libp2p-swarm
metrics as implemented in (Long-lived branch): Introspection – harvest data from go-libp2p-swarm go-libp2p-swarm#159. Some of the swarm metrics required by the current introspection protocol are still not available and the same have been documented as TODOs in the PR.See it in action
Next Steps
The text was updated successfully, but these errors were encountered: