Skip to content

Commit 0f690ae

Browse files
committed
add a debug_span for dns resolution to disambiguate metrics
1 parent 9087273 commit 0f690ae

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ http-body-util = "0.1.0"
3838
tokio = { version = "1", features = ["macros", "test-util", "signal"] }
3939
tokio-test = "0.4"
4040
pretty_env_logger = "0.5"
41+
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
4142

4243
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dev-dependencies]
4344
pnet_datalink = "0.35.0"

examples/client.rs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,23 @@ use std::env;
33
use http_body_util::Empty;
44
use hyper::Request;
55
use hyper_util::client::legacy::{connect::HttpConnector, Client};
6+
use tracing::{info_span, Instrument};
7+
use tracing_subscriber::{
8+
fmt::{self, format::FmtSpan},
9+
prelude::*,
10+
EnvFilter,
11+
};
612

713
#[tokio::main(flavor = "current_thread")]
814
async fn main() -> Result<(), Box<dyn std::error::Error>> {
15+
let fmt_layer = fmt::layer()
16+
.with_span_events(FmtSpan::CLOSE) // show time elapsed in spans
17+
.with_timer(fmt::time::Uptime::default());
18+
tracing_subscriber::registry()
19+
.with(EnvFilter::from_default_env())
20+
.with(fmt_layer)
21+
.init();
22+
923
let url = match env::args().nth(1) {
1024
Some(url) => url,
1125
None => {
@@ -28,7 +42,8 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
2842
.uri(url)
2943
.body(Empty::<bytes::Bytes>::new())?;
3044

31-
let resp = client.request(req).await?;
45+
let span = info_span!("request", uri = %req.uri());
46+
let resp = client.request(req).instrument(span).await?;
3247

3348
eprintln!("{:?} {:?}", resp.version(), resp.status());
3449
eprintln!("{:#?}", resp.headers());

src/client/legacy/connect/dns.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use std::{fmt, io, vec};
3131

3232
use tokio::task::JoinHandle;
3333
use tower_service::Service;
34-
use tracing::debug;
34+
use tracing::{debug, debug_span};
3535

3636
pub(super) use self::sealed::Resolve;
3737

@@ -118,10 +118,10 @@ impl Service<Name> for GaiResolver {
118118
}
119119

120120
fn call(&mut self, name: Name) -> Self::Future {
121-
let current_span = tracing::Span::current();
121+
let span = debug_span!("resolve", host = %name.host).or_current();
122122
let blocking = tokio::task::spawn_blocking(move || {
123-
let _enter = current_span.enter();
124-
debug!("resolving host={:?}", name.host);
123+
let _enter = span.enter();
124+
debug!(host = name.host, "resolving");
125125
(&*name.host, 0)
126126
.to_socket_addrs()
127127
.map(|i| SocketAddrs { iter: i })

0 commit comments

Comments
 (0)