From 26dab19b901a6de17631cffd234e72abc1ee1671 Mon Sep 17 00:00:00 2001 From: bachgarash Date: Thu, 3 Jul 2025 18:33:21 +0300 Subject: [PATCH 01/13] feat: add ErrorType for semconv package 1.34.0 (#6904) --- .../semconvkit/templates/error_type.go.tmpl | 23 +++++++++++++++ semconv/v1.34.0/errorType.go | 29 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 internal/tools/semconvkit/templates/error_type.go.tmpl create mode 100644 semconv/v1.34.0/errorType.go diff --git a/internal/tools/semconvkit/templates/error_type.go.tmpl b/internal/tools/semconvkit/templates/error_type.go.tmpl new file mode 100644 index 00000000000..002669bb71a --- /dev/null +++ b/internal/tools/semconvkit/templates/error_type.go.tmpl @@ -0,0 +1,23 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package semconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}" + + +// ErrorType returns an attribute KeyValue that identifies the type of the given error. +// It uses reflection to determine the fully qualified type name for observability and monitoring. +func ErrorType(err error) attribute.KeyValue { + t := reflect.TypeOf(err) + var value string + if t.PkgPath() == "" && t.Name() == "" { + // Likely a builtin type. + value = t.String() + } else { + value = fmt.Sprintf("%s.%s", t.PkgPath(), t.Name()) + } + + if value == "" { + return ErrorTypeOther + } + return ErrorTypeKey.String(value) +} diff --git a/semconv/v1.34.0/errorType.go b/semconv/v1.34.0/errorType.go new file mode 100644 index 00000000000..b2fe8b6a6b3 --- /dev/null +++ b/semconv/v1.34.0/errorType.go @@ -0,0 +1,29 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package semconv // import "go.opentelemetry.io/otel/semconv/v1.34.0" + +import ( + "fmt" + "reflect" + + "go.opentelemetry.io/otel/attribute" +) + +// ErrorType returns an attribute KeyValue that identifies the type of the given error. +// It uses reflection to determine the fully qualified type name for observability and monitoring. +func ErrorType(err error) attribute.KeyValue { + t := reflect.TypeOf(err) + var value string + if t.PkgPath() == "" && t.Name() == "" { + // Likely a builtin type. + value = t.String() + } else { + value = fmt.Sprintf("%s.%s", t.PkgPath(), t.Name()) + } + + if value == "" { + return ErrorTypeOther + } + return ErrorTypeKey.String(value) +} From 71fda962600a0880f6f0868527c83fd281f3099c Mon Sep 17 00:00:00 2001 From: bachgarash Date: Fri, 4 Jul 2025 15:40:14 +0300 Subject: [PATCH 02/13] feat: add test and code review fixes --- .../semconvkit/templates/error_type.go.tmpl | 12 ++++- .../v1.34.0/{errorType.go => error_type.go} | 6 ++- semconv/v1.34.0/error_type_test.go | 49 +++++++++++++++++++ 3 files changed, 63 insertions(+), 4 deletions(-) rename semconv/v1.34.0/{errorType.go => error_type.go} (74%) create mode 100644 semconv/v1.34.0/error_type_test.go diff --git a/internal/tools/semconvkit/templates/error_type.go.tmpl b/internal/tools/semconvkit/templates/error_type.go.tmpl index 002669bb71a..185cf5810eb 100644 --- a/internal/tools/semconvkit/templates/error_type.go.tmpl +++ b/internal/tools/semconvkit/templates/error_type.go.tmpl @@ -3,10 +3,18 @@ package semconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}" +import ( + "fmt" + "reflect" -// ErrorType returns an attribute KeyValue that identifies the type of the given error. -// It uses reflection to determine the fully qualified type name for observability and monitoring. + "go.opentelemetry.io/otel/attribute" +) + +// ErrorType returns an [attribute.KeyValue] identifying the error type of err. func ErrorType(err error) attribute.KeyValue { + if err == nil { + return ErrorTypeOther + } t := reflect.TypeOf(err) var value string if t.PkgPath() == "" && t.Name() == "" { diff --git a/semconv/v1.34.0/errorType.go b/semconv/v1.34.0/error_type.go similarity index 74% rename from semconv/v1.34.0/errorType.go rename to semconv/v1.34.0/error_type.go index b2fe8b6a6b3..19bf022465f 100644 --- a/semconv/v1.34.0/errorType.go +++ b/semconv/v1.34.0/error_type.go @@ -10,9 +10,11 @@ import ( "go.opentelemetry.io/otel/attribute" ) -// ErrorType returns an attribute KeyValue that identifies the type of the given error. -// It uses reflection to determine the fully qualified type name for observability and monitoring. +// ErrorType returns an [attribute.KeyValue] identifying the error type of err. func ErrorType(err error) attribute.KeyValue { + if err == nil { + return ErrorTypeOther + } t := reflect.TypeOf(err) var value string if t.PkgPath() == "" && t.Name() == "" { diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go new file mode 100644 index 00000000000..6438fe16a7c --- /dev/null +++ b/semconv/v1.34.0/error_type_test.go @@ -0,0 +1,49 @@ +package semconv + +import ( + "errors" + "fmt" + "reflect" + "testing" + + "go.opentelemetry.io/otel/attribute" +) + +type CustomError struct{} + +func (CustomError) Error() string { + return "custom error" +} + +func TestErrorType_BuiltinError(t *testing.T) { + err := errors.New("something went wrong") + + kv := ErrorType(err) + expected := attribute.String("error.type", "*errors.errorString") + + if kv.Value.AsString() != expected.Value.AsString() { + t.Errorf("Expected %v, got %v", expected, kv) + } +} + +func TestErrorType_CustomError(t *testing.T) { + err := CustomError{} + + kv := ErrorType(err) + expectedType := reflect.TypeOf(err) + expectedStr := fmt.Sprintf("%s.%s", expectedType.PkgPath(), expectedType.Name()) + + if kv.Value.AsString() != expectedStr { + t.Errorf("Expected %s, got %s", expectedStr, kv.Value.AsString()) + } +} + +func TestErrorType_Nil(t *testing.T) { + var err error = nil + + kv := ErrorType(err) + + if kv != ErrorTypeOther { + t.Errorf("Expected ErrorTypeOther, got %v", kv) + } +} From c04cd23a7584e6e05d419c48c3033678d36fcc4d Mon Sep 17 00:00:00 2001 From: bachgarash Date: Fri, 4 Jul 2025 15:45:22 +0300 Subject: [PATCH 03/13] feat: add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9be9fa06d99..a62c30ce7ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCConnectRPCResponseMetadata` - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` + - `ErrorType` ### Changed From 807ee9ab2507b1931860d66d370c0997cc6986c1 Mon Sep 17 00:00:00 2001 From: bachgarash Date: Sat, 5 Jul 2025 12:59:35 +0300 Subject: [PATCH 04/13] feat: table driven test and code review fixes --- CHANGELOG.md | 4 +- .../templates/error_type_test.go.tmpl | 66 +++++++++++++++++ semconv/v1.34.0/error_type_test.go | 70 +++++++++++-------- 3 files changed, 110 insertions(+), 30 deletions(-) create mode 100644 internal/tools/semconvkit/templates/error_type_test.go.tmpl diff --git a/CHANGELOG.md b/CHANGELOG.md index a62c30ce7ad..bc5277bef12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,10 +10,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Added -- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939) +- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) - `ContainerLabel` - `DBOperationParameter` - `DBSystemParameter` + - `ErrorType` - `HTTPRequestHeader` - `HTTPResponseHeader` - `K8SCronJobAnnotation` @@ -39,7 +40,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCConnectRPCResponseMetadata` - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` - - `ErrorType` ### Changed diff --git a/internal/tools/semconvkit/templates/error_type_test.go.tmpl b/internal/tools/semconvkit/templates/error_type_test.go.tmpl new file mode 100644 index 00000000000..64727f43611 --- /dev/null +++ b/internal/tools/semconvkit/templates/error_type_test.go.tmpl @@ -0,0 +1,66 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package semconv // import "go.opentelemetry.io/otel/semconv/{{.TagVer}}" + +import ( + "errors" + "fmt" + "reflect" + "testing" + + "go.opentelemetry.io/otel/attribute" +) + +type CustomError struct{} + +func (CustomError) Error() string { + return "custom error" +} + +func TestErrorType(t *testing.T) { + customErr := CustomError{} + builtinErr := errors.New("something went wrong") + var nilErr error = nil + + wantCustomType := reflect.TypeOf(customErr) + wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) + + tests := []struct { + name string + err error + want attribute.KeyValue + wantStr string + }{ + { + name: "BuiltinError", + err: builtinErr, + want: attribute.String("error.type", "*errors.errorString"), + }, + { + name: "CustomError", + err: customErr, + wantStr: wantCustomStr, + }, + { + name: "NilError", + err: nilErr, + want: ErrorTypeOther, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := ErrorType(tt.err) + if tt.name == "CustomError" { + if got.Value.AsString() != tt.wantStr { + t.Errorf("Expected %s, got %s", tt.wantStr, got.Value.AsString()) + } + } else { + if got != tt.want { + t.Errorf("Expected %v, got %v", tt.want, got) + } + } + }) + } +} diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index 6438fe16a7c..efd2e676903 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -15,35 +15,49 @@ func (CustomError) Error() string { return "custom error" } -func TestErrorType_BuiltinError(t *testing.T) { - err := errors.New("something went wrong") - - kv := ErrorType(err) - expected := attribute.String("error.type", "*errors.errorString") - - if kv.Value.AsString() != expected.Value.AsString() { - t.Errorf("Expected %v, got %v", expected, kv) - } -} - -func TestErrorType_CustomError(t *testing.T) { - err := CustomError{} - - kv := ErrorType(err) - expectedType := reflect.TypeOf(err) - expectedStr := fmt.Sprintf("%s.%s", expectedType.PkgPath(), expectedType.Name()) - - if kv.Value.AsString() != expectedStr { - t.Errorf("Expected %s, got %s", expectedStr, kv.Value.AsString()) +func TestErrorType(t *testing.T) { + customErr := CustomError{} + builtinErr := errors.New("something went wrong") + var nilErr error = nil + + wantCustomType := reflect.TypeOf(customErr) + wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) + + tests := []struct { + name string + err error + want attribute.KeyValue + wantStr string + }{ + { + name: "BuiltinError", + err: builtinErr, + want: attribute.String("error.type", "*errors.errorString"), + }, + { + name: "CustomError", + err: customErr, + wantStr: wantCustomStr, + }, + { + name: "NilError", + err: nilErr, + want: ErrorTypeOther, + }, } -} - -func TestErrorType_Nil(t *testing.T) { - var err error = nil - - kv := ErrorType(err) - if kv != ErrorTypeOther { - t.Errorf("Expected ErrorTypeOther, got %v", kv) + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := ErrorType(tt.err) + if tt.name == "CustomError" { + if got.Value.AsString() != tt.wantStr { + t.Errorf("Expected %s, got %s", tt.wantStr, got.Value.AsString()) + } + } else { + if got != tt.want { + t.Errorf("Expected %v, got %v", tt.want, got) + } + } + }) } } From ae38aa58911c1e07322b91026fc8e57d164bc21a Mon Sep 17 00:00:00 2001 From: bachgarash Date: Sat, 5 Jul 2025 13:02:34 +0300 Subject: [PATCH 05/13] feat: fix test according to go standards --- internal/tools/semconvkit/templates/error_type_test.go.tmpl | 4 ++-- semconv/v1.34.0/error_type_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/tools/semconvkit/templates/error_type_test.go.tmpl b/internal/tools/semconvkit/templates/error_type_test.go.tmpl index 64727f43611..f36092d7731 100644 --- a/internal/tools/semconvkit/templates/error_type_test.go.tmpl +++ b/internal/tools/semconvkit/templates/error_type_test.go.tmpl @@ -54,11 +54,11 @@ func TestErrorType(t *testing.T) { got := ErrorType(tt.err) if tt.name == "CustomError" { if got.Value.AsString() != tt.wantStr { - t.Errorf("Expected %s, got %s", tt.wantStr, got.Value.AsString()) + t.Errorf("Want %s, got %s", tt.wantStr, got.Value.AsString()) } } else { if got != tt.want { - t.Errorf("Expected %v, got %v", tt.want, got) + t.Errorf("Want %v, got %v", tt.want, got) } } }) diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index efd2e676903..73ebe2b5b77 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -51,11 +51,11 @@ func TestErrorType(t *testing.T) { got := ErrorType(tt.err) if tt.name == "CustomError" { if got.Value.AsString() != tt.wantStr { - t.Errorf("Expected %s, got %s", tt.wantStr, got.Value.AsString()) + t.Errorf("Want %s, got %s", tt.wantStr, got.Value.AsString()) } } else { if got != tt.want { - t.Errorf("Expected %v, got %v", tt.want, got) + t.Errorf("Want %v, got %v", tt.want, got) } } }) From 53f0efbad73aa53b95709c57224d1a80b72ba033 Mon Sep 17 00:00:00 2001 From: bachgarash Date: Sat, 5 Jul 2025 13:11:51 +0300 Subject: [PATCH 06/13] feat: fix lint --- .../tools/semconvkit/templates/error_type_test.go.tmpl | 2 +- semconv/v1.34.0/error_type_test.go | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/tools/semconvkit/templates/error_type_test.go.tmpl b/internal/tools/semconvkit/templates/error_type_test.go.tmpl index f36092d7731..68a76ae1e92 100644 --- a/internal/tools/semconvkit/templates/error_type_test.go.tmpl +++ b/internal/tools/semconvkit/templates/error_type_test.go.tmpl @@ -21,7 +21,7 @@ func (CustomError) Error() string { func TestErrorType(t *testing.T) { customErr := CustomError{} builtinErr := errors.New("something went wrong") - var nilErr error = nil + var nilErr error wantCustomType := reflect.TypeOf(customErr) wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index 73ebe2b5b77..bede646ef46 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -1,4 +1,7 @@ -package semconv +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package semconv // import "go.opentelemetry.io/otel/semconv/v1.34.0" import ( "errors" @@ -18,7 +21,7 @@ func (CustomError) Error() string { func TestErrorType(t *testing.T) { customErr := CustomError{} builtinErr := errors.New("something went wrong") - var nilErr error = nil + var nilErr error wantCustomType := reflect.TypeOf(customErr) wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) From b619539e54a4ccd53cd53892fdd79d12daded64b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C9=99xtiyar?= Date: Mon, 7 Jul 2025 10:42:55 +0300 Subject: [PATCH 07/13] Update CHANGELOG.md Co-authored-by: Damien Mathieu <42@dmathieu.com> --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc5277bef12..c71f549d0d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Added -- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) +- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939, #6962) - `ContainerLabel` - `DBOperationParameter` - `DBSystemParameter` From d3603c45a1a6c49354e47f3118299ff9ce2df481 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C9=99xtiyar?= Date: Mon, 7 Jul 2025 12:11:02 +0300 Subject: [PATCH 08/13] Update semconv/v1.34.0/error_type_test.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- internal/tools/semconvkit/templates/error_type_test.go.tmpl | 4 ++-- semconv/v1.34.0/error_type_test.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/tools/semconvkit/templates/error_type_test.go.tmpl b/internal/tools/semconvkit/templates/error_type_test.go.tmpl index 68a76ae1e92..cf4d13257e1 100644 --- a/internal/tools/semconvkit/templates/error_type_test.go.tmpl +++ b/internal/tools/semconvkit/templates/error_type_test.go.tmpl @@ -54,11 +54,11 @@ func TestErrorType(t *testing.T) { got := ErrorType(tt.err) if tt.name == "CustomError" { if got.Value.AsString() != tt.wantStr { - t.Errorf("Want %s, got %s", tt.wantStr, got.Value.AsString()) + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) } } else { if got != tt.want { - t.Errorf("Want %v, got %v", tt.want, got) + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) } } }) diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index bede646ef46..798b0418fc7 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -54,11 +54,11 @@ func TestErrorType(t *testing.T) { got := ErrorType(tt.err) if tt.name == "CustomError" { if got.Value.AsString() != tt.wantStr { - t.Errorf("Want %s, got %s", tt.wantStr, got.Value.AsString()) + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) } } else { if got != tt.want { - t.Errorf("Want %v, got %v", tt.want, got) + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) } } }) From 4ee02a72fb79327f56642f3dc407bea3dcf25324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C9=99xtiyar?= Date: Wed, 9 Jul 2025 19:39:49 +0300 Subject: [PATCH 09/13] Update semconv/v1.34.0/error_type_test.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- semconv/v1.34.0/error_type_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index 798b0418fc7..2e86cb5b325 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -40,7 +40,7 @@ func TestErrorType(t *testing.T) { { name: "CustomError", err: customErr, - wantStr: wantCustomStr, + want: attribute.String("error.type", wantCustomStr), }, { name: "NilError", From 049bca2d48f4bfcbab0b549920cddf12a74e2c41 Mon Sep 17 00:00:00 2001 From: bachgarash Date: Wed, 9 Jul 2025 20:02:16 +0300 Subject: [PATCH 10/13] feat: improve test and update changelog --- CHANGELOG.md | 6 +++-- .../templates/error_type_test.go.tmpl | 23 +++++++------------ semconv/v1.34.0/error_type_test.go | 21 ++++++----------- 3 files changed, 19 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c71f549d0d2..e58e9a278db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ### Added -- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939, #6962) +- Add template attribute functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6939) - `ContainerLabel` - `DBOperationParameter` - `DBSystemParameter` - - `ErrorType` - `HTTPRequestHeader` - `HTTPResponseHeader` - `K8SCronJobAnnotation` @@ -41,6 +40,9 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` +- Add additional attribute helper functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) + - `ErrorType` + ### Changed - Change `AssertEqual` in `go.opentelemetry.io/otel/log/logtest` to accept `TestingT` in order to support benchmarks and fuzz tests. (#6908) diff --git a/internal/tools/semconvkit/templates/error_type_test.go.tmpl b/internal/tools/semconvkit/templates/error_type_test.go.tmpl index cf4d13257e1..c695b87e032 100644 --- a/internal/tools/semconvkit/templates/error_type_test.go.tmpl +++ b/internal/tools/semconvkit/templates/error_type_test.go.tmpl @@ -27,10 +27,9 @@ func TestErrorType(t *testing.T) { wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) tests := []struct { - name string - err error - want attribute.KeyValue - wantStr string + name string + err error + want attribute.KeyValue }{ { name: "BuiltinError", @@ -38,9 +37,9 @@ func TestErrorType(t *testing.T) { want: attribute.String("error.type", "*errors.errorString"), }, { - name: "CustomError", - err: customErr, - wantStr: wantCustomStr, + name: "CustomError", + err: customErr, + want: attribute.String("error.type", wantCustomStr), }, { name: "NilError", @@ -52,14 +51,8 @@ func TestErrorType(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := ErrorType(tt.err) - if tt.name == "CustomError" { - if got.Value.AsString() != tt.wantStr { - t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) - } - } else { - if got != tt.want { - t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) - } + if got != tt.want { + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.want) } }) } diff --git a/semconv/v1.34.0/error_type_test.go b/semconv/v1.34.0/error_type_test.go index 2e86cb5b325..744c29f77c5 100644 --- a/semconv/v1.34.0/error_type_test.go +++ b/semconv/v1.34.0/error_type_test.go @@ -27,10 +27,9 @@ func TestErrorType(t *testing.T) { wantCustomStr := fmt.Sprintf("%s.%s", wantCustomType.PkgPath(), wantCustomType.Name()) tests := []struct { - name string - err error - want attribute.KeyValue - wantStr string + name string + err error + want attribute.KeyValue }{ { name: "BuiltinError", @@ -38,8 +37,8 @@ func TestErrorType(t *testing.T) { want: attribute.String("error.type", "*errors.errorString"), }, { - name: "CustomError", - err: customErr, + name: "CustomError", + err: customErr, want: attribute.String("error.type", wantCustomStr), }, { @@ -52,14 +51,8 @@ func TestErrorType(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { got := ErrorType(tt.err) - if tt.name == "CustomError" { - if got.Value.AsString() != tt.wantStr { - t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) - } - } else { - if got != tt.want { - t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.wantStr) - } + if got != tt.want { + t.Errorf("ErrorType(%v) = %v, want %v", tt.err, got, tt.want) } }) } From ce47541be4865e45590b7360e4cd9f62fcecec0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C9=99xtiyar?= Date: Wed, 9 Jul 2025 20:54:27 +0300 Subject: [PATCH 11/13] Update CHANGELOG.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Robert Pająk --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e58e9a278db..7aad26fb942 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,8 +40,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` -- Add additional attribute helper functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) - - `ErrorType` +- Add `ErrorType` attribute helper functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) ### Changed From c32bc4f501a402676a3c58a713644713ee799297 Mon Sep 17 00:00:00 2001 From: bachgarash Date: Wed, 9 Jul 2025 20:58:54 +0300 Subject: [PATCH 12/13] feat: fix typo changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7aad26fb942..b4d428bc648 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,7 +40,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` -- Add `ErrorType` attribute helper functions to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) +- Add `ErrorType` attribute helper function to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) ### Changed From dd551797b0fa130fec408a9cb58bc15f887f4c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C9=99xtiyar?= Date: Wed, 9 Jul 2025 21:29:06 +0300 Subject: [PATCH 13/13] Update CHANGELOG.md Co-authored-by: Tyler Yahn --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4d428bc648..7a1e084d5b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,7 +39,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - `RPCConnectRPCResponseMetadata` - `RPCGRPCRequestMetadata` - `RPCGRPCResponseMetadata` - - Add `ErrorType` attribute helper function to the `go.opentelmetry.io/otel/semconv/v1.34.0` package. (#6962) ### Changed