Skip to content

Commit c8a3cce

Browse files
committed
logger improvements
fix all usages of logging, kill me please added req-id correlation to subscriptions ok ok trying to clear perf refression take 1 ok hmm ok fix ok that's better ok ok fixes slight refactor implement request summary, refactor levels, added missing log enties
1 parent 8509a55 commit c8a3cce

76 files changed

Lines changed: 2509 additions & 781 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Cargo.lock

Lines changed: 107 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ codegen-units = 1
3535
serde = { version = "1.0.219", features = ["derive"] }
3636
serde_json = "1.0.150"
3737
sonic-rs = "0.5.3"
38-
insta = { version = "1.42.1", features= ["filters"] }
38+
insta = { version = "1.42.1", features= ["filters", "json", "redactions"] }
3939
criterion = { version = "0.8", features = ["html_reports", "async_tokio"] }
4040
lazy_static = "1.5.0"
4141
dashmap = { version = "6.2.1" }
@@ -105,14 +105,15 @@ opentelemetry-stdout = "0.31.0"
105105
opentelemetry-appender-tracing = "0.31.1"
106106
opentelemetry-jaeger-propagator = "0.31.0"
107107
opentelemetry-zipkin = { version = "0.31.0", default-features = false, features=["reqwest-rustls", "reqwest-client"] }
108-
tracing = "0.1.44"
108+
tracing = { version = "0.1.44", features = ["release_max_level_debug", "max_level_trace"] }
109109
tracing-opentelemetry = "0.32.0"
110110
tracing-subscriber = { version = "0.3.22", features = [
111111
"env-filter",
112112
"time",
113113
"json",
114114
] }
115115
tracing-tree = "0.4.0"
116+
tracing-appender = "0.2.5"
116117

117118
# Storage
118119
object_store = { version = "0.13.2", features = ["aws"] }

