This commit is contained in:
2023-08-29 21:34:01 +02:00
parent d5fdf4fb48
commit 1a7a0ce585
6 changed files with 28 additions and 22 deletions

2
rust/Cargo.lock generated
View File

@@ -2388,6 +2388,8 @@ dependencies = [
[[package]] [[package]]
name = "tracing-attributes" name = "tracing-attributes"
version = "0.1.26" version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",

View File

@@ -62,9 +62,6 @@ version = "0.1"
[dependencies.tracing-attributes] [dependencies.tracing-attributes]
version = "0.1" version = "0.1"
[patch.crates-io]
tracing-attributes = { path = "./tracing/tracing-attributes" }
[dependencies.tracing-subscriber] [dependencies.tracing-subscriber]
version = "0.3" version = "0.3"
features = ["json", "env-filter"] features = ["json", "env-filter"]

View File

@@ -43,13 +43,14 @@ async fn simple_handler(State(state): State<AppState>) -> &'static str {
SqlitePoolOptions::new() SqlitePoolOptions::new()
.max_connections(5) .max_connections(5)
.connect_with( .connect_with(
SqliteConnectOptions::from_str("/tmp/tmp.SmE1WKBVMf") SqliteConnectOptions::from_str("/tmp/tmp.JKl26kmKW5")
.unwrap() .unwrap()
.log_statements(log::LevelFilter::Warn) .log_statements(log::LevelFilter::Warn)
.log_slow_statements( .log_slow_statements(
log::LevelFilter::Warn, log::LevelFilter::Warn,
std::time::Duration::from_millis(100), std::time::Duration::from_millis(100),
) )
.tracing_span(tracing::warn_span!("packager::sqlx"))
.pragma("foreign_keys", "1"), .pragma("foreign_keys", "1"),
) )
.await .await
@@ -66,7 +67,7 @@ async fn simple_handler(State(state): State<AppState>) -> &'static str {
.await .await
.unwrap() .unwrap()
} }
// .instrument(tracing::warn_span!("test_span")) .instrument(tracing::warn_span!("packager::sqlx"))
.await; .await;
"ok" "ok"
} }

View File

