mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 05:21:08 +00:00
initial jaeger integration (#2047)
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com> Co-authored-by: Peter Goodspeed-Niklaus <coriolinus@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
15c253117d
commit
a5fe710cc6
@@ -25,6 +25,7 @@ use futures::{
|
||||
};
|
||||
use sp_keystore::SyncCryptoStorePtr;
|
||||
use polkadot_node_subsystem::{
|
||||
jaeger,
|
||||
errors::ChainApiError,
|
||||
messages::{
|
||||
AllMessages, CandidateBackingMessage, CandidateSelectionMessage, CollatorProtocolMessage,
|
||||
@@ -99,7 +100,9 @@ impl JobTrait for CandidateSelectionJob {
|
||||
receiver: mpsc::Receiver<CandidateSelectionMessage>,
|
||||
mut sender: mpsc::Sender<FromJobCommand>,
|
||||
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send>> {
|
||||
let span = jaeger::hash_span(&relay_parent, "candidate-selection:run");
|
||||
async move {
|
||||
let _span = span.child("query runtime");
|
||||
let (groups, cores) = futures::try_join!(
|
||||
try_runtime_api!(request_validator_groups(relay_parent, &mut sender).await),
|
||||
try_runtime_api!(request_from_runtime(
|
||||
@@ -112,6 +115,9 @@ impl JobTrait for CandidateSelectionJob {
|
||||
let (validator_groups, group_rotation_info) = try_runtime_api!(groups);
|
||||
let cores = try_runtime_api!(cores);
|
||||
|
||||
drop(_span);
|
||||
let _span = span.child("find assignment");
|
||||
|
||||
let n_cores = cores.len();
|
||||
|
||||
let validator = match Validator::new(relay_parent, keystore.clone(), sender.clone()).await {
|
||||
@@ -141,7 +147,9 @@ impl JobTrait for CandidateSelectionJob {
|
||||
None => return Ok(()),
|
||||
};
|
||||
|
||||
CandidateSelectionJob::new(assignment, metrics, sender, receiver).run_loop().await
|
||||
drop(_span);
|
||||
|
||||
CandidateSelectionJob::new(assignment, metrics, sender, receiver).run_loop(&span).await
|
||||
}.boxed()
|
||||
}
|
||||
}
|
||||
@@ -162,7 +170,8 @@ impl CandidateSelectionJob {
|
||||
}
|
||||
}
|
||||
|
||||
async fn run_loop(&mut self) -> Result<(), Error> {
|
||||
async fn run_loop(&mut self, span: &jaeger::JaegerSpan) -> Result<(), Error> {
|
||||
let span = span.child("run loop");
|
||||
loop {
|
||||
match self.receiver.next().await {
|
||||
Some(CandidateSelectionMessage::Collation(
|
||||
@@ -170,12 +179,14 @@ impl CandidateSelectionJob {
|
||||
para_id,
|
||||
collator_id,
|
||||
)) => {
|
||||
let _span = span.child("handle collation");
|
||||
self.handle_collation(relay_parent, para_id, collator_id).await;
|
||||
}
|
||||
Some(CandidateSelectionMessage::Invalid(
|
||||
_,
|
||||
candidate_receipt,
|
||||
)) => {
|
||||
let _span = span.child("handle invalid");
|
||||
self.handle_invalid(candidate_receipt).await;
|
||||
}
|
||||
None => break,
|
||||
@@ -459,10 +470,10 @@ mod tests {
|
||||
};
|
||||
|
||||
preconditions(&mut job);
|
||||
|
||||
let span = jaeger::JaegerSpan::Disabled;
|
||||
let (_, job_result) = futures::executor::block_on(future::join(
|
||||
test(to_job_tx, from_job_rx),
|
||||
job.run_loop(),
|
||||
job.run_loop(&span),
|
||||
));
|
||||
|
||||
postconditions(job, job_result);
|
||||
|
||||
Reference in New Issue
Block a user