Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #390
Motivation
There is no support for instrumentation. If for some reason the connection with network node breaks or is slow / not responding properly there is no way to easily find out the underlying issues.
Solution
Tracing outbound requests solves this problem. It tells how many of the requests made to
/block
/status
and other endpoints were successful or failed and their P-latency.You can Enable instrumentation from config using flag
"enable_request_instrumentation": true
Set Otel collector url using
otel_collector_url:"localhost:4317"
Any collector can be used I have tested with Signoz and Zipkin.
More context in #390
Implementation
We override fetcher's ApiClient with a traced ApiClient that generates tracing data for all outbound requests. Tracer package initialise and set a global trace provider that collects all of this data and exports it to collectors.