tracing
tracing copied to clipboard
span record method does not record attribute as u16
Bug Report
Version
❯ cargo tree | rg tracing
│ │ └── tracing v0.1.40
│ │ ├── tracing-attributes v0.1.27 (proc-macro)
│ │ └── tracing-core v0.1.32
│ │ │ └── tracing v0.1.40 (*)
│ │ └── tracing v0.1.40 (*)
│ │ └── tracing v0.1.40 (*)
│ └── tracing v0.1.40 (*)
│ │ │ └── tracing v0.1.40 (*)
│ │ └── tracing v0.1.40 (*)
│ └── tracing v0.1.40 (*)
├── tracing v0.1.40 (*)
├── tracing-log v0.2.0
│ └── tracing-core v0.1.32 (*)
├── tracing-opentelemetry v0.27.0
│ ├── tracing v0.1.40 (*)
│ ├── tracing-core v0.1.32 (*)
│ ├── tracing-log v0.2.0 (*)
│ └── tracing-subscriber v0.3.18
│ ├── tracing v0.1.40 (*)
│ ├── tracing-core v0.1.32 (*)
│ └── tracing-log v0.2.0 (*)
└── tracing-subscriber v0.3.18 (*)
Platform
Linux d 5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Description
I am seeing the incorrect type for an integer attribute / tag values that are exported to an external tracing backend (Jaeger).
I tried this code:
tracing::info_span!("request",
{ HTTP_RESPONSE_STATUS_CODE } = None::<u16>,
)
span.record(
HTTP_RESPONSE_STATUS_CODE,
response.status().as_u16(), // this returns a u16 `pub fn as_u16(&self) -> u16`
);
I expected to see the type of the http.response.status_code
field to be an integer.
Instead, it was a string.
if I use an integer directly it will be the correct type:
tracing::info_span!("request",
{ HTTP_RESPONSE_STATUS_CODE } = None::<u16>,
)
span.record(
HTTP_RESPONSE_STATUS_CODE,
400,
);