tracing icon indicating copy to clipboard operation
tracing copied to clipboard

span record method does not record attribute as u16

Open pitoniak32 opened this issue 4 months ago • 2 comments

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.

Screenshot 2024-10-12 124601

Instead, it was a string.

Screenshot 2024-10-12 124417

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,
);

pitoniak32 avatar Oct 12 '24 16:10 pitoniak32