mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 14:01:06 +00:00
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:
committed by
GitHub
parent
fa359fd1f7
commit
d631f1dea8
@@ -0,0 +1,35 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Polkadot.
|
||||
|
||||
// Polkadot is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Polkadot is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#![deny(unused_crate_dependencies)]
|
||||
#![deny(missing_docs)]
|
||||
#![deny(clippy::dbg_macro)]
|
||||
|
||||
//! A wrapper around `tracing` macros, to provide semi automatic
|
||||
//! `traceID` annotation without codebase turnover.
|
||||
|
||||
pub use tracing::{enabled, event, Level};
|
||||
|
||||
#[doc(hidden)]
|
||||
pub use jaeger::hash_to_trace_identifier;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub use polkadot_primitives::v2::{CandidateHash, Hash};
|
||||
|
||||
pub use gum_proc_macro::{debug, error, info, trace, warn};
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
@@ -0,0 +1,104 @@
|
||||
// Copyright 2022 Parity Technologies (UK) Ltd.
|
||||
// This file is part of Polkadot.
|
||||
|
||||
// Polkadot is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
|
||||
// Polkadot is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
use super::*;
|
||||
pub use polkadot_primitives::v2::{CandidateHash, Hash};
|
||||
|
||||
#[derive(Default, Debug)]
|
||||
struct Y {
|
||||
#[allow(dead_code)]
|
||||
x: u8,
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn plain() {
|
||||
error!("plain");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn wo_alias() {
|
||||
let a: i32 = 7;
|
||||
error!(target: "foo",
|
||||
"Something something {}, {:?}, or maybe {}",
|
||||
a,
|
||||
b = Y::default(),
|
||||
c = a
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn wo_unnecessary() {
|
||||
let a: i32 = 7;
|
||||
warn!(target: "bar",
|
||||
a = a,
|
||||
b = ?Y::default(),
|
||||
"fff {c}",
|
||||
c = a,
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn w_candidate_hash_value_assignment() {
|
||||
let a: i32 = 7;
|
||||
info!(target: "bar",
|
||||
a = a,
|
||||
// ad-hoc value
|
||||
candidate_hash = %CandidateHash(Hash::repeat_byte(0xF0)),
|
||||
b = ?Y::default(),
|
||||
c = ?a,
|
||||
"xxx",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn w_candidate_hash_from_scope() {
|
||||
let a: i32 = 7;
|
||||
let candidate_hash = CandidateHash(Hash::repeat_byte(0xF1));
|
||||
debug!(target: "bar",
|
||||
a = a,
|
||||
?candidate_hash,
|
||||
b = ?Y::default(),
|
||||
c = ?a,
|
||||
"xxx",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn w_candidate_hash_aliased() {
|
||||
let a: i32 = 7;
|
||||
let c_hash = Hash::repeat_byte(0xFA);
|
||||
trace!(target: "bar",
|
||||
a = a,
|
||||
candidate_hash = ?c_hash,
|
||||
b = ?Y::default(),
|
||||
c = a,
|
||||
"xxx",
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn w_candidate_hash_aliased_unnecessary() {
|
||||
let a: i32 = 7;
|
||||
let candidate_hash = CandidateHash(Hash::repeat_byte(0xFA));
|
||||
info!(
|
||||
target: "bar",
|
||||
a = a,
|
||||
candidate_hash = ?candidate_hash,
|
||||
b = ?Y::default(),
|
||||
c = a,
|
||||
"xxx",
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user