summaryrefslogtreecommitdiff
path: root/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/go.opentelemetry.io/otel/sdk/resource/auto.go')
-rw-r--r--vendor/go.opentelemetry.io/otel/sdk/resource/auto.go62
1 files changed, 18 insertions, 44 deletions
diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go b/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
index 95a61d61d..c02aeefdd 100644
--- a/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
+++ b/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
@@ -7,7 +7,6 @@ import (
"context"
"errors"
"fmt"
- "strings"
)
// ErrPartialResource is returned by a detector when complete source
@@ -57,62 +56,37 @@ func Detect(ctx context.Context, detectors ...Detector) (*Resource, error) {
// these errors will be returned. Otherwise, nil is returned.
func detect(ctx context.Context, res *Resource, detectors []Detector) error {
var (
- r *Resource
- errs detectErrs
- err error
+ r *Resource
+ err error
+ e error
)
for _, detector := range detectors {
if detector == nil {
continue
}
- r, err = detector.Detect(ctx)
- if err != nil {
- errs = append(errs, err)
- if !errors.Is(err, ErrPartialResource) {
+ r, e = detector.Detect(ctx)
+ if e != nil {
+ err = errors.Join(err, e)
+ if !errors.Is(e, ErrPartialResource) {
continue
}
}
- r, err = Merge(res, r)
- if err != nil {
- errs = append(errs, err)
+ r, e = Merge(res, r)
+ if e != nil {
+ err = errors.Join(err, e)
}
*res = *r
}
- if len(errs) == 0 {
- return nil
- }
- if errors.Is(errs, ErrSchemaURLConflict) {
- // If there has been a merge conflict, ensure the resource has no
- // schema URL.
- res.schemaURL = ""
- }
- return errs
-}
-
-type detectErrs []error
-
-func (e detectErrs) Error() string {
- errStr := make([]string, len(e))
- for i, err := range e {
- errStr[i] = fmt.Sprintf("* %s", err)
- }
-
- format := "%d errors occurred detecting resource:\n\t%s"
- return fmt.Sprintf(format, len(e), strings.Join(errStr, "\n\t"))
-}
+ if err != nil {
+ if errors.Is(err, ErrSchemaURLConflict) {
+ // If there has been a merge conflict, ensure the resource has no
+ // schema URL.
+ res.schemaURL = ""
+ }
-func (e detectErrs) Unwrap() error {
- switch len(e) {
- case 0:
- return nil
- case 1:
- return e[0]
+ err = fmt.Errorf("error detecting resource: %w", err)
}
- return e[1:]
-}
-
-func (e detectErrs) Is(target error) bool {
- return len(e) != 0 && errors.Is(e[0], target)
+ return err
}