From b8eab381c053ccf3ebf99d3ef1c0fd27f5e11d89 Mon Sep 17 00:00:00 2001 From: Eliza Weisman Date: Tue, 8 Mar 2022 15:54:31 -0800 Subject: [PATCH] tracing: remove I/O type names from handshake spans (#608) ## Motivation Currently, the `tracing` spans for the client and server handshakes contain the name of the I/O type. In some cases, where nested I/O types are in use, these names can be quite long; for example, in Linkerd, we see log lines like this: ``` 2022-03-07T23:38:15.322506670Z [ 10533.916262s] DEBUG ThreadId(01) inbound:accept{client.addr=192.168.1.9:1227}:server{port=4143}:direct:gateway{dst=server.echo.svc.cluster.local:8080}:server_handshake{io=hyper::common::io::rewind::Rewind, linkerd_io::prefixed::PrefixedIo>>>, linkerd_io::either::EitherIo, linkerd_io::prefixed::PrefixedIo>>>>, linkerd_transport_metrics::sensor::Sensor>, linkerd_io::sensor::SensorIo, linkerd_io::prefixed::PrefixedIo>>>, linkerd_io::either::EitherIo, linkerd_io::prefixed::PrefixedIo>>>, linkerd_transport_metrics::sensor::Sensor>>>}:FramedWrite::buffer{frame=Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 }}: h2::codec::framed_write: send frame=Settings { flags: (0x0), initial_window_size: 65535, max_frame_size: 16384 } ``` which is kinda not great. ## Solution This branch removes the IO type's type name from the spans for the server and client handshakes. In practice, these are not particularly useful, because a given server or client instance is parameterized over the IO types and will only serve connections of that type. --- src/client.rs | 2 +- src/server.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client.rs b/src/client.rs index d4ec3b90..e75cd350 100644 --- a/src/client.rs +++ b/src/client.rs @@ -1154,7 +1154,7 @@ where let builder = Builder::new(); builder .handshake(io) - .instrument(tracing::trace_span!("client_handshake", io = %std::any::type_name::())) + .instrument(tracing::trace_span!("client_handshake")) .await } diff --git a/src/server.rs b/src/server.rs index f82b0501..16a50da4 100644 --- a/src/server.rs +++ b/src/server.rs @@ -367,7 +367,7 @@ where B: Buf + 'static, { fn handshake2(io: T, builder: Builder) -> Handshake { - let span = tracing::trace_span!("server_handshake", io = %std::any::type_name::()); + let span = tracing::trace_span!("server_handshake"); let entered = span.enter(); // Create the codec.