Backing and collator protocol traces including para-id (#2620)

* improve backing/provisioner spans

* span for collation requests

* add para_id to unbacked candidate spans

* differentiate validation-construction and find-assignment in selection

* better find-assignment spans

* organize unbacked-candidate spans directly under job root

* Update node/core/provisioner/src/lib.rs

Co-authored-by: Andronik Ordian <write@reusable.software>

Co-authored-by: Andronik Ordian <write@reusable.software>
This commit is contained in:
Robert Habermeier
2021-03-14 11:51:14 -05:00
committed by GitHub
parent bdb3256396
commit 94d50afd4e
5 changed files with 111 additions and 32 deletions
@@ -121,7 +121,7 @@ impl JobTrait for CandidateSelectionJob {
let cores = try_runtime_api!(cores);
drop(_span);
let _span = span.child_builder("find-assignment")
let _span = span.child_builder("validator-construction")
.with_relay_parent(&relay_parent)
.with_stage(jaeger::Stage::CandidateSelection)
.build();
@@ -134,6 +134,11 @@ impl JobTrait for CandidateSelectionJob {
Err(err) => return Err(Error::Util(err)),
};
let mut assignment_span = span.child_builder("find-assignment")
.with_relay_parent(&relay_parent)
.with_stage(jaeger::Stage::CandidateSelection)
.build();
let mut assignment = None;
for (idx, core) in cores.into_iter().enumerate() {
@@ -151,11 +156,19 @@ impl JobTrait for CandidateSelectionJob {
}
let assignment = match assignment {
Some(assignment) => assignment,
None => return Ok(()),
Some(assignment) => {
assignment_span.add_string_tag("assigned", "true");
assignment_span.add_para_id(assignment);
assignment
}
None => {
assignment_span.add_string_tag("assigned", "false");
return Ok(())
}
};
drop(_span);
drop(assignment_span);
CandidateSelectionJob::new(assignment, metrics, sender, receiver).run_loop(&span).await
}.boxed()