From 1927bec81ca4248536705214f7a87a8baa58c326 Mon Sep 17 00:00:00 2001 From: Pessina Date: Tue, 6 Aug 2024 14:08:09 +0700 Subject: [PATCH 1/2] Include stackdriver layer to format logs on GCP format --- chain-signatures/Cargo.lock | 29 ++++++++++++++++ chain-signatures/node/Cargo.toml | 1 + chain-signatures/node/src/cli.rs | 21 ++++++++---- integration-tests/chain-signatures/Cargo.lock | 33 +++++++++++++++++-- 4 files changed, 76 insertions(+), 8 deletions(-) diff --git a/chain-signatures/Cargo.lock b/chain-signatures/Cargo.lock index f5b06882a..112306b3d 100644 --- a/chain-signatures/Cargo.lock +++ b/chain-signatures/Cargo.lock @@ -3837,6 +3837,7 @@ dependencies = [ "tokio", "tokio-retry", "tracing", + "tracing-stackdriver", "tracing-subscriber", "url 2.5.2", ] @@ -7593,6 +7594,31 @@ dependencies = [ "web-time", ] +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-stackdriver" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80048836e000e1f058562f01d69cc46f476955bf389c0dc2d2d7edb98ca63ac1" +dependencies = [ + "Inflector", + "serde", + "serde_json", + "thiserror", + "time", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -7603,12 +7629,15 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log 0.2.0", + "tracing-serde", ] [[package]] diff --git a/chain-signatures/node/Cargo.toml b/chain-signatures/node/Cargo.toml index 2a38778b1..a82ffa3eb 100644 --- a/chain-signatures/node/Cargo.toml +++ b/chain-signatures/node/Cargo.toml @@ -41,6 +41,7 @@ tokio = { version = "1.28", features = ["full"] } tokio-retry = "0.3" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing-stackdriver = "0.10.0" url = { version = "2.4.0", features = ["serde"] } near-account-id = "1.0.0" diff --git a/chain-signatures/node/src/cli.rs b/chain-signatures/node/src/cli.rs index e4445c9c5..670594a58 100644 --- a/chain-signatures/node/src/cli.rs +++ b/chain-signatures/node/src/cli.rs @@ -9,7 +9,8 @@ use near_account_id::AccountId; use near_crypto::{InMemorySigner, SecretKey}; use std::sync::Arc; use tokio::sync::{mpsc, RwLock}; -use tracing_subscriber::EnvFilter; +use tracing_stackdriver::layer as stackdriver_layer; +use tracing_subscriber::{layer::SubscriberExt, EnvFilter, Registry}; use url::Url; use mpc_keys::hpke; @@ -144,14 +145,22 @@ fn is_running_on_gcp() -> bool { pub fn run(cmd: Cli) -> anyhow::Result<()> { // Install global collector configured based on RUST_LOG env var. - let mut subscriber = tracing_subscriber::fmt() - .with_thread_ids(true) - .with_env_filter(EnvFilter::from_default_env()); + let stackdriver = stackdriver_layer().with_writer(|| std::io::stderr()); + + let mut fmt_layer = tracing_subscriber::fmt::layer().with_thread_ids(true); + if is_running_on_gcp() { // Disable colored logging as it messes up GCP's log formatting - subscriber = subscriber.with_ansi(false); + fmt_layer = fmt_layer.with_ansi(false); } - subscriber.init(); + + let subscriber = Registry::default() + .with(EnvFilter::from_default_env()) + .with(fmt_layer) + .with(stackdriver); + + tracing::subscriber::set_global_default(subscriber).expect("Failed to set subscriber"); + let _span = tracing::trace_span!("cli").entered(); match cmd { diff --git a/integration-tests/chain-signatures/Cargo.lock b/integration-tests/chain-signatures/Cargo.lock index f920c7a93..ed5444513 100644 --- a/integration-tests/chain-signatures/Cargo.lock +++ b/integration-tests/chain-signatures/Cargo.lock @@ -4239,7 +4239,7 @@ dependencies = [ [[package]] name = "mpc-contract" -version = "1.0.0-rc.2" +version = "1.0.0-rc.3" dependencies = [ "borsh", "crypto-shared", @@ -4264,7 +4264,7 @@ dependencies = [ [[package]] name = "mpc-node" -version = "1.0.0-rc.2" +version = "1.0.0-rc.3" dependencies = [ "anyhow", "async-trait", @@ -4310,6 +4310,7 @@ dependencies = [ "tokio", "tokio-retry", "tracing", + "tracing-stackdriver", "tracing-subscriber", "url 2.5.1", ] @@ -8452,6 +8453,31 @@ dependencies = [ "web-time", ] +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-stackdriver" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80048836e000e1f058562f01d69cc46f476955bf389c0dc2d2d7edb98ca63ac1" +dependencies = [ + "Inflector", + "serde", + "serde_json", + "thiserror", + "time", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -8462,12 +8488,15 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log 0.2.0", + "tracing-serde", ] [[package]] From 14fff9a5e820f7c9b1ce4da57c9606cc6d3ef780 Mon Sep 17 00:00:00 2001 From: Pessina Date: Tue, 6 Aug 2024 14:34:35 +0700 Subject: [PATCH 2/2] Fix clippy recommendation --- chain-signatures/node/src/cli.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain-signatures/node/src/cli.rs b/chain-signatures/node/src/cli.rs index 670594a58..9952b99c4 100644 --- a/chain-signatures/node/src/cli.rs +++ b/chain-signatures/node/src/cli.rs @@ -145,7 +145,7 @@ fn is_running_on_gcp() -> bool { pub fn run(cmd: Cli) -> anyhow::Result<()> { // Install global collector configured based on RUST_LOG env var. - let stackdriver = stackdriver_layer().with_writer(|| std::io::stderr()); + let stackdriver = stackdriver_layer().with_writer(std::io::stderr); let mut fmt_layer = tracing_subscriber::fmt::layer().with_thread_ids(true);