observability: tracing gum, automatically cross ref traceID (#5079)

* add some gum

* bump expander

* gum

* fix all remaining issues

* last fixup

* Update node/gum/proc-macro/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* change

* netowrk

* fixins

* chore

* allow optional fmt str + args, prep for expr as kv field

* tracing -> gum rename fallout

* restrict further

* allow multiple levels of field accesses

* another round of docs and a slip of the pen

* update ADR

* fixup lock fiel

* use target: instead of target=

* minors

* fix

* chore

* Update node/gum/README.md

Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
This commit is contained in:
Bernhard Schuster
2022-03-15 12:05:16 +01:00
committed by GitHub
parent fa359fd1f7
commit d631f1dea8
130 changed files with 1708 additions and 808 deletions
@@ -271,7 +271,7 @@ impl RunningTask {
let resp = match self.do_request(&validator).await {
Ok(resp) => resp,
Err(TaskError::ShuttingDown) => {
tracing::info!(
gum::info!(
target: LOG_TARGET,
"Node seems to be shutting down, canceling fetch task"
);
@@ -286,7 +286,7 @@ impl RunningTask {
let chunk = match resp {
ChunkFetchingResponse::Chunk(resp) => resp.recombine_into_chunk(&self.request),
ChunkFetchingResponse::NoSuchChunk => {
tracing::debug!(
gum::debug!(
target: LOG_TARGET,
validator = ?validator,
"Validator did not have our chunk"
@@ -337,7 +337,7 @@ impl RunningTask {
match response_recv.await {
Ok(resp) => Ok(resp),
Err(RequestError::InvalidResponse(err)) => {
tracing::warn!(
gum::warn!(
target: LOG_TARGET,
origin= ?validator,
err= ?err,
@@ -346,7 +346,7 @@ impl RunningTask {
Err(TaskError::PeerError)
},
Err(RequestError::NetworkError(err)) => {
tracing::debug!(
gum::debug!(
target: LOG_TARGET,
origin= ?validator,
err= ?err,
@@ -355,7 +355,7 @@ impl RunningTask {
Err(TaskError::PeerError)
},
Err(RequestError::Canceled(oneshot::Canceled)) => {
tracing::debug!(target: LOG_TARGET,
gum::debug!(target: LOG_TARGET,
origin= ?validator,
"Erasure chunk request got canceled");
Err(TaskError::PeerError)
@@ -368,7 +368,7 @@ impl RunningTask {
match branch_hash(&self.erasure_root, chunk.proof(), chunk.index.0 as usize) {
Ok(hash) => hash,
Err(e) => {
tracing::warn!(
gum::warn!(
target: LOG_TARGET,
candidate_hash = ?self.request.candidate_hash,
origin = ?validator,
@@ -380,7 +380,7 @@ impl RunningTask {
};
let erasure_chunk_hash = BlakeTwo256::hash(&chunk.chunk);
if anticipated_hash != erasure_chunk_hash {
tracing::warn!(target: LOG_TARGET, origin = ?validator, "Received chunk does not match merkle tree");
gum::warn!(target: LOG_TARGET, origin = ?validator, "Received chunk does not match merkle tree");
return false
}
true
@@ -400,11 +400,11 @@ impl RunningTask {
)))
.await;
if let Err(err) = r {
tracing::error!(target: LOG_TARGET, err= ?err, "Storing erasure chunk failed, system shutting down?");
gum::error!(target: LOG_TARGET, err= ?err, "Storing erasure chunk failed, system shutting down?");
}
if let Err(oneshot::Canceled) = rx.await {
tracing::error!(target: LOG_TARGET, "Storing erasure chunk failed");
gum::error!(target: LOG_TARGET, "Storing erasure chunk failed");
}
}
@@ -420,7 +420,7 @@ impl RunningTask {
})
};
if let Err(err) = self.sender.send(FromFetchTask::Concluded(payload)).await {
tracing::warn!(
gum::warn!(
target: LOG_TARGET,
err= ?err,
"Sending concluded message for task failed"
@@ -431,7 +431,7 @@ impl RunningTask {
async fn conclude_fail(&mut self) {
if let Err(err) = self.sender.send(FromFetchTask::Failed(self.request.candidate_hash)).await
{
tracing::warn!(target: LOG_TARGET, ?err, "Sending `Failed` message for task failed");
gum::warn!(target: LOG_TARGET, ?err, "Sending `Failed` message for task failed");
}
}
}
@@ -262,7 +262,7 @@ impl TestRun {
return true
},
_ => {
tracing::debug!(target: LOG_TARGET, "Unexpected message");
gum::debug!(target: LOG_TARGET, "Unexpected message");
return false
},
}
@@ -103,7 +103,7 @@ impl Requester {
where
Context: SubsystemContext,
{
tracing::trace!(target: LOG_TARGET, ?update, "Update fetching heads");
gum::trace!(target: LOG_TARGET, ?update, "Update fetching heads");
let ActiveLeavesUpdate { activated, deactivated } = update;
// Stale leaves happen after a reversion - we don't want to re-run availability there.
if let Some(leaf) = activated.filter(|leaf| leaf.status == LeafStatus::Fresh) {
@@ -140,7 +140,7 @@ impl Requester {
// Also spawn or bump tasks for candidates in ancestry in the same session.
for hash in std::iter::once(leaf).chain(ancestors_in_session) {
let cores = get_occupied_cores(ctx, hash).await?;
tracing::trace!(
gum::trace!(
target: LOG_TARGET,
occupied_cores = ?cores,
"Query occupied core"
@@ -212,7 +212,7 @@ impl Requester {
)
.await
.map_err(|err| {
tracing::warn!(
gum::warn!(
target: LOG_TARGET,
error = ?err,
"Failed to spawn a fetch task"
@@ -107,16 +107,16 @@ impl SessionCache {
F: FnOnce(&SessionInfo) -> R,
{
if let Some(o_info) = self.session_info_cache.get(&session_index) {
tracing::trace!(target: LOG_TARGET, session_index, "Got session from lru");
gum::trace!(target: LOG_TARGET, session_index, "Got session from lru");
return Ok(Some(with_info(o_info)))
}
if let Some(info) =
self.query_info_from_runtime(ctx, runtime, parent, session_index).await?
{
tracing::trace!(target: LOG_TARGET, session_index, "Calling `with_info`");
gum::trace!(target: LOG_TARGET, session_index, "Calling `with_info`");
let r = with_info(&info);
tracing::trace!(target: LOG_TARGET, session_index, "Storing session info in lru!");
gum::trace!(target: LOG_TARGET, session_index, "Storing session info in lru!");
self.session_info_cache.put(session_index, info);
Ok(Some(r))
} else {
@@ -130,7 +130,7 @@ impl SessionCache {
/// subsystem on this.
pub fn report_bad_log(&mut self, report: BadValidators) {
if let Err(err) = self.report_bad(report) {
tracing::warn!(
gum::warn!(
target: LOG_TARGET,
err = ?err,
"Reporting bad validators failed with error"