Format New Relic and OpenTelemetry metadata values that implement the fmt.Stringer interface as strings

This commit is contained in:
DarthSim
2025-09-21 21:15:46 +03:00
parent 3433be9fe5
commit 207532fe97
3 changed files with 14 additions and 0 deletions

View File

@@ -1,5 +1,9 @@
# Changelog
## [Unreleased]
### Changed
- Format New Relic and OpenTelemetry metadata values that implement the `fmt.Stringer` interface as strings.
## [3.30.0] - 2025-09-17
### Added
- Add [IMGPROXY_GRACEFUL_STOP_TIMEOUT](https://docs.imgproxy.net/latest/configuration/options#IMGPROXY_GRACEFUL_STOP_TIMEOUT) config.

View File

@@ -141,6 +141,11 @@ func setMetadata(span attributable, key string, value interface{}) {
return
}
if stringer, ok := value.(fmt.Stringer); ok {
span.AddAttribute(key, stringer.String())
return
}
rv := reflect.ValueOf(value)
switch {
case rv.Kind() == reflect.String || rv.Kind() == reflect.Bool:

View File

@@ -431,6 +431,11 @@ func setMetadata(span trace.Span, key string, value interface{}) {
return
}
if stringer, ok := value.(fmt.Stringer); ok {
span.SetAttributes(attribute.String(key, stringer.String()))
return
}
rv := reflect.ValueOf(value)
switch {