From 3d28e75b178b4fed1aa19dd8b664b42b7e02eb76 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Tue, 28 Mar 2023 11:05:17 -0700 Subject: [PATCH 01/14] Add Upgrade/Downgrade for Resource schemas --- bridge/opencensus/go.mod | 2 + bridge/opencensus/test/go.mod | 2 + example/fib/go.mod | 2 + example/jaeger/go.mod | 2 + example/namedtracer/go.mod | 2 + example/opencensus/go.mod | 2 + example/otel-collector/go.mod | 2 + example/passthrough/go.mod | 2 + example/prometheus/go.mod | 2 + example/view/go.mod | 2 + example/zipkin/go.mod | 2 + exporters/jaeger/go.mod | 2 + exporters/otlp/otlpmetric/go.mod | 2 + .../otlp/otlpmetric/otlpmetricgrpc/go.mod | 2 + .../otlp/otlpmetric/otlpmetrichttp/go.mod | 2 + exporters/otlp/otlptrace/go.mod | 2 + exporters/otlp/otlptrace/otlptracegrpc/go.mod | 2 + exporters/otlp/otlptrace/otlptracehttp/go.mod | 2 + exporters/prometheus/go.mod | 2 + exporters/stdout/stdoutmetric/go.mod | 2 + exporters/stdout/stdouttrace/go.mod | 2 + exporters/zipkin/go.mod | 2 + sdk/go.mod | 4 + sdk/go.sum | 4 + sdk/metric/go.mod | 2 + sdk/resource/internal/schema/upgrade.go | 151 ++++++++++++++++++ sdk/resource/internal/schema/upgrade_test.go | 114 +++++++++++++ 27 files changed, 319 insertions(+) create mode 100644 sdk/resource/internal/schema/upgrade.go create mode 100644 sdk/resource/internal/schema/upgrade_test.go diff --git a/bridge/opencensus/go.mod b/bridge/opencensus/go.mod index 4a1c53649c9..26af92dd1f4 100644 --- a/bridge/opencensus/go.mod +++ b/bridge/opencensus/go.mod @@ -33,3 +33,5 @@ replace go.opentelemetry.io/otel/sdk => ../../sdk replace go.opentelemetry.io/otel/metric => ../../metric replace go.opentelemetry.io/otel/sdk/metric => ../../sdk/metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/bridge/opencensus/test/go.mod b/bridge/opencensus/test/go.mod index 83cd76a5593..abec8d990d7 100644 --- a/bridge/opencensus/test/go.mod +++ b/bridge/opencensus/test/go.mod @@ -30,3 +30,5 @@ replace go.opentelemetry.io/otel/trace => ../../../trace replace go.opentelemetry.io/otel/metric => ../../../metric replace go.opentelemetry.io/otel/sdk/metric => ../../../sdk/metric + +replace go.opentelemetry.io/otel/schema => ../../../schema diff --git a/example/fib/go.mod b/example/fib/go.mod index eedfddf00a7..9cdcb19cab2 100644 --- a/example/fib/go.mod +++ b/example/fib/go.mod @@ -25,3 +25,5 @@ replace go.opentelemetry.io/otel/sdk => ../../sdk replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/jaeger/go.mod b/example/jaeger/go.mod index 6e2e1a7a996..214cf7af5d4 100644 --- a/example/jaeger/go.mod +++ b/example/jaeger/go.mod @@ -25,3 +25,5 @@ require ( replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/namedtracer/go.mod b/example/namedtracer/go.mod index aa5628f3f86..a4b4839237e 100644 --- a/example/namedtracer/go.mod +++ b/example/namedtracer/go.mod @@ -26,3 +26,5 @@ replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/opencensus/go.mod b/example/opencensus/go.mod index 2775976f6e6..7fb936bcd1d 100644 --- a/example/opencensus/go.mod +++ b/example/opencensus/go.mod @@ -36,3 +36,5 @@ replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/exporters/stdout/stdoutmetric => ../../exporters/stdout/stdoutmetric replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/otel-collector/go.mod b/example/otel-collector/go.mod index 26ad708b027..2488695a2f4 100644 --- a/example/otel-collector/go.mod +++ b/example/otel-collector/go.mod @@ -41,3 +41,5 @@ replace go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => ../.. replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../exporters/otlp/internal/retry replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/passthrough/go.mod b/example/passthrough/go.mod index d240c0b2e92..3124ca5c3b4 100644 --- a/example/passthrough/go.mod +++ b/example/passthrough/go.mod @@ -25,3 +25,5 @@ replace ( replace go.opentelemetry.io/otel/exporters/stdout/stdouttrace => ../../exporters/stdout/stdouttrace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/prometheus/go.mod b/example/prometheus/go.mod index 9dc3ea70cc8..e033c4ec7ce 100644 --- a/example/prometheus/go.mod +++ b/example/prometheus/go.mod @@ -37,3 +37,5 @@ replace go.opentelemetry.io/otel/sdk/metric => ../../sdk/metric replace go.opentelemetry.io/otel/metric => ../../metric replace go.opentelemetry.io/otel/trace => ../../trace + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/view/go.mod b/example/view/go.mod index 4e663229695..1422b07b107 100644 --- a/example/view/go.mod +++ b/example/view/go.mod @@ -37,3 +37,5 @@ replace go.opentelemetry.io/otel/sdk/metric => ../../sdk/metric replace go.opentelemetry.io/otel/metric => ../../metric replace go.opentelemetry.io/otel/trace => ../../trace + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/example/zipkin/go.mod b/example/zipkin/go.mod index b443c7feb63..47ec66e1642 100644 --- a/example/zipkin/go.mod +++ b/example/zipkin/go.mod @@ -26,3 +26,5 @@ require ( replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/exporters/jaeger/go.mod b/exporters/jaeger/go.mod index fb6205757b6..2586473d048 100644 --- a/exporters/jaeger/go.mod +++ b/exporters/jaeger/go.mod @@ -28,3 +28,5 @@ replace go.opentelemetry.io/otel => ../.. replace go.opentelemetry.io/otel/sdk => ../../sdk replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/exporters/otlp/otlpmetric/go.mod b/exporters/otlp/otlpmetric/go.mod index bc15434ca7e..1030dc027ea 100644 --- a/exporters/otlp/otlpmetric/go.mod +++ b/exporters/otlp/otlpmetric/go.mod @@ -42,3 +42,5 @@ replace go.opentelemetry.io/otel/sdk => ../../../sdk replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../internal/retry replace go.opentelemetry.io/otel/trace => ../../../trace + +replace go.opentelemetry.io/otel/schema => ../../../schema diff --git a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod index c2fa7ecc4fc..55ca76efebe 100644 --- a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod @@ -47,3 +47,5 @@ replace go.opentelemetry.io/otel/metric => ../../../../metric replace go.opentelemetry.io/otel/trace => ../../../../trace replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry + +replace go.opentelemetry.io/otel/schema => ../../../../schema diff --git a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod index 1199af52e54..d99e1d162ff 100644 --- a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod @@ -47,3 +47,5 @@ replace go.opentelemetry.io/otel/metric => ../../../../metric replace go.opentelemetry.io/otel/trace => ../../../../trace replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry + +replace go.opentelemetry.io/otel/schema => ../../../../schema diff --git a/exporters/otlp/otlptrace/go.mod b/exporters/otlp/otlptrace/go.mod index fdaf056fac8..f0f3bba788b 100644 --- a/exporters/otlp/otlptrace/go.mod +++ b/exporters/otlp/otlptrace/go.mod @@ -39,3 +39,5 @@ replace go.opentelemetry.io/otel/trace => ../../../trace replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../internal/retry replace go.opentelemetry.io/otel/metric => ../../../metric + +replace go.opentelemetry.io/otel/schema => ../../../schema diff --git a/exporters/otlp/otlptrace/otlptracegrpc/go.mod b/exporters/otlp/otlptrace/otlptracegrpc/go.mod index b0260af2000..4c5453a6719 100644 --- a/exporters/otlp/otlptrace/otlptracegrpc/go.mod +++ b/exporters/otlp/otlptrace/otlptracegrpc/go.mod @@ -42,3 +42,5 @@ replace go.opentelemetry.io/otel/trace => ../../../../trace replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry replace go.opentelemetry.io/otel/metric => ../../../../metric + +replace go.opentelemetry.io/otel/schema => ../../../../schema diff --git a/exporters/otlp/otlptrace/otlptracehttp/go.mod b/exporters/otlp/otlptrace/otlptracehttp/go.mod index e3cab45e7bb..aec5973844a 100644 --- a/exporters/otlp/otlptrace/otlptracehttp/go.mod +++ b/exporters/otlp/otlptrace/otlptracehttp/go.mod @@ -41,3 +41,5 @@ replace go.opentelemetry.io/otel/trace => ../../../../trace replace go.opentelemetry.io/otel/exporters/otlp/internal/retry => ../../internal/retry replace go.opentelemetry.io/otel/metric => ../../../../metric + +replace go.opentelemetry.io/otel/schema => ../../../../schema diff --git a/exporters/prometheus/go.mod b/exporters/prometheus/go.mod index 77b9b139194..e753be0f8c6 100644 --- a/exporters/prometheus/go.mod +++ b/exporters/prometheus/go.mod @@ -38,3 +38,5 @@ replace go.opentelemetry.io/otel/sdk/metric => ../../sdk/metric replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/exporters/stdout/stdoutmetric/go.mod b/exporters/stdout/stdoutmetric/go.mod index 77db1ac245b..90e6e5043ef 100644 --- a/exporters/stdout/stdoutmetric/go.mod +++ b/exporters/stdout/stdoutmetric/go.mod @@ -29,3 +29,5 @@ replace go.opentelemetry.io/otel/sdk/metric => ../../../sdk/metric replace go.opentelemetry.io/otel/trace => ../../../trace replace go.opentelemetry.io/otel/sdk => ../../../sdk + +replace go.opentelemetry.io/otel/schema => ../../../schema diff --git a/exporters/stdout/stdouttrace/go.mod b/exporters/stdout/stdouttrace/go.mod index 52b6eac798d..aa71454aa38 100644 --- a/exporters/stdout/stdouttrace/go.mod +++ b/exporters/stdout/stdouttrace/go.mod @@ -27,3 +27,5 @@ require ( replace go.opentelemetry.io/otel/trace => ../../../trace replace go.opentelemetry.io/otel/metric => ../../../metric + +replace go.opentelemetry.io/otel/schema => ../../../schema diff --git a/exporters/zipkin/go.mod b/exporters/zipkin/go.mod index 47b8a22af3b..ab7facc2fe7 100644 --- a/exporters/zipkin/go.mod +++ b/exporters/zipkin/go.mod @@ -28,3 +28,5 @@ replace go.opentelemetry.io/otel => ../.. replace go.opentelemetry.io/otel/sdk => ../../sdk replace go.opentelemetry.io/otel/metric => ../../metric + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/sdk/go.mod b/sdk/go.mod index 8a0c30b7e2d..d02036a1fff 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -5,10 +5,12 @@ go 1.19 replace go.opentelemetry.io/otel => ../ require ( + github.com/Masterminds/semver/v3 v3.2.0 github.com/go-logr/logr v1.2.3 github.com/google/go-cmp v0.5.9 github.com/stretchr/testify v1.8.2 go.opentelemetry.io/otel v1.15.0-rc.2 + go.opentelemetry.io/otel/schema v0.0.4 go.opentelemetry.io/otel/trace v1.15.0-rc.2 golang.org/x/sys v0.6.0 ) @@ -24,3 +26,5 @@ require ( replace go.opentelemetry.io/otel/trace => ../trace replace go.opentelemetry.io/otel/metric => ../metric + +replace go.opentelemetry.io/otel/schema => ../schema diff --git a/sdk/go.sum b/sdk/go.sum index c55ea7c42e3..dcf8a49b229 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -17,6 +19,8 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +go.opentelemetry.io/otel/schema v0.0.4 h1:xgqNjF5c5oy7F1PDm4q6a6wDUJTm+po4jEiXmcN5ncI= +go.opentelemetry.io/otel/schema v0.0.4/go.mod h1:LBBdyW+43YB5XmeQtH4b2ET5k0hx7dh3yJgRGY4Qw+A= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/sdk/metric/go.mod b/sdk/metric/go.mod index e797647ece2..ab72bef14fc 100644 --- a/sdk/metric/go.mod +++ b/sdk/metric/go.mod @@ -26,3 +26,5 @@ replace go.opentelemetry.io/otel/metric => ../../metric replace go.opentelemetry.io/otel/trace => ../../trace replace go.opentelemetry.io/otel/sdk => ../ + +replace go.opentelemetry.io/otel/schema => ../../schema diff --git a/sdk/resource/internal/schema/upgrade.go b/sdk/resource/internal/schema/upgrade.go new file mode 100644 index 00000000000..efb4fe6f2f1 --- /dev/null +++ b/sdk/resource/internal/schema/upgrade.go @@ -0,0 +1,151 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "fmt" + "sort" + + "github.com/Masterminds/semver/v3" + "go.opentelemetry.io/otel/attribute" + ast10 "go.opentelemetry.io/otel/schema/v1.0/ast" + "go.opentelemetry.io/otel/schema/v1.1/ast" + "go.opentelemetry.io/otel/schema/v1.1/types" +) + +// Upgrade upgrades attrs in place using schema. +func Upgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { + vers, err := versions(schema, false) + if err != nil { + return fmt.Errorf("upgrade error: %w", err) + } + + a := newAttributes(attrs) + for _, v := range vers { + vDef, ok := schema.Versions[v] + if !ok { + return fmt.Errorf("upgrade error: version parsing: %s", v) + } + f := a.RenameFunc() + // Transformations in section "all" always are applied first. + for _, c := range vDef.All.Changes { + forEach(c.RenameAttributes.AttributeMap, f) + } + // Only other applicable section is for resources. + for _, c := range vDef.Resources.Changes { + forEach(c.RenameAttributes.AttributeMap, f) + } + } + + return nil +} + +// Downgrade downgrade attrs in place using schema. +func Downgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { + vers, err := versions(schema, true) + if err != nil { + return fmt.Errorf("downgrade error: %w", err) + } + + a := newAttributes(attrs) + for _, v := range vers { + vDef, ok := schema.Versions[v] + if !ok { + return fmt.Errorf("downgrade error: version parsing: %s", v) + } + f := a.UnrenameFunc() + for _, c := range vDef.Resources.Changes { + forEach(c.RenameAttributes.AttributeMap, f) + } + // Downgraing means all transformations in section "all" always are + // applied after the resource section is resolved. + for _, c := range vDef.All.Changes { + forEach(c.RenameAttributes.AttributeMap, f) + } + } + + return nil +} + +func versions(schema *ast.Schema, reverse bool) ([]types.TelemetryVersion, error) { + // The transformations specified in each version are applied one by one. + // Order the versions to ensure correct application. + versions := make([]*semver.Version, 0, len(schema.Versions)) + for telV := range schema.Versions { + v, err := semver.NewVersion(string(telV)) + if err != nil { + return nil, fmt.Errorf("telemetry version %q: %w", telV, err) + } + versions = append(versions, v) + } + + var sIface sort.Interface = semver.Collection(versions) + if reverse { + sIface = sort.Reverse(sIface) + } + sort.Sort(sIface) + + out := make([]types.TelemetryVersion, len(versions)) + for i := range versions { + out[i] = types.TelemetryVersion(versions[i].String()) + } + return out, nil +} + +func forEach(m ast10.AttributeMap, f func(string, string)) { + for key, val := range m { + f(key, val) + } +} + +type attributes struct { + underlying []attribute.KeyValue + + index map[string]int +} + +func newAttributes(attr []attribute.KeyValue) *attributes { + // Lazy built index. + return &attributes{underlying: attr} +} + +func (a *attributes) init() { + a.index = make(map[string]int, len(a.underlying)) + for i := range a.underlying { + a.index[string(a.underlying[i].Key)] = i + } +} + +func (a *attributes) ReplaceKey(orig, repl string) { + if a.index == nil { + a.init() + } + + i, ok := a.index[orig] + if !ok { + return + } + delete(a.index, orig) + a.underlying[i].Key = attribute.Key(repl) + a.index[repl] = i +} + +func (a *attributes) RenameFunc() func(string, string) { + return func(orig, repl string) { a.ReplaceKey(orig, repl) } +} + +func (a *attributes) UnrenameFunc() func(string, string) { + return func(orig, repl string) { a.ReplaceKey(repl, orig) } +} diff --git a/sdk/resource/internal/schema/upgrade_test.go b/sdk/resource/internal/schema/upgrade_test.go new file mode 100644 index 00000000000..d9215a787aa --- /dev/null +++ b/sdk/resource/internal/schema/upgrade_test.go @@ -0,0 +1,114 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/attribute" + ast10 "go.opentelemetry.io/otel/schema/v1.0/ast" + "go.opentelemetry.io/otel/schema/v1.1/ast" + "go.opentelemetry.io/otel/schema/v1.1/types" +) + +var schema = &ast.Schema{ + FileFormat: "1.1.0", + SchemaURL: "https://opentelemetry.io/schemas/1.3.0", + Versions: map[types.TelemetryVersion]ast.VersionDef{ + "1.3.0": { + // v1.1.0 should be applied before this, making it a no-op. + All: ast10.Attributes{ + Changes: []ast10.AttributeChange{ + { + RenameAttributes: &ast10.RenameAttributes{ + AttributeMap: ast10.AttributeMap{"foo": "v1.3.0"}, + }, + }, + }, + }, + }, + "1.2.0": { + // This should not apply to a resource. + Spans: ast10.Spans{ + Changes: []ast10.SpansChange{ + { + RenameAttributes: &ast10.AttributeMapForSpans{ + AttributeMap: ast10.AttributeMap{"foo": "v1.2.0"}, + }, + }, + }, + }, + }, + "1.1.0": { + All: ast10.Attributes{ + Changes: []ast10.AttributeChange{ + { + RenameAttributes: &ast10.RenameAttributes{ + AttributeMap: ast10.AttributeMap{"foo": "bar"}, + }, + }, + }, + }, + Resources: ast10.Attributes{ + Changes: []ast10.AttributeChange{ + // These are expected to be applied in order. + { + RenameAttributes: &ast10.RenameAttributes{ + AttributeMap: ast10.AttributeMap{"bar": "foo"}, + }, + }, + { + RenameAttributes: &ast10.RenameAttributes{ + AttributeMap: ast10.AttributeMap{"foo": "baz"}, + }, + }, + }, + }, + }, + // Handle empty + "1.0.0": {}, + }, +} + +func v0Attr() []attribute.KeyValue { + return []attribute.KeyValue{ + attribute.Bool("foo", true), + attribute.Bool("untouched", true), + } +} + +func v3Attr() []attribute.KeyValue { + return []attribute.KeyValue{ + attribute.Bool("baz", true), + attribute.Bool("untouched", true), + } +} + +func TestUpgrade(t *testing.T) { + attr := v0Attr() + err := Upgrade(schema, attr) + require.NoError(t, err) + assert.Equal(t, v3Attr(), attr) +} + +func TestDowngrade(t *testing.T) { + attr := v3Attr() + err := Downgrade(schema, attr) + require.NoError(t, err) + + assert.Equal(t, v0Attr(), attr) +} From a8bc6f82a0bf698e6ee76b482cb37801ae0df532 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Tue, 28 Mar 2023 13:44:23 -0700 Subject: [PATCH 02/14] PoC --- sdk/go.mod | 1 + sdk/go.sum | 4 +- sdk/resource/internal/schema/compare.go | 67 +++++++++++++++++++ sdk/resource/internal/schema/registry.go | 82 ++++++++++++++++++++++++ sdk/resource/internal/schema/upgrade.go | 21 ++++-- sdk/resource/resource.go | 82 ++++++++++++++++++++++++ 6 files changed, 249 insertions(+), 8 deletions(-) create mode 100644 sdk/resource/internal/schema/compare.go create mode 100644 sdk/resource/internal/schema/registry.go diff --git a/sdk/go.mod b/sdk/go.mod index d02036a1fff..9f640d522bf 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -20,6 +20,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/sdk/go.sum b/sdk/go.sum index dcf8a49b229..a901bcbeab4 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -19,12 +19,12 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -go.opentelemetry.io/otel/schema v0.0.4 h1:xgqNjF5c5oy7F1PDm4q6a6wDUJTm+po4jEiXmcN5ncI= -go.opentelemetry.io/otel/schema v0.0.4/go.mod h1:LBBdyW+43YB5XmeQtH4b2ET5k0hx7dh3yJgRGY4Qw+A= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/resource/internal/schema/compare.go b/sdk/resource/internal/schema/compare.go new file mode 100644 index 00000000000..3423d1f6b80 --- /dev/null +++ b/sdk/resource/internal/schema/compare.go @@ -0,0 +1,67 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "fmt" + "net/url" + "strings" + + "github.com/Masterminds/semver/v3" +) + +type Comparison uint8 + +const ( + invalidComparison Comparison = iota + EqualTo + GreaterThan + LessThan +) + +// CompareVersions compares schema URL versions and returns the Comparison of a +// vs b (i.e. a is [comparison value] b). +func CompareVersions(a, b string) (Comparison, error) { + aVer, err := version(a) + if err != nil { + return invalidComparison, fmt.Errorf("invalid version for %q: %w", a, err) + } + + bVer, err := version(b) + if err != nil { + return invalidComparison, fmt.Errorf("invalid version for %q: %w", b, err) + } + + switch aVer.Compare(bVer) { + case -1: + return LessThan, nil + case 0: + return EqualTo, nil + case 1: + return GreaterThan, nil + default: + return invalidComparison, fmt.Errorf("unable to compare versions: %s, %s", aVer, bVer) + } +} + +func version(schemaURL string) (*semver.Version, error) { + // https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md#schema-url + u, err := url.Parse(schemaURL) + if err != nil { + return nil, err + } + + return semver.NewVersion(u.Path[strings.LastIndex(u.Path, "/")+1:]) +} diff --git a/sdk/resource/internal/schema/registry.go b/sdk/resource/internal/schema/registry.go new file mode 100644 index 00000000000..ceed92ebf26 --- /dev/null +++ b/sdk/resource/internal/schema/registry.go @@ -0,0 +1,82 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "context" + "net/http" + + sUtil "go.opentelemetry.io/otel/schema/v1.1" + "go.opentelemetry.io/otel/schema/v1.1/ast" +) + +type cache struct { + data map[string]*ast.Schema +} + +func (c *cache) lookup(key string, f func() (*ast.Schema, error)) (*ast.Schema, error) { + if c.data == nil { + s, err := f() + if err != nil { + return nil, err + } + c.data = map[string]*ast.Schema{key: s} + return s, nil + } + + if s, ok := c.data[key]; ok { + return s, nil + } + + s, err := f() + if err != nil { + return nil, err + } + c.data = map[string]*ast.Schema{key: s} + return s, nil +} + +// Registry hold a registration of schema files. It will cache any schema files +// it gets from external URLs. +type Registry struct { + client *http.Client + + cache cache +} + +// NewRegistry returns a Registry that uses the HTTP client. If client is nil +// it will use the default client from "net/http". +func NewRegistry(client *http.Client) *Registry { + if client == nil { + client = http.DefaultClient + } + return &Registry{client: client} +} + +// Get returns the Schema at the target schemaURL using the registry client. +func (r *Registry) Get(ctx context.Context, schemaURL string) (*ast.Schema, error) { + return r.cache.lookup(schemaURL, func() (*ast.Schema, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, schemaURL, http.NoBody) + if err != nil { + return nil, err + } + resp, err := r.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + return sUtil.Parse(resp.Body) + }) +} diff --git a/sdk/resource/internal/schema/upgrade.go b/sdk/resource/internal/schema/upgrade.go index efb4fe6f2f1..85f6dc35aae 100644 --- a/sdk/resource/internal/schema/upgrade.go +++ b/sdk/resource/internal/schema/upgrade.go @@ -25,9 +25,9 @@ import ( "go.opentelemetry.io/otel/schema/v1.1/types" ) -// Upgrade upgrades attrs in place using schema. +// Upgrade upgrades attrs in place with schema. func Upgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { - vers, err := versions(schema, false) + vers, err := versions(schema, nil, false) if err != nil { return fmt.Errorf("upgrade error: %w", err) } @@ -52,9 +52,14 @@ func Upgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { return nil } -// Downgrade downgrade attrs in place using schema. -func Downgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { - vers, err := versions(schema, true) +// Downgrade downgrade attrs to the schema version of url in place with schema. +func Downgrade(schema *ast.Schema, url string, attrs []attribute.KeyValue) error { + min, err := version(url) + if err != nil { + return fmt.Errorf("downgrade error: %w", err) + } + + vers, err := versions(schema, min, true) if err != nil { return fmt.Errorf("downgrade error: %w", err) } @@ -79,7 +84,8 @@ func Downgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { return nil } -func versions(schema *ast.Schema, reverse bool) ([]types.TelemetryVersion, error) { +// versions returns the sorted versions contained in schema. +func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.TelemetryVersion, error) { // The transformations specified in each version are applied one by one. // Order the versions to ensure correct application. versions := make([]*semver.Version, 0, len(schema.Versions)) @@ -99,6 +105,9 @@ func versions(schema *ast.Schema, reverse bool) ([]types.TelemetryVersion, error out := make([]types.TelemetryVersion, len(versions)) for i := range versions { + if min != nil && min.GreaterThan(versions[i]) { + continue + } out[i] = types.TelemetryVersion(versions[i].String()) } return out, nil diff --git a/sdk/resource/resource.go b/sdk/resource/resource.go index 49958a9a60a..76687d63eba 100644 --- a/sdk/resource/resource.go +++ b/sdk/resource/resource.go @@ -21,6 +21,7 @@ import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/sdk/resource/internal/schema" ) // Resource describes an entity about which identifying information @@ -127,6 +128,62 @@ func (r *Resource) SchemaURL() string { return r.schemaURL } +// WithSchemaURL returns a copy of r with the schema URL set to url and all +// attributes transformed based on the associated schema. If the schema +// transformation fails, or url is empty, an error is returned. +func (r *Resource) WithSchemaURL(ctx context.Context, url string) (*Resource, error) { + return r.withSchemaURL(ctx, schema.NewRegistry(nil), url) +} + +func (r *Resource) withSchemaURL(ctx context.Context, reg *schema.Registry, url string) (*Resource, error) { + if url == "" { + return nil, errors.New(`invalid schema url: ""`) + } + + if r == nil || r.attrs.Len() == 0 { + return NewWithAttributes(url), nil + } + + if r.schemaURL == url { + // Resources are immutable, just return the ptr to the same value. + return r, nil + } + + comp, err := schema.CompareVersions(r.schemaURL, url) + if err != nil { + return nil, err + } + switch comp { + case schema.EqualTo: + // Resources are immutable, just return the ptr to the same value. + return r, nil + case schema.LessThan: + s, err := reg.Get(ctx, url) + if err != nil { + return nil, err + } + attrs := r.Attributes() + err = schema.Upgrade(s, attrs) + if err != nil { + return nil, err + } + return NewWithAttributes(url, attrs...), nil + case schema.GreaterThan: + s, err := reg.Get(ctx, r.schemaURL) + if err != nil { + return nil, err + } + attrs := r.Attributes() + err = schema.Downgrade(s, url, attrs) + if err != nil { + return nil, err + } + return NewWithAttributes(url, attrs...), nil + default: + panic("unknown schema URL comparison") + } +} + // Iter returns an iterator of the Resource attributes. // This is ideal to use if you do not want a copy of the attributes. func (r *Resource) Iter() attribute.Iterator { @@ -192,6 +249,31 @@ func Merge(a, b *Resource) (*Resource, error) { return merged, nil } +// MergeAt creates a new resource by combining resources at the target +// schemaURL version. +// +// If there are common keys between resources the latter resource will +// overwrite the former. +// +// Any of the resources not already at schemaURL version will be appropriately +// upgraded or downgraded to match the version. An error is returned if this is +// not possible. +func MergeAt(ctx context.Context, schemaURL string, resources ...*Resource) (*Resource, error) { + reg := schema.NewRegistry(nil) + merged := NewWithAttributes(schemaURL) + for _, r := range resources { + versioned, err := r.withSchemaURL(ctx, reg, schemaURL) + if err != nil { + return nil, err + } + merged, err = Merge(merged, versioned) + if err != nil { + return nil, err + } + } + return merged, nil +} + // Empty returns an instance of Resource with no attributes. It is // equivalent to a `nil` Resource. func Empty() *Resource { From 2569eb7b284f39c1a7f4d0e5cea7cbcea003285b Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:00:59 -0700 Subject: [PATCH 03/14] Fix tests --- sdk/resource/internal/schema/upgrade.go | 18 +++++++++++++----- sdk/resource/internal/schema/upgrade_test.go | 10 +++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/sdk/resource/internal/schema/upgrade.go b/sdk/resource/internal/schema/upgrade.go index 85f6dc35aae..cbc98be3e37 100644 --- a/sdk/resource/internal/schema/upgrade.go +++ b/sdk/resource/internal/schema/upgrade.go @@ -54,9 +54,13 @@ func Upgrade(schema *ast.Schema, attrs []attribute.KeyValue) error { // Downgrade downgrade attrs to the schema version of url in place with schema. func Downgrade(schema *ast.Schema, url string, attrs []attribute.KeyValue) error { - min, err := version(url) - if err != nil { - return fmt.Errorf("downgrade error: %w", err) + var min *semver.Version + if url != "" { + var err error + min, err = version(url) + if err != nil { + return fmt.Errorf("downgrade error: %w", err) + } } vers, err := versions(schema, min, true) @@ -71,12 +75,16 @@ func Downgrade(schema *ast.Schema, url string, attrs []attribute.KeyValue) error return fmt.Errorf("downgrade error: version parsing: %s", v) } f := a.UnrenameFunc() - for _, c := range vDef.Resources.Changes { + changes := vDef.Resources.Changes + for i := len(changes) - 1; i >= 0; i-- { + c := changes[i] forEach(c.RenameAttributes.AttributeMap, f) } // Downgraing means all transformations in section "all" always are // applied after the resource section is resolved. - for _, c := range vDef.All.Changes { + changes = vDef.All.Changes + for i := len(changes) - 1; i >= 0; i-- { + c := changes[i] forEach(c.RenameAttributes.AttributeMap, f) } } diff --git a/sdk/resource/internal/schema/upgrade_test.go b/sdk/resource/internal/schema/upgrade_test.go index d9215a787aa..eac55c133cb 100644 --- a/sdk/resource/internal/schema/upgrade_test.go +++ b/sdk/resource/internal/schema/upgrade_test.go @@ -47,7 +47,7 @@ var schema = &ast.Schema{ Changes: []ast10.SpansChange{ { RenameAttributes: &ast10.AttributeMapForSpans{ - AttributeMap: ast10.AttributeMap{"foo": "v1.2.0"}, + AttributeMap: ast10.AttributeMap{"qux": "v1.2.0"}, }, }, }, @@ -68,12 +68,12 @@ var schema = &ast.Schema{ // These are expected to be applied in order. { RenameAttributes: &ast10.RenameAttributes{ - AttributeMap: ast10.AttributeMap{"bar": "foo"}, + AttributeMap: ast10.AttributeMap{"bar": "baz"}, }, }, { RenameAttributes: &ast10.RenameAttributes{ - AttributeMap: ast10.AttributeMap{"foo": "baz"}, + AttributeMap: ast10.AttributeMap{"baz": "qux"}, }, }, }, @@ -93,7 +93,7 @@ func v0Attr() []attribute.KeyValue { func v3Attr() []attribute.KeyValue { return []attribute.KeyValue{ - attribute.Bool("baz", true), + attribute.Bool("qux", true), attribute.Bool("untouched", true), } } @@ -107,7 +107,7 @@ func TestUpgrade(t *testing.T) { func TestDowngrade(t *testing.T) { attr := v3Attr() - err := Downgrade(schema, attr) + err := Downgrade(schema, "https://opentelemetry.io/schemas/0.9.0", attr) require.NoError(t, err) assert.Equal(t, v0Attr(), attr) From 4b8a87498033ddc7418090ab99af596897e3b811 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:01:27 -0700 Subject: [PATCH 04/14] Rename upgrade*.go --- sdk/resource/internal/schema/{upgrade.go => convert.go} | 0 sdk/resource/internal/schema/{upgrade_test.go => convert_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename sdk/resource/internal/schema/{upgrade.go => convert.go} (100%) rename sdk/resource/internal/schema/{upgrade_test.go => convert_test.go} (100%) diff --git a/sdk/resource/internal/schema/upgrade.go b/sdk/resource/internal/schema/convert.go similarity index 100% rename from sdk/resource/internal/schema/upgrade.go rename to sdk/resource/internal/schema/convert.go diff --git a/sdk/resource/internal/schema/upgrade_test.go b/sdk/resource/internal/schema/convert_test.go similarity index 100% rename from sdk/resource/internal/schema/upgrade_test.go rename to sdk/resource/internal/schema/convert_test.go From 6b72672ebe758ad1723eb9a11cd5218f6c956ced Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:06:39 -0700 Subject: [PATCH 05/14] Fix min versions error --- sdk/resource/internal/schema/convert.go | 10 +++++----- sdk/resource/internal/schema/convert_test.go | 2 ++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sdk/resource/internal/schema/convert.go b/sdk/resource/internal/schema/convert.go index cbc98be3e37..aa1d0c72483 100644 --- a/sdk/resource/internal/schema/convert.go +++ b/sdk/resource/internal/schema/convert.go @@ -72,7 +72,7 @@ func Downgrade(schema *ast.Schema, url string, attrs []attribute.KeyValue) error for _, v := range vers { vDef, ok := schema.Versions[v] if !ok { - return fmt.Errorf("downgrade error: version parsing: %s", v) + return fmt.Errorf("downgrade error: version parsing: %q", v) } f := a.UnrenameFunc() changes := vDef.Resources.Changes @@ -111,12 +111,12 @@ func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.Te } sort.Sort(sIface) - out := make([]types.TelemetryVersion, len(versions)) - for i := range versions { - if min != nil && min.GreaterThan(versions[i]) { + out := make([]types.TelemetryVersion, 0, len(versions)) + for _, v := range versions { + if min != nil && min.GreaterThan(v) { continue } - out[i] = types.TelemetryVersion(versions[i].String()) + out = append(out, types.TelemetryVersion(v.String())) } return out, nil } diff --git a/sdk/resource/internal/schema/convert_test.go b/sdk/resource/internal/schema/convert_test.go index eac55c133cb..9eb43b9ea1b 100644 --- a/sdk/resource/internal/schema/convert_test.go +++ b/sdk/resource/internal/schema/convert_test.go @@ -81,6 +81,8 @@ var schema = &ast.Schema{ }, // Handle empty "1.0.0": {}, + "0.9.0": {}, + "0.8.0": {}, }, } From b95d3bd05b6c9d184bbb674843965644c4059edd Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:32:01 -0700 Subject: [PATCH 06/14] Test version error --- sdk/resource/internal/schema/convert.go | 11 ++++++++++- sdk/resource/internal/schema/convert_test.go | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/sdk/resource/internal/schema/convert.go b/sdk/resource/internal/schema/convert.go index aa1d0c72483..1e3acb77c64 100644 --- a/sdk/resource/internal/schema/convert.go +++ b/sdk/resource/internal/schema/convert.go @@ -92,6 +92,15 @@ func Downgrade(schema *ast.Schema, url string, attrs []attribute.KeyValue) error return nil } +type errTelemetryVer struct { + ver types.TelemetryVersion + err error +} + +func (e *errTelemetryVer) Error() string { + return fmt.Sprintf("telemetry version %q: %s", e.ver, e.err) +} + // versions returns the sorted versions contained in schema. func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.TelemetryVersion, error) { // The transformations specified in each version are applied one by one. @@ -100,7 +109,7 @@ func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.Te for telV := range schema.Versions { v, err := semver.NewVersion(string(telV)) if err != nil { - return nil, fmt.Errorf("telemetry version %q: %w", telV, err) + return nil, &errTelemetryVer{ver: telV, err: err} } versions = append(versions, v) } diff --git a/sdk/resource/internal/schema/convert_test.go b/sdk/resource/internal/schema/convert_test.go index 9eb43b9ea1b..9a1974d6dd2 100644 --- a/sdk/resource/internal/schema/convert_test.go +++ b/sdk/resource/internal/schema/convert_test.go @@ -114,3 +114,12 @@ func TestDowngrade(t *testing.T) { assert.Equal(t, v0Attr(), attr) } + +func TestInvalidTelemetryVersion(t *testing.T) { + s := &ast.Schema{ + Versions: map[types.TelemetryVersion]ast.VersionDef{"invalid": {}}, + } + err := Upgrade(s, nil) + var target *errTelemetryVer + assert.ErrorAs(t, err, &target) +} From df17006b6c591174795c163c38a320df3df7b2b6 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:32:15 -0700 Subject: [PATCH 07/14] Test comparisons --- sdk/resource/internal/schema/compare.go | 16 ++++-- sdk/resource/internal/schema/compare_test.go | 52 ++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 sdk/resource/internal/schema/compare_test.go diff --git a/sdk/resource/internal/schema/compare.go b/sdk/resource/internal/schema/compare.go index 3423d1f6b80..517c30a3339 100644 --- a/sdk/resource/internal/schema/compare.go +++ b/sdk/resource/internal/schema/compare.go @@ -31,17 +31,26 @@ const ( LessThan ) +type errInvalidVer struct { + ver string + err error +} + +func (e *errInvalidVer) Error() string { + return fmt.Sprintf("invalid version for %q: %s", e.ver, e.err) +} + // CompareVersions compares schema URL versions and returns the Comparison of a // vs b (i.e. a is [comparison value] b). func CompareVersions(a, b string) (Comparison, error) { aVer, err := version(a) if err != nil { - return invalidComparison, fmt.Errorf("invalid version for %q: %w", a, err) + return invalidComparison, &errInvalidVer{ver: a, err: err} } bVer, err := version(b) if err != nil { - return invalidComparison, fmt.Errorf("invalid version for %q: %w", b, err) + return invalidComparison, &errInvalidVer{ver: b, err: err} } switch aVer.Compare(bVer) { @@ -52,7 +61,8 @@ func CompareVersions(a, b string) (Comparison, error) { case 1: return GreaterThan, nil default: - return invalidComparison, fmt.Errorf("unable to compare versions: %s, %s", aVer, bVer) + msg := fmt.Sprintf("unknown comparison: %q, %q", aVer, bVer) + panic(msg) } } diff --git a/sdk/resource/internal/schema/compare_test.go b/sdk/resource/internal/schema/compare_test.go new file mode 100644 index 00000000000..ccac38ec55b --- /dev/null +++ b/sdk/resource/internal/schema/compare_test.go @@ -0,0 +1,52 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestCompareVersions(t *testing.T) { + invalid := `🌭` + v13 := "https://opentelemetry.io/schemas/1.3.0" + v12 := "https://opentelemetry.io/schemas/1.2.0" + + var targetErr *errInvalidVer + t.Run("InvalidA", func(t *testing.T) { + _, err := CompareVersions(invalid, v13) + assert.ErrorAs(t, err, &targetErr) + }) + t.Run("InvalidB", func(t *testing.T) { + _, err := CompareVersions(v13, invalid) + assert.ErrorAs(t, err, &targetErr) + }) + t.Run("Equal", func(t *testing.T) { + c, err := CompareVersions(v12, v12) + assert.NoError(t, err) + assert.Equal(t, EqualTo, c) + }) + t.Run("LessThan", func(t *testing.T) { + c, err := CompareVersions(v12, v13) + assert.NoError(t, err) + assert.Equal(t, LessThan, c) + }) + t.Run("GreaterThan", func(t *testing.T) { + c, err := CompareVersions(v13, v12) + assert.NoError(t, err) + assert.Equal(t, GreaterThan, c) + }) +} From 2b4bcfa7761950d1bc1113ae8c2d81fbb5fe3262 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 14:53:26 -0700 Subject: [PATCH 08/14] Test the registry --- sdk/resource/internal/schema/registry.go | 2 +- sdk/resource/internal/schema/registry_test.go | 65 +++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 sdk/resource/internal/schema/registry_test.go diff --git a/sdk/resource/internal/schema/registry.go b/sdk/resource/internal/schema/registry.go index ceed92ebf26..12a535af32b 100644 --- a/sdk/resource/internal/schema/registry.go +++ b/sdk/resource/internal/schema/registry.go @@ -44,7 +44,7 @@ func (c *cache) lookup(key string, f func() (*ast.Schema, error)) (*ast.Schema, if err != nil { return nil, err } - c.data = map[string]*ast.Schema{key: s} + c.data[key] = s return s, nil } diff --git a/sdk/resource/internal/schema/registry_test.go b/sdk/resource/internal/schema/registry_test.go new file mode 100644 index 00000000000..80a3c09abbd --- /dev/null +++ b/sdk/resource/internal/schema/registry_test.go @@ -0,0 +1,65 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package schema + +import ( + "context" + "fmt" + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/schema/v1.1/ast" +) + +var ( + schemaURL = "https://opentelemetry.io/schemas/1.0.0" + schemaYAML = ` +file_format: 1.1.0 +schema_url: ` + schemaURL + ` +versions: + 1.0.0: +` +) + +func TestRegistryGet(t *testing.T) { + msg := new(string) + *msg = schemaYAML + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + fmt.Fprintln(w, *msg) + })) + t.Cleanup(ts.Close) + + ctx := context.Background() + reg := NewRegistry(ts.Client()) + + assertGet := func(s *ast.Schema, err error) { + t.Helper() + require.NoError(t, err) + require.NotNil(t, s) + assert.Equal(t, schemaURL, s.SchemaURL) + } + + assertGet(reg.Get(ctx, ts.URL)) + + // Cache miss. + assertGet(reg.Get(ctx, ts.URL+"/extra")) + + // Cache hit. This will fail to parse if the HTTP request is actually made. + *msg = "first" + assertGet(reg.Get(ctx, ts.URL)) +} From c810e523a58cc4218e71766260e1c3d818f11bc3 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 15:03:46 -0700 Subject: [PATCH 09/14] Comment comparisons --- sdk/resource/internal/schema/compare.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sdk/resource/internal/schema/compare.go b/sdk/resource/internal/schema/compare.go index 517c30a3339..cefc5184039 100644 --- a/sdk/resource/internal/schema/compare.go +++ b/sdk/resource/internal/schema/compare.go @@ -22,12 +22,18 @@ import ( "github.com/Masterminds/semver/v3" ) +// Comparison is the result of comparing two things. type Comparison uint8 const ( + // invalidComparison is an invalid comparison, it should not be used. invalidComparison Comparison = iota + + // EqualTo is used to indicate two things are equal. EqualTo + // GreaterThan is used to indicate one thing is greater than another. GreaterThan + // LessThan is used to indicate one thing is less than another. LessThan ) From 06c87e13f94d1410a42a49f9d078f519c36cbbe6 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 15:04:12 -0700 Subject: [PATCH 10/14] Fix lint --- sdk/resource/internal/schema/convert.go | 3 ++- sdk/resource/internal/schema/convert_test.go | 1 + sdk/resource/internal/schema/registry_test.go | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/resource/internal/schema/convert.go b/sdk/resource/internal/schema/convert.go index 1e3acb77c64..c78aeafd3db 100644 --- a/sdk/resource/internal/schema/convert.go +++ b/sdk/resource/internal/schema/convert.go @@ -19,6 +19,7 @@ import ( "sort" "github.com/Masterminds/semver/v3" + "go.opentelemetry.io/otel/attribute" ast10 "go.opentelemetry.io/otel/schema/v1.0/ast" "go.opentelemetry.io/otel/schema/v1.1/ast" @@ -102,7 +103,7 @@ func (e *errTelemetryVer) Error() string { } // versions returns the sorted versions contained in schema. -func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.TelemetryVersion, error) { +func versions(schema *ast.Schema, min *semver.Version, reverse bool) ([]types.TelemetryVersion, error) { // nolint:revive // reverse controls a reversal. // The transformations specified in each version are applied one by one. // Order the versions to ensure correct application. versions := make([]*semver.Version, 0, len(schema.Versions)) diff --git a/sdk/resource/internal/schema/convert_test.go b/sdk/resource/internal/schema/convert_test.go index 9a1974d6dd2..f56700a39c9 100644 --- a/sdk/resource/internal/schema/convert_test.go +++ b/sdk/resource/internal/schema/convert_test.go @@ -19,6 +19,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/attribute" ast10 "go.opentelemetry.io/otel/schema/v1.0/ast" "go.opentelemetry.io/otel/schema/v1.1/ast" diff --git a/sdk/resource/internal/schema/registry_test.go b/sdk/resource/internal/schema/registry_test.go index 80a3c09abbd..22d032e3b54 100644 --- a/sdk/resource/internal/schema/registry_test.go +++ b/sdk/resource/internal/schema/registry_test.go @@ -23,6 +23,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "go.opentelemetry.io/otel/schema/v1.1/ast" ) From e26c21151cea9af65dc8e3caa46e42411f483a3b Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Wed, 29 Mar 2023 15:07:18 -0700 Subject: [PATCH 11/14] Run go mod tidy --- bridge/opencensus/go.mod | 3 +++ bridge/opencensus/go.sum | 4 ++++ bridge/opencensus/test/go.mod | 4 ++++ bridge/opencensus/test/go.sum | 9 +++++++++ example/fib/go.mod | 3 +++ example/fib/go.sum | 6 ++++++ example/jaeger/go.mod | 3 +++ example/jaeger/go.sum | 6 ++++++ example/namedtracer/go.mod | 3 +++ example/namedtracer/go.sum | 6 ++++++ example/opencensus/go.mod | 4 ++++ example/opencensus/go.sum | 9 +++++++++ example/otel-collector/go.mod | 3 +++ example/otel-collector/go.sum | 7 +++++++ example/passthrough/go.mod | 3 +++ example/passthrough/go.sum | 6 ++++++ example/prometheus/go.mod | 3 +++ example/prometheus/go.sum | 6 ++++++ example/view/go.mod | 3 +++ example/view/go.sum | 6 ++++++ example/zipkin/go.mod | 3 +++ example/zipkin/go.sum | 6 ++++++ exporters/jaeger/go.mod | 3 +++ exporters/jaeger/go.sum | 4 ++++ exporters/otlp/otlpmetric/go.mod | 3 +++ exporters/otlp/otlpmetric/go.sum | 4 ++++ exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod | 3 +++ exporters/otlp/otlpmetric/otlpmetricgrpc/go.sum | 4 ++++ exporters/otlp/otlpmetric/otlpmetrichttp/go.mod | 3 +++ exporters/otlp/otlpmetric/otlpmetrichttp/go.sum | 4 ++++ exporters/otlp/otlptrace/go.mod | 3 +++ exporters/otlp/otlptrace/go.sum | 4 ++++ exporters/otlp/otlptrace/otlptracegrpc/go.mod | 3 +++ exporters/otlp/otlptrace/otlptracegrpc/go.sum | 4 ++++ exporters/otlp/otlptrace/otlptracehttp/go.mod | 3 +++ exporters/otlp/otlptrace/otlptracehttp/go.sum | 4 ++++ exporters/prometheus/go.mod | 3 +++ exporters/prometheus/go.sum | 3 +++ exporters/stdout/stdoutmetric/go.mod | 3 +++ exporters/stdout/stdoutmetric/go.sum | 4 ++++ exporters/stdout/stdouttrace/go.mod | 3 +++ exporters/stdout/stdouttrace/go.sum | 4 ++++ exporters/zipkin/go.mod | 3 +++ exporters/zipkin/go.sum | 4 ++++ sdk/metric/go.mod | 3 +++ sdk/metric/go.sum | 4 ++++ sdk/resource/internal/schema/compare.go | 2 +- sdk/resource/internal/schema/convert.go | 2 +- sdk/resource/internal/schema/registry.go | 2 +- 49 files changed, 192 insertions(+), 3 deletions(-) diff --git a/bridge/opencensus/go.mod b/bridge/opencensus/go.mod index 26af92dd1f4..760dcde2b5d 100644 --- a/bridge/opencensus/go.mod +++ b/bridge/opencensus/go.mod @@ -12,6 +12,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -19,8 +20,10 @@ require ( github.com/kr/pretty v0.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/bridge/opencensus/go.sum b/bridge/opencensus/go.sum index ba8b1f1e710..26e18175892 100644 --- a/bridge/opencensus/go.sum +++ b/bridge/opencensus/go.sum @@ -1,5 +1,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= @@ -106,6 +108,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/bridge/opencensus/test/go.mod b/bridge/opencensus/test/go.mod index abec8d990d7..2ad574d1c2d 100644 --- a/bridge/opencensus/test/go.mod +++ b/bridge/opencensus/test/go.mod @@ -11,12 +11,16 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect + github.com/kr/text v0.2.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/sdk/metric v0.38.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel => ../../.. diff --git a/bridge/opencensus/test/go.sum b/bridge/opencensus/test/go.sum index 90708c7e17c..726877fcffe 100644 --- a/bridge/opencensus/test/go.sum +++ b/bridge/opencensus/test/go.sum @@ -1,8 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -36,6 +39,9 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -98,6 +104,9 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/example/fib/go.mod b/example/fib/go.mod index 9cdcb19cab2..caa6d3707c8 100644 --- a/example/fib/go.mod +++ b/example/fib/go.mod @@ -10,10 +10,13 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel => ../.. diff --git a/example/fib/go.sum b/example/fib/go.sum index 4e20825039b..8846550f0cf 100644 --- a/example/fib/go.sum +++ b/example/fib/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= @@ -9,4 +11,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/example/jaeger/go.mod b/example/jaeger/go.mod index 214cf7af5d4..bcee8c2e030 100644 --- a/example/jaeger/go.mod +++ b/example/jaeger/go.mod @@ -15,11 +15,14 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel/trace => ../../trace diff --git a/example/jaeger/go.sum b/example/jaeger/go.sum index 98ab5a86343..62494bb6ae8 100644 --- a/example/jaeger/go.sum +++ b/example/jaeger/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= @@ -10,4 +12,8 @@ github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/example/namedtracer/go.mod b/example/namedtracer/go.mod index a4b4839237e..9e77569bc00 100644 --- a/example/namedtracer/go.mod +++ b/example/namedtracer/go.mod @@ -16,9 +16,12 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel/trace => ../../trace diff --git a/example/namedtracer/go.sum b/example/namedtracer/go.sum index 4e20825039b..8846550f0cf 100644 --- a/example/namedtracer/go.sum +++ b/example/namedtracer/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= @@ -9,4 +11,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/example/opencensus/go.mod b/example/opencensus/go.mod index 7fb936bcd1d..669c7aecc3b 100644 --- a/example/opencensus/go.mod +++ b/example/opencensus/go.mod @@ -19,12 +19,16 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect + github.com/kr/text v0.2.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel/metric => ../../metric diff --git a/example/opencensus/go.sum b/example/opencensus/go.sum index 90708c7e17c..726877fcffe 100644 --- a/example/opencensus/go.sum +++ b/example/opencensus/go.sum @@ -1,8 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -36,6 +39,9 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -98,6 +104,9 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/example/otel-collector/go.mod b/example/otel-collector/go.mod index 2488695a2f4..83a209b98b8 100644 --- a/example/otel-collector/go.mod +++ b/example/otel-collector/go.mod @@ -16,6 +16,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -24,12 +25,14 @@ require ( go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.0-rc.2 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.0-rc.2 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel/trace => ../../trace diff --git a/example/otel-collector/go.sum b/example/otel-collector/go.sum index 98b0e3f6a6d..954b52e4a21 100644 --- a/example/otel-collector/go.sum +++ b/example/otel-collector/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -133,8 +135,10 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -412,10 +416,13 @@ google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/example/passthrough/go.mod b/example/passthrough/go.mod index 3124ca5c3b4..7b52275786a 100644 --- a/example/passthrough/go.mod +++ b/example/passthrough/go.mod @@ -10,10 +10,13 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace ( diff --git a/example/passthrough/go.sum b/example/passthrough/go.sum index 4e20825039b..8846550f0cf 100644 --- a/example/passthrough/go.sum +++ b/example/passthrough/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= @@ -9,4 +11,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/example/prometheus/go.mod b/example/prometheus/go.mod index e033c4ec7ce..ab77004434c 100644 --- a/example/prometheus/go.mod +++ b/example/prometheus/go.mod @@ -11,6 +11,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -20,10 +21,12 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/sdk v1.15.0-rc.2 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel => ../.. diff --git a/example/prometheus/go.sum b/example/prometheus/go.sum index b8f7d6fc360..8986737aaf6 100644 --- a/example/prometheus/go.sum +++ b/example/prometheus/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -145,8 +147,10 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -465,6 +469,7 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -472,6 +477,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/example/view/go.mod b/example/view/go.mod index 1422b07b107..943c4e47029 100644 --- a/example/view/go.mod +++ b/example/view/go.mod @@ -12,6 +12,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -21,9 +22,11 @@ require ( github.com/prometheus/client_model v0.3.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel => ../.. diff --git a/example/view/go.sum b/example/view/go.sum index b8f7d6fc360..8986737aaf6 100644 --- a/example/view/go.sum +++ b/example/view/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -145,8 +147,10 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -465,6 +469,7 @@ google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -472,6 +477,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/example/zipkin/go.mod b/example/zipkin/go.mod index 47ec66e1642..bf892bdb688 100644 --- a/example/zipkin/go.mod +++ b/example/zipkin/go.mod @@ -16,11 +16,14 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/openzipkin/zipkin-go v0.4.1 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect ) replace go.opentelemetry.io/otel/trace => ../../trace diff --git a/example/zipkin/go.sum b/example/zipkin/go.sum index dc3a56e7fa0..539147dc945 100644 --- a/example/zipkin/go.sum +++ b/example/zipkin/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= @@ -11,4 +13,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/exporters/jaeger/go.mod b/exporters/jaeger/go.mod index 2586473d048..e574ff76a56 100644 --- a/exporters/jaeger/go.mod +++ b/exporters/jaeger/go.mod @@ -13,11 +13,14 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/objx v0.5.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/jaeger/go.sum b/exporters/jaeger/go.sum index 307ecdbf9da..09528c1a608 100644 --- a/exporters/jaeger/go.sum +++ b/exporters/jaeger/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -22,6 +24,8 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlpmetric/go.mod b/exporters/otlp/otlpmetric/go.mod index 1030dc027ea..bf573b19452 100644 --- a/exporters/otlp/otlpmetric/go.mod +++ b/exporters/otlp/otlpmetric/go.mod @@ -15,6 +15,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -23,11 +24,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlpmetric/go.sum b/exporters/otlp/otlpmetric/go.sum index 99e27b232c5..d42bba8d70e 100644 --- a/exporters/otlp/otlpmetric/go.sum +++ b/exporters/otlp/otlpmetric/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -425,6 +427,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod index 55ca76efebe..500c0496f79 100644 --- a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod @@ -17,6 +17,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -26,11 +27,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/sdk v1.15.0-rc.2 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.sum b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.sum index 99e27b232c5..d42bba8d70e 100644 --- a/exporters/otlp/otlpmetric/otlpmetricgrpc/go.sum +++ b/exporters/otlp/otlpmetric/otlpmetricgrpc/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -425,6 +427,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod index d99e1d162ff..29be94ec4a4 100644 --- a/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod +++ b/exporters/otlp/otlpmetric/otlpmetrichttp/go.mod @@ -15,6 +15,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -24,6 +25,7 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/sdk v1.15.0-rc.2 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/net v0.8.0 // indirect @@ -31,6 +33,7 @@ require ( golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect google.golang.org/grpc v1.54.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlpmetric/otlpmetrichttp/go.sum b/exporters/otlp/otlpmetric/otlpmetrichttp/go.sum index 99e27b232c5..d42bba8d70e 100644 --- a/exporters/otlp/otlpmetric/otlpmetrichttp/go.sum +++ b/exporters/otlp/otlpmetric/otlpmetrichttp/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -425,6 +427,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlptrace/go.mod b/exporters/otlp/otlptrace/go.mod index f0f3bba788b..03435f61a57 100644 --- a/exporters/otlp/otlptrace/go.mod +++ b/exporters/otlp/otlptrace/go.mod @@ -15,6 +15,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -23,10 +24,12 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlptrace/go.sum b/exporters/otlp/otlptrace/go.sum index 99e27b232c5..d42bba8d70e 100644 --- a/exporters/otlp/otlptrace/go.sum +++ b/exporters/otlp/otlptrace/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -425,6 +427,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlptrace/otlptracegrpc/go.mod b/exporters/otlp/otlptrace/otlptracegrpc/go.mod index 4c5453a6719..fb308e9d273 100644 --- a/exporters/otlp/otlptrace/otlptracegrpc/go.mod +++ b/exporters/otlp/otlptrace/otlptracegrpc/go.mod @@ -16,6 +16,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -24,10 +25,12 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlptrace/otlptracegrpc/go.sum b/exporters/otlp/otlptrace/otlptracegrpc/go.sum index 88dad9cce31..423238174e1 100644 --- a/exporters/otlp/otlptrace/otlptracegrpc/go.sum +++ b/exporters/otlp/otlptrace/otlptracegrpc/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -426,6 +428,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/otlp/otlptrace/otlptracehttp/go.mod b/exporters/otlp/otlptrace/otlptracehttp/go.mod index aec5973844a..8dd73b28f7d 100644 --- a/exporters/otlp/otlptrace/otlptracehttp/go.mod +++ b/exporters/otlp/otlptrace/otlptracehttp/go.mod @@ -14,6 +14,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect @@ -22,11 +23,13 @@ require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect google.golang.org/grpc v1.54.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/otlp/otlptrace/otlptracehttp/go.sum b/exporters/otlp/otlptrace/otlptracehttp/go.sum index 845833c2eaf..e0d4f855524 100644 --- a/exporters/otlp/otlptrace/otlptracehttp/go.sum +++ b/exporters/otlp/otlptrace/otlptracehttp/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= @@ -424,6 +426,8 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/prometheus/go.mod b/exporters/prometheus/go.mod index e753be0f8c6..9e74825b6ca 100644 --- a/exporters/prometheus/go.mod +++ b/exporters/prometheus/go.mod @@ -14,6 +14,7 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -24,8 +25,10 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/common v0.37.0 // indirect github.com/prometheus/procfs v0.8.0 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/prometheus/go.sum b/exporters/prometheus/go.sum index a0d5b14a1f9..5f18ca123de 100644 --- a/exporters/prometheus/go.sum +++ b/exporters/prometheus/go.sum @@ -33,6 +33,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -480,6 +482,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/exporters/stdout/stdoutmetric/go.mod b/exporters/stdout/stdoutmetric/go.mod index 90e6e5043ef..15680d55669 100644 --- a/exporters/stdout/stdoutmetric/go.mod +++ b/exporters/stdout/stdoutmetric/go.mod @@ -10,13 +10,16 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/stdout/stdoutmetric/go.sum b/exporters/stdout/stdoutmetric/go.sum index 2a214113b99..8df546adc59 100644 --- a/exporters/stdout/stdoutmetric/go.sum +++ b/exporters/stdout/stdoutmetric/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -20,6 +22,8 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/stdout/stdouttrace/go.mod b/exporters/stdout/stdouttrace/go.mod index aa71454aa38..f230bdd2028 100644 --- a/exporters/stdout/stdouttrace/go.mod +++ b/exporters/stdout/stdouttrace/go.mod @@ -15,12 +15,15 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/stdout/stdouttrace/go.sum b/exporters/stdout/stdouttrace/go.sum index 2a214113b99..8df546adc59 100644 --- a/exporters/stdout/stdouttrace/go.sum +++ b/exporters/stdout/stdouttrace/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -20,6 +22,8 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/exporters/zipkin/go.mod b/exporters/zipkin/go.mod index ab7facc2fe7..a66a622a2cb 100644 --- a/exporters/zipkin/go.mod +++ b/exporters/zipkin/go.mod @@ -14,10 +14,13 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.opentelemetry.io/otel/metric v1.15.0-rc.2 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/exporters/zipkin/go.sum b/exporters/zipkin/go.sum index bd17a1b6bc9..dcb6d8da879 100644 --- a/exporters/zipkin/go.sum +++ b/exporters/zipkin/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -23,6 +25,8 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/metric/go.mod b/sdk/metric/go.mod index ab72bef14fc..b04c6ad840f 100644 --- a/sdk/metric/go.mod +++ b/sdk/metric/go.mod @@ -11,11 +11,14 @@ require ( ) require ( + github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + go.opentelemetry.io/otel/schema v0.0.4 // indirect go.opentelemetry.io/otel/trace v1.15.0-rc.2 // indirect golang.org/x/sys v0.6.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/sdk/metric/go.sum b/sdk/metric/go.sum index 2a214113b99..8df546adc59 100644 --- a/sdk/metric/go.sum +++ b/sdk/metric/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -20,6 +22,8 @@ golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/resource/internal/schema/compare.go b/sdk/resource/internal/schema/compare.go index cefc5184039..99d28e68c16 100644 --- a/sdk/resource/internal/schema/compare.go +++ b/sdk/resource/internal/schema/compare.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package schema +package schema // import "go.opentelemetry.io/otel/sdk/resource/internal/schema" import ( "fmt" diff --git a/sdk/resource/internal/schema/convert.go b/sdk/resource/internal/schema/convert.go index c78aeafd3db..18dfc6a3bae 100644 --- a/sdk/resource/internal/schema/convert.go +++ b/sdk/resource/internal/schema/convert.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package schema +package schema // import "go.opentelemetry.io/otel/sdk/resource/internal/schema" import ( "fmt" diff --git a/sdk/resource/internal/schema/registry.go b/sdk/resource/internal/schema/registry.go index 12a535af32b..adc3c2bfafa 100644 --- a/sdk/resource/internal/schema/registry.go +++ b/sdk/resource/internal/schema/registry.go @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package schema +package schema // import "go.opentelemetry.io/otel/sdk/resource/internal/schema" import ( "context" From 6fd5288e9e72897f01cea2fd30947ac5de362abc Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Thu, 30 Mar 2023 12:26:16 -0700 Subject: [PATCH 12/14] Add warning to exported funcs --- sdk/resource/resource.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sdk/resource/resource.go b/sdk/resource/resource.go index 76687d63eba..a59ecd62525 100644 --- a/sdk/resource/resource.go +++ b/sdk/resource/resource.go @@ -131,6 +131,9 @@ func (r *Resource) SchemaURL() string { // WithSchemaURL returns a copy of r with the schema URL set to url and all // attributes transformed based on the associated schema. If the schema // transformation fails, or url is empty, an error is returned. +// +// Warning: This will fetch url and then parse the response. It is the callers +// responsibility to ensure the request will return a safe schema definition. func (r *Resource) WithSchemaURL(ctx context.Context, url string) (*Resource, error) { return r.withSchemaURL(ctx, schema.NewRegistry(nil), url) } @@ -258,6 +261,10 @@ func Merge(a, b *Resource) (*Resource, error) { // Any of the resources not already at schemaURL version will be appropriately // upgraded or downgraded to match the version. An error is returned if this is // not possible. +// +// Warning: This will fetch schemaURL and all the schema URLs of resources and +// then parse the response. It is the callers responsibility to ensure these +// URLs will return safe schema definitions. func MergeAt(ctx context.Context, schemaURL string, resources ...*Resource) (*Resource, error) { reg := schema.NewRegistry(nil) merged := NewWithAttributes(schemaURL) From b3b3bd67dea7236dbbc4b42ab267cc7fae16c1b1 Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Thu, 30 Mar 2023 12:42:33 -0700 Subject: [PATCH 13/14] Update example tests to use MergeAt --- .../otlptrace/otlptracehttp/example_test.go | 22 ++++++++++++++----- exporters/stdout/stdouttrace/example_test.go | 22 ++++++++++++++----- sdk/metric/example_test.go | 16 +++++++++++--- 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/exporters/otlp/otlptrace/otlptracehttp/example_test.go b/exporters/otlp/otlptrace/otlptracehttp/example_test.go index 8682bbce30f..258bc181c86 100644 --- a/exporters/otlp/otlptrace/otlptracehttp/example_test.go +++ b/exporters/otlp/otlptrace/otlptracehttp/example_test.go @@ -57,11 +57,18 @@ func multiply(ctx context.Context, x, y int64) int64 { return x * y } -func newResource() *resource.Resource { - return resource.NewWithAttributes( +func newResource(ctx context.Context) (*resource.Resource, error) { + return resource.MergeAt( + ctx, + // Unify all resources to use this schema version. semconv.SchemaURL, - semconv.ServiceName("otlptrace-example"), - semconv.ServiceVersion("0.0.1"), + // Use OTel defaults as base and overwrite with our service info. + resource.Default(), + resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceName("otlptrace-example"), + semconv.ServiceVersion("0.0.1"), + ), ) } @@ -72,9 +79,14 @@ func installExportPipeline(ctx context.Context) (func(context.Context) error, er return nil, fmt.Errorf("creating OTLP trace exporter: %w", err) } + res, err := newResource(ctx) + if err != nil { + return nil, fmt.Errorf("creating resource: %w", err) + } + tracerProvider := sdktrace.NewTracerProvider( sdktrace.WithBatcher(exporter), - sdktrace.WithResource(newResource()), + sdktrace.WithResource(res), ) otel.SetTracerProvider(tracerProvider) diff --git a/exporters/stdout/stdouttrace/example_test.go b/exporters/stdout/stdouttrace/example_test.go index 0864fbadeca..160e1d666b9 100644 --- a/exporters/stdout/stdouttrace/example_test.go +++ b/exporters/stdout/stdouttrace/example_test.go @@ -56,11 +56,18 @@ func multiply(ctx context.Context, x, y int64) int64 { return x * y } -func Resource() *resource.Resource { - return resource.NewWithAttributes( +func Resource(ctx context.Context) (*resource.Resource, error) { + return resource.MergeAt( + ctx, + // Unify all resources to use this schema version. semconv.SchemaURL, - semconv.ServiceName("stdout-example"), - semconv.ServiceVersion("0.0.1"), + // Use OTel defaults as base and overwrite with our service info. + resource.Default(), + resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceName("stdout-example"), + semconv.ServiceVersion("0.0.1"), + ), ) } @@ -70,9 +77,14 @@ func InstallExportPipeline(ctx context.Context) (func(context.Context) error, er return nil, fmt.Errorf("creating stdout exporter: %w", err) } + res, err := Resource(ctx) + if err != nil { + return nil, fmt.Errorf("creating resource: %w", err) + } + tracerProvider := sdktrace.NewTracerProvider( sdktrace.WithBatcher(exporter), - sdktrace.WithResource(Resource()), + sdktrace.WithResource(res), ) otel.SetTracerProvider(tracerProvider) diff --git a/sdk/metric/example_test.go b/sdk/metric/example_test.go index 0086dba7687..60d4be4e674 100644 --- a/sdk/metric/example_test.go +++ b/sdk/metric/example_test.go @@ -32,11 +32,21 @@ func Example() { // See the go.opentelemetry.io/otel/sdk/resource package for more // information about how to create and use Resources. - res := resource.NewWithAttributes( + res, err := resource.MergeAt( + context.Background(), + // Unify all resources to use this schema version. semconv.SchemaURL, - semconv.ServiceName("my-service"), - semconv.ServiceVersion("v0.1.0"), + // Use OTel defaults as base and overwrite with our service info. + resource.Default(), + resource.NewWithAttributes( + semconv.SchemaURL, + semconv.ServiceName("my-service"), + semconv.ServiceVersion("v0.1.0"), + ), ) + if err != nil { + log.Fatal(err) + } meterProvider := metric.NewMeterProvider( metric.WithResource(res), From 6141e707578afe1b76eec624a37c1174149c5dbe Mon Sep 17 00:00:00 2001 From: Tyler Yahn Date: Thu, 30 Mar 2023 12:47:39 -0700 Subject: [PATCH 14/14] Add changes to changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc30053118d..4ee19cd4f4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] +### Added + +- The `WithSchemaURL` method is added to the `Resource` in `go.opentelemetry.io/otel/sdk/resource`. + This method is used to return a copy of the `Resource` upgraded or downgraded to the specified OpenTelemetry semantic convention schema version. (#3944) +- The `MergeAt` function is added to `go.opentelemetry.io/otel/sdk/resource`. + This function merges a group of `Resource`s into one `Resource` that uses the specified OpenTelemetry semantic convention schema version. + All the passed `Resource`s are either upgraded or downgraded using OpenTelemetry semantic convention schema depending on their relative version. (#3944) + ### Changed - The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870)