apollo-router-workspace/bin/router/src/persisted_documents.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ impl Plugin for PersistedDocumentsPlugin {
233233
}
234234
match mgr.resolve_document(document_id).await {
235235
Ok(document) => {
236-
info!("Document found in persisted documents: {}", document);
236+
debug!("Document found in persisted documents: {}", document);
237237

238238
if req
239239
.context

bin/router/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ reqwest = { workspace = true }
3737
sonic-rs = { workspace = true }
3838
tracing = { workspace = true }
3939
tracing-subscriber = { workspace = true }
40-
tracing-tree = { workspace = true }
40+
tracing-appender = { workspace = true }
4141
hyper = { workspace = true, features = ["server", "http1"] }
4242
http = { workspace = true }
4343
http-body-util = { workspace = true }

bin/router/src/jwt/jwks_manager.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
use hive_router_config::jwt_auth::{JwksProviderSourceConfig, JwtAuthConfig};
2-
use hive_router_internal::background_tasks::{BackgroundTask, BackgroundTasksManager};
2+
use hive_router_internal::{
3+
background_tasks::{BackgroundTask, BackgroundTasksManager},
4+
telemetry::logging::targets,
5+
};
36
use sonic_rs::from_str;
47
use std::sync::{Arc, RwLock};
58
use tokio::fs::read_to_string;
@@ -29,7 +32,7 @@ impl JwksManager {
2932
.filter_map(|v| match v.get_jwk_set() {
3033
Ok(set) => Some(set),
3134
Err(err) => {
32-
error!("Failed to use JWK set: {}, ignoring", err);
35+
error!(target: targets::JWT, error = ?err, "failed to use jwt set, ignoring this set");
3336

3437
None
3538
}
@@ -79,9 +82,10 @@ impl BackgroundTask for JwksSourceTask {
7982
..
8083
} = &self.0.config
8184
{
82-
debug!(
83-
"Starting remote jwks polling for source: {:?}",
84-
self.0.config
85+
info!(
86+
target: targets::JWT,
87+
source = ?self.0.config,
88+
"starting remote jwks polling for source",
8589
);
8690
let mut tokio_interval = tokio::time::interval(*interval);
8791

@@ -90,10 +94,10 @@ impl BackgroundTask for JwksSourceTask {
9094
_ = tokio_interval.tick() => { match self.0.load_and_store_jwks().await {
9195
Ok(_) => {}
9296
Err(err) => {
93-
error!("Failed to load remote jwks: {}", err);
97+
error!(target: targets::JWT, error = ?err, source = ?self.0.config, "failed to load remote jwks");
9498
}
9599
} }
96-
_ = token.cancelled() => { info!("Jwks source shutting down."); return; }
100+
_ = token.cancelled() => { info!(target: targets::JWT, "jwks source shutting down."); return; }
97101
}
98102
}
99103
}
@@ -117,7 +121,7 @@ impl JwksSource {
117121
let jwks_str = match &self.config {
118122
JwksProviderSourceConfig::Remote { url, .. } => {
119123
let client = reqwest::Client::new();
120-
debug!("loading jwks from a remote source: {}", url);
124+
debug!(target: targets::JWT, url = ?url, "loading jwks from a remote source");
121125

122126
let response_text = client
123127
.get(url)
@@ -131,7 +135,7 @@ impl JwksSource {
131135
response_text
132136
}
133137
JwksProviderSourceConfig::File { file, .. } => {
134-
debug!("loading jwks from a file source: {}", file.absolute);
138+
debug!(target: targets::JWT, path = ?file.absolute, "loading jwks from a file source");
135139

136140
let file_contents = read_to_string(&file.absolute)
137141
.await

bin/router/src/jwt/mod.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::{str::FromStr, sync::Arc};
66

77
use cookie::Cookie;
88
use hive_router_config::jwt_auth::{JwtAuthConfig, JwtAuthPluginLookupLocation};
9-
use hive_router_internal::background_tasks::BackgroundTasksManager;
9+
use hive_router_internal::{background_tasks::BackgroundTasksManager, telemetry::logging::targets};
1010
use http::header::COOKIE;
1111
use jsonwebtoken::{
1212
decode, decode_header,
@@ -94,7 +94,7 @@ impl JwtAuthRuntime {
9494
let raw_cookies = match cookie_raw.to_str() {
9595
Ok(cookies) => cookies.split(';'),
9696
Err(e) => {
97-
warn!("jwt auth failed to convert cookie header to string, ignoring cookie. error: {}", e);
97+
warn!(target: targets::JWT, error = ?e, "jwt auth failed to convert cookie header to string, ignoring cookie");
9898
continue;
9999
}
100100
};
@@ -111,10 +111,7 @@ impl JwtAuthRuntime {
111111
Err(e) => {
112112
// Should we reject the entire request in case of invalid cookies?
113113
// I think it's better to consider this as a user error? maybe return 400?
114-
warn!(
115-
"jwt auth failed to parse cookie value, ignoring cookie. error: {}",
116-
e
117-
);
114+
warn!(target: targets::JWT, error = ?e, "jwt auth failed to parse cookie value, ignoring cookie");
118115
}
119116
}
120117
}
@@ -173,7 +170,7 @@ impl JwtAuthRuntime {
173170
.map(|token_data| (token_data, maybe_prefix, token))
174171
}
175172
Err(e) => {
176-
warn!("jwt plugin failed to lookup token. error: {}", e);
173+
warn!(target: targets::JWT, error = ?e, "jwt plugin failed to lookup token");
177174

178175
Err(JwtError::LookupFailed(e))
179176
}
@@ -311,7 +308,7 @@ impl JwtAuthRuntime {
311308
token_prefix: maybe_prefix,
312309
})),
313310
Err(err) => {
314-
warn!("jwt token error: {:?}", err);
311+
warn!(target: targets::JWT, error = ?err, "jwt token error");
315312
if self.config.require_authentication.is_some_and(|v| v) {
316313
Err((*err).clone())
317314
} else {

0 commit comments

Comments
 (0)