diff --git a/Cargo.lock b/Cargo.lock index a3eccbe31b..ec35dc768e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3863,7 +3863,7 @@ dependencies = [ "fs-err", "hex", "miden-node-proto", - "miden-node-utils", + "miden-node-tracing", "miden-protocol", "miden-standards", "miden-tx", @@ -4169,6 +4169,7 @@ dependencies = [ "humantime", "maud", "miden-node-proto", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4185,7 +4186,6 @@ dependencies = [ "tokio", "tonic", "tonic-health", - "tracing", "url", ] @@ -4200,12 +4200,12 @@ dependencies = [ "miden-node-proto", "miden-node-rpc", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "tokio", "tokio-stream", "tonic", - "tracing", "url", ] @@ -4220,6 +4220,7 @@ dependencies = [ "miden-block-prover", "miden-node-proto", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4234,7 +4235,6 @@ dependencies = [ "tokio-stream", "tonic", "tonic-health", - "tracing", "url", ] @@ -4251,13 +4251,13 @@ dependencies = [ "deadpool-sync", "diesel", "fs-err", + "miden-node-tracing", "miden-protocol", "rusqlite", "sha2 0.10.9", "tempfile", "thiserror 2.0.20", "tokio", - "tracing", ] [[package]] @@ -4281,6 +4281,7 @@ dependencies = [ "http 1.5.0", "miden-node-grpc-error-macro", "miden-node-proto-build", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4295,7 +4296,6 @@ dependencies = [ "tonic-prost", "tonic-prost-build", "tower", - "tracing", "url", ] @@ -4323,6 +4323,7 @@ dependencies = [ "miden-node-proto", "miden-node-proto-build", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4341,7 +4342,6 @@ dependencies = [ "tonic-web", "tower", "tower-http", - "tracing", "url", ] @@ -4365,6 +4365,7 @@ dependencies = [ "miden-node-db", "miden-node-proto", "miden-node-test-macro", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4378,7 +4379,6 @@ dependencies = [ "thread-priority", "tokio", "toml", - "tracing", ] [[package]] @@ -4390,6 +4390,7 @@ dependencies = [ "futures", "miden-node-proto", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4407,6 +4408,31 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "miden-node-tracing" +version = "0.16.0-rc.2" +dependencies = [ + "anyhow", + "bytes", + "http 1.5.0", + "http-body-util", + "miden-node-tracing-macro", + "miden-protocol", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry_sdk", + "thiserror 2.0.20", + "tokio", + "tonic", + "tower-http", + "tower_governor", + "tracing", + "tracing-forest", + "tracing-opentelemetry", + "tracing-subscriber", + "trybuild", +] + [[package]] name = "miden-node-tracing-macro" version = "0.16.0-rc.2" @@ -4422,20 +4448,15 @@ version = "0.16.0-rc.2" dependencies = [ "anyhow", "backon", - "bytes", "clap", "fs-err", "http 1.5.0", - "http-body-util", "humantime", "itertools 0.14.0", "lru", "miden-crypto", - "miden-node-tracing-macro", + "miden-node-tracing", "miden-protocol", - "opentelemetry", - "opentelemetry-otlp", - "opentelemetry_sdk", "reqwest", "thiserror 2.0.20", "tokio", @@ -4444,11 +4465,6 @@ dependencies = [ "tower", "tower-http", "tower_governor", - "tracing", - "tracing-forest", - "tracing-opentelemetry", - "tracing-subscriber", - "trybuild", "url", ] @@ -4466,6 +4482,7 @@ dependencies = [ "miden-node-proto", "miden-node-proto-build", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-standards", @@ -4479,7 +4496,6 @@ dependencies = [ "tonic", "tonic-reflection", "tower-http", - "tracing", "url", ] @@ -4643,6 +4659,7 @@ dependencies = [ "miden-block-prover", "miden-node-proto", "miden-node-proto-build", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-testing", @@ -4656,7 +4673,6 @@ dependencies = [ "tonic-reflection", "tonic-web", "tower-http", - "tracing", ] [[package]] @@ -4836,6 +4852,7 @@ dependencies = [ "miden-node-proto", "miden-node-proto-build", "miden-node-store", + "miden-node-tracing", "miden-node-utils", "miden-protocol", "miden-testing", @@ -4854,7 +4871,6 @@ dependencies = [ "tonic-reflection", "tower", "tower-http", - "tracing", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index 96eaf33d94..c4ce6ec7a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ members = [ "crates/rpc", "crates/store", "crates/test-macro", + "crates/tracing", "crates/tracing-macro", "crates/utils", "proto", @@ -51,6 +52,7 @@ miden-node-proto-build = { path = "proto", version = "0.16.0-rc.2" } miden-node-rpc = { path = "crates/rpc", version = "0.16.0-rc.2" } miden-node-store = { path = "crates/store", version = "0.16.0-rc.2" } miden-node-test-macro = { path = "crates/test-macro" } +miden-node-tracing = { path = "crates/tracing", version = "0.16.0-rc.2" } miden-node-tracing-macro = { path = "crates/tracing-macro", version = "0.16.0-rc.2" } miden-node-utils = { path = "crates/utils", version = "0.16.0-rc.2" } @@ -131,6 +133,7 @@ tonic-reflection = { version = "0.14" } tonic-web = { version = "0.14" } tower = { version = "0.5" } tower-http = { features = ["cors", "trace"], version = "0.6" } +tower_governor = { version = "0.8" } tracing = { version = "0.1" } tracing-subscriber = { features = ["env-filter", "fmt", "json"], version = "0.3" } trybuild = { version = "1.0" } diff --git a/bin/benchmark/Cargo.toml b/bin/benchmark/Cargo.toml index 4ff2423211..0f133fd6b4 100644 --- a/bin/benchmark/Cargo.toml +++ b/bin/benchmark/Cargo.toml @@ -17,17 +17,17 @@ version.workspace = true workspace = true [dependencies] -anyhow = { workspace = true } -clap = { features = ["env", "string"], workspace = true } -fs-err = { workspace = true } -hex = { workspace = true } -miden-node-proto = { workspace = true } -miden-node-utils = { workspace = true } -miden-protocol = { features = ["std", "testing"], workspace = true } -miden-standards = { workspace = true } -miden-tx = { features = ["concurrent", "std"], workspace = true } -rand = { workspace = true } -rayon = { workspace = true } -tokio = { features = ["full"], workspace = true } -tonic = { workspace = true } -url = { features = ["serde"], workspace = true } +anyhow = { workspace = true } +clap = { features = ["env", "string"], workspace = true } +fs-err = { workspace = true } +hex = { workspace = true } +miden-node-proto = { workspace = true } +miden-node-tracing = { workspace = true } +miden-protocol = { features = ["std", "testing"], workspace = true } +miden-standards = { workspace = true } +miden-tx = { features = ["concurrent", "std"], workspace = true } +rand = { workspace = true } +rayon = { workspace = true } +tokio = { features = ["full"], workspace = true } +tonic = { workspace = true } +url = { features = ["serde"], workspace = true } diff --git a/bin/benchmark/src/prover.rs b/bin/benchmark/src/prover.rs index bfcd1c87f6..c8b3446e46 100644 --- a/bin/benchmark/src/prover.rs +++ b/bin/benchmark/src/prover.rs @@ -16,7 +16,7 @@ use std::time::{Duration, Instant}; use anyhow::{Context, Result}; use miden_node_proto::clients::{Builder, RemoteProverClient}; use miden_node_proto::generated::remote_prover::{ProofRequest, ProofType}; -use miden_node_utils::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; use miden_protocol::transaction::{ExecutedTransaction, ProvenTransaction, TransactionInputs}; use miden_protocol::utils::serde::{Deserializable, Serializable}; use miden_tx::{LocalTransactionProver, TransactionProverError}; diff --git a/bin/network-monitor/Cargo.toml b/bin/network-monitor/Cargo.toml index 84601900f1..d6e11d80e4 100644 --- a/bin/network-monitor/Cargo.toml +++ b/bin/network-monitor/Cargo.toml @@ -14,10 +14,6 @@ version.workspace = true [lints] workspace = true -[package.metadata.cargo-shear] -# Required by expansions of the Miden tracing macros. -ignored = ["tracing"] - [dependencies] anyhow = { workspace = true } axum = { workspace = true } @@ -28,6 +24,7 @@ hex = { workspace = true } humantime = { workspace = true } maud = { features = ["axum"], version = "0.27" } miden-node-proto = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { features = ["std"], workspace = true } miden-standards = { workspace = true } @@ -43,7 +40,6 @@ time = { features = ["formatting", "macros"], version = "0.3" } tokio = { features = ["full"], workspace = true } tonic = { features = ["codegen", "tls-native-roots", "transport"], workspace = true } tonic-health = { workspace = true } -tracing = { workspace = true } url = { features = ["serde"], workspace = true } [dev-dependencies] diff --git a/bin/network-monitor/src/commands/start.rs b/bin/network-monitor/src/commands/start.rs index 5ff74d1a5e..d038532dfb 100644 --- a/bin/network-monitor/src/commands/start.rs +++ b/bin/network-monitor/src/commands/start.rs @@ -3,8 +3,7 @@ //! This module contains the implementation for starting the network monitoring service. use anyhow::Result; -use miden_node_utils::logging::OpenTelemetry; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{OpenTelemetry, info, miden_instrument}; use crate::config::MonitorConfig; use crate::frontend::ServerState; @@ -30,7 +29,7 @@ pub async fn start_monitor(config: MonitorConfig) -> Result<()> { info!(target: LOG_TARGET, "Loaded configuration", port = config.port); let _otel_guard = - miden_node_utils::logging::setup_tracing(OpenTelemetry::from_env().with_name("monitor"))?; + miden_node_tracing::setup_tracing(OpenTelemetry::from_env().with_name("monitor"))?; let mut tasks = Tasks::new(); diff --git a/bin/network-monitor/src/counter.rs b/bin/network-monitor/src/counter.rs index a2af9755c5..f890b2acd8 100644 --- a/bin/network-monitor/src/counter.rs +++ b/bin/network-monitor/src/counter.rs @@ -9,8 +9,8 @@ use std::time::{Duration, Instant}; use anyhow::{Context, Result}; use miden_node_proto::clients::RpcClient; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{debug, error, info, miden_instrument, warn}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{debug, error, info, miden_instrument, warn}; use miden_protocol::account::auth::AuthSecretKey; use miden_protocol::account::{Account, AccountCode, AccountId, AccountPatch}; use miden_protocol::asset::AssetVault; diff --git a/bin/network-monitor/src/deploy/counter.rs b/bin/network-monitor/src/deploy/counter.rs index dc7881c4fe..c8df9866e0 100644 --- a/bin/network-monitor/src/deploy/counter.rs +++ b/bin/network-monitor/src/deploy/counter.rs @@ -3,7 +3,7 @@ use std::collections::BTreeSet; use anyhow::Result; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::account::component::AccountComponentMetadata; use miden_protocol::account::{ Account, diff --git a/bin/network-monitor/src/deploy/mod.rs b/bin/network-monitor/src/deploy/mod.rs index a4180db158..38c07813f2 100644 --- a/bin/network-monitor/src/deploy/mod.rs +++ b/bin/network-monitor/src/deploy/mod.rs @@ -23,9 +23,9 @@ use miden_node_proto::generated::rpc::{ SyncChainMmrRequest, }; use miden_node_proto::generated::transaction::ProvenTransaction as ProtoProvenTransaction; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{debug, info, miden_instrument, warn}; use miden_node_utils::retry; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{debug, info, miden_instrument, warn}; use miden_protocol::Word; use miden_protocol::account::{ Account, diff --git a/bin/network-monitor/src/deploy/wallet.rs b/bin/network-monitor/src/deploy/wallet.rs index 11e81edb3b..ccff44cd6f 100644 --- a/bin/network-monitor/src/deploy/wallet.rs +++ b/bin/network-monitor/src/deploy/wallet.rs @@ -3,7 +3,7 @@ use std::sync::LazyLock; use anyhow::{Context, Result}; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::Word; use miden_protocol::account::auth::AuthScheme; use miden_protocol::account::{ diff --git a/bin/network-monitor/src/explorer.rs b/bin/network-monitor/src/explorer.rs index 5deaa0aa2c..17fadf64ca 100644 --- a/bin/network-monitor/src/explorer.rs +++ b/bin/network-monitor/src/explorer.rs @@ -4,7 +4,7 @@ use std::time::Duration; use anyhow::Context; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use reqwest::Client; use serde::{Deserialize, Deserializer, Serialize}; use url::Url; diff --git a/bin/network-monitor/src/faucet.rs b/bin/network-monitor/src/faucet.rs index 7c47835a77..fe83a2c44e 100644 --- a/bin/network-monitor/src/faucet.rs +++ b/bin/network-monitor/src/faucet.rs @@ -7,8 +7,8 @@ use std::time::{Duration, Instant}; use anyhow::Context; use hex; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{debug, info, miden_instrument, trace, warn}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{debug, info, miden_instrument, trace, warn}; use reqwest::Client; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; diff --git a/bin/network-monitor/src/frontend.rs b/bin/network-monitor/src/frontend.rs index f331a0c2df..e13e614140 100644 --- a/bin/network-monitor/src/frontend.rs +++ b/bin/network-monitor/src/frontend.rs @@ -12,7 +12,7 @@ use axum::http::header; use axum::response::{IntoResponse, Response}; use axum::routing::get; use maud::Markup; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use tokio::sync::watch; use crate::config::MonitorConfig; diff --git a/bin/network-monitor/src/main.rs b/bin/network-monitor/src/main.rs index 0838926816..6bd3220279 100644 --- a/bin/network-monitor/src/main.rs +++ b/bin/network-monitor/src/main.rs @@ -3,6 +3,9 @@ //! A monitor application for Miden network infrastructure that provides real-time status //! monitoring across the RPC, provers, faucet, explorer, and network transaction services. +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + use anyhow::Result; use clap::Parser; diff --git a/bin/network-monitor/src/monitor/tasks.rs b/bin/network-monitor/src/monitor/tasks.rs index 2bb576ba78..a0f1aa9cff 100644 --- a/bin/network-monitor/src/monitor/tasks.rs +++ b/bin/network-monitor/src/monitor/tasks.rs @@ -6,8 +6,8 @@ use std::time::Duration; use anyhow::Result; use backon::{ExponentialBuilder, Retryable}; use miden_node_proto::clients::RemoteProverClient; +use miden_node_tracing::{debug, warn}; use miden_node_utils::tasks::Tasks as SupervisedTasks; -use miden_node_utils::tracing::{debug, warn}; use miden_tx::LocalTransactionProver; use tokio::sync::watch::Receiver; use tokio::sync::{Mutex, watch}; diff --git a/bin/network-monitor/src/note_transport.rs b/bin/network-monitor/src/note_transport.rs index 52e2f6fb5e..3d7095b2df 100644 --- a/bin/network-monitor/src/note_transport.rs +++ b/bin/network-monitor/src/note_transport.rs @@ -3,7 +3,7 @@ use std::time::Duration; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use tonic::transport::{Channel, ClientTlsConfig}; use tonic_health::pb::health_client::HealthClient; use tonic_health::pb::{HealthCheckRequest, health_check_response}; diff --git a/bin/network-monitor/src/remote_prover.rs b/bin/network-monitor/src/remote_prover.rs index 71863a2325..38f1969f05 100644 --- a/bin/network-monitor/src/remote_prover.rs +++ b/bin/network-monitor/src/remote_prover.rs @@ -13,7 +13,7 @@ use std::time::{Duration, Instant}; use miden_node_proto::clients::{RemoteProverClient, RemoteProverProxyStatusClient}; use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument, warn}; +use miden_node_tracing::{debug, miden_instrument, warn}; use miden_protocol::utils::serde::Serializable; use serde::{Deserialize, Serialize}; use tokio::sync::watch; diff --git a/bin/network-monitor/src/service.rs b/bin/network-monitor/src/service.rs index 0fc3672ed8..07dd4e74da 100644 --- a/bin/network-monitor/src/service.rs +++ b/bin/network-monitor/src/service.rs @@ -10,7 +10,7 @@ use std::time::Duration; use miden_node_proto::clients::{Builder as ClientBuilder, GrpcClient}; -use miden_node_utils::tracing::debug; +use miden_node_tracing::debug; use tokio::sync::watch; use tokio::time::MissedTickBehavior; use url::Url; diff --git a/bin/network-monitor/src/service_status.rs b/bin/network-monitor/src/service_status.rs index 2e2c09d623..a6f1ea5d6f 100644 --- a/bin/network-monitor/src/service_status.rs +++ b/bin/network-monitor/src/service_status.rs @@ -8,7 +8,7 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH}; use miden_node_proto::generated as proto; use miden_node_proto::generated::rpc::{BlockProducerStatus, RpcStatus}; -use miden_node_utils::tracing::warn; +use miden_node_tracing::warn; use serde::{Deserialize, Serialize}; use crate::LOG_TARGET; diff --git a/bin/network-monitor/src/status.rs b/bin/network-monitor/src/status.rs index 422054db8f..7b1ba9a5bd 100644 --- a/bin/network-monitor/src/status.rs +++ b/bin/network-monitor/src/status.rs @@ -8,7 +8,7 @@ use std::time::Duration; use miden_node_proto::clients::RpcClient; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use url::Url; use crate::COMPONENT; diff --git a/bin/network-monitor/src/validator.rs b/bin/network-monitor/src/validator.rs index 0988b310d3..9c01071c02 100644 --- a/bin/network-monitor/src/validator.rs +++ b/bin/network-monitor/src/validator.rs @@ -4,7 +4,7 @@ use std::time::Duration; use miden_node_proto::clients::ValidatorClient; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use url::Url; use crate::COMPONENT; diff --git a/bin/node/Cargo.toml b/bin/node/Cargo.toml index ac0d0ba552..46ed090967 100644 --- a/bin/node/Cargo.toml +++ b/bin/node/Cargo.toml @@ -14,10 +14,6 @@ version.workspace = true [lints] workspace = true -[package.metadata.cargo-shear] -# Required by expansions of the Miden tracing macros. -ignored = ["tracing"] - [features] tracing-forest = ["miden-node-block-producer/tracing-forest"] @@ -29,13 +25,13 @@ miden-node-block-producer = { workspace = true } miden-node-proto = { workspace = true } miden-node-rpc = { workspace = true } miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { workspace = true } tokio = { features = ["macros", "net", "rt-multi-thread", "sync"], workspace = true } tokio-stream = { workspace = true } tonic = { default-features = false, workspace = true } -tracing = { workspace = true } url = { workspace = true } [dev-dependencies] -miden-node-utils = { features = ["tracing-forest"], workspace = true } +miden-node-tracing = { features = ["tracing-forest"], workspace = true } diff --git a/bin/node/src/commands/lifecycle.rs b/bin/node/src/commands/lifecycle.rs index fc04f7eaf6..1dc7cde392 100644 --- a/bin/node/src/commands/lifecycle.rs +++ b/bin/node/src/commands/lifecycle.rs @@ -4,9 +4,9 @@ use anyhow::Context; use clap::ArgGroup; use miden_node_store::genesis::GenesisBlock; use miden_node_store::{DataDirectory, Db, State}; +use miden_node_tracing::info; use miden_node_utils::fs::ensure_empty_directory; use miden_node_utils::genesis::{OfficialNetwork, fetch_genesis_block, read_genesis_block}; -use miden_node_utils::tracing::info; use super::ENV_DATA_DIRECTORY; diff --git a/bin/node/src/commands/mod.rs b/bin/node/src/commands/mod.rs index 3122c78c65..5abd69d6d1 100644 --- a/bin/node/src/commands/mod.rs +++ b/bin/node/src/commands/mod.rs @@ -9,7 +9,7 @@ mod store; use clap::Subcommand; pub use lifecycle::{BootstrapCommand, MigrateCommand}; -use miden_node_utils::logging::OpenTelemetry; +use miden_node_tracing::OpenTelemetry; use miden_node_utils::shutdown::CancellationToken; pub use modes::{FullNodeCommand, SequencerCommand}; pub use recover::RecoverCommand; diff --git a/bin/node/src/commands/modes.rs b/bin/node/src/commands/modes.rs index 7e809ad135..ecdf3e7c7d 100644 --- a/bin/node/src/commands/modes.rs +++ b/bin/node/src/commands/modes.rs @@ -15,11 +15,11 @@ use miden_node_proto::clients::{ }; use miden_node_rpc::{PreAuthSubmission, Rpc, RpcMode, SequencerInternal, ValidatorClients}; use miden_node_store::{BlockWriter, ProofWriter, State, WriterTask}; +use miden_node_tracing::info; use miden_node_utils::clap::duration_to_human_readable_string; use miden_node_utils::formatting::format_endpoint; use miden_node_utils::shutdown::CancellationToken; use miden_node_utils::tasks::Tasks; -use miden_node_utils::tracing::info; use tokio::net::TcpListener; use url::Url; diff --git a/bin/node/src/commands/recover.rs b/bin/node/src/commands/recover.rs index c07c503ce0..610bcab97a 100644 --- a/bin/node/src/commands/recover.rs +++ b/bin/node/src/commands/recover.rs @@ -6,8 +6,8 @@ use anyhow::Context; use miden_node_proto::clients::{Builder, ValidatorClient}; use miden_node_proto::generated::validator::{BlockSubscriptionRequest, BlockSubscriptionResponse}; use miden_node_store::{BlockWriter, State, WriterTask}; +use miden_node_tracing::info; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::info; use miden_protocol::Word; use miden_protocol::block::{ BlockBody, diff --git a/bin/node/src/main.rs b/bin/node/src/main.rs index bdc5a44050..1cd990944d 100644 --- a/bin/node/src/main.rs +++ b/bin/node/src/main.rs @@ -41,7 +41,7 @@ async fn main() -> anyhow::Result<()> { let cli = parse_cli(); // Configure tracing with optional OpenTelemetry exporting support. - let _otel_guard = miden_node_utils::logging::setup_tracing(cli.command.open_telemetry())?; + let _otel_guard = miden_node_tracing::setup_tracing(cli.command.open_telemetry())?; miden_node_utils::shutdown::run_with_shutdown("miden-node", |shutdown| { cli.command.execute(shutdown) diff --git a/bin/ntx-builder/Cargo.toml b/bin/ntx-builder/Cargo.toml index 36574d865e..79d576963e 100644 --- a/bin/ntx-builder/Cargo.toml +++ b/bin/ntx-builder/Cargo.toml @@ -27,6 +27,7 @@ miden-node-db = { workspace = true } miden-node-proto = { workspace = true } miden-node-proto-build = { features = ["internal"], workspace = true } miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { default-features = true, workspace = true } miden-standards = { workspace = true } @@ -37,7 +38,6 @@ tokio-stream = { features = ["net"], workspace = true } tonic = { workspace = true } tonic-reflection = { workspace = true } tower-http = { workspace = true } -tracing = { workspace = true } url = { workspace = true } [build-dependencies] diff --git a/bin/ntx-builder/src/actor/execute.rs b/bin/ntx-builder/src/actor/execute.rs index 9af861f2d1..43585f5871 100644 --- a/bin/ntx-builder/src/actor/execute.rs +++ b/bin/ntx-builder/src/actor/execute.rs @@ -3,10 +3,17 @@ use std::sync::{Arc, Mutex}; use std::time::Duration; use backon::ExponentialBuilder; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ + ErrorSpanExt, + Instrument, + info, + miden_instrument, + miden_span_record, + warn, +}; use miden_node_utils::lru_cache::LruCache; use miden_node_utils::retry::{self, Retryable}; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{ErrorSpanExt, info, miden_instrument, miden_span_record, warn}; use miden_protocol::Word; use miden_protocol::account::{ Account, @@ -50,7 +57,6 @@ use miden_tx::{ TransactionMastStore, TransactionProverError, }; -use tracing::Instrument; use crate::actor::candidate::{SponsoredFeatureNote, TransactionCandidate}; use crate::clients::{RemoteTransactionProver, RpcClient, RpcError}; @@ -281,7 +287,7 @@ impl NtxContext { // the parent runtime handle to drive async RPC callbacks. let ctx = self.clone(); let handle = tokio::runtime::Handle::current(); - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); let (executed_tx, failed_notes, deferred_notes, oversized_notes, scripts_to_cache) = spawn_blocking_in_current_span(move || { @@ -336,7 +342,7 @@ impl NtxContext { }) .in_current_span() .await - .inspect_err(|err| tracing::Span::current().set_error(err)) + .inspect_err(|err| miden_node_tracing::Span::current().set_error(err)) } } diff --git a/bin/ntx-builder/src/actor/mod.rs b/bin/ntx-builder/src/actor/mod.rs index 14f1c0111e..6254d72a31 100644 --- a/bin/ntx-builder/src/actor/mod.rs +++ b/bin/ntx-builder/src/actor/mod.rs @@ -11,11 +11,10 @@ use allowlist::{NoteScriptNotAllowlisted, partition_by_allowlist}; use anyhow::Context; use candidate::{SponsoredFeatureNote, TransactionCandidate}; use futures::FutureExt; -use miden_node_utils::ErrorReport; +use miden_node_tracing::{ErrorReport, debug, error, info, miden_instrument, warn}; use miden_node_utils::formatting::format_opt; use miden_node_utils::lru_cache::LruCache; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::{debug, error, info, miden_instrument, warn}; use miden_protocol::Word; use miden_protocol::account::{Account, AccountId, AccountPatch}; use miden_protocol::block::BlockNumber; diff --git a/bin/ntx-builder/src/builder.rs b/bin/ntx-builder/src/builder.rs index a6e2a8ff01..063584a02e 100644 --- a/bin/ntx-builder/src/builder.rs +++ b/bin/ntx-builder/src/builder.rs @@ -3,9 +3,9 @@ use std::sync::Arc; use anyhow::Context; use futures::Stream; +use miden_node_tracing::{info, miden_instrument}; use miden_node_utils::shutdown::CancellationToken; use miden_node_utils::tasks::Tasks; -use miden_node_utils::tracing::{info, miden_instrument}; use miden_protocol::account::AccountId; use miden_protocol::block::{BlockNumber, SignedBlock}; use tokio::net::TcpListener; diff --git a/bin/ntx-builder/src/chain_state.rs b/bin/ntx-builder/src/chain_state.rs index 7cb996e55c..811fa1f69f 100644 --- a/bin/ntx-builder/src/chain_state.rs +++ b/bin/ntx-builder/src/chain_state.rs @@ -1,6 +1,6 @@ use std::sync::{Arc, RwLock}; -use miden_node_utils::tracing::debug; +use miden_node_tracing::debug; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::crypto::merkle::mmr::PartialMmr; use miden_protocol::transaction::PartialBlockchain; diff --git a/bin/ntx-builder/src/clients/rpc.rs b/bin/ntx-builder/src/clients/rpc.rs index 3b214e1c9c..9272111a6b 100644 --- a/bin/ntx-builder/src/clients/rpc.rs +++ b/bin/ntx-builder/src/clients/rpc.rs @@ -22,9 +22,9 @@ use miden_node_proto::generated::rpc::account_request::account_detail_request::{ use miden_node_proto::generated::rpc::account_request::account_detail_request::storage_map_detail_request::MapKeys; use miden_node_proto::generated::rpc::{BlockSubscriptionRequest, BlockSubscriptionResponse}; use miden_node_proto::generated::{self as proto}; -use miden_node_utils::ErrorReport; +use miden_node_tracing::ErrorReport; use miden_node_utils::retry::{self, Retryable}; -use miden_node_utils::tracing::{debug, info, miden_instrument, warn}; +use miden_node_tracing::{debug, info, miden_instrument, warn}; use miden_protocol::Word; use miden_protocol::account::{ AccountCode, diff --git a/bin/ntx-builder/src/commands/mod.rs b/bin/ntx-builder/src/commands/mod.rs index 12cc52104e..7f15b0d1ca 100644 --- a/bin/ntx-builder/src/commands/mod.rs +++ b/bin/ntx-builder/src/commands/mod.rs @@ -6,13 +6,12 @@ use std::time::Duration; use anyhow::Context; use clap::{ArgGroup, Parser}; use miden_node_store::genesis::GenesisBlock; +use miden_node_tracing::{OpenTelemetry, info}; use miden_node_utils::clap::duration_to_human_readable_string; use miden_node_utils::formatting::format_endpoint; use miden_node_utils::fs::ensure_empty_directory; use miden_node_utils::genesis::{OfficialNetwork, fetch_genesis_block, read_genesis_block}; -use miden_node_utils::logging::OpenTelemetry; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::info; use tokio::net::TcpListener; use tonic::metadata::AsciiMetadataValue; use url::Url; diff --git a/bin/ntx-builder/src/coordinator.rs b/bin/ntx-builder/src/coordinator.rs index e55144daaf..65396b854f 100644 --- a/bin/ntx-builder/src/coordinator.rs +++ b/bin/ntx-builder/src/coordinator.rs @@ -2,8 +2,8 @@ use std::collections::{HashMap, HashSet}; use std::sync::Arc; use anyhow::Context; +use miden_node_tracing::{debug, error, info, miden_instrument, warn}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::{debug, error, info, miden_instrument, warn}; use miden_protocol::account::AccountId; use miden_protocol::block::BlockNumber; use miden_protocol::transaction::TransactionId; diff --git a/bin/ntx-builder/src/db/migrations.rs b/bin/ntx-builder/src/db/migrations.rs index c8227543c0..84e38a6132 100644 --- a/bin/ntx-builder/src/db/migrations.rs +++ b/bin/ntx-builder/src/db/migrations.rs @@ -1,7 +1,7 @@ use std::path::Path; use miden_node_db::DatabaseError; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use crate::COMPONENT; diff --git a/bin/ntx-builder/src/db/mod.rs b/bin/ntx-builder/src/db/mod.rs index 7fd438ed76..799fa09e56 100644 --- a/bin/ntx-builder/src/db/mod.rs +++ b/bin/ntx-builder/src/db/mod.rs @@ -5,7 +5,7 @@ use std::path::{Path, PathBuf}; use anyhow::Context; use miden_node_db::DatabaseError; use miden_node_db::sqlite::{DbReader, DbWriter}; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use miden_protocol::Word; use miden_protocol::account::{Account, AccountId}; use miden_protocol::block::{BlockHeader, BlockNumber, SignedBlock, ValidatorKeys}; diff --git a/bin/ntx-builder/src/db/queries/notes_failed/mod.rs b/bin/ntx-builder/src/db/queries/notes_failed/mod.rs index 11ef4154e4..7fcddb06e7 100644 --- a/bin/ntx-builder/src/db/queries/notes_failed/mod.rs +++ b/bin/ntx-builder/src/db/queries/notes_failed/mod.rs @@ -2,7 +2,7 @@ use miden_node_db::sqlite::WriteTx; use miden_node_db::{DatabaseError, SqlTypeConvert}; -use miden_node_utils::ErrorReport; +use miden_node_tracing::ErrorReport; use miden_protocol::block::BlockNumber; use miden_protocol::note::Nullifier; diff --git a/bin/ntx-builder/src/lib.rs b/bin/ntx-builder/src/lib.rs index f35d877625..9f0a270531 100644 --- a/bin/ntx-builder/src/lib.rs +++ b/bin/ntx-builder/src/lib.rs @@ -1,3 +1,6 @@ +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + use std::num::{NonZeroU16, NonZeroUsize}; use std::path::{Path, PathBuf}; use std::sync::Arc; @@ -8,10 +11,9 @@ use builder::BlockStream; use chain_state::SharedChainState; use clients::{RemoteTransactionProver, RpcClient}; use miden_node_store::genesis::GenesisBlock; -use miden_node_utils::ErrorReport; +use miden_node_tracing::{ErrorReport, debug}; use miden_node_utils::lru_cache::LruCache; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::debug; use tokio::sync::mpsc; use tonic::metadata::AsciiMetadataValue; use url::Url; diff --git a/bin/ntx-builder/src/main.rs b/bin/ntx-builder/src/main.rs index 058549fd64..0de06163f8 100644 --- a/bin/ntx-builder/src/main.rs +++ b/bin/ntx-builder/src/main.rs @@ -5,7 +5,7 @@ mod commands; async fn main() -> anyhow::Result<()> { let command = commands::NtxBuilderCommand::parse(); - let _otel_guard = miden_node_utils::logging::setup_tracing(command.open_telemetry())?; + let _otel_guard = miden_node_tracing::setup_tracing(command.open_telemetry())?; miden_node_utils::shutdown::run_with_shutdown("miden-ntx-builder", |shutdown| { command.handle(shutdown) diff --git a/bin/ntx-builder/src/server.rs b/bin/ntx-builder/src/server.rs index a1f5fa1649..ba8d22188f 100644 --- a/bin/ntx-builder/src/server.rs +++ b/bin/ntx-builder/src/server.rs @@ -1,10 +1,10 @@ use anyhow::Context; use miden_node_proto::server::ntx_builder_api; use miden_node_proto_build::ntx_builder_api_descriptor; -use miden_node_utils::panic::{CatchPanicLayer, catch_panic_layer_fn}; +use miden_node_tracing::grpc::grpc_trace_fn; +use miden_node_tracing::info; +use miden_node_tracing::panic::{CatchPanicLayer, catch_panic_layer_fn}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::grpc::grpc_trace_fn; -use miden_node_utils::tracing::info; use tokio::net::TcpListener; use tokio_stream::wrappers::TcpListenerStream; use tonic_reflection::server; diff --git a/bin/ntx-builder/src/server/get_network_note_status.rs b/bin/ntx-builder/src/server/get_network_note_status.rs index d6fc261986..f7527a5662 100644 --- a/bin/ntx-builder/src/server/get_network_note_status.rs +++ b/bin/ntx-builder/src/server/get_network_note_status.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated::{self as grpc, rpc}; -use miden_node_utils::tracing::error; +use miden_node_tracing::error; use miden_protocol::Word; use super::NtxBuilderRpcServer; @@ -21,7 +21,7 @@ impl grpc::server::ntx_builder_api::GetNetworkNoteStatus for NtxBuilderRpcServer Ok(miden_protocol::note::NoteId::from_raw(note_id_digest)) } - #[miden_node_utils::tracing::miden_instrument( + #[miden_node_tracing::miden_instrument( target = COMPONENT, name = "get_network_note_status", fields ( diff --git a/bin/remote-prover/Cargo.toml b/bin/remote-prover/Cargo.toml index dd4f657ad4..1cfcf5a156 100644 --- a/bin/remote-prover/Cargo.toml +++ b/bin/remote-prover/Cargo.toml @@ -21,6 +21,7 @@ humantime = { workspace = true } miden-block-prover = { workspace = true } miden-node-proto = { workspace = true } miden-node-proto-build = { features = ["internal"], workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { features = ["std"], workspace = true } miden-tx = { features = ["concurrent", "std"], workspace = true } @@ -32,7 +33,6 @@ tonic-health = { workspace = true } tonic-reflection = { workspace = true } tonic-web = { workspace = true } tower-http = { features = ["trace"], workspace = true } -tracing = { workspace = true } [dev-dependencies] assert_matches = { workspace = true } diff --git a/bin/remote-prover/src/main.rs b/bin/remote-prover/src/main.rs index 1bcb820622..0693f30dea 100644 --- a/bin/remote-prover/src/main.rs +++ b/bin/remote-prover/src/main.rs @@ -1,3 +1,6 @@ +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + use anyhow::Context; use clap::Parser; @@ -10,7 +13,7 @@ const LOG_TARGET: &str = "user::miden-prover"; async fn main() -> anyhow::Result<()> { let server = server::Server::parse(); - let _otel_guard = miden_node_utils::logging::setup_tracing(server.open_telemetry())?; + let _otel_guard = miden_node_tracing::setup_tracing(server.open_telemetry())?; miden_node_utils::shutdown::run_with_shutdown("miden-remote-prover", |shutdown| async move { let (handle, _port) = server.spawn(shutdown).await.context("failed to spawn server")?; diff --git a/bin/remote-prover/src/server/mod.rs b/bin/remote-prover/src/server/mod.rs index abcc27dcdb..6aa69ae48b 100644 --- a/bin/remote-prover/src/server/mod.rs +++ b/bin/remote-prover/src/server/mod.rs @@ -2,12 +2,11 @@ use std::num::NonZeroUsize; use anyhow::Context; use miden_node_proto::server::{remote_prover_api, remote_prover_worker_status_api}; +use miden_node_tracing::grpc::grpc_trace_fn; +use miden_node_tracing::panic::catch_panic_layer_fn; +use miden_node_tracing::{OpenTelemetry, info}; use miden_node_utils::cors::cors_for_grpc_web_layer; -use miden_node_utils::logging::OpenTelemetry; -use miden_node_utils::panic::catch_panic_layer_fn; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::grpc::grpc_trace_fn; -use miden_node_utils::tracing::info; use proof_kind::ProofKind; use tokio::net::TcpListener; use tokio::task::JoinHandle; diff --git a/bin/remote-prover/src/server/proof_kind.rs b/bin/remote-prover/src/server/proof_kind.rs index 91d90a7551..3b9aede185 100644 --- a/bin/remote-prover/src/server/proof_kind.rs +++ b/bin/remote-prover/src/server/proof_kind.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated::remote_prover as proto; -use miden_node_utils::tracing::RecordAttribute; +use miden_node_tracing::RecordAttribute; /// Specifies the type of proof supported by the remote prover. #[derive(Debug, Clone, Copy, PartialEq, clap::ValueEnum)] @@ -38,7 +38,7 @@ impl std::fmt::Display for ProofKind { impl RecordAttribute for ProofKind { const FIELD_NAMES: &'static [&'static str] = &["prover.kind", "request.kind"]; - fn record_attribute(&self) -> impl tracing::Value + '_ { + fn record_attribute(&self) -> impl miden_node_tracing::Value + '_ { self.as_str() } } diff --git a/bin/remote-prover/src/server/prove.rs b/bin/remote-prover/src/server/prove.rs index 7e5ef264a8..eca3b4be2c 100644 --- a/bin/remote-prover/src/server/prove.rs +++ b/bin/remote-prover/src/server/prove.rs @@ -1,7 +1,6 @@ use miden_node_proto::generated as grpc; -use miden_node_utils::ErrorReport; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorReport, miden_instrument, miden_span_record}; use crate::COMPONENT; use crate::server::proof_kind::ProofKind; diff --git a/bin/remote-prover/src/server/prover.rs b/bin/remote-prover/src/server/prover.rs index f05b6120b4..6eb8d265b1 100644 --- a/bin/remote-prover/src/server/prover.rs +++ b/bin/remote-prover/src/server/prover.rs @@ -1,8 +1,7 @@ use miden_block_prover::LocalBlockProver; use miden_node_proto::BlockProofRequest; use miden_node_proto::generated::remote_prover as proto; -use miden_node_utils::ErrorReport; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::{ErrorReport, miden_instrument}; use miden_protocol::MIN_PROOF_SECURITY_LEVEL; use miden_protocol::batch::{ProposedBatch, ProvenBatch}; use miden_protocol::block::BlockProof; diff --git a/bin/remote-prover/src/server/service.rs b/bin/remote-prover/src/server/service.rs index fa70e7ff7f..ff0521420d 100644 --- a/bin/remote-prover/src/server/service.rs +++ b/bin/remote-prover/src/server/service.rs @@ -1,7 +1,7 @@ use std::num::NonZeroUsize; use std::sync::Arc; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use tokio::sync::{Mutex, OwnedMutexGuard, OwnedSemaphorePermit, Semaphore}; use crate::COMPONENT; diff --git a/bin/stress-test/Cargo.toml b/bin/stress-test/Cargo.toml index 36128cc4ed..c4b7508389 100644 --- a/bin/stress-test/Cargo.toml +++ b/bin/stress-test/Cargo.toml @@ -17,23 +17,24 @@ version.workspace = true workspace = true [dependencies] -clap = { features = ["derive"], workspace = true } -fs-err = { workspace = true } -futures = { workspace = true } -miden-node-proto = { workspace = true } -miden-node-store = { workspace = true } -miden-node-utils = { workspace = true } -miden-protocol = { workspace = true } -miden-standards = { workspace = true } -rand = { workspace = true } -rayon = { workspace = true } -tokio = { workspace = true } +clap = { features = ["derive"], workspace = true } +fs-err = { workspace = true } +futures = { workspace = true } +miden-node-proto = { workspace = true } +miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } +miden-node-utils = { workspace = true } +miden-protocol = { workspace = true } +miden-standards = { workspace = true } +rand = { workspace = true } +rayon = { workspace = true } +tokio = { workspace = true } [features] # Renders spans as a timing tree on stdout, showing the per-phase breakdown of e.g. the # `load-state` benchmark. Opt-in because feature unification would otherwise switch the log # format of every binary in a workspace-wide build. -tracing-forest = ["miden-node-utils/tracing-forest"] +tracing-forest = ["miden-node-tracing/tracing-forest"] [dev-dependencies] tempfile = { workspace = true } diff --git a/bin/stress-test/src/main.rs b/bin/stress-test/src/main.rs index 734213aca6..7eccb4b864 100644 --- a/bin/stress-test/src/main.rs +++ b/bin/stress-test/src/main.rs @@ -2,7 +2,7 @@ use std::num::NonZeroUsize; use std::path::PathBuf; use clap::{Parser, Subcommand}; -use miden_node_utils::logging::OpenTelemetry; +use miden_node_tracing::OpenTelemetry; use seeding::seed_store; use store::{ bench_get_account, @@ -167,7 +167,7 @@ async fn main() { let cli = Cli::parse(); // Configure tracing with optional OpenTelemetry exporting support. - miden_node_utils::logging::setup_tracing(OpenTelemetry::Disabled).unwrap(); + miden_node_tracing::setup_tracing(OpenTelemetry::Disabled).unwrap(); match cli.command { Command::SeedStore { diff --git a/bin/validator/Cargo.toml b/bin/validator/Cargo.toml index 24cd2c285c..4a6cd9da7d 100644 --- a/bin/validator/Cargo.toml +++ b/bin/validator/Cargo.toml @@ -15,7 +15,7 @@ version.workspace = true workspace = true [features] -tracing-forest = ["miden-node-utils/tracing-forest"] +tracing-forest = ["miden-node-tracing/tracing-forest"] [lib] doctest = false @@ -38,6 +38,7 @@ miden-node-db = { workspace = true } miden-node-proto = { workspace = true } miden-node-proto-build = { features = ["internal"], workspace = true } miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { features = ["testing"], workspace = true } miden-protocol = { workspace = true } miden-tx = { features = ["concurrent"], workspace = true } @@ -52,7 +53,6 @@ toml = { workspace = true } tonic = { default-features = true, features = ["transport"], workspace = true } tonic-reflection = { workspace = true } tower-http = { features = ["util"], workspace = true } -tracing = { workspace = true } zeroize = { workspace = true } [build-dependencies] diff --git a/bin/validator/src/commands/bootstrap.rs b/bin/validator/src/commands/bootstrap.rs index 5af9825742..a45ec16ef2 100644 --- a/bin/validator/src/commands/bootstrap.rs +++ b/bin/validator/src/commands/bootstrap.rs @@ -4,9 +4,9 @@ use std::path::Path; use anyhow::Context; use miden_node_store::BlockStore; use miden_node_store::genesis::GenesisBlock; +use miden_node_tracing::info; use miden_node_utils::fs::ensure_empty_directory; use miden_node_utils::genesis::read_genesis_block; -use miden_node_utils::tracing::info; use miden_validator::DataDirectory; /// Runs the `bootstrap` command: seeds this validator's database from the genesis block file diff --git a/bin/validator/src/commands/mod.rs b/bin/validator/src/commands/mod.rs index 5c36e9be73..e93c2cd12b 100644 --- a/bin/validator/src/commands/mod.rs +++ b/bin/validator/src/commands/mod.rs @@ -12,10 +12,9 @@ use std::sync::Arc; use anyhow::Context; use base64::Engine; use clap::Parser; +use miden_node_tracing::{OpenTelemetry, info}; use miden_node_utils::clap::GrpcOptions; -use miden_node_utils::logging::OpenTelemetry; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::info; use miden_protocol::crypto::dsa::ecdsa_k256_keccak::{PublicKey, SigningKey}; use miden_protocol::crypto::dsa::eddsa_25519_sha512::KeyExchangeKey; use miden_protocol::utils::serde::{Deserializable, Serializable}; diff --git a/bin/validator/src/db/migrations.rs b/bin/validator/src/db/migrations.rs index 8ecfc5745f..26b0baf780 100644 --- a/bin/validator/src/db/migrations.rs +++ b/bin/validator/src/db/migrations.rs @@ -1,7 +1,7 @@ use std::path::Path; use miden_node_db::DatabaseError; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/bin/validator/src/db/mod.rs b/bin/validator/src/db/mod.rs index 4b9a89dac9..579dd6c215 100644 --- a/bin/validator/src/db/mod.rs +++ b/bin/validator/src/db/mod.rs @@ -3,7 +3,7 @@ use std::path::{Path, PathBuf}; use miden_node_db::DatabaseError; use miden_node_db::sqlite::{DbReader, DbWriter}; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::transaction::TransactionId; diff --git a/bin/validator/src/lib.rs b/bin/validator/src/lib.rs index 7511a3a178..a77592ee7b 100644 --- a/bin/validator/src/lib.rs +++ b/bin/validator/src/lib.rs @@ -1,3 +1,6 @@ +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + pub mod data_directory; pub mod db; pub(crate) mod metrics; diff --git a/bin/validator/src/main.rs b/bin/validator/src/main.rs index 96cc22ee65..f4fbe9496a 100644 --- a/bin/validator/src/main.rs +++ b/bin/validator/src/main.rs @@ -8,7 +8,7 @@ mod commands; async fn main() -> anyhow::Result<()> { let command = commands::ValidatorCommand::parse(); - let _otel_guard = miden_node_utils::logging::setup_tracing(command.open_telemetry())?; + let _otel_guard = miden_node_tracing::setup_tracing(command.open_telemetry())?; miden_node_utils::shutdown::run_with_shutdown("miden-validator", |shutdown| { command.handle(shutdown) diff --git a/bin/validator/src/server/mod.rs b/bin/validator/src/server/mod.rs index eb5264b0ea..a93c03cc0c 100644 --- a/bin/validator/src/server/mod.rs +++ b/bin/validator/src/server/mod.rs @@ -4,11 +4,11 @@ use anyhow::Context; use miden_node_proto::server::validator_api; use miden_node_proto_build::validator_api_descriptor; use miden_node_store::BlockStore; +use miden_node_tracing::grpc::grpc_trace_fn; +use miden_node_tracing::info; +use miden_node_tracing::panic::catch_panic_layer_fn; use miden_node_utils::clap::GrpcOptions; -use miden_node_utils::panic::catch_panic_layer_fn; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::grpc::grpc_trace_fn; -use miden_node_utils::tracing::info; use tokio::net::TcpListener; use tokio_stream::wrappers::TcpListenerStream; use tower_http::catch_panic::CatchPanicLayer; diff --git a/bin/validator/src/server/validator_service/block_subscription.rs b/bin/validator/src/server/validator_service/block_subscription.rs index d740c5f83a..47548e959f 100644 --- a/bin/validator/src/server/validator_service/block_subscription.rs +++ b/bin/validator/src/server/validator_service/block_subscription.rs @@ -4,8 +4,7 @@ use std::task::{Context, Poll}; use miden_node_proto::generated as grpc; use miden_node_proto::generated::validator::BlockSubscriptionResponse; -use miden_node_utils::ErrorReport; -use miden_node_utils::tracing::{error, info, miden_instrument, miden_span_record}; +use miden_node_tracing::{ErrorReport, error, info, miden_instrument, miden_span_record}; use miden_protocol::block::BlockNumber; use tokio::sync::OwnedRwLockWriteGuard; use tokio_stream::wrappers::ReceiverStream; diff --git a/bin/validator/src/server/validator_service/get_transaction_encryption_key.rs b/bin/validator/src/server/validator_service/get_transaction_encryption_key.rs index 4efcb1cf07..da6b1486e7 100644 --- a/bin/validator/src/server/validator_service/get_transaction_encryption_key.rs +++ b/bin/validator/src/server/validator_service/get_transaction_encryption_key.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as grpc; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_tx::utils::serde::Serializable; use super::ValidatorService; diff --git a/bin/validator/src/server/validator_service/mod.rs b/bin/validator/src/server/validator_service/mod.rs index 3bc3986c4c..a4641ff846 100644 --- a/bin/validator/src/server/validator_service/mod.rs +++ b/bin/validator/src/server/validator_service/mod.rs @@ -4,8 +4,8 @@ use std::sync::atomic::AtomicU64; use miden_node_db::DatabaseError; use miden_node_proto::domain::encryption::TransactionEncryptionKeyInfo; use miden_node_store::BlockStore; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{miden_instrument, miden_span_record}; use miden_protocol::Word; use miden_protocol::block::{ BlockHeader, diff --git a/bin/validator/src/server/validator_service/sign_block.rs b/bin/validator/src/server/validator_service/sign_block.rs index 32f8e343de..9f15ff42c1 100644 --- a/bin/validator/src/server/validator_service/sign_block.rs +++ b/bin/validator/src/server/validator_service/sign_block.rs @@ -1,13 +1,11 @@ use std::sync::atomic::Ordering; use miden_node_proto::generated as grpc; -use miden_node_utils::ErrorReport; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::{ErrorReport, Instrument, info_span, miden_instrument}; use miden_protocol::Word; use miden_protocol::block::{BlockNumber, ProposedBlock}; use miden_protocol::crypto::dsa::ecdsa_k256_keccak::{PublicKey, Signature}; use miden_tx::utils::serde::{Deserializable, Serializable}; -use tracing::{Instrument, info_span}; use super::ValidatorService; use crate::COMPONENT; diff --git a/bin/validator/src/server/validator_service/submit_proven_transaction.rs b/bin/validator/src/server/validator_service/submit_proven_transaction.rs index 13671907e7..45b1c23d32 100644 --- a/bin/validator/src/server/validator_service/submit_proven_transaction.rs +++ b/bin/validator/src/server/validator_service/submit_proven_transaction.rs @@ -2,14 +2,12 @@ use std::sync::atomic::Ordering; use miden_node_proto::domain::encryption::transaction_inputs_associated_data; use miden_node_proto::generated as grpc; -use miden_node_utils::ErrorReport; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorReport, Instrument, info_span, miden_instrument, miden_span_record}; use miden_protocol::transaction::{ProvenTransaction, TransactionId, TransactionInputs}; use miden_tx::utils::serde::{Deserializable, Serializable}; use rand_core_06::OsRng; use tonic::Status; -use tracing::{Instrument, info_span}; use super::ValidatorService; use crate::tx_validation::validate_transaction; diff --git a/bin/validator/src/signers/mod.rs b/bin/validator/src/signers/mod.rs index 829ce52bd0..a86511e08e 100644 --- a/bin/validator/src/signers/mod.rs +++ b/bin/validator/src/signers/mod.rs @@ -4,7 +4,7 @@ use miden_node_proto::domain::encryption::{ TransactionEncryptionKeyInfo, TransactionEncryptionScheme, }; -use miden_node_utils::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; use miden_protocol::Word; use miden_protocol::crypto::dsa::ecdsa_k256_keccak::{PublicKey, Signature, SigningKey}; use miden_protocol::crypto::dsa::eddsa_25519_sha512::{ diff --git a/bin/validator/src/tx_validation/mod.rs b/bin/validator/src/tx_validation/mod.rs index 4e86f78216..06a9ab09d9 100644 --- a/bin/validator/src/tx_validation/mod.rs +++ b/bin/validator/src/tx_validation/mod.rs @@ -1,8 +1,8 @@ mod data_store; pub use data_store::TransactionInputsDataStore; -use miden_node_utils::spawn::{spawn_blocking_in_current_span, spawn_blocking_in_span}; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::spawn::{spawn_blocking_in_current_span, spawn_blocking_in_span}; +use miden_node_tracing::{Instrument, info_span, miden_instrument}; use miden_protocol::MIN_PROOF_SECURITY_LEVEL; use miden_protocol::errors::TransactionVerifierError; use miden_protocol::transaction::{ @@ -13,7 +13,6 @@ use miden_protocol::transaction::{ }; use miden_tx::auth::UnreachableAuth; use miden_tx::{TransactionExecutor, TransactionExecutorError}; -use tracing::{Instrument, info_span}; use crate::COMPONENT; diff --git a/crates/block-producer/Cargo.toml b/crates/block-producer/Cargo.toml index 0cf99cea4c..40f6b9f993 100644 --- a/crates/block-producer/Cargo.toml +++ b/crates/block-producer/Cargo.toml @@ -19,7 +19,7 @@ doctest = false [features] testing = [] -tracing-forest = ["miden-node-utils/tracing-forest"] +tracing-forest = ["miden-node-tracing/tracing-forest"] [dependencies] anyhow = { workspace = true } @@ -28,6 +28,7 @@ itertools = { workspace = true } miden-block-prover = { workspace = true } miden-node-proto = { workspace = true } miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { features = ["testing"], workspace = true } miden-protocol = { default-features = true, workspace = true } miden-tx-batch = { workspace = true } @@ -37,16 +38,16 @@ tokio = { features = ["macros", "net", "rt-multi-thread"], workspac tokio-stream = { workspace = true } tonic = { default-features = true, features = ["transport"], workspace = true } tonic-health = { workspace = true } -tracing = { workspace = true } url = { workspace = true } [dev-dependencies] -assert_matches = { workspace = true } -miden-node-utils = { features = ["testing"], workspace = true } -miden-protocol = { default-features = true, features = ["testing"], workspace = true } -miden-standards = { features = ["testing"], workspace = true } -pretty_assertions = { workspace = true } -rand_chacha = { default-features = false, workspace = true } -serial_test = { workspace = true } -tempfile = { workspace = true } -tokio = { features = ["test-util"], workspace = true } +assert_matches = { workspace = true } +miden-node-tracing = { features = ["testing"], workspace = true } +miden-node-utils = { features = ["testing"], workspace = true } +miden-protocol = { default-features = true, features = ["testing"], workspace = true } +miden-standards = { features = ["testing"], workspace = true } +pretty_assertions = { workspace = true } +rand_chacha = { default-features = false, workspace = true } +serial_test = { workspace = true } +tempfile = { workspace = true } +tokio = { features = ["test-util"], workspace = true } diff --git a/crates/block-producer/src/batch_builder/mod.rs b/crates/block-producer/src/batch_builder/mod.rs index 3092389f94..45f6cd0f24 100644 --- a/crates/block-producer/src/batch_builder/mod.rs +++ b/crates/block-producer/src/batch_builder/mod.rs @@ -6,16 +6,22 @@ use std::time::Duration; use futures::TryFutureExt; use miden_node_proto::domain::batch::BatchInputs; use miden_node_store::state::State; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ + ErrorSpanExt, + Instrument, + Span, + error, + miden_instrument, + miden_span_record, +}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{ErrorSpanExt, error, miden_instrument, miden_span_record}; use miden_protocol::MIN_PROOF_SECURITY_LEVEL; use miden_protocol::batch::{BatchId, ProposedBatch, ProvenBatch}; use miden_protocol::transaction::TransactionId; use miden_tx_batch::BatchExecutor; use tokio::task::{JoinError, JoinSet}; use tokio::time::{Instant, MissedTickBehavior}; -use tracing::{Instrument, Span}; use url::Url; use crate::domain::batch::SelectedBatch; @@ -165,7 +171,8 @@ impl BatchBuilder { }; self.active_jobs.spawn( - async move { job.build_batch(batch).await }.instrument(tracing::Span::current()), + async move { job.build_batch(batch).await } + .instrument(miden_node_tracing::Span::current()), ); } diff --git a/crates/block-producer/src/block_builder/mod.rs b/crates/block-producer/src/block_builder/mod.rs index dcb166a26a..5bb17e1a63 100644 --- a/crates/block-producer/src/block_builder/mod.rs +++ b/crates/block-producer/src/block_builder/mod.rs @@ -3,9 +3,9 @@ use std::sync::Arc; use anyhow::Context; use miden_node_store::state::{BlockWriter, State}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorSpanExt, Span, debug, miden_instrument, miden_span_record}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{ErrorSpanExt, debug, miden_instrument, miden_span_record}; use miden_protocol::batch::{OrderedBatches, ProvenBatch}; use miden_protocol::block::{ BlockInputs, @@ -16,7 +16,6 @@ use miden_protocol::block::{ }; use miden_protocol::transaction::TransactionHeader; use tokio::time::Duration; -use tracing::Span; use crate::errors::{BuildBlockError, StoreError}; use crate::mempool::SharedMempool; diff --git a/crates/block-producer/src/block_prover.rs b/crates/block-producer/src/block_prover.rs index 97a7a2f2a0..009c0ebd53 100644 --- a/crates/block-producer/src/block_prover.rs +++ b/crates/block-producer/src/block_prover.rs @@ -1,8 +1,8 @@ use miden_block_prover::{BlockProverError as LocalBlockProverError, LocalBlockProver}; use miden_node_proto::clients::{Builder, RemoteProverClient}; use miden_node_proto::generated::remote_prover::{ProofRequest, ProofType}; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; use miden_protocol::batch::OrderedBatches; use miden_protocol::block::{BlockHeader, BlockInputs, BlockProof, ProposedBlock}; use miden_protocol::errors::ProposedBlockError; diff --git a/crates/block-producer/src/lib.rs b/crates/block-producer/src/lib.rs index b2895171a9..8fbc2fb75c 100644 --- a/crates/block-producer/src/lib.rs +++ b/crates/block-producer/src/lib.rs @@ -1,4 +1,7 @@ #![recursion_limit = "256"] + +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; use std::num::NonZeroUsize; use std::time::Duration; diff --git a/crates/block-producer/src/mempool/mod.rs b/crates/block-producer/src/mempool/mod.rs index a85b2aeeb5..9255d24f5e 100644 --- a/crates/block-producer/src/mempool/mod.rs +++ b/crates/block-producer/src/mempool/mod.rs @@ -54,8 +54,7 @@ use std::collections::VecDeque; use std::num::NonZeroUsize; use std::sync::{Arc, LockResult, Mutex, MutexGuard}; -use miden_node_utils::ErrorReport; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; +use miden_node_tracing::{ErrorReport, debug, miden_instrument, miden_span_record}; use miden_protocol::batch::{BatchId, ProvenBatch}; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::transaction::TransactionHeader; @@ -720,7 +719,7 @@ impl Mempool { } fn emit_transaction_added(tx: &AuthenticatedTransaction) { - if !tracing::enabled!(target: LOG_TARGET, tracing::Level::DEBUG) { + if !miden_node_tracing::enabled!(target: LOG_TARGET, miden_node_tracing::Level::DEBUG) { return; } @@ -734,7 +733,7 @@ fn emit_transaction_added(tx: &AuthenticatedTransaction) { } fn emit_transaction_expirations(removal: &graph::TransactionRemoval, chain_tip: BlockNumber) { - if !tracing::enabled!(target: LOG_TARGET, tracing::Level::DEBUG) { + if !miden_node_tracing::enabled!(target: LOG_TARGET, miden_node_tracing::Level::DEBUG) { return; } @@ -755,7 +754,7 @@ fn emit_transaction_evictions( direct_reason: &'static str, dependent_reason: &'static str, ) { - if !tracing::enabled!(target: LOG_TARGET, tracing::Level::DEBUG) { + if !miden_node_tracing::enabled!(target: LOG_TARGET, miden_node_tracing::Level::DEBUG) { return; } diff --git a/crates/block-producer/src/mempool/tests.rs b/crates/block-producer/src/mempool/tests.rs index db3a097938..dbe21944f4 100644 --- a/crates/block-producer/src/mempool/tests.rs +++ b/crates/block-producer/src/mempool/tests.rs @@ -175,7 +175,7 @@ fn output_budget_ordered_child_transactions() #[tokio::test] #[serial(open_telemetry_tracing)] async fn add_transaction_traces_are_correct() { - let (mut rx_export, _rx_shutdown) = miden_node_utils::logging::setup_test_tracing().unwrap(); + let (mut rx_export, _rx_shutdown) = miden_node_tracing::setup_test_tracing().unwrap(); let (mut uut, _) = Mempool::for_tests(); let txs = MockProvenTxBuilder::sequential(); diff --git a/crates/block-producer/src/proof_scheduler.rs b/crates/block-producer/src/proof_scheduler.rs index d283fc54fb..47c15d3588 100644 --- a/crates/block-producer/src/proof_scheduler.rs +++ b/crates/block-producer/src/proof_scheduler.rs @@ -19,15 +19,14 @@ use std::time::Duration; use anyhow::Context; use miden_node_proto::BlockProofRequest; use miden_node_store::state::{ProofWriter, State}; +use miden_node_tracing::{Instrument, debug, info, miden_instrument}; use miden_node_utils::retry::{self, Retryable}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::{debug, info, miden_instrument}; use miden_protocol::block::{BlockNumber, BlockProof}; use miden_protocol::utils::serde::{Deserializable, Serializable}; use thiserror::Error; use tokio::sync::watch; use tokio::task::JoinSet; -use tracing::Instrument; use crate::block_prover::{BlockProver, ProverError}; use crate::errors::ProofSchedulerError; @@ -188,12 +187,12 @@ async fn prove_block( // is retried like any other transient failure. let result = (|| { attempt += 1; - let attempt_span = tracing::info_span!( + let attempt_span = miden_node_tracing::info_span!( target: COMPONENT, "prove_attempt", attempt, - error = tracing::field::Empty, - timed_out = tracing::field::Empty, + error = miden_node_tracing::field::Empty, + timed_out = miden_node_tracing::field::Empty, ); async move { @@ -207,11 +206,13 @@ async fn prove_block( Ok(Ok(proof)) => Ok((block_num, proof.to_bytes())), Ok(Err(err @ ProveBlockError::Fatal(_))) => Err(err), Ok(Err(ProveBlockError::Transient(err))) => { - tracing::Span::current().record("error", tracing::field::display(&err)); + miden_node_tracing::Span::current() + .record("error", miden_node_tracing::field::display(&err)); Err(ProveBlockError::Transient(err)) }, Err(elapsed) => { - tracing::Span::current().record("timed_out", elapsed.to_string()); + miden_node_tracing::Span::current() + .record("timed_out", elapsed.to_string()); Err(ProveBlockError::Transient(Box::new(elapsed))) }, } diff --git a/crates/block-producer/src/rpc_sync.rs b/crates/block-producer/src/rpc_sync.rs index 2fdb604cf6..c8afa50e3a 100644 --- a/crates/block-producer/src/rpc_sync.rs +++ b/crates/block-producer/src/rpc_sync.rs @@ -6,16 +6,15 @@ use anyhow::Context; use miden_node_proto::clients::RpcClient; use miden_node_proto::generated::rpc::{BlockSubscriptionRequest, ProofSubscriptionRequest}; use miden_node_store::state::{BlockWriter, ProofWriter, State}; +use miden_node_tracing::{Instrument, debug, info, info_span, miden_instrument, warn}; use miden_node_utils::retry::{self, RetryableWithContext}; use miden_node_utils::shutdown::CancellationToken; use miden_node_utils::tasks::Tasks; -use miden_node_utils::tracing::{debug, info, miden_instrument, warn}; use miden_protocol::block::{BlockNumber, SignedBlock}; use miden_protocol::utils::serde::Deserializable; use tokio_stream::StreamExt; use tonic_health::ServingStatus; use tonic_health::server::HealthReporter; -use tracing::{Instrument, info_span}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/block-producer/src/server/mod.rs b/crates/block-producer/src/server/mod.rs index fbfb8096a0..337868ad93 100644 --- a/crates/block-producer/src/server/mod.rs +++ b/crates/block-producer/src/server/mod.rs @@ -4,10 +4,10 @@ use std::time::Duration; use anyhow::Result; use miden_node_store::state::{BlockWriter, ProofWriter, State}; +use miden_node_tracing::{debug, error, info, miden_instrument}; use miden_node_utils::formatting::{format_input_notes, format_output_notes}; use miden_node_utils::shutdown::CancellationToken; use miden_node_utils::tasks::Tasks; -use miden_node_utils::tracing::{debug, error, info, miden_instrument}; use miden_protocol::batch::ProposedBatch; use miden_protocol::block::BlockNumber; use miden_protocol::transaction::ProvenTransaction; diff --git a/crates/block-producer/src/store/mod.rs b/crates/block-producer/src/store/mod.rs index c3af75fc07..415700f44e 100644 --- a/crates/block-producer/src/store/mod.rs +++ b/crates/block-producer/src/store/mod.rs @@ -8,8 +8,8 @@ use miden_node_proto::decode::GrpcDecodeExt; use miden_node_proto::errors::ConversionError; use miden_node_proto::generated::sequencer; use miden_node_store::state::{State, TransactionInputs as StoreTransactionInputs}; +use miden_node_tracing::{debug, miden_instrument}; use miden_node_utils::formatting::format_opt; -use miden_node_utils::tracing::{debug, miden_instrument}; use miden_protocol::Word; use miden_protocol::account::AccountId; use miden_protocol::block::BlockNumber; diff --git a/crates/block-producer/src/validator/mod.rs b/crates/block-producer/src/validator/mod.rs index 9889e35ef6..517c848657 100644 --- a/crates/block-producer/src/validator/mod.rs +++ b/crates/block-producer/src/validator/mod.rs @@ -4,7 +4,7 @@ use miden_node_proto::clients::{Builder, ValidatorClient}; use miden_node_proto::decode::GrpcDecodeExt; use miden_node_proto::errors::ConversionError; use miden_node_proto::{decode, generated as proto}; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use miden_protocol::Word; use miden_protocol::block::ProposedBlock; use miden_protocol::crypto::dsa::ecdsa_k256_keccak::{PublicKey, Signature}; diff --git a/crates/db/Cargo.toml b/crates/db/Cargo.toml index 8eae821893..585883735e 100644 --- a/crates/db/Cargo.toml +++ b/crates/db/Cargo.toml @@ -15,19 +15,19 @@ version.workspace = true workspace = true [dependencies] -anyhow = { workspace = true } -build-rs = { workspace = true } -codegen = { workspace = true } -deadpool = { default-features = false, workspace = true } -deadpool-diesel = { features = ["sqlite"], workspace = true } -deadpool-sync = { default-features = false, workspace = true } -diesel = { features = ["sqlite"], workspace = true } -fs-err = { workspace = true } -miden-protocol = { workspace = true } -rusqlite = { workspace = true } -sha2 = { workspace = true } -thiserror = { workspace = true } -tracing = { workspace = true } +anyhow = { workspace = true } +build-rs = { workspace = true } +codegen = { workspace = true } +deadpool = { default-features = false, workspace = true } +deadpool-diesel = { features = ["sqlite"], workspace = true } +deadpool-sync = { default-features = false, workspace = true } +diesel = { features = ["sqlite"], workspace = true } +fs-err = { workspace = true } +miden-node-tracing = { workspace = true } +miden-protocol = { workspace = true } +rusqlite = { workspace = true } +sha2 = { workspace = true } +thiserror = { workspace = true } [dev-dependencies] assert_matches = { workspace = true } diff --git a/crates/db/src/lib.rs b/crates/db/src/lib.rs index 29c2af3bbb..b016e4800d 100644 --- a/crates/db/src/lib.rs +++ b/crates/db/src/lib.rs @@ -11,7 +11,7 @@ pub use conv::{DatabaseTypeConversionError, SqlTypeConvert}; use diesel::{RunQueryDsl, SqliteConnection}; pub use errors::{DatabaseError, SchemaVerificationError}; pub use manager::{ConnectionManager, ConnectionManagerError, configure_connection_on_creation}; -use tracing::Instrument; +use miden_node_tracing::Instrument; pub type Result = std::result::Result; @@ -117,7 +117,7 @@ impl PinnedConnection { E: From, E: std::error::Error + Send + Sync + 'static, { - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); self.conn .interact(move |conn| { let _guard = span.enter(); @@ -136,7 +136,7 @@ impl PinnedConnection { E: From, E: std::error::Error + Send + Sync + 'static, { - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); self.conn .interact(move |conn| { let _guard = span.enter(); diff --git a/crates/db/src/sqlite/pool.rs b/crates/db/src/sqlite/pool.rs index e7b7cad62f..391abca118 100644 --- a/crates/db/src/sqlite/pool.rs +++ b/crates/db/src/sqlite/pool.rs @@ -12,8 +12,8 @@ use std::path::{Path, PathBuf}; use deadpool::Runtime; use deadpool::managed::{Manager, Metrics, Object, Pool, RecycleError, RecycleResult}; use deadpool_sync::SyncWrapper; +use miden_node_tracing::Instrument; use rusqlite::{Connection, OpenFlags, TransactionBehavior}; -use tracing::Instrument; use crate::sqlite::tx::{ReadTx, WriteTx}; use crate::{DatabaseError, default_connection_pool_size}; @@ -183,7 +183,7 @@ impl DbReader { { let conn = self.checkout_reader().await.map_err(E::from)?; let msg = msg.to_string(); - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); conn.interact(move |conn| { let _guard = span.enter(); let tx = conn @@ -235,7 +235,7 @@ impl DbWriter { { let conn = self.checkout_writer().await.map_err(E::from)?; let msg = msg.to_string(); - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); conn.interact(move |conn| { let _guard = span.enter(); let tx = conn @@ -292,7 +292,7 @@ impl ReadTransaction { E: From + Send + 'static, { let msg = msg.to_string(); - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); self.conn .interact(move |conn| { let _guard = span.enter(); @@ -331,7 +331,7 @@ impl WriteTransaction { E: From + Send + 'static, { let msg = msg.to_string(); - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); self.conn .interact(move |conn| { let _guard = span.enter(); diff --git a/crates/grpc-error-macro/src/lib.rs b/crates/grpc-error-macro/src/lib.rs index e8cf194e02..1698c017a3 100644 --- a/crates/grpc-error-macro/src/lib.rs +++ b/crates/grpc-error-macro/src/lib.rs @@ -163,7 +163,7 @@ pub fn derive_grpc_error(input: TokenStream) -> TokenStream { "Internal error".to_owned() } else { // Use ErrorReport trait to get detailed error message - use miden_node_utils::ErrorReport as _; + use miden_node_tracing::ErrorReport as _; value.as_report() }; diff --git a/crates/proto/Cargo.toml b/crates/proto/Cargo.toml index e00ac65657..aaadbb94a5 100644 --- a/crates/proto/Cargo.toml +++ b/crates/proto/Cargo.toml @@ -19,6 +19,7 @@ anyhow = { workspace = true } hex = { workspace = true } http = { workspace = true } miden-node-grpc-error-macro = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { workspace = true } miden-standards = { workspace = true } @@ -29,7 +30,6 @@ tokio = { features = ["macros", "rt", "time"], workspace = tonic = { default-features = true, workspace = true } tonic-prost = { workspace = true } tower = { workspace = true } -tracing = { workspace = true } url = { workspace = true } [dev-dependencies] diff --git a/crates/proto/build.rs b/crates/proto/build.rs index ba8d71fe22..ea9db87953 100644 --- a/crates/proto/build.rs +++ b/crates/proto/build.rs @@ -444,11 +444,11 @@ impl UnaryMethod { /// request: tonic::Request<>, /// ) -> tonic::Result<> { /// let (metadata, extensions, message) = request.into_parts(); - /// tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message)); + /// miden_node_tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message)); /// let input = Self::decode(message)?; /// let output = self.handle(input, &metadata, &extensions).await?; /// let response = Self::encode(output)?; - /// tracing::Span::current().record("rpc.response.size", prost::Message::encoded_len(&response)); + /// miden_node_tracing::Span::current().record("rpc.response.size", prost::Message::encoded_len(&response)); /// Ok(response) /// } /// } @@ -483,13 +483,13 @@ impl UnaryMethod { .ret(format!("tonic::Result<{}>", &self.response)) .line("let (metadata, extensions, message) = request.into_parts();") .line( - r#"tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message));"#, + r#"miden_node_tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message));"#, ) .line("let input = Self::decode(message)?;") .line("let output = self.handle(input, &metadata, &extensions).await?;") .line("let response = Self::encode(output)?;") .line( - r#"tracing::Span::current().record("rpc.response.size", prost::Message::encoded_len(&response));"#, + r#"miden_node_tracing::Span::current().record("rpc.response.size", prost::Message::encoded_len(&response));"#, ) .line("Ok(response)"); @@ -527,7 +527,7 @@ impl ServerStream { /// async fn full(&self, request: tonic::Request<>) -> tonic::Result>>> { /// use tokio_stream::StreamExt as _; /// let (metadata, extensions, message) = request.into_parts(); - /// tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message)); + /// miden_node_tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message)); /// let input = Self::decode(message)?; /// let stream = self.handle(input, &metadata, &extensions).await?; /// Ok(Box::pin(stream.map(|item| item.and_then(Self::encode)))) @@ -576,7 +576,7 @@ impl ServerStream { .line("use tonic::codegen::tokio_stream::StreamExt as _;") .line("let (metadata, extensions, message) = request.into_parts();") .line( - r#"tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message));"#, + r#"miden_node_tracing::Span::current().record("rpc.request.size", prost::Message::encoded_len(&message));"#, ) .line("let input = Self::decode(message)?;") .line("let stream = self.handle(input, &metadata, &extensions).await?;") diff --git a/crates/proto/src/clients/mod.rs b/crates/proto/src/clients/mod.rs index 4ece361610..e7be926a1c 100644 --- a/crates/proto/src/clients/mod.rs +++ b/crates/proto/src/clients/mod.rs @@ -31,8 +31,8 @@ use std::str::FromStr; use std::time::Duration; use http::header::ACCEPT; -use miden_node_utils::tracing::grpc::OtelInterceptor; -use miden_node_utils::tracing::{debug, info, warn}; +use miden_node_tracing::grpc::OtelInterceptor; +use miden_node_tracing::{debug, info, warn}; use miden_protocol::Word; use miden_protocol::batch::ProposedBatch; use miden_protocol::utils::serde::Serializable; diff --git a/crates/proto/src/domain/mod.rs b/crates/proto/src/domain/mod.rs index 3451ea2bb9..706094b1c5 100644 --- a/crates/proto/src/domain/mod.rs +++ b/crates/proto/src/domain/mod.rs @@ -9,8 +9,7 @@ pub mod nullifier; pub mod proof_request; pub mod transaction; -use miden_node_utils::tracing::RecordAttribute; -use tracing::Value; +use miden_node_tracing::{RecordAttribute, Value}; impl RecordAttribute for crate::generated::rpc::FinalityLevel { const FIELD_NAMES: &'static [&'static str] = &["finality_level"]; diff --git a/crates/rpc/Cargo.toml b/crates/rpc/Cargo.toml index ba46255c08..744701cacd 100644 --- a/crates/rpc/Cargo.toml +++ b/crates/rpc/Cargo.toml @@ -26,6 +26,7 @@ miden-node-block-producer = { workspace = true } miden-node-proto = { workspace = true } miden-node-proto-build = { workspace = true } miden-node-store = { workspace = true } +miden-node-tracing = { workspace = true } miden-node-utils = { workspace = true } miden-protocol = { default-features = true, workspace = true } miden-tx-batch = { workspace = true } @@ -40,14 +41,14 @@ tonic-reflection = { workspace = true } tonic-web = { workspace = true } tower = { workspace = true } tower-http = { features = ["trace"], workspace = true } -tracing = { workspace = true } url = { workspace = true } [dev-dependencies] -miden-node-utils = { features = ["testing", "tracing-forest"], workspace = true } -miden-protocol = { default-features = true, features = ["testing"], workspace = true } -miden-standards = { workspace = true } -reqwest = { workspace = true } -rstest = { workspace = true } -tempfile = { workspace = true } -tokio = { features = ["test-util"], workspace = true } +miden-node-tracing = { features = ["tracing-forest"], workspace = true } +miden-node-utils = { features = ["testing"], workspace = true } +miden-protocol = { default-features = true, features = ["testing"], workspace = true } +miden-standards = { workspace = true } +reqwest = { workspace = true } +rstest = { workspace = true } +tempfile = { workspace = true } +tokio = { features = ["test-util"], workspace = true } diff --git a/crates/rpc/src/lib.rs b/crates/rpc/src/lib.rs index 5a3dcc91ff..c7efea1f41 100644 --- a/crates/rpc/src/lib.rs +++ b/crates/rpc/src/lib.rs @@ -1,3 +1,6 @@ +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + mod server; #[cfg(test)] mod tests; diff --git a/crates/rpc/src/server/accept.rs b/crates/rpc/src/server/accept.rs index d156fed292..8d44ef9859 100644 --- a/crates/rpc/src/server/accept.rs +++ b/crates/rpc/src/server/accept.rs @@ -5,7 +5,8 @@ use futures::FutureExt; use futures::future::BoxFuture; use http::header::{ACCEPT, ToStrError}; use mediatype::{Name, ReadParams}; -use miden_node_utils::{ErrorReport, FlattenResult}; +use miden_node_tracing::ErrorReport; +use miden_node_utils::FlattenResult; use miden_protocol::{Word, WordError}; use semver::{Comparator, Version, VersionReq}; use tower::{Layer, Service}; diff --git a/crates/rpc/src/server/api.rs b/crates/rpc/src/server/api.rs index cdfbf72915..39d3c0a608 100644 --- a/crates/rpc/src/server/api.rs +++ b/crates/rpc/src/server/api.rs @@ -11,6 +11,7 @@ use miden_node_proto::generated::rpc::api_server::Api; use miden_node_proto::generated::{self as proto}; use miden_node_store::state::State; use miden_node_store::{DatabaseError, GetBlockHeaderError}; +use miden_node_tracing::{miden_instrument, warn}; use miden_node_utils::limiter::{ QueryParamAccountIdLimit, QueryParamLimiter, @@ -22,7 +23,6 @@ use miden_node_utils::limiter::{ }; use miden_node_utils::lru_cache::LruCache; use miden_node_utils::retry::{self, Retryable}; -use miden_node_utils::tracing::{miden_instrument, warn}; use miden_protocol::Word; use miden_protocol::account::AccountId; use miden_protocol::block::{BlockHeader, BlockNumber}; diff --git a/crates/rpc/src/server/api/get_account.rs b/crates/rpc/src/server/api/get_account.rs index 09bd2f4297..12f9ca03f6 100644 --- a/crates/rpc/src/server/api/get_account.rs +++ b/crates/rpc/src/server/api/get_account.rs @@ -8,10 +8,9 @@ use miden_node_proto::domain::account::{ }; use miden_node_proto::generated as proto; use miden_node_store::GetAccountError; +use miden_node_tracing::{debug, info_span, miden_instrument, miden_span_record}; use miden_node_utils::limiter::{QueryParamStorageMapKeyTotalLimit, QueryParamStorageMapSlotLimit}; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; use tonic::Status; -use tracing::info_span; use super::{RpcService, check}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/rpc/src/server/api/get_block_by_number.rs b/crates/rpc/src/server/api/get_block_by_number.rs index 210a73c291..fee55537f0 100644 --- a/crates/rpc/src/server/api/get_block_by_number.rs +++ b/crates/rpc/src/server/api/get_block_by_number.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use miden_protocol::block::BlockNumber; use super::{RpcService, database_error_to_status}; diff --git a/crates/rpc/src/server/api/get_block_header_by_number.rs b/crates/rpc/src/server/api/get_block_header_by_number.rs index 52b0a62bf5..0c9c6a242d 100644 --- a/crates/rpc/src/server/api/get_block_header_by_number.rs +++ b/crates/rpc/src/server/api/get_block_header_by_number.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use miden_protocol::block::BlockNumber; use super::{COMPONENT, RpcService}; diff --git a/crates/rpc/src/server/api/get_limits.rs b/crates/rpc/src/server/api/get_limits.rs index f34b3f8efd..7be0cb11e7 100644 --- a/crates/rpc/src/server/api/get_limits.rs +++ b/crates/rpc/src/server/api/get_limits.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use super::{RPC_LIMITS, RpcService}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/rpc/src/server/api/get_network_note_status.rs b/crates/rpc/src/server/api/get_network_note_status.rs index be502e8787..66a89ee4db 100644 --- a/crates/rpc/src/server/api/get_network_note_status.rs +++ b/crates/rpc/src/server/api/get_network_note_status.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_protocol::Word; use tonic::Request; diff --git a/crates/rpc/src/server/api/get_note_script_by_root.rs b/crates/rpc/src/server/api/get_note_script_by_root.rs index ce7cc9cccb..5db23a0d9d 100644 --- a/crates/rpc/src/server/api/get_note_script_by_root.rs +++ b/crates/rpc/src/server/api/get_note_script_by_root.rs @@ -1,6 +1,6 @@ use miden_node_proto::decode::read_root; use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_protocol::note::NoteScript; use tonic::Status; diff --git a/crates/rpc/src/server/api/get_notes_by_id.rs b/crates/rpc/src/server/api/get_notes_by_id.rs index 8ecb751895..ed7e1512cb 100644 --- a/crates/rpc/src/server/api/get_notes_by_id.rs +++ b/crates/rpc/src/server/api/get_notes_by_id.rs @@ -2,8 +2,8 @@ use miden_node_proto::decode::convert_digests_to_words; use miden_node_proto::generated as proto; use miden_node_proto::generated::note::CommittedNote; use miden_node_store::NoteRecord; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_node_utils::limiter::QueryParamNoteIdLimit; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; use miden_protocol::Word; use miden_protocol::note::NoteId; use miden_protocol::utils::serde::Serializable; diff --git a/crates/rpc/src/server/api/get_transaction_encryption_key.rs b/crates/rpc/src/server/api/get_transaction_encryption_key.rs index 3406582ebb..c94fb137d0 100644 --- a/crates/rpc/src/server/api/get_transaction_encryption_key.rs +++ b/crates/rpc/src/server/api/get_transaction_encryption_key.rs @@ -1,5 +1,5 @@ use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use super::{Request, RpcBackend, RpcService}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/rpc/src/server/api/status.rs b/crates/rpc/src/server/api/status.rs index 64639e89d1..b8e2f45a3b 100644 --- a/crates/rpc/src/server/api/status.rs +++ b/crates/rpc/src/server/api/status.rs @@ -1,6 +1,6 @@ use miden_node_block_producer::{BlockProducerStatus, MempoolStats}; use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use super::{ProtoMempoolStats, Request, RpcBackend, RpcService}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/rpc/src/server/api/submit_auth_tx.rs b/crates/rpc/src/server/api/submit_auth_tx.rs index 8af4538980..c7063ad9bc 100644 --- a/crates/rpc/src/server/api/submit_auth_tx.rs +++ b/crates/rpc/src/server/api/submit_auth_tx.rs @@ -1,7 +1,7 @@ use miden_node_block_producer::AuthenticatedTransaction; use miden_node_proto::generated as proto; use miden_node_proto::generated::server::sequencer_api; -use miden_node_utils::ErrorReport; +use miden_node_tracing::ErrorReport; use tonic::Status; use super::SequencerInternalService; diff --git a/crates/rpc/src/server/api/submit_auth_tx_batch.rs b/crates/rpc/src/server/api/submit_auth_tx_batch.rs index 2d082be899..f2d2191189 100644 --- a/crates/rpc/src/server/api/submit_auth_tx_batch.rs +++ b/crates/rpc/src/server/api/submit_auth_tx_batch.rs @@ -1,7 +1,7 @@ use miden_node_block_producer::store::TransactionInputs; use miden_node_proto::generated as proto; use miden_node_proto::generated::server::sequencer_api; -use miden_node_utils::ErrorReport; +use miden_node_tracing::ErrorReport; use miden_protocol::batch::ProposedBatch; use miden_protocol::utils::serde::Deserializable; use tonic::Status; diff --git a/crates/rpc/src/server/api/submit_proven_tx.rs b/crates/rpc/src/server/api/submit_proven_tx.rs index d102491746..a3f8c06b0c 100644 --- a/crates/rpc/src/server/api/submit_proven_tx.rs +++ b/crates/rpc/src/server/api/submit_proven_tx.rs @@ -2,9 +2,8 @@ use miden_node_block_producer::AuthenticatedTransaction; use miden_node_block_producer::store::get_tx_inputs; use miden_node_proto::clients::{SequencerClient, ValidatorClient}; use miden_node_proto::generated as proto; -use miden_node_utils::ErrorReport; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record, trace}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorReport, debug, miden_instrument, miden_span_record, trace}; use miden_protocol::MIN_PROOF_SECURITY_LEVEL; use miden_protocol::transaction::{ OutputNote, diff --git a/crates/rpc/src/server/api/submit_proven_tx_batch.rs b/crates/rpc/src/server/api/submit_proven_tx_batch.rs index 618c9b9d24..f5d3962ea9 100644 --- a/crates/rpc/src/server/api/submit_proven_tx_batch.rs +++ b/crates/rpc/src/server/api/submit_proven_tx_batch.rs @@ -1,9 +1,8 @@ use miden_node_block_producer::store::get_tx_inputs; use miden_node_proto::clients::{SequencerClient, ValidatorClient}; use miden_node_proto::generated as proto; -use miden_node_utils::ErrorReport; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record, trace}; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorReport, debug, miden_instrument, miden_span_record, trace}; use miden_protocol::MIN_PROOF_SECURITY_LEVEL; use miden_protocol::batch::{ProposedBatch, ProvenBatch}; use miden_protocol::utils::serde::{Deserializable, Serializable}; diff --git a/crates/rpc/src/server/api/subscription/block.rs b/crates/rpc/src/server/api/subscription/block.rs index 3c4f40f88e..19510eaab7 100644 --- a/crates/rpc/src/server/api/subscription/block.rs +++ b/crates/rpc/src/server/api/subscription/block.rs @@ -1,6 +1,6 @@ use miden_node_proto::generated as proto; +use miden_node_tracing::{debug, miden_instrument}; use miden_node_utils::grpc::ClientIp; -use miden_node_utils::tracing::{debug, miden_instrument}; use miden_protocol::block::BlockNumber; use super::super::{COMPONENT, RpcService}; diff --git a/crates/rpc/src/server/api/subscription/proof.rs b/crates/rpc/src/server/api/subscription/proof.rs index ed95c6b870..191abdc2d0 100644 --- a/crates/rpc/src/server/api/subscription/proof.rs +++ b/crates/rpc/src/server/api/subscription/proof.rs @@ -1,6 +1,6 @@ use miden_node_proto::generated as proto; +use miden_node_tracing::{debug, miden_instrument}; use miden_node_utils::grpc::ClientIp; -use miden_node_utils::tracing::{debug, miden_instrument}; use miden_protocol::block::BlockNumber; use super::super::{COMPONENT, RpcService}; diff --git a/crates/rpc/src/server/api/subscription/stream/mod.rs b/crates/rpc/src/server/api/subscription/stream/mod.rs index d1e0f94734..d10549ee88 100644 --- a/crates/rpc/src/server/api/subscription/stream/mod.rs +++ b/crates/rpc/src/server/api/subscription/stream/mod.rs @@ -6,7 +6,7 @@ use std::task::{Context, Poll}; use std::time::{Duration, Instant}; use miden_node_store::DatabaseError; -use miden_node_utils::tracing::error; +use miden_node_tracing::error; use miden_protocol::block::BlockNumber; use tokio::sync::mpsc::error::SendTimeoutError; use tokio::sync::{OwnedSemaphorePermit, Semaphore, mpsc, watch}; diff --git a/crates/rpc/src/server/api/sync_account_storage_maps.rs b/crates/rpc/src/server/api/sync_account_storage_maps.rs index da12ec192e..a778f56be1 100644 --- a/crates/rpc/src/server/api/sync_account_storage_maps.rs +++ b/crates/rpc/src/server/api/sync_account_storage_maps.rs @@ -1,6 +1,6 @@ use miden_node_proto::decode::{read_account_id, read_block_range}; use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use tonic::Status; use super::{ diff --git a/crates/rpc/src/server/api/sync_account_vault.rs b/crates/rpc/src/server/api/sync_account_vault.rs index f4b2aef5d1..73ff5862b8 100644 --- a/crates/rpc/src/server/api/sync_account_vault.rs +++ b/crates/rpc/src/server/api/sync_account_vault.rs @@ -1,6 +1,6 @@ use miden_node_proto::decode::{read_account_id, read_block_range}; use miden_node_proto::generated as proto; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_protocol::Word; use tonic::Status; diff --git a/crates/rpc/src/server/api/sync_chain_mmr.rs b/crates/rpc/src/server/api/sync_chain_mmr.rs index 75d3e5c62b..47db61779c 100644 --- a/crates/rpc/src/server/api/sync_chain_mmr.rs +++ b/crates/rpc/src/server/api/sync_chain_mmr.rs @@ -1,6 +1,6 @@ use miden_node_proto::generated as proto; use miden_node_store::StateSyncError; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use miden_protocol::block::BlockNumber; use tonic::Status; diff --git a/crates/rpc/src/server/api/sync_notes.rs b/crates/rpc/src/server/api/sync_notes.rs index 8482c00d90..a072d4426a 100644 --- a/crates/rpc/src/server/api/sync_notes.rs +++ b/crates/rpc/src/server/api/sync_notes.rs @@ -1,8 +1,8 @@ use miden_node_proto::decode::read_block_range; use miden_node_proto::generated as proto; use miden_node_store::{NoteSyncError, NoteSyncRecord}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_node_utils::limiter::QueryParamNoteTagLimit; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; use tonic::Status; use super::{RpcInvalidBlockRange, RpcService, check, invalid_block_range_to_status}; diff --git a/crates/rpc/src/server/api/sync_nullifiers.rs b/crates/rpc/src/server/api/sync_nullifiers.rs index a0bcfe8691..f15c97a751 100644 --- a/crates/rpc/src/server/api/sync_nullifiers.rs +++ b/crates/rpc/src/server/api/sync_nullifiers.rs @@ -1,7 +1,7 @@ use miden_node_proto::decode::read_block_range; use miden_node_proto::generated as proto; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_node_utils::limiter::QueryParamNullifierPrefixLimit; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; use tonic::Status; use super::{ diff --git a/crates/rpc/src/server/api/sync_transactions.rs b/crates/rpc/src/server/api/sync_transactions.rs index c71f4f3914..f13d9fbdd6 100644 --- a/crates/rpc/src/server/api/sync_transactions.rs +++ b/crates/rpc/src/server/api/sync_transactions.rs @@ -1,8 +1,8 @@ use miden_node_proto::decode::{read_account_ids, read_block_range}; use miden_node_proto::generated as proto; use miden_node_store::{NoteSyncRecord, TransactionRecord}; +use miden_node_tracing::{debug, miden_instrument, miden_span_record}; use miden_node_utils::limiter::QueryParamAccountIdLimit; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record}; use tonic::Status; use super::{ diff --git a/crates/rpc/src/server/mod.rs b/crates/rpc/src/server/mod.rs index 89ef50ed4f..27aa7be14d 100644 --- a/crates/rpc/src/server/mod.rs +++ b/crates/rpc/src/server/mod.rs @@ -14,14 +14,14 @@ use miden_node_proto::clients::{ use miden_node_proto::server::{rpc_api, sequencer_api}; use miden_node_proto_build::rpc_api_descriptor; use miden_node_store::state::{BlockWriter, ProofWriter, State}; +use miden_node_tracing::grpc::grpc_trace_fn; +use miden_node_tracing::info; +use miden_node_tracing::panic::{CatchPanicLayer, catch_panic_layer_fn}; use miden_node_utils::clap::GrpcOptions; use miden_node_utils::cors::cors_for_grpc_web_layer; use miden_node_utils::grpc; -use miden_node_utils::panic::{CatchPanicLayer, catch_panic_layer_fn}; use miden_node_utils::shutdown::CancellationToken; use miden_node_utils::tasks::Tasks; -use miden_node_utils::tracing::grpc::grpc_trace_fn; -use miden_node_utils::tracing::info; use miden_protocol::block::BlockNumber; use rand::RngExt; use tokio::net::TcpListener; diff --git a/crates/store/Cargo.toml b/crates/store/Cargo.toml index 5d37456ad8..9733788477 100644 --- a/crates/store/Cargo.toml +++ b/crates/store/Cargo.toml @@ -33,17 +33,17 @@ miden-node-proto = { workspace = true } miden-node-utils = { workspace = true } miden-standards = { workspace = true } # TODO remove `testing` from `miden-protocol`, required for `BlockProof::new_dummy` -miden-protocol = { features = ["std", "testing"], workspace = true } -pretty_assertions = { workspace = true } -rand = { workspace = true } -rand_chacha = { workspace = true } -rayon = { workspace = true } -serde = { workspace = true } -thiserror = { workspace = true } -thread-priority = { workspace = true } -tokio = { features = ["fs", "rt-multi-thread"], workspace = true } -toml = { workspace = true } -tracing = { workspace = true } +miden-node-tracing = { workspace = true } +miden-protocol = { features = ["std", "testing"], workspace = true } +pretty_assertions = { workspace = true } +rand = { workspace = true } +rand_chacha = { workspace = true } +rayon = { workspace = true } +serde = { workspace = true } +thiserror = { workspace = true } +thread-priority = { workspace = true } +tokio = { features = ["fs", "rt-multi-thread"], workspace = true } +toml = { workspace = true } [build-dependencies] build-rs = { workspace = true } @@ -57,7 +57,8 @@ assert_matches = { workspace = true } criterion = "0.8" fs-err = { workspace = true } miden-node-test-macro = { workspace = true } -miden-node-utils = { features = ["testing", "tracing-forest"], workspace = true } +miden-node-tracing = { features = ["tracing-forest"], workspace = true } +miden-node-utils = { features = ["testing"], workspace = true } miden-protocol = { default-features = true, features = ["testing"], workspace = true } miden-standards = { features = ["testing"], workspace = true } rand = { workspace = true } diff --git a/crates/store/src/account_state_forest/mod.rs b/crates/store/src/account_state_forest/mod.rs index e45f40cbc7..8debb27cb7 100644 --- a/crates/store/src/account_state_forest/mod.rs +++ b/crates/store/src/account_state_forest/mod.rs @@ -10,9 +10,8 @@ use miden_node_proto::domain::account::{ AccountVaultDetails, StorageMapEntries, }; -use miden_node_utils::ErrorReport; +use miden_node_tracing::{ErrorReport, miden_instrument, trace}; use miden_node_utils::lru_cache::LruCache; -use miden_node_utils::tracing::{miden_instrument, trace}; use miden_protocol::account::{ AccountId, AccountPatch, @@ -867,7 +866,7 @@ impl AccountStateForest { self.apply_precomputed_update(block_num, update)?; let number_of_pruned_blocks = self.prune(block_num); - tracing::Span::current().record("num_pruned", number_of_pruned_blocks); + miden_node_tracing::Span::current().record("num_pruned", number_of_pruned_blocks); Ok(()) } diff --git a/crates/store/src/accounts/mod.rs b/crates/store/src/accounts/mod.rs index ee40da4389..65463065b8 100644 --- a/crates/store/src/accounts/mod.rs +++ b/crates/store/src/accounts/mod.rs @@ -4,7 +4,7 @@ use std::collections::{BTreeMap, HashMap}; #[cfg(feature = "rocksdb")] use miden_crypto::merkle::smt::RocksDbStorage; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::account::{AccountId, AccountIdPrefix}; use miden_protocol::block::BlockNumber; use miden_protocol::block::account_tree::{AccountMutationSet, AccountTree, AccountWitness}; diff --git a/crates/store/src/blocks.rs b/crates/store/src/blocks.rs index b454cc8897..ebea0d7694 100644 --- a/crates/store/src/blocks.rs +++ b/crates/store/src/blocks.rs @@ -11,7 +11,7 @@ use std::io::ErrorKind; use std::ops::Not; use std::path::{Path, PathBuf}; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::block::BlockNumber; use miden_protocol::utils::serde::Serializable; diff --git a/crates/store/src/data_directory.rs b/crates/store/src/data_directory.rs index 4e1405cb0c..e83f9d3a3c 100644 --- a/crates/store/src/data_directory.rs +++ b/crates/store/src/data_directory.rs @@ -1,7 +1,7 @@ use std::ops::Not; use std::path::PathBuf; -use miden_node_utils::tracing::RecordAttribute; +use miden_node_tracing::RecordAttribute; /// Represents the store's data-directory and its content paths. /// @@ -37,7 +37,7 @@ impl DataDirectory { impl RecordAttribute for DataDirectory { const FIELD_NAMES: &'static [&'static str] = &["data.directory", "path"]; - fn record_attribute(&self) -> impl tracing::Value + '_ { - tracing::field::display(self.display()) + fn record_attribute(&self) -> impl miden_node_tracing::Value + '_ { + miden_node_tracing::field::display(self.display()) } } diff --git a/crates/store/src/db/migrations.rs b/crates/store/src/db/migrations.rs index f5c305ba26..c4749467ae 100644 --- a/crates/store/src/db/migrations.rs +++ b/crates/store/src/db/migrations.rs @@ -1,7 +1,7 @@ use std::path::Path; use miden_node_db::DatabaseError; -use miden_node_utils::tracing::{info, miden_instrument}; +use miden_node_tracing::{info, miden_instrument}; use crate::{COMPONENT, LOG_TARGET}; diff --git a/crates/store/src/db/mod.rs b/crates/store/src/db/mod.rs index 3a644aabf9..160d6f2c64 100644 --- a/crates/store/src/db/mod.rs +++ b/crates/store/src/db/mod.rs @@ -8,12 +8,12 @@ use std::sync::Arc; use anyhow::Context; use diesel::{Connection, SqliteConnection}; use miden_node_proto::domain::account::AccountInfo; +use miden_node_tracing::{info, miden_instrument, warn}; use miden_node_utils::limiter::{ MAX_RESPONSE_PAYLOAD_BYTES, QueryParamLimiter, QueryParamNoteCommitmentLimit, }; -use miden_node_utils::tracing::{info, miden_instrument, warn}; use miden_protocol::Word; use miden_protocol::account::{AccountHeader, AccountId, AccountStorageHeader, StorageMapKey}; use miden_protocol::asset::{Asset, AssetId}; diff --git a/crates/store/src/db/models/queries/accounts.rs b/crates/store/src/db/models/queries/accounts.rs index 90a0401225..3ab52b9678 100644 --- a/crates/store/src/db/models/queries/accounts.rs +++ b/crates/store/src/db/models/queries/accounts.rs @@ -20,12 +20,12 @@ use diesel::{ SqliteConnection, }; use miden_node_proto::domain::account::{AccountInfo, AccountSummary, AccountVaultDetails}; +use miden_node_tracing::miden_instrument; use miden_node_utils::limiter::{ MAX_RESPONSE_PAYLOAD_BYTES, QueryParamAccountIdLimit, QueryParamLimiter, }; -use miden_node_utils::tracing::miden_instrument; use miden_protocol::Word; use miden_protocol::account::{ Account, @@ -1672,7 +1672,7 @@ pub(crate) fn prune_history( prune_tip: BlockNumber, ) -> Result<(usize, usize, usize), DatabaseError> { let cutoff_block = i64::from(prune_tip.as_u32().saturating_sub(HISTORICAL_BLOCK_RETENTION)); - tracing::Span::current().record("cutoff_block", cutoff_block); + miden_node_tracing::Span::current().record("cutoff_block", cutoff_block); let vault_deleted = prune_account_vault_assets(conn, cutoff_block)?; let storage_deleted = prune_account_storage_map_values(conn, cutoff_block)?; let codes_deleted = prune_account_codes(conn, cutoff_block)?; diff --git a/crates/store/src/db/models/queries/block_headers.rs b/crates/store/src/db/models/queries/block_headers.rs index e147a902ca..cc0225e710 100644 --- a/crates/store/src/db/models/queries/block_headers.rs +++ b/crates/store/src/db/models/queries/block_headers.rs @@ -12,8 +12,8 @@ use diesel::{ SqliteConnection, }; use miden_crypto::Word; +use miden_node_tracing::miden_instrument; use miden_node_utils::limiter::{QueryParamBlockLimit, QueryParamLimiter}; -use miden_node_utils::tracing::miden_instrument; use miden_protocol::block::{BlockHeader, BlockNumber, BlockSignatures}; use miden_protocol::utils::serde::{Deserializable, Serializable}; diff --git a/crates/store/src/db/models/queries/notes.rs b/crates/store/src/db/models/queries/notes.rs index f1fd1f2438..87249f3665 100644 --- a/crates/store/src/db/models/queries/notes.rs +++ b/crates/store/src/db/models/queries/notes.rs @@ -24,12 +24,12 @@ use diesel::{ SelectableHelper, SqliteConnection, }; +use miden_node_tracing::miden_instrument; use miden_node_utils::limiter::{ QueryParamLimiter, QueryParamNoteCommitmentLimit, QueryParamNoteTagLimit, }; -use miden_node_utils::tracing::miden_instrument; use miden_protocol::Word; use miden_protocol::account::AccountId; use miden_protocol::block::{BlockNoteIndex, BlockNumber}; diff --git a/crates/store/src/db/models/queries/nullifiers.rs b/crates/store/src/db/models/queries/nullifiers.rs index 688b5c6f0b..6c7e5fbf70 100644 --- a/crates/store/src/db/models/queries/nullifiers.rs +++ b/crates/store/src/db/models/queries/nullifiers.rs @@ -12,12 +12,12 @@ use diesel::{ SelectableHelper, SqliteConnection, }; +use miden_node_tracing::miden_instrument; use miden_node_utils::limiter::{ MAX_RESPONSE_PAYLOAD_BYTES, QueryParamLimiter, QueryParamNullifierPrefixLimit, }; -use miden_node_utils::tracing::miden_instrument; use miden_protocol::block::BlockNumber; use miden_protocol::note::Nullifier; use miden_protocol::utils::serde::{Deserializable, Serializable}; diff --git a/crates/store/src/db/models/queries/transactions.rs b/crates/store/src/db/models/queries/transactions.rs index 249cf75439..9d6e55443c 100644 --- a/crates/store/src/db/models/queries/transactions.rs +++ b/crates/store/src/db/models/queries/transactions.rs @@ -12,13 +12,13 @@ use diesel::{ SelectableHelper, SqliteConnection, }; +use miden_node_tracing::miden_instrument; use miden_node_utils::limiter::{ MAX_RESPONSE_PAYLOAD_BYTES, QueryParamAccountIdLimit, QueryParamLimiter, QueryParamNoteCommitmentLimit, }; -use miden_node_utils::tracing::miden_instrument; use miden_protocol::account::AccountId; use miden_protocol::block::BlockNumber; use miden_protocol::note::{NoteHeader, NoteId, Nullifier}; diff --git a/crates/store/src/genesis/config/mod.rs b/crates/store/src/genesis/config/mod.rs index 6fff2d9b97..8ce9ede04b 100644 --- a/crates/store/src/genesis/config/mod.rs +++ b/crates/store/src/genesis/config/mod.rs @@ -5,7 +5,7 @@ use std::path::{Path, PathBuf}; use std::str::FromStr; use indexmap::IndexMap; -use miden_node_utils::tracing::debug; +use miden_node_tracing::debug; use miden_protocol::account::auth::{AuthScheme, AuthSecretKey}; use miden_protocol::account::{Account, AccountBuilder, AccountFile, AccountId, AccountType}; use miden_protocol::asset::{Asset, AssetAmount, FungibleAsset, TokenSymbol}; diff --git a/crates/store/src/lib.rs b/crates/store/src/lib.rs index ec40d3fe3b..ee94cb0373 100644 --- a/crates/store/src/lib.rs +++ b/crates/store/src/lib.rs @@ -1,3 +1,6 @@ +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; + mod account_state_forest; mod accounts; mod blocks; diff --git a/crates/store/src/state/block_lifecycle.rs b/crates/store/src/state/block_lifecycle.rs index f2083f6cb4..681f801f42 100644 --- a/crates/store/src/state/block_lifecycle.rs +++ b/crates/store/src/state/block_lifecycle.rs @@ -1,6 +1,6 @@ use std::collections::{BTreeMap, BTreeSet}; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use miden_protocol::Word; use miden_protocol::account::{ AccountId, @@ -135,7 +135,7 @@ impl BlockLifecycle { /// Returns whether any subscriber is interested in user-facing lifecycle events. pub(super) fn lifecycle_events_enabled() -> bool { - tracing::enabled!(target: LOG_TARGET, tracing::Level::DEBUG) + miden_node_tracing::enabled!(target: LOG_TARGET, miden_node_tracing::Level::DEBUG) } struct RegisteredAccount { diff --git a/crates/store/src/state/bootstrap.rs b/crates/store/src/state/bootstrap.rs index f38efd2f07..e30c423324 100644 --- a/crates/store/src/state/bootstrap.rs +++ b/crates/store/src/state/bootstrap.rs @@ -1,7 +1,7 @@ use std::path::Path; use anyhow::Context; -use miden_node_utils::tracing::{debug, miden_instrument}; +use miden_node_tracing::{debug, miden_instrument}; use crate::blocks::BlockStore; use crate::db::Db; diff --git a/crates/store/src/state/disk_monitor.rs b/crates/store/src/state/disk_monitor.rs index c6be8a8f60..fcaa6ba2c9 100644 --- a/crates/store/src/state/disk_monitor.rs +++ b/crates/store/src/state/disk_monitor.rs @@ -1,9 +1,9 @@ use std::path::{Path, PathBuf}; use std::time::Duration; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{miden_instrument, miden_span_record}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; use crate::COMPONENT; use crate::state::State; diff --git a/crates/store/src/state/lifecycle.rs b/crates/store/src/state/lifecycle.rs index 628d6b0f51..e40d463885 100644 --- a/crates/store/src/state/lifecycle.rs +++ b/crates/store/src/state/lifecycle.rs @@ -6,11 +6,10 @@ use std::sync::Arc; use std::sync::atomic::AtomicUsize; use arc_swap::ArcSwap; -use miden_node_utils::ErrorReport; +use miden_node_tracing::spawn::spawn_blocking_in_current_span; +use miden_node_tracing::{ErrorReport, miden_instrument}; use miden_node_utils::clap::StorageOptions; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::spawn::spawn_blocking_in_current_span; -use miden_node_utils::tracing::miden_instrument; use tokio::sync::{mpsc, watch}; use tokio::task::JoinHandle; use tracing::Instrument; diff --git a/crates/store/src/state/loader.rs b/crates/store/src/state/loader.rs index bdfbccbaa8..e98aa66f87 100644 --- a/crates/store/src/state/loader.rs +++ b/crates/store/src/state/loader.rs @@ -22,10 +22,10 @@ use miden_crypto::merkle::smt::{ SmtStorageReader, }; #[cfg(feature = "rocksdb")] -use miden_node_utils::clap::RocksDbOptions; +use miden_node_tracing::info; +use miden_node_tracing::miden_instrument; #[cfg(feature = "rocksdb")] -use miden_node_utils::tracing::info; -use miden_node_utils::tracing::miden_instrument; +use miden_node_utils::clap::RocksDbOptions; use miden_protocol::account::{AccountId, AccountStorageHeader, StorageSlotType}; use miden_protocol::block::account_tree::{AccountIdKey, AccountTree}; use miden_protocol::block::nullifier_tree::NullifierTree; @@ -84,7 +84,7 @@ pub type TreeStorageReader = ::Reader; /// Converts a `LargeSmtError` into a `StateInitializationError`. pub fn account_tree_large_smt_error_to_init_error(e: LargeSmtError) -> StateInitializationError { - use miden_node_utils::ErrorReport; + use miden_node_tracing::ErrorReport; match e { LargeSmtError::Merkle(merkle_error) => { StateInitializationError::DatabaseError(DatabaseError::MerkleError(merkle_error)) diff --git a/crates/store/src/state/view/account/mod.rs b/crates/store/src/state/view/account/mod.rs index 342cd6a46e..ea1a75ea56 100644 --- a/crates/store/src/state/view/account/mod.rs +++ b/crates/store/src/state/view/account/mod.rs @@ -13,7 +13,7 @@ use miden_node_proto::domain::account::{ StorageMapEntries, StorageMapRequest, }; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::account::{AccountId, AccountStorageHeader, StorageSlotName, StorageSlotType}; use miden_protocol::block::BlockNumber; use miden_protocol::block::account_tree::AccountWitness; diff --git a/crates/store/src/state/view/block.rs b/crates/store/src/state/view/block.rs index adf40d6ca2..1d9df837d2 100644 --- a/crates/store/src/state/view/block.rs +++ b/crates/store/src/state/view/block.rs @@ -1,6 +1,6 @@ //! Block header reads. -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::block::{BlockHeader, BlockNumber}; use miden_protocol::crypto::merkle::mmr::MmrProof; diff --git a/crates/store/src/state/view/mod.rs b/crates/store/src/state/view/mod.rs index 34379c751d..334c4a5118 100644 --- a/crates/store/src/state/view/mod.rs +++ b/crates/store/src/state/view/mod.rs @@ -14,8 +14,8 @@ use std::ops::RangeInclusive; use std::sync::Arc; +use miden_node_tracing::Span; use miden_protocol::block::{BlockNumber, Blockchain}; -use tracing::Span; use crate::account_state_forest::{AccountStateForest, AccountStateForestBackendReader}; use crate::db::Db; diff --git a/crates/store/src/state/view/snapshot.rs b/crates/store/src/state/view/snapshot.rs index 6211eebed1..50616f2d31 100644 --- a/crates/store/src/state/view/snapshot.rs +++ b/crates/store/src/state/view/snapshot.rs @@ -12,7 +12,7 @@ use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::{Arc, OnceLock, Weak}; use std::time::{Duration, Instant}; -use miden_node_utils::tracing::{debug, warn}; +use miden_node_tracing::{debug, warn}; use miden_protocol::block::nullifier_tree::NullifierTree; use miden_protocol::block::{BlockNumber, Blockchain}; use miden_protocol::crypto::merkle::smt::LargeSmt; diff --git a/crates/store/src/state/view/sync.rs b/crates/store/src/state/view/sync.rs index 603c078beb..21428ea596 100644 --- a/crates/store/src/state/view/sync.rs +++ b/crates/store/src/state/view/sync.rs @@ -1,6 +1,6 @@ use std::ops::RangeInclusive; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::account::AccountId; use miden_protocol::block::{BlockHeader, BlockNumber, BlockSignatures}; use miden_protocol::crypto::merkle::mmr::{Forest, MmrDelta, MmrProof}; diff --git a/crates/store/src/state/view/transaction_inputs.rs b/crates/store/src/state/view/transaction_inputs.rs index ba5d4665c2..f75c82ba88 100644 --- a/crates/store/src/state/view/transaction_inputs.rs +++ b/crates/store/src/state/view/transaction_inputs.rs @@ -3,7 +3,7 @@ use std::collections::HashSet; use std::ops::ControlFlow; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::Word; use miden_protocol::account::AccountId; use miden_protocol::note::Nullifier; diff --git a/crates/store/src/state/writer/apply_block.rs b/crates/store/src/state/writer/apply_block.rs index e751c5e3f7..bc7e651d10 100644 --- a/crates/store/src/state/writer/apply_block.rs +++ b/crates/store/src/state/writer/apply_block.rs @@ -1,5 +1,5 @@ use miden_node_proto::domain::proof_request::BlockProofRequest; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::batch::OrderedBatches; use miden_protocol::block::{BlockInputs, BlockNumber, SignedBlock}; use miden_protocol::utils::serde::Serializable; diff --git a/crates/store/src/state/writer/apply_proof.rs b/crates/store/src/state/writer/apply_proof.rs index a8dea33d93..fa1a5805db 100644 --- a/crates/store/src/state/writer/apply_proof.rs +++ b/crates/store/src/state/writer/apply_proof.rs @@ -1,5 +1,5 @@ use anyhow::{Context, ensure}; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; use miden_protocol::block::{BlockNumber, BlockProof}; use miden_protocol::utils::serde::Deserializable; diff --git a/crates/store/src/state/writer/mod.rs b/crates/store/src/state/writer/mod.rs index a6bb42f811..efbd166bd7 100644 --- a/crates/store/src/state/writer/mod.rs +++ b/crates/store/src/state/writer/mod.rs @@ -17,8 +17,7 @@ use std::pin::Pin; use std::sync::Arc; use std::task::{Context, Poll}; -use miden_node_utils::ErrorReport; -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::{ErrorReport, miden_instrument}; use miden_protocol::block::SignedBlock; use tokio::sync::{mpsc, oneshot}; pub(in crate::state) use worker::WriteWorker; @@ -93,7 +92,7 @@ pub(super) struct WriteRequest { result_tx: oneshot::Sender>, /// Span of the `apply_block` caller. The worker runs the write under it, keeping the write path /// in the caller's trace across the channel hop. - span: tracing::Span, + span: miden_node_tracing::Span, } impl BlockWriter { @@ -136,7 +135,7 @@ impl BlockWriter { .send(WriteRequest { signed_block, result_tx, - span: tracing::Span::current(), + span: miden_node_tracing::Span::current(), }) .await .map_err(|e| ApplyBlockError::WriterTaskSendFailed(e.as_report()))?; diff --git a/crates/store/src/state/writer/worker.rs b/crates/store/src/state/writer/worker.rs index 66099f0c6c..77ec551762 100644 --- a/crates/store/src/state/writer/worker.rs +++ b/crates/store/src/state/writer/worker.rs @@ -4,9 +4,15 @@ use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::{Arc, Once}; use arc_swap::ArcSwap; -use miden_node_utils::ErrorReport; +use miden_node_tracing::{ + ErrorReport, + Instrument, + debug, + miden_instrument, + miden_span_record, + warn, +}; use miden_node_utils::shutdown::CancellationToken; -use miden_node_utils::tracing::{debug, miden_instrument, miden_span_record, warn}; use miden_protocol::Word; use miden_protocol::account::AccountUpdateDetails; use miden_protocol::block::account_tree::AccountMutationSet; @@ -19,7 +25,6 @@ use miden_protocol::utils::serde::Serializable; use rayon::ThreadPool; use thread_priority::{ThreadPriority, set_current_thread_priority}; use tokio::sync::{mpsc, watch}; -use tracing::Instrument; use super::WriteRequest; use crate::account_state_forest::{ @@ -561,7 +566,7 @@ impl WriteWorker { /// pool rather than the global one. The caller's tracing span is propagated so spans opened /// inside `op` stay parented under it. fn run_on_pool(pool: &ThreadPool, op: impl FnOnce() -> T + Send) -> T { - let span = tracing::Span::current(); + let span = miden_node_tracing::Span::current(); tokio::task::block_in_place(|| pool.install(|| span.in_scope(op))) } diff --git a/crates/test-macro/src/lib.rs b/crates/test-macro/src/lib.rs index 1fe1d6b1c0..6e53018718 100644 --- a/crates/test-macro/src/lib.rs +++ b/crates/test-macro/src/lib.rs @@ -10,12 +10,12 @@ pub fn enable_logging(_attr: TokenStream, item: TokenStream) -> TokenStream { let stmts = function.block.stmts; let block: Block = parse_quote! {{ if ::std::env::args().any(|e| e == "--nocapture") { - if let Err(err) = ::miden_node_utils::logging::setup_tracing( - ::miden_node_utils::logging::OpenTelemetry::Disabled + if let Err(err) = ::miden_node_tracing::setup_tracing( + ::miden_node_tracing::OpenTelemetry::Disabled ) { eprintln!("failed to setup tracing for tests using `enable_logging` proc-macro"); } - let span = ::tracing::span!(::tracing::Level::INFO, #name).entered(); + let span = ::miden_node_tracing::span!(::miden_node_tracing::Level::INFO, #name).entered(); #(#stmts)* } else { diff --git a/crates/tracing-macro/src/lib.rs b/crates/tracing-macro/src/lib.rs index ed2277b0b0..3065b43339 100644 --- a/crates/tracing-macro/src/lib.rs +++ b/crates/tracing-macro/src/lib.rs @@ -52,7 +52,7 @@ pub fn miden_instrument(attr: TokenStream, item: TokenStream) -> TokenStream { *function.block = block; let expanded = quote! { - #[::tracing::instrument(#args)] + #[::miden_node_tracing::__private::instrument(#args)] #function }; @@ -76,7 +76,7 @@ pub fn miden_instrument(attr: TokenStream, item: TokenStream) -> TokenStream { /// as the event name. /// /// ```rust,ignore -/// use miden_node_utils::tracing::trace; +/// use miden_node_tracing::trace; /// /// trace!(target: "node", "block.received", block.number = 42_u32); /// @@ -105,7 +105,7 @@ pub fn trace(input: TokenStream) -> TokenStream { /// as the event name. /// /// ```rust,ignore -/// use miden_node_utils::tracing::debug; +/// use miden_node_tracing::debug; /// /// debug!("block.queued", block.number = 42_u32); /// @@ -134,7 +134,7 @@ pub fn debug(input: TokenStream) -> TokenStream { /// as the event name. /// /// ```rust,ignore -/// use miden_node_utils::tracing::info; +/// use miden_node_tracing::info; /// /// let parent = tracing::info_span!("block"); /// info!(parent: &parent, "block.accepted", block.number = 42_u32); @@ -164,7 +164,7 @@ pub fn info(input: TokenStream) -> TokenStream { /// as the event name. /// /// ```rust,ignore -/// use miden_node_utils::tracing::warn; +/// use miden_node_tracing::warn; /// /// warn!("block.delayed", block.number = 42_u32); /// @@ -191,7 +191,7 @@ pub fn warn(input: TokenStream) -> TokenStream { /// as the event name. /// /// ```rust,ignore -/// use miden_node_utils::tracing::error; +/// use miden_node_tracing::error; /// /// let source = std::io::Error::other("database unavailable"); /// error!(source, target: "node", "block.store_failed", block.number = 42_u32); @@ -334,9 +334,9 @@ impl Event { let name = &self.name; let error = self.error.as_ref().map(|error| { quote! { - , exception.message = ::miden_node_utils::tracing::record_attribute( + , exception.message = ::miden_node_tracing::record_attribute( &({ - use ::miden_node_utils::ErrorReport as _; + use ::miden_node_tracing::ErrorReport as _; (#error).as_report() }) ) @@ -345,7 +345,7 @@ impl Event { let fields = self.fields.iter().map(RecordField::instrument_tokens); quote! { - ::tracing::#level!( + ::miden_node_tracing::__private::#level!( #target #parent message = #name @@ -389,7 +389,7 @@ fn merge_inferred_fields(attr: TokenStream2, fields: &[FieldPath]) -> Result TokenStream { .value_tokens(&name, field.path.is_count()); quote! { - ::tracing::Span::current().record(#name, #value); + ::miden_node_tracing::Span::current().record(#name, #value); } }); @@ -687,11 +687,11 @@ impl RecordValue { quote! { fn __miden_assert_field_name(_: &T) where - T: ::miden_node_utils::tracing::RecordAttribute + ?Sized, + T: ::miden_node_tracing::RecordAttribute + ?Sized, { const { assert!( - ::miden_node_utils::tracing::field_name_allowed( + ::miden_node_tracing::field_name_allowed( T::FIELD_NAMES, #field_name, T::PLURALIZE_FIELD_NAMES, @@ -721,7 +721,7 @@ impl RecordValue { value => { #assert_field_name #assert_count - ::miden_node_utils::tracing::record_attribute(value) + ::miden_node_tracing::record_attribute(value) } } } diff --git a/crates/tracing/Cargo.toml b/crates/tracing/Cargo.toml new file mode 100644 index 0000000000..53831f3cd1 --- /dev/null +++ b/crates/tracing/Cargo.toml @@ -0,0 +1,48 @@ +[package] +authors.workspace = true +description = "Miden node tracing conventions and OpenTelemetry integration" +edition.workspace = true +homepage.workspace = true +keywords = ["miden", "node", "tracing"] +license.workspace = true +name = "miden-node-tracing" +readme = "README.md" +repository.workspace = true +rust-version.workspace = true +version.workspace = true + +[lints] +workspace = true + +[lib] +doctest = false + +[features] +# Enables tracing setup backed by OpenTelemetry's test exporter. +testing = ["opentelemetry_sdk/testing"] + +[dependencies] +anyhow = { workspace = true } +bytes = { version = "1.10" } +http = { workspace = true } +http-body-util = { version = "0.1" } +miden-node-tracing-macro = { workspace = true } +miden-protocol = { workspace = true } +opentelemetry = { workspace = true } +opentelemetry-otlp = { default-features = false, features = ["grpc-tonic", "tls-roots", "trace"], version = "0.31" } +opentelemetry_sdk = { features = ["rt-tokio"], version = "0.31" } +tokio = { features = ["rt"], workspace = true } +tonic = { default-features = true, workspace = true } +tower-http = { features = ["catch-panic"], workspace = true } +tower_governor = { workspace = true } +tracing = { workspace = true } +tracing-forest = { features = ["chrono"], optional = true, version = "0.3" } +tracing-opentelemetry = { version = "0.32" } +tracing-subscriber = { workspace = true } + +[dev-dependencies] +thiserror = { workspace = true } +trybuild = { workspace = true } + +[package.metadata.cargo-shear] +ignored-paths = ["tests/ui/tracing_macros/*.rs"] diff --git a/crates/tracing/README.md b/crates/tracing/README.md new file mode 100644 index 0000000000..c1c1716758 --- /dev/null +++ b/crates/tracing/README.md @@ -0,0 +1,10 @@ +# Miden node tracing + +This crate defines the Miden node's tracing attributes and macros, and configures its OpenTelemetry and stdout tracing +layers. + +It is part of the [Miden node](https://github.com/0xMiden/node#readme) repository. + +## License + +This project is [MIT licensed](../../LICENSE). diff --git a/crates/utils/src/tracing/attribute.rs b/crates/tracing/src/attribute.rs similarity index 100% rename from crates/utils/src/tracing/attribute.rs rename to crates/tracing/src/attribute.rs diff --git a/crates/utils/src/tracing/grpc.rs b/crates/tracing/src/grpc.rs similarity index 100% rename from crates/utils/src/tracing/grpc.rs rename to crates/tracing/src/grpc.rs diff --git a/crates/tracing/src/lib.rs b/crates/tracing/src/lib.rs new file mode 100644 index 0000000000..66015aa544 --- /dev/null +++ b/crates/tracing/src/lib.rs @@ -0,0 +1,98 @@ +//! Miden node tracing conventions and OpenTelemetry integration. + +extern crate self as miden_node_tracing; + +mod attribute; +pub mod grpc; +mod logging; +pub mod panic; +mod span_ext; +pub mod spawn; + +#[doc(hidden)] +pub use attribute::field_name_allowed; +pub use attribute::{RecordAttribute, record_attribute}; +#[cfg(feature = "testing")] +pub use logging::setup_test_tracing; +pub use logging::{ + OpenTelemetry, + OtelGuard, + ResourceConfig, + TracingConfig, + setup_tracing, + setup_tracing_with_config, +}; +pub use miden_node_tracing_macro::{ + debug, + error, + info, + miden_instrument, + miden_span_record, + trace, + warn, +}; +pub use span_ext::ErrorSpanExt; +// Used directly by applications and by expansions of `tracing::instrument`. +pub use tracing::{Instrument, Level, Span, Value, enabled, field, info_span}; +/// Upstream `tracing` exports required by generated macro code. +#[doc(hidden)] +pub use tracing::{event, if_log_enabled, level_enabled, span}; + +/// Upstream attribute and event macros used by this crate's proc-macro expansions. +#[doc(hidden)] +pub mod __private { + pub use tracing::{debug, error, info, instrument, trace, warn}; +} + +/// Extends errors with a stable string representation of their source chain. +pub trait ErrorReport: std::error::Error { + /// Returns a string representation of the error and its source chain. + fn as_report(&self) -> String { + use std::fmt::Write; + let mut report = self.to_string(); + + std::iter::successors(self.source(), |child| child.source()) + .for_each(|source| write!(report, "\ncaused by: {source}").unwrap()); + + report + } + + /// Creates a new root in the error chain and returns the complete error report. + fn as_report_context(&self, context: &'static str) -> String { + format!("{context}: \ncaused by: {}", self.as_report()) + } +} + +impl ErrorReport for T {} + +#[cfg(test)] +mod tests { + use super::ErrorReport; + + #[derive(thiserror::Error, Debug, Clone, PartialEq, Eq)] + enum TestSourceError { + #[error("source error")] + Source, + } + + #[derive(thiserror::Error, Debug)] + enum TestError { + #[error("parent error")] + Parent(#[from] TestSourceError), + } + + #[test] + fn as_report() { + let error = TestError::Parent(TestSourceError::Source); + assert_eq!("parent error\ncaused by: source error", error.as_report()); + } + + #[test] + fn as_report_context() { + let error = TestError::Parent(TestSourceError::Source); + assert_eq!( + "final error: \ncaused by: parent error\ncaused by: source error", + error.as_report_context("final error") + ); + } +} diff --git a/crates/utils/src/logging.rs b/crates/tracing/src/logging.rs similarity index 99% rename from crates/utils/src/logging.rs rename to crates/tracing/src/logging.rs index 24183cabf2..c392e35f5c 100644 --- a/crates/utils/src/logging.rs +++ b/crates/tracing/src/logging.rs @@ -13,7 +13,7 @@ use tracing_opentelemetry::OpenTelemetryLayer; use tracing_subscriber::layer::{Filter, SubscriberExt}; use tracing_subscriber::{EnvFilter, Layer, Registry}; -use crate::tracing::{ErrorSpanExt, error}; +use crate::{ErrorSpanExt, error}; /// Global tracer provider for flushing traces on panic. /// diff --git a/crates/utils/src/panic.rs b/crates/tracing/src/panic.rs similarity index 96% rename from crates/utils/src/panic.rs rename to crates/tracing/src/panic.rs index 4b18dad4e7..f15aaedd11 100644 --- a/crates/utils/src/panic.rs +++ b/crates/tracing/src/panic.rs @@ -4,7 +4,7 @@ use http::{Response, StatusCode, header}; use http_body_util::Full; pub use tower_http::catch_panic::CatchPanicLayer; -use crate::tracing::{ErrorSpanExt, error}; +use crate::{ErrorSpanExt, error}; /// Custom callback that is used by Tower to fulfill the /// [`tower_http::catch_panic::ResponseForPanic`] trait. diff --git a/crates/utils/src/tracing/span_ext.rs b/crates/tracing/src/span_ext.rs similarity index 100% rename from crates/utils/src/tracing/span_ext.rs rename to crates/tracing/src/span_ext.rs diff --git a/crates/utils/src/spawn.rs b/crates/tracing/src/spawn.rs similarity index 100% rename from crates/utils/src/spawn.rs rename to crates/tracing/src/spawn.rs diff --git a/crates/utils/tests/tracing_macros.rs b/crates/tracing/tests/tracing_macros.rs similarity index 93% rename from crates/utils/tests/tracing_macros.rs rename to crates/tracing/tests/tracing_macros.rs index cf7e5d8904..9d1b29b8e0 100644 --- a/crates/utils/tests/tracing_macros.rs +++ b/crates/tracing/tests/tracing_macros.rs @@ -1,15 +1,7 @@ use std::collections::BTreeMap; use std::sync::{Arc, Mutex}; -use miden_node_utils::tracing::{ - debug, - error, - info, - miden_instrument, - miden_span_record, - trace, - warn, -}; +use miden_node_tracing::{debug, error, info, miden_instrument, miden_span_record, trace, warn}; use miden_protocol::block::BlockNumber; use tracing::field::{Field, Visit}; use tracing::{Level, Subscriber}; @@ -127,7 +119,7 @@ impl FieldVisitor { } } -#[miden_instrument(target = "miden-node-utils-test", name = "records_delayed_fields")] +#[miden_instrument(target = "miden-node-tracing-test", name = "records_delayed_fields")] fn records_inferred_fields() { let parsed_value = 42; let parsed_text = "parsed"; @@ -142,7 +134,7 @@ fn records_inferred_fields() { } #[miden_instrument( - target = "miden-node-utils-test", + target = "miden-node-tracing-test", name = "records_explicit_fields", fields( account.id, @@ -155,7 +147,7 @@ fn records_explicit_fields() { } #[miden_instrument( - target = "miden-node-utils-test", + target = "miden-node-tracing-test", name = "records_explicit_argument_field", fields( service.name = service_name, @@ -164,7 +156,7 @@ fn records_explicit_fields() { fn records_explicit_argument_field(service_name: &str) {} #[miden_instrument( - target = "miden-node-utils-test", + target = "miden-node-tracing-test", name = "records_explicit_and_inferred_fields", fields( account.id, @@ -177,7 +169,7 @@ fn records_explicit_and_inferred_fields() { miden_span_record!(block.number = block_number, service.name = "mixed-service"); } -#[miden_instrument(target = "miden-node-utils-test", name = "records_fields_from_multiple_calls")] +#[miden_instrument(target = "miden-node-tracing-test", name = "records_fields_from_multiple_calls")] fn records_fields_from_multiple_calls() { let block_number = 14; let service_name = "multi-call-service"; @@ -186,24 +178,24 @@ fn records_fields_from_multiple_calls() { miden_span_record!(service.name = service_name); } -#[miden_instrument(target = "miden-node-utils-test", name = "records_canonical_types")] +#[miden_instrument(target = "miden-node-tracing-test", name = "records_canonical_types")] fn records_canonical_types() { miden_span_record!(block.number = BlockNumber::from(42)); } -#[miden_instrument(target = "miden-node-utils-test", name = "records_count_field")] +#[miden_instrument(target = "miden-node-tracing-test", name = "records_count_field")] fn records_count_field() { miden_span_record!(unregistered.item.count = 3_usize); } #[miden_instrument( - target = "miden-node-utils-test", + target = "miden-node-tracing-test", name = "records_nonstandard_explicit_field", fields(custom.explicit = value #[nonstandard]), )] fn records_nonstandard_explicit_field(value: &str) {} -#[miden_instrument(target = "miden-node-utils-test", name = "records_nonstandard_delayed_field")] +#[miden_instrument(target = "miden-node-tracing-test", name = "records_nonstandard_delayed_field")] fn records_nonstandard_delayed_field() { miden_span_record!(custom.delayed = "delayed" #[nonstandard]); } @@ -217,7 +209,7 @@ struct SourceError; struct OuterError(#[source] SourceError); fn records_events() { - const TARGET: &str = "miden-node-utils-event-test"; + const TARGET: &str = "miden-node-tracing-event-test"; trace!( target: TARGET, @@ -363,7 +355,7 @@ fn event_macros_record_canonical_attributes() { for (event, (level, name, block_number)) in events.iter().zip(expected) { assert_eq!(event.level, level); - assert_eq!(event.target, "miden-node-utils-event-test"); + assert_eq!(event.target, "miden-node-tracing-event-test"); assert_eq!(event.fields.get("message").unwrap(), name); assert_eq!(event.fields.get("block.number").unwrap(), block_number); } diff --git a/crates/utils/tests/ui/tracing_macros/invalid_collection_singular.rs b/crates/tracing/tests/ui/tracing_macros/invalid_collection_singular.rs similarity index 86% rename from crates/utils/tests/ui/tracing_macros/invalid_collection_singular.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_collection_singular.rs index 8d79223db3..8a2ac47ec6 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_collection_singular.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_collection_singular.rs @@ -1,6 +1,6 @@ use std::fmt::{self, Display}; -use miden_node_utils::tracing::{RecordAttribute, miden_instrument, miden_span_record}; +use miden_node_tracing::{RecordAttribute, miden_instrument, miden_span_record}; struct AccountId; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_collection_singular.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_collection_singular.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_collection_singular.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_collection_singular.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_count_type.rs b/crates/tracing/tests/ui/tracing_macros/invalid_count_type.rs similarity index 69% rename from crates/utils/tests/ui/tracing_macros/invalid_count_type.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_count_type.rs index 57f374ee16..9a879e857a 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_count_type.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_count_type.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; #[miden_instrument] fn records_count_with_wrong_type() { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_count_type.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_count_type.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_count_type.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_count_type.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_error_type.rs b/crates/tracing/tests/ui/tracing_macros/invalid_error_type.rs similarity index 61% rename from crates/utils/tests/ui/tracing_macros/invalid_error_type.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_error_type.rs index c519f6d57a..eb01a47cb6 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_error_type.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_error_type.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::error; +use miden_node_tracing::error; fn main() { error!("not an error", "test.exception"); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_error_type.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_error_type.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_error_type.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_error_type.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_attribute.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_attribute.rs similarity index 74% rename from crates/utils/tests/ui/tracing_macros/invalid_event_attribute.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_attribute.rs index 3d13810902..2b5ef696ab 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_attribute.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_attribute.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; struct UnapprovedAttribute; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_attribute.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_attribute.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_attribute.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_attribute.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_exception_message.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_exception_message.rs similarity index 67% rename from crates/utils/tests/ui/tracing_macros/invalid_event_exception_message.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_exception_message.rs index 520385a2fa..517bb3a5bc 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_exception_message.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_exception_message.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; fn main() { info!("test.info", exception.message = "manual report"); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_exception_message.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_exception_message.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_exception_message.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_exception_message.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_field_name.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_name.rs similarity index 61% rename from crates/utils/tests/ui/tracing_macros/invalid_event_field_name.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_field_name.rs index ae3d3e6d83..b86fe9f784 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_field_name.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_name.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; fn main() { info!("test.event", tx_id = "0x1234"); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_field_name.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_name.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_field_name.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_field_name.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_field_type.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_type.rs similarity index 64% rename from crates/utils/tests/ui/tracing_macros/invalid_event_field_type.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_field_type.rs index bbfe9ef17b..7a1315e979 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_field_type.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_type.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::debug; +use miden_node_tracing::debug; fn main() { debug!("invalid.field.type", account.id = 42_u32); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_field_type.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_field_type.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_field_type.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_field_type.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_formatter.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_formatter.rs similarity index 64% rename from crates/utils/tests/ui/tracing_macros/invalid_event_formatter.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_formatter.rs index 246a299c33..79beeef8d2 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_formatter.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_formatter.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; fn main() { info!("test.event", transaction.id = %"0x1234"); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_formatter.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_formatter.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_formatter.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_formatter.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_trailing_comma.rs b/crates/tracing/tests/ui/tracing_macros/invalid_event_trailing_comma.rs similarity index 61% rename from crates/utils/tests/ui/tracing_macros/invalid_event_trailing_comma.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_event_trailing_comma.rs index 407b024f68..7b2f7aafdd 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_event_trailing_comma.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_event_trailing_comma.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; fn main() { info!("test.event", block.number = 1,); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_event_trailing_comma.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_event_trailing_comma.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_event_trailing_comma.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_event_trailing_comma.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_annotation.rs b/crates/tracing/tests/ui/tracing_macros/invalid_field_annotation.rs similarity index 65% rename from crates/utils/tests/ui/tracing_macros/invalid_field_annotation.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_field_annotation.rs index be030ddc85..edd287a5d5 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_field_annotation.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_field_annotation.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; #[miden_instrument] fn records_invalid_annotation() { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_annotation.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_field_annotation.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_field_annotation.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_field_annotation.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_name.rs b/crates/tracing/tests/ui/tracing_macros/invalid_field_name.rs similarity index 72% rename from crates/utils/tests/ui/tracing_macros/invalid_field_name.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_field_name.rs index e410379919..d0ad251402 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_field_name.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_field_name.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; #[miden_instrument] fn records_invalid_field_name() { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_name.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_field_name.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_field_name.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_field_name.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_type.rs b/crates/tracing/tests/ui/tracing_macros/invalid_field_type.rs similarity index 69% rename from crates/utils/tests/ui/tracing_macros/invalid_field_type.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_field_type.rs index 5fa54dbd9a..f40b0a8d9e 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_field_type.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_field_type.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; #[miden_instrument] fn records_field_with_wrong_type() { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_field_type.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_field_type.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_field_type.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_field_type.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_attribute.rs b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_attribute.rs similarity index 75% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_attribute.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_attribute.rs index d2ff5df40a..537b11e1a6 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_instrument_attribute.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_attribute.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; struct UnapprovedAttribute; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_attribute.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_attribute.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_attribute.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_attribute.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_field_name.rs b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_field_name.rs similarity index 75% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_field_name.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_field_name.rs index 43e72d8aea..5ee3f1ebcb 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_instrument_field_name.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_field_name.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; #[miden_instrument( fields( diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_field_name.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_field_name.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_field_name.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_field_name.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_formatter.rs b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_formatter.rs similarity index 68% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_formatter.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_formatter.rs index aba879dca4..3e74dde39b 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_instrument_formatter.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_formatter.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; #[miden_instrument(fields(transaction.id = ?"0x1234"))] fn selects_instrument_formatter() {} diff --git a/crates/utils/tests/ui/tracing_macros/invalid_instrument_formatter.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_instrument_formatter.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_instrument_formatter.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_instrument_formatter.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs b/crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs similarity index 72% rename from crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs index 8200ffcf93..af056f8981 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; struct UnapprovedAttribute; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr similarity index 91% rename from crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr index 20d20c7012..710b74c85f 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr +++ b/crates/tracing/tests/ui/tracing_macros/invalid_nonstandard_attribute.stderr @@ -19,8 +19,8 @@ help: the trait `RecordAttribute` is not implemented for `UnapprovedAttribute` [T; N] [T] and $N others -note: required by a bound in `miden_node_utils::tracing::record_attribute` - --> src/tracing/attribute.rs +note: required by a bound in `miden_node_tracing::record_attribute` + --> src/attribute.rs | | pub fn record_attribute(value: &T) -> impl Value + '_ { | ^^^^^^^^^^^^^^^ required by this bound in `record_attribute` diff --git a/crates/utils/tests/ui/tracing_macros/invalid_optional_error_type.rs b/crates/tracing/tests/ui/tracing_macros/invalid_optional_error_type.rs similarity index 56% rename from crates/utils/tests/ui/tracing_macros/invalid_optional_error_type.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_optional_error_type.rs index c996fc7d6f..12bcc7ff89 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_optional_error_type.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_optional_error_type.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::debug; +use miden_node_tracing::debug; fn main() { debug!(42_u32, "test.debug"); diff --git a/crates/utils/tests/ui/tracing_macros/invalid_optional_error_type.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_optional_error_type.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_optional_error_type.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_optional_error_type.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_record_attribute.rs b/crates/tracing/tests/ui/tracing_macros/invalid_record_attribute.rs similarity index 70% rename from crates/utils/tests/ui/tracing_macros/invalid_record_attribute.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_record_attribute.rs index eb537d3e5c..a439e1358c 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_record_attribute.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_record_attribute.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; struct UnapprovedAttribute; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_record_attribute.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_record_attribute.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_record_attribute.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_record_attribute.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_record_formatter.rs b/crates/tracing/tests/ui/tracing_macros/invalid_record_formatter.rs similarity index 63% rename from crates/utils/tests/ui/tracing_macros/invalid_record_formatter.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_record_formatter.rs index 476d641720..7ec425caa0 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_record_formatter.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_record_formatter.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{miden_instrument, miden_span_record}; +use miden_node_tracing::{miden_instrument, miden_span_record}; #[miden_instrument] fn selects_record_formatter() { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_record_formatter.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_record_formatter.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_record_formatter.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_record_formatter.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_scalar_plural.rs b/crates/tracing/tests/ui/tracing_macros/invalid_scalar_plural.rs similarity index 81% rename from crates/utils/tests/ui/tracing_macros/invalid_scalar_plural.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_scalar_plural.rs index 2d4865c1d4..e617563713 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_scalar_plural.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_scalar_plural.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::{RecordAttribute, miden_instrument, miden_span_record}; +use miden_node_tracing::{RecordAttribute, miden_instrument, miden_span_record}; struct AccountId; diff --git a/crates/utils/tests/ui/tracing_macros/invalid_scalar_plural.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_scalar_plural.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_scalar_plural.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_scalar_plural.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_skip.rs b/crates/tracing/tests/ui/tracing_macros/invalid_skip.rs similarity index 75% rename from crates/utils/tests/ui/tracing_macros/invalid_skip.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_skip.rs index 68ce2dc56e..527063e515 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_skip.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_skip.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; #[miden_instrument(skip(value))] fn records_implicit_argument(value: u32) { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_skip.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_skip.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_skip.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_skip.stderr diff --git a/crates/utils/tests/ui/tracing_macros/invalid_skip_all.rs b/crates/tracing/tests/ui/tracing_macros/invalid_skip_all.rs similarity index 75% rename from crates/utils/tests/ui/tracing_macros/invalid_skip_all.rs rename to crates/tracing/tests/ui/tracing_macros/invalid_skip_all.rs index 767fa06fb9..ee97d4cac4 100644 --- a/crates/utils/tests/ui/tracing_macros/invalid_skip_all.rs +++ b/crates/tracing/tests/ui/tracing_macros/invalid_skip_all.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_instrument; +use miden_node_tracing::miden_instrument; #[miden_instrument(skip_all)] fn redundantly_skips_arguments(value: u32) { diff --git a/crates/utils/tests/ui/tracing_macros/invalid_skip_all.stderr b/crates/tracing/tests/ui/tracing_macros/invalid_skip_all.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/invalid_skip_all.stderr rename to crates/tracing/tests/ui/tracing_macros/invalid_skip_all.stderr diff --git a/crates/tracing/tests/ui/tracing_macros/missing_error.rs b/crates/tracing/tests/ui/tracing_macros/missing_error.rs new file mode 100644 index 0000000000..8afd70b029 --- /dev/null +++ b/crates/tracing/tests/ui/tracing_macros/missing_error.rs @@ -0,0 +1,5 @@ +use miden_node_tracing::error; + +fn main() { + error!(); +} diff --git a/crates/utils/tests/ui/tracing_macros/missing_error.stderr b/crates/tracing/tests/ui/tracing_macros/missing_error.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/missing_error.stderr rename to crates/tracing/tests/ui/tracing_macros/missing_error.stderr diff --git a/crates/utils/tests/ui/tracing_macros/missing_event_name.rs b/crates/tracing/tests/ui/tracing_macros/missing_event_name.rs similarity index 54% rename from crates/utils/tests/ui/tracing_macros/missing_event_name.rs rename to crates/tracing/tests/ui/tracing_macros/missing_event_name.rs index 529b5c8a5f..300a5184bd 100644 --- a/crates/utils/tests/ui/tracing_macros/missing_event_name.rs +++ b/crates/tracing/tests/ui/tracing_macros/missing_event_name.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::info; +use miden_node_tracing::info; fn main() { info!(block.number = 1); diff --git a/crates/utils/tests/ui/tracing_macros/missing_event_name.stderr b/crates/tracing/tests/ui/tracing_macros/missing_event_name.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/missing_event_name.stderr rename to crates/tracing/tests/ui/tracing_macros/missing_event_name.stderr diff --git a/crates/utils/tests/ui/tracing_macros/outside_miden_instrument.rs b/crates/tracing/tests/ui/tracing_macros/outside_miden_instrument.rs similarity index 78% rename from crates/utils/tests/ui/tracing_macros/outside_miden_instrument.rs rename to crates/tracing/tests/ui/tracing_macros/outside_miden_instrument.rs index 78297d39cf..27484f491d 100644 --- a/crates/utils/tests/ui/tracing_macros/outside_miden_instrument.rs +++ b/crates/tracing/tests/ui/tracing_macros/outside_miden_instrument.rs @@ -1,4 +1,4 @@ -use miden_node_utils::tracing::miden_span_record; +use miden_node_tracing::miden_span_record; fn records_outside_miden_instrument() { let tx_id = "0x1234"; diff --git a/crates/utils/tests/ui/tracing_macros/outside_miden_instrument.stderr b/crates/tracing/tests/ui/tracing_macros/outside_miden_instrument.stderr similarity index 100% rename from crates/utils/tests/ui/tracing_macros/outside_miden_instrument.stderr rename to crates/tracing/tests/ui/tracing_macros/outside_miden_instrument.stderr diff --git a/crates/utils/tests/ui/tracing_macros/pass.rs b/crates/tracing/tests/ui/tracing_macros/pass.rs similarity index 98% rename from crates/utils/tests/ui/tracing_macros/pass.rs rename to crates/tracing/tests/ui/tracing_macros/pass.rs index 5510be0216..0831147832 100644 --- a/crates/utils/tests/ui/tracing_macros/pass.rs +++ b/crates/tracing/tests/ui/tracing_macros/pass.rs @@ -1,6 +1,6 @@ use std::fmt::{self, Display, Formatter}; -use miden_node_utils::tracing::{ +use miden_node_tracing::{ debug, error, info, @@ -56,7 +56,7 @@ fn records_events() { error!(anyhow::anyhow!("anyhow error"), "anyhow.error.event"); } #[miden_instrument( - target = "miden-node-utils-test", + target = "miden-node-tracing-test", name = "records_fields", )] fn records_fields() { diff --git a/crates/utils/Cargo.toml b/crates/utils/Cargo.toml index 73d217877d..208b510fc7 100644 --- a/crates/utils/Cargo.toml +++ b/crates/utils/Cargo.toml @@ -18,46 +18,30 @@ workspace = true doctest = false [features] -# Enables utility functions for testing traces created by some other crate's stack. rocksdb = ["dep:miden-crypto", "miden-crypto/rocksdb"] +# Enables test-only utilities. testing = ["miden-protocol/testing"] [dependencies] -anyhow = { workspace = true } -backon = { workspace = true } -bytes = { version = "1.10" } -clap = { workspace = true } -fs-err = { workspace = true } -http = { workspace = true } -http-body-util = { version = "0.1" } -humantime = { workspace = true } -itertools = { workspace = true } -lru = { workspace = true } -miden-node-tracing-macro = { workspace = true } -miden-protocol = { workspace = true } -opentelemetry = { workspace = true } -opentelemetry-otlp = { default-features = false, features = ["grpc-tonic", "tls-roots", "trace"], version = "0.31" } -opentelemetry_sdk = { features = ["rt-tokio", "testing"], version = "0.31" } -reqwest = { workspace = true } -thiserror = { workspace = true } -tokio = { features = ["macros", "rt", "signal", "time"], workspace = true } -tokio-util = { workspace = true } -tonic = { default-features = true, workspace = true } -tower = { workspace = true } -tower-http = { features = ["catch-panic"], workspace = true } -tower_governor = { version = "0.8" } -tracing = { workspace = true } -tracing-forest = { features = ["chrono"], optional = true, version = "0.3" } -tracing-opentelemetry = { version = "0.32" } -tracing-subscriber = { workspace = true } -url = { workspace = true } +anyhow = { workspace = true } +backon = { workspace = true } +clap = { workspace = true } +fs-err = { workspace = true } +http = { workspace = true } +humantime = { workspace = true } +itertools = { workspace = true } +lru = { workspace = true } +miden-node-tracing = { workspace = true } +miden-protocol = { workspace = true } +reqwest = { workspace = true } +thiserror = { workspace = true } +tokio = { features = ["macros", "rt", "signal", "time"], workspace = true } +tokio-util = { workspace = true } +tonic = { default-features = true, workspace = true } +tower = { workspace = true } +tower-http = { workspace = true } +tower_governor = { workspace = true } +url = { workspace = true } # RocksDbConfig is needed due to orphan rules miden-crypto = { optional = true, workspace = true } - -[dev-dependencies] -thiserror = { workspace = true } -trybuild = { workspace = true } - -[package.metadata.cargo-shear] -ignored-paths = ["tests/ui/tracing_macros/*.rs"] diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs index d81fd3233d..3d5bcb66e5 100644 --- a/crates/utils/src/lib.rs +++ b/crates/utils/src/lib.rs @@ -1,4 +1,5 @@ -extern crate self as miden_node_utils; +// Required by code generated by the upstream `#[instrument]` macro. +extern crate miden_node_tracing as tracing; pub mod block_cache; pub mod clap; @@ -10,36 +11,10 @@ pub mod fs; pub mod genesis; pub mod grpc; pub mod limiter; -pub mod logging; pub mod lru_cache; -pub mod panic; pub mod retry; pub mod shutdown; -pub mod spawn; pub mod tasks; -pub mod tracing; - -pub trait ErrorReport: std::error::Error { - /// Returns a string representation of the error and its source chain. - fn as_report(&self) -> String { - use std::fmt::Write; - let mut report = self.to_string(); - - // SAFETY: write! is suggested by clippy, and is trivially safe usage. - std::iter::successors(self.source(), |child| child.source()) - .for_each(|source| write!(report, "\ncaused by: {source}").unwrap()); - - report - } - - /// Creates a new root in the error chain and returns a string representation of the error and - /// its source chain. - fn as_report_context(&self, context: &'static str) -> String { - format!("{context}: \ncaused by: {}", self.as_report()) - } -} - -impl ErrorReport for T {} /// Extends nested results types, allowing them to be flattened. /// @@ -64,35 +39,3 @@ where } } } - -#[cfg(test)] -mod tests { - use crate::ErrorReport; - - #[derive(thiserror::Error, Debug, Clone, PartialEq, Eq)] - pub enum TestSourceError { - #[error("source error")] - Source, - } - - #[derive(thiserror::Error, Debug)] - pub enum TestError { - #[error("parent error")] - Parent(#[from] TestSourceError), - } - - #[test] - fn as_report() { - let error = TestError::Parent(TestSourceError::Source); - assert_eq!("parent error\ncaused by: source error", error.as_report()); - } - - #[test] - fn as_report_context() { - let error = TestError::Parent(TestSourceError::Source); - assert_eq!( - "final error: \ncaused by: parent error\ncaused by: source error", - error.as_report_context("final error") - ); - } -} diff --git a/crates/utils/src/lru_cache.rs b/crates/utils/src/lru_cache.rs index b05bb95f0b..42b9d4fd62 100644 --- a/crates/utils/src/lru_cache.rs +++ b/crates/utils/src/lru_cache.rs @@ -51,7 +51,7 @@ where self.lock().clear(); } - #[crate::tracing::miden_instrument(name = "lru.lock")] + #[miden_node_tracing::miden_instrument(name = "lru.lock")] fn lock(&self) -> MutexGuard<'_, InnerCache> { // SAFETY: The mutex is only held for the duration of the get/put operation where panics are // possible only if we're running out of memory, in which case the entire process is likely diff --git a/crates/utils/src/retry.rs b/crates/utils/src/retry.rs index cddfb282f6..bd573d700b 100644 --- a/crates/utils/src/retry.rs +++ b/crates/utils/src/retry.rs @@ -6,7 +6,7 @@ //! //! ```ignore //! use miden_node_utils::retry::{self, Retryable}; -//! use miden_node_utils::tracing::warn; +//! use miden_node_tracing::warn; //! //! let value = (|| async { do_thing().await }) //! .retry(retry::exponential(min, max)) diff --git a/crates/utils/src/shutdown.rs b/crates/utils/src/shutdown.rs index b379266572..0edbb0021d 100644 --- a/crates/utils/src/shutdown.rs +++ b/crates/utils/src/shutdown.rs @@ -3,10 +3,9 @@ use std::future::Future; use std::time::Duration; use anyhow::Context; +use miden_node_tracing::{error, info}; pub use tokio_util::sync::CancellationToken; -use crate::tracing::{error, info}; - /// Time allowed for services to finish after a shutdown signal before the process exits. pub const GRACE_PERIOD: Duration = Duration::from_secs(10); diff --git a/crates/utils/src/tasks.rs b/crates/utils/src/tasks.rs index 303a5dd89e..f05d67cf47 100644 --- a/crates/utils/src/tasks.rs +++ b/crates/utils/src/tasks.rs @@ -2,10 +2,10 @@ use std::collections::HashMap; use std::future::Future; use anyhow::Context; +use miden_node_tracing::warn; use tokio::task::{Id, JoinError, JoinSet}; use crate::shutdown::CancellationToken; -use crate::tracing::warn; /// A named task set for supervising concurrently-running Tokio tasks. /// diff --git a/crates/utils/src/tracing/mod.rs b/crates/utils/src/tracing/mod.rs deleted file mode 100644 index c0a648f07d..0000000000 --- a/crates/utils/src/tracing/mod.rs +++ /dev/null @@ -1,17 +0,0 @@ -mod attribute; -pub mod grpc; -mod span_ext; - -#[doc(hidden)] -pub use attribute::field_name_allowed; -pub use attribute::{RecordAttribute, record_attribute}; -pub use miden_node_tracing_macro::{ - debug, - error, - info, - miden_instrument, - miden_span_record, - trace, - warn, -}; -pub use span_ext::ErrorSpanExt; diff --git a/crates/utils/tests/ui/tracing_macros/missing_error.rs b/crates/utils/tests/ui/tracing_macros/missing_error.rs deleted file mode 100644 index c24d9b981d..0000000000 --- a/crates/utils/tests/ui/tracing_macros/missing_error.rs +++ /dev/null @@ -1,5 +0,0 @@ -use miden_node_utils::tracing::error; - -fn main() { - error!(); -}