-
Notifications
You must be signed in to change notification settings - Fork 904
Implement tracing spans for data columm RPC requests and responses #7831
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
Merged
Merged
Changes from all commits
Commits
Show all changes
70 commits
Select commit
Hold shift + click to select a range
c1a50bb
Add opentelemetry OTLP exporter for spans.
jimmygchen 6dba431
Add `workspace_filter` to telemetry layer to exclude libp2p traces.
jimmygchen 4147599
Squashed commit of the following:
jimmygchen 04c23d9
Remove all spans.
jimmygchen 03c647a
load_parent test.
jimmygchen c0804dc
Add gossip block instrumentation.
jimmygchen 0a8d22f
more instrument.
jimmygchen 172d859
Instrument `process_block` and `import_block`.
jimmygchen 386b425
Add more detailed instruments to `import_block`
jimmygchen 4268ae5
Add more detailed instruments to `import_block`
jimmygchen 3f55de0
Add more detailed instruments to `import_block`
jimmygchen 26e30c3
More instruments.
jimmygchen db4d342
More instruments.
jimmygchen 62940aa
More instruments.
jimmygchen e3f6273
Add service name
jimmygchen 2f6c32b
More instruments
jimmygchen e7fcb4c
Attempt to fix orphan spans
jimmygchen 868320a
A few more
jimmygchen a8055ae
disable resource to test root span not yet received issue
jimmygchen e4e9746
Clean ups.
jimmygchen 533ecc0
Revert potential bad change from 62940aa1 (resulted in missing root s…
jimmygchen 29d65bc
Add instrument back in.
jimmygchen 033861b
Merge branch 'tracing-spans-test' of github.com:jimmygchen/lighthouse…
jimmygchen 3ac075f
Make `process_block` a root span.
jimmygchen fb3bf31
More fixes
jimmygchen 333773f
More fixes
jimmygchen e1f584e
Fix span levels and add tracing to gossip/rpc block and blob paths.
jimmygchen c0991f5
Add process chain segment
jimmygchen d340231
Set parent to None on network beacon processors to prevent inheriting…
jimmygchen 91a2400
Add RPC method instruments.
jimmygchen 4a3689d
Remove unnecessary enter()
jimmygchen d1751f1
Fill more instrument gaps in `process_chain_segment`
jimmygchen 61a772f
Fill more instrument gaps in `process_chain_segment`
jimmygchen b358a1a
Instrument `PendingComponents`.
jimmygchen 4af2855
Instrument `PendingComponents` set parent to `None` to avoid incorrec…
jimmygchen 1cd9683
Remove unnecessary `allow` macro usage
jimmygchen ec37ad9
Merge branch 'unstable' into tracing-spans-test
jimmygchen a5ce826
Instrument rpc methods and by root responses. (TODO: by range responses)
jimmygchen 4dddfc1
Fix lint
jimmygchen e491c85
Add missing field declarations.
jimmygchen cf3a216
Improve RPC spans.
jimmygchen 4c7ef8b
Close a span properly and remove unnecessary span.
jimmygchen 68c8345
Track individual range requests.
jimmygchen e922250
Rename `outgoing_custody_request` and instrument all rpc methods with…
jimmygchen 40b84f3
Fix spans not entering correctly.
jimmygchen 57a8d56
More missing enters..
jimmygchen addf716
Refactor rabithole to clean things up and only allow for pre-defined …
jimmygchen 226b635
Display client kind instead
jimmygchen e2605e3
Record client kind properly
jimmygchen 1d6ee71
Record client kind properly
jimmygchen 474d100
Merge remote-tracking branch 'origin/unstable' into tracing-spans-rpc
jimmygchen 5acfd53
Merge remote-tracking branch 'origin/unstable' into tracing-spans-rpc
jimmygchen 7762c16
Skip exporting spans that are not part of / descendants of the allowe…
jimmygchen 433010d
Revert Makefile changes and re-arrange imports
jimmygchen 9132c9e
Add missing instrument on backfill
jimmygchen 3e020b9
Add some notes about panic
jimmygchen ac75779
Remove root span filtering layer, couldn't get it to work.
jimmygchen 921fa75
Instrumnet `SyncingChain`
jimmygchen 9ae161a
Instrument `SyncingChain`
jimmygchen fa3051a
Merge branch 'tracing-spans-rpc' of github.com:jimmygchen/lighthouse …
jimmygchen ee50628
Replace syncing chain child spans with events
jimmygchen 5f18692
Add more context to traces
jimmygchen 4b90aef
Fix docs
jimmygchen 61d8913
Consistent span level
jimmygchen 573cbf3
Remove span fields that are not useful
jimmygchen 5467596
Remove unused deps
jimmygchen 5aa0b82
Merge remote-tracking branch 'origin/unstable' into tracing-spans-rpc
jimmygchen 5ed1c6d
Code clean up and remove unnecessary span fields.
jimmygchen 6cb4ed5
Merge remote-tracking branch 'origin/unstable' into tracing-spans-rpc
jimmygchen 1dd9188
Merge remote-tracking branch 'origin/unstable' into tracing-spans-rpc
jimmygchen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
[package] | ||
name = "lighthouse_tracing" | ||
version = "0.1.0" | ||
edition = { workspace = true } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
//! This module contains root span identifiers for key code paths in the beacon node. | ||
//! | ||
//! TODO: These span identifiers will be used to implement selective tracing export (to be implemented), | ||
//! where only the listed root spans and their descendants will be exported to the tracing backend. | ||
|
||
/// Data Availability checker span identifiers | ||
pub const SPAN_PENDING_COMPONENTS: &str = "pending_components"; | ||
|
||
/// Gossip methods root spans | ||
pub const SPAN_PROCESS_GOSSIP_DATA_COLUMN: &str = "process_gossip_data_column"; | ||
pub const SPAN_PROCESS_GOSSIP_BLOB: &str = "process_gossip_blob"; | ||
pub const SPAN_PROCESS_GOSSIP_BLOCK: &str = "process_gossip_block"; | ||
|
||
/// Sync methods root spans | ||
pub const SPAN_SYNCING_CHAIN: &str = "syncing_chain"; | ||
pub const SPAN_OUTGOING_RANGE_REQUEST: &str = "outgoing_range_request"; | ||
pub const SPAN_OUTGOING_CUSTODY_REQUEST: &str = "outgoing_custody_request"; | ||
pub const SPAN_PROCESS_RPC_BLOCK: &str = "process_rpc_block"; | ||
pub const SPAN_PROCESS_RPC_BLOBS: &str = "process_rpc_blobs"; | ||
pub const SPAN_PROCESS_RPC_CUSTODY_COLUMNS: &str = "process_rpc_custody_columns"; | ||
pub const SPAN_PROCESS_CHAIN_SEGMENT: &str = "process_chain_segment"; | ||
|
||
/// RPC methods root spans | ||
pub const SPAN_HANDLE_BLOCKS_BY_RANGE_REQUEST: &str = "handle_blocks_by_range_request"; | ||
pub const SPAN_HANDLE_BLOBS_BY_RANGE_REQUEST: &str = "handle_blobs_by_range_request"; | ||
pub const SPAN_HANDLE_DATA_COLUMNS_BY_RANGE_REQUEST: &str = "handle_data_columns_by_range_request"; | ||
pub const SPAN_HANDLE_BLOCKS_BY_ROOT_REQUEST: &str = "handle_blocks_by_root_request"; | ||
pub const SPAN_HANDLE_BLOBS_BY_ROOT_REQUEST: &str = "handle_blobs_by_root_request"; | ||
pub const SPAN_HANDLE_DATA_COLUMNS_BY_ROOT_REQUEST: &str = "handle_data_columns_by_root_request"; | ||
pub const SPAN_HANDLE_LIGHT_CLIENT_UPDATES_BY_RANGE: &str = "handle_light_client_updates_by_range"; | ||
pub const SPAN_HANDLE_LIGHT_CLIENT_BOOTSTRAP: &str = "handle_light_client_bootstrap"; | ||
pub const SPAN_HANDLE_LIGHT_CLIENT_OPTIMISTIC_UPDATE: &str = | ||
"handle_light_client_optimistic_update"; | ||
pub const SPAN_HANDLE_LIGHT_CLIENT_FINALITY_UPDATE: &str = "handle_light_client_finality_update"; | ||
|
||
/// List of all root span names that are allowed to be exported to the tracing backend. | ||
/// Only these spans and their descendants will be processed to reduce noise from | ||
/// uninstrumented code paths. New root spans must be added to this list to be traced. | ||
pub const LH_BN_ROOT_SPAN_NAMES: &[&str] = &[ | ||
SPAN_SYNCING_CHAIN, | ||
SPAN_PENDING_COMPONENTS, | ||
SPAN_PROCESS_GOSSIP_DATA_COLUMN, | ||
SPAN_PROCESS_GOSSIP_BLOB, | ||
SPAN_PROCESS_GOSSIP_BLOCK, | ||
SPAN_OUTGOING_RANGE_REQUEST, | ||
SPAN_OUTGOING_CUSTODY_REQUEST, | ||
SPAN_PROCESS_RPC_BLOCK, | ||
SPAN_PROCESS_RPC_BLOBS, | ||
SPAN_PROCESS_RPC_CUSTODY_COLUMNS, | ||
SPAN_PROCESS_CHAIN_SEGMENT, | ||
SPAN_HANDLE_BLOCKS_BY_RANGE_REQUEST, | ||
SPAN_HANDLE_BLOBS_BY_RANGE_REQUEST, | ||
SPAN_HANDLE_DATA_COLUMNS_BY_RANGE_REQUEST, | ||
SPAN_HANDLE_BLOCKS_BY_ROOT_REQUEST, | ||
SPAN_HANDLE_BLOBS_BY_ROOT_REQUEST, | ||
SPAN_HANDLE_DATA_COLUMNS_BY_ROOT_REQUEST, | ||
SPAN_HANDLE_LIGHT_CLIENT_UPDATES_BY_RANGE, | ||
SPAN_HANDLE_LIGHT_CLIENT_BOOTSTRAP, | ||
SPAN_HANDLE_LIGHT_CLIENT_OPTIMISTIC_UPDATE, | ||
SPAN_HANDLE_LIGHT_CLIENT_FINALITY_UPDATE, | ||
]; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.