@@ -18,6 +18,7 @@ pub async fn init_database_pool(url: &str) -> Result<Pool<Sqlite>, StartError> {
SqliteConnectOptions::from_str(url)? SqliteConnectOptions::from_str(url)?
.log_statements(log::LevelFilter::Debug) .log_statements(log::LevelFilter::Debug)
.log_slow_statements(log::LevelFilter::Warn, time::Duration::from_millis(100)) .log_slow_statements(log::LevelFilter::Warn, time::Duration::from_millis(100))
.tracing_span(tracing::info_span!("sqlx_pool"))
.pragma("foreign_keys", "1"), .pragma("foreign_keys", "1"),
) )
.await?) .await?)
@@ -30,7 +31,8 @@ pub async fn migrate(url: &str) -> Result<(), StartError> {
.connect_with( .connect_with(
SqliteConnectOptions::from_str(url)? SqliteConnectOptions::from_str(url)?
.pragma("foreign_keys", "0") .pragma("foreign_keys", "0")
.log_statements(log::LevelFilter::Warn), .log_statements(log::LevelFilter::Warn)
.tracing_span(tracing::info_span!("sqlx_migration")),
) )
.await?; .await?;

View File

@@ -9,7 +9,7 @@ use http::Request;
use tower_http::{classify::ServerErrorsFailureClass, trace::TraceLayer}; use tower_http::{classify::ServerErrorsFailureClass, trace::TraceLayer};
use tracing::{Span, Subscriber}; use tracing::{Span, Subscriber};
use tracing_log::LogTracer; use tracing::Instrument;
use tracing_subscriber::{ use tracing_subscriber::{
filter::{LevelFilter, Targets}, filter::{LevelFilter, Targets},
fmt::{ fmt::{
@@ -52,14 +52,14 @@ where
write!( write!(
&mut writer, &mut writer,
"{}\t{}:\t", "\n{}\t{}:\t",
metadata.level(), metadata.level(),
metadata.target() metadata.target()
)?; )?;
if let Some(scope) = ctx.event_scope() { if let Some(scope) = ctx.event_scope() {
for span in scope.from_root() { for span in scope.from_root() {
write!(writer, "span: {}\t", span.metadata().name())?; write!(writer, "span: {:?} {:?}\t", span.metadata(), span.id())?;
} }
} else { } else {
write!(writer, "NO SPAN\t")?; write!(writer, "NO SPAN\t")?;
@@ -103,11 +103,16 @@ where
.with_default(LevelFilter::WARN) .with_default(LevelFilter::WARN)
.with_targets(vec![ .with_targets(vec![
(env!("CARGO_PKG_NAME"), LevelFilter::DEBUG), (env!("CARGO_PKG_NAME"), LevelFilter::DEBUG),
("request", LevelFilter::DEBUG),
("runtime", LevelFilter::OFF), ("runtime", LevelFilter::OFF),
("sqlx", LevelFilter::TRACE), ("sqlx", LevelFilter::TRACE),
]); ]);
let stdout_filter = Targets::new()
.with_default(LevelFilter::TRACE)
.with_targets(vec![("runtime", LevelFilter::OFF)])
.with_targets(vec![("tokio", LevelFilter::OFF)])
.with_targets(vec![("hyper", LevelFilter::OFF)]);
let stdout_layer = stdout_layer.with_filter(stdout_filter); let stdout_layer = stdout_layer.with_filter(stdout_filter);
let console_layer = match tokio_console_config { let console_layer = match tokio_console_config {
@@ -125,8 +130,7 @@ where
.with_service_name(env!("CARGO_PKG_NAME")) .with_service_name(env!("CARGO_PKG_NAME"))
.with_max_packet_size(20_000) .with_max_packet_size(20_000)
.with_auto_split_batch(true) .with_auto_split_batch(true)
// .install_batch(Tokio) .install_batch(Tokio)
.install_simple()
.unwrap(); .unwrap();
let opentelemetry_filter = { let opentelemetry_filter = {
@@ -134,9 +138,9 @@ where
.with_default(LevelFilter::DEBUG) .with_default(LevelFilter::DEBUG)
.with_targets(vec![ .with_targets(vec![
(env!("CARGO_PKG_NAME"), LevelFilter::DEBUG), (env!("CARGO_PKG_NAME"), LevelFilter::DEBUG),
("request", LevelFilter::DEBUG),
("runtime", LevelFilter::OFF), ("runtime", LevelFilter::OFF),
("sqlx", LevelFilter::DEBUG), ("tokio", LevelFilter::OFF),
("sqlx", LevelFilter::TRACE),
]) ])
}; };
@@ -171,7 +175,9 @@ where
tracing_log::log_tracer::Builder::new().init().unwrap(); tracing_log::log_tracer::Builder::new().init().unwrap();
let result = f(args).await; let result = f(args)
.instrument(tracing::debug_span!(target: env!("CARGO_PKG_NAME"), env!("CARGO_PKG_NAME")))
.await;
for shutdown_func in shutdown_functions { for shutdown_func in shutdown_functions {
shutdown_func().unwrap(); shutdown_func().unwrap();
@@ -188,13 +194,12 @@ impl fmt::Display for Latency {
} }
pub fn init_request_tracing(router: Router) -> Router { pub fn init_request_tracing(router: Router) -> Router {
return router;
router.layer( router.layer(
TraceLayer::new_for_http() TraceLayer::new_for_http()
.make_span_with(|_request: &Request<_>| { .make_span_with(|_request: &Request<_>| {
let request_id = Uuid::new_v4(); let request_id = Uuid::new_v4();
tracing::debug_span!( tracing::debug_span!(
target: "request", target: "packager::request",
"request", "request",
%request_id, %request_id,
) )
@@ -203,7 +208,7 @@ pub fn init_request_tracing(router: Router) -> Router {
let request_headers = request.headers(); let request_headers = request.headers();
let http_version = request.version(); let http_version = request.version();
tracing::debug!( tracing::debug!(
target: "request", target: "packager::request",
method = request.method().as_str(), method = request.method().as_str(),
path = request.uri().path(), path = request.uri().path(),
?http_version, ?http_version,
@@ -216,7 +221,7 @@ pub fn init_request_tracing(router: Router) -> Router {
let response_headers = response.headers(); let response_headers = response.headers();
let latency = Latency(latency); let latency = Latency(latency);
tracing::debug!( tracing::debug!(
target: "request", target: "packager::request",
%latency, %latency,
status = response.status().as_str(), status = response.status().as_str(),
?response_headers, ?response_headers,
@@ -230,7 +235,7 @@ pub fn init_request_tracing(router: Router) -> Router {
match error { match error {
ServerErrorsFailureClass::StatusCode(code) => { ServerErrorsFailureClass::StatusCode(code) => {
tracing::error!( tracing::error!(
target: "request", target: "packager::request",
%latency, %latency,
"request failed with error response {}", "request failed with error response {}",
code, code,
@@ -238,7 +243,7 @@ pub fn init_request_tracing(router: Router) -> Router {
} }
ServerErrorsFailureClass::Error(message) => { ServerErrorsFailureClass::Error(message) => {
tracing::error!( tracing::error!(
target: "request", target: "packager::request",
%latency, %latency,
"request failed: {}", "request failed: {}",
message, message,

Submodule rust/tracing deleted from 430206459b