summaryrefslogtreecommitdiffstats
path: root/vendor/go.opentelemetry.io/otel
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/go.opentelemetry.io/otel')
-rw-r--r--vendor/go.opentelemetry.io/otel/LICENSE201
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/doc.go20
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/encoder.go150
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/iterator.go143
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/key.go102
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/kv.go108
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/set.go471
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/type_string.go28
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/value.go204
-rw-r--r--vendor/go.opentelemetry.io/otel/codes/codes.go106
-rw-r--r--vendor/go.opentelemetry.io/otel/codes/doc.go25
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/baggage/baggage.go338
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/global/meter.go348
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/global/propagator.go82
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/global/state.go143
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/global/trace.go147
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/rawhelpers.go55
-rw-r--r--vendor/go.opentelemetry.io/otel/internal/trace/noop/noop.go35
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/LICENSE201
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/config.go128
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/doc.go67
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/global/metric.go49
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/go.mod54
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/go.sum15
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/instrumentkind_string.go28
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/metric.go577
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/metric_instrument.go777
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/metric_noop.go59
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/metric_sdkapi.go95
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/number/doc.go23
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/number/kind_string.go24
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/number/number.go538
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/registry/doc.go24
-rw-r--r--vendor/go.opentelemetry.io/otel/metric/registry/registry.go170
-rw-r--r--vendor/go.opentelemetry.io/otel/propagation/baggage.go111
-rw-r--r--vendor/go.opentelemetry.io/otel/propagation/doc.go28
-rw-r--r--vendor/go.opentelemetry.io/otel/propagation/propagation.go105
-rw-r--r--vendor/go.opentelemetry.io/otel/propagation/trace_context.go178
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/LICENSE201
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/config.go205
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/context.go61
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/doc.go70
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/go.mod53
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/go.sum15
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/nonrecording.go27
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/noop.go84
-rw-r--r--vendor/go.opentelemetry.io/otel/trace/trace.go673
-rw-r--r--vendor/go.opentelemetry.io/otel/unit/doc.go20
-rw-r--r--vendor/go.opentelemetry.io/otel/unit/unit.go23
49 files changed, 0 insertions, 7389 deletions
diff --git a/vendor/go.opentelemetry.io/otel/LICENSE b/vendor/go.opentelemetry.io/otel/LICENSE
deleted file mode 100644
index 261eeb9e9f..0000000000
--- a/vendor/go.opentelemetry.io/otel/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/vendor/go.opentelemetry.io/otel/attribute/doc.go b/vendor/go.opentelemetry.io/otel/attribute/doc.go
deleted file mode 100644
index 44bc32c9e0..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/doc.go
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 attribute provides key and value attributes.
-//
-// This package is currently in a pre-GA phase. Backwards incompatible changes
-// may be introduced in subsequent minor version releases as we work to track
-// the evolving OpenTelemetry specification and user feedback.
-package attribute // import "go.opentelemetry.io/otel/attribute"
diff --git a/vendor/go.opentelemetry.io/otel/attribute/encoder.go b/vendor/go.opentelemetry.io/otel/attribute/encoder.go
deleted file mode 100644
index 8b940f78dc..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/encoder.go
+++ /dev/null
@@ -1,150 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "bytes"
- "sync"
- "sync/atomic"
-)
-
-type (
- // Encoder is a mechanism for serializing a label set into a
- // specific string representation that supports caching, to
- // avoid repeated serialization. An example could be an
- // exporter encoding the label set into a wire representation.
- Encoder interface {
- // Encode returns the serialized encoding of the label
- // set using its Iterator. This result may be cached
- // by a attribute.Set.
- Encode(iterator Iterator) string
-
- // ID returns a value that is unique for each class of
- // label encoder. Label encoders allocate these using
- // `NewEncoderID`.
- ID() EncoderID
- }
-
- // EncoderID is used to identify distinct Encoder
- // implementations, for caching encoded results.
- EncoderID struct {
- value uint64
- }
-
- // defaultLabelEncoder uses a sync.Pool of buffers to reduce
- // the number of allocations used in encoding labels. This
- // implementation encodes a comma-separated list of key=value,
- // with '/'-escaping of '=', ',', and '\'.
- defaultLabelEncoder struct {
- // pool is a pool of labelset builders. The buffers in this
- // pool grow to a size that most label encodings will not
- // allocate new memory.
- pool sync.Pool // *bytes.Buffer
- }
-)
-
-// escapeChar is used to ensure uniqueness of the label encoding where
-// keys or values contain either '=' or ','. Since there is no parser
-// needed for this encoding and its only requirement is to be unique,
-// this choice is arbitrary. Users will see these in some exporters
-// (e.g., stdout), so the backslash ('\') is used as a conventional choice.
-const escapeChar = '\\'
-
-var (
- _ Encoder = &defaultLabelEncoder{}
-
- // encoderIDCounter is for generating IDs for other label
- // encoders.
- encoderIDCounter uint64
-
- defaultEncoderOnce sync.Once
- defaultEncoderID = NewEncoderID()
- defaultEncoderInstance *defaultLabelEncoder
-)
-
-// NewEncoderID returns a unique label encoder ID. It should be
-// called once per each type of label encoder. Preferably in init() or
-// in var definition.
-func NewEncoderID() EncoderID {
- return EncoderID{value: atomic.AddUint64(&encoderIDCounter, 1)}
-}
-
-// DefaultEncoder returns a label encoder that encodes labels
-// in such a way that each escaped label's key is followed by an equal
-// sign and then by an escaped label's value. All key-value pairs are
-// separated by a comma.
-//
-// Escaping is done by prepending a backslash before either a
-// backslash, equal sign or a comma.
-func DefaultEncoder() Encoder {
- defaultEncoderOnce.Do(func() {
- defaultEncoderInstance = &defaultLabelEncoder{
- pool: sync.Pool{
- New: func() interface{} {
- return &bytes.Buffer{}
- },
- },
- }
- })
- return defaultEncoderInstance
-}
-
-// Encode is a part of an implementation of the LabelEncoder
-// interface.
-func (d *defaultLabelEncoder) Encode(iter Iterator) string {
- buf := d.pool.Get().(*bytes.Buffer)
- defer d.pool.Put(buf)
- buf.Reset()
-
- for iter.Next() {
- i, keyValue := iter.IndexedLabel()
- if i > 0 {
- _, _ = buf.WriteRune(',')
- }
- copyAndEscape(buf, string(keyValue.Key))
-
- _, _ = buf.WriteRune('=')
-
- if keyValue.Value.Type() == STRING {
- copyAndEscape(buf, keyValue.Value.AsString())
- } else {
- _, _ = buf.WriteString(keyValue.Value.Emit())
- }
- }
- return buf.String()
-}
-
-// ID is a part of an implementation of the LabelEncoder interface.
-func (*defaultLabelEncoder) ID() EncoderID {
- return defaultEncoderID
-}
-
-// copyAndEscape escapes `=`, `,` and its own escape character (`\`),
-// making the default encoding unique.
-func copyAndEscape(buf *bytes.Buffer, val string) {
- for _, ch := range val {
- switch ch {
- case '=', ',', escapeChar:
- buf.WriteRune(escapeChar)
- }
- buf.WriteRune(ch)
- }
-}
-
-// Valid returns true if this encoder ID was allocated by
-// `NewEncoderID`. Invalid encoder IDs will not be cached.
-func (id EncoderID) Valid() bool {
- return id.value != 0
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/iterator.go b/vendor/go.opentelemetry.io/otel/attribute/iterator.go
deleted file mode 100644
index e03aabb62b..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/iterator.go
+++ /dev/null
@@ -1,143 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-// Iterator allows iterating over the set of labels in order,
-// sorted by key.
-type Iterator struct {
- storage *Set
- idx int
-}
-
-// MergeIterator supports iterating over two sets of labels while
-// eliminating duplicate values from the combined set. The first
-// iterator value takes precedence.
-type MergeIterator struct {
- one oneIterator
- two oneIterator
- current KeyValue
-}
-
-type oneIterator struct {
- iter Iterator
- done bool
- label KeyValue
-}
-
-// Next moves the iterator to the next position. Returns false if there
-// are no more labels.
-func (i *Iterator) Next() bool {
- i.idx++
- return i.idx < i.Len()
-}
-
-// Label returns current KeyValue. Must be called only after Next returns
-// true.
-func (i *Iterator) Label() KeyValue {
- kv, _ := i.storage.Get(i.idx)
- return kv
-}
-
-// Attribute is a synonym for Label().
-func (i *Iterator) Attribute() KeyValue {
- return i.Label()
-}
-
-// IndexedLabel returns current index and attribute. Must be called only
-// after Next returns true.
-func (i *Iterator) IndexedLabel() (int, KeyValue) {
- return i.idx, i.Label()
-}
-
-// Len returns a number of labels in the iterator's `*Set`.
-func (i *Iterator) Len() int {
- return i.storage.Len()
-}
-
-// ToSlice is a convenience function that creates a slice of labels
-// from the passed iterator. The iterator is set up to start from the
-// beginning before creating the slice.
-func (i *Iterator) ToSlice() []KeyValue {
- l := i.Len()
- if l == 0 {
- return nil
- }
- i.idx = -1
- slice := make([]KeyValue, 0, l)
- for i.Next() {
- slice = append(slice, i.Label())
- }
- return slice
-}
-
-// NewMergeIterator returns a MergeIterator for merging two label sets
-// Duplicates are resolved by taking the value from the first set.
-func NewMergeIterator(s1, s2 *Set) MergeIterator {
- mi := MergeIterator{
- one: makeOne(s1.Iter()),
- two: makeOne(s2.Iter()),
- }
- return mi
-}
-
-func makeOne(iter Iterator) oneIterator {
- oi := oneIterator{
- iter: iter,
- }
- oi.advance()
- return oi
-}
-
-func (oi *oneIterator) advance() {
- if oi.done = !oi.iter.Next(); !oi.done {
- oi.label = oi.iter.Label()
- }
-}
-
-// Next returns true if there is another label available.
-func (m *MergeIterator) Next() bool {
- if m.one.done && m.two.done {
- return false
- }
- if m.one.done {
- m.current = m.two.label
- m.two.advance()
- return true
- }
- if m.two.done {
- m.current = m.one.label
- m.one.advance()
- return true
- }
- if m.one.label.Key == m.two.label.Key {
- m.current = m.one.label // first iterator label value wins
- m.one.advance()
- m.two.advance()
- return true
- }
- if m.one.label.Key < m.two.label.Key {
- m.current = m.one.label
- m.one.advance()
- return true
- }
- m.current = m.two.label
- m.two.advance()
- return true
-}
-
-// Label returns the current value after Next() returns true.
-func (m *MergeIterator) Label() KeyValue {
- return m.current
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/key.go b/vendor/go.opentelemetry.io/otel/attribute/key.go
deleted file mode 100644
index 492c438a9f..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/key.go
+++ /dev/null
@@ -1,102 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-// Key represents the key part in key-value pairs. It's a string. The
-// allowed character set in the key depends on the use of the key.
-type Key string
-
-// Bool creates a KeyValue instance with a BOOL Value.
-//
-// If creating both key and a bool value at the same time, then
-// instead of calling Key(name).Bool(value) consider using a
-// convenience function provided by the api/key package -
-// key.Bool(name, value).
-func (k Key) Bool(v bool) KeyValue {
- return KeyValue{
- Key: k,
- Value: BoolValue(v),
- }
-}
-
-// Int64 creates a KeyValue instance with an INT64 Value.
-//
-// If creating both key and an int64 value at the same time, then
-// instead of calling Key(name).Int64(value) consider using a
-// convenience function provided by the api/key package -
-// key.Int64(name, value).
-func (k Key) Int64(v int64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Int64Value(v),
- }
-}
-
-// Float64 creates a KeyValue instance with a FLOAT64 Value.
-//
-// If creating both key and a float64 value at the same time, then
-// instead of calling Key(name).Float64(value) consider using a
-// convenience function provided by the api/key package -
-// key.Float64(name, value).
-func (k Key) Float64(v float64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Float64Value(v),
- }
-}
-
-// String creates a KeyValue instance with a STRING Value.
-//
-// If creating both key and a string value at the same time, then
-// instead of calling Key(name).String(value) consider using a
-// convenience function provided by the api/key package -
-// key.String(name, value).
-func (k Key) String(v string) KeyValue {
- return KeyValue{
- Key: k,
- Value: StringValue(v),
- }
-}
-
-// Int creates a KeyValue instance with an INT64 Value.
-//
-// If creating both key and an int value at the same time, then
-// instead of calling Key(name).Int(value) consider using a
-// convenience function provided by the api/key package -
-// key.Int(name, value).
-func (k Key) Int(v int) KeyValue {
- return KeyValue{
- Key: k,
- Value: IntValue(v),
- }
-}
-
-// Defined returns true for non-empty keys.
-func (k Key) Defined() bool {
- return len(k) != 0
-}
-
-// Array creates a KeyValue instance with a ARRAY Value.
-//
-// If creating both key and a array value at the same time, then
-// instead of calling Key(name).String(value) consider using a
-// convenience function provided by the api/key package -
-// key.Array(name, value).
-func (k Key) Array(v interface{}) KeyValue {
- return KeyValue{
- Key: k,
- Value: ArrayValue(v),
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/kv.go b/vendor/go.opentelemetry.io/otel/attribute/kv.go
deleted file mode 100644
index 2fcc8863f7..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/kv.go
+++ /dev/null
@@ -1,108 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "encoding/json"
- "fmt"
- "reflect"
-)
-
-// KeyValue holds a key and value pair.
-type KeyValue struct {
- Key Key
- Value Value
-}
-
-// Valid returns if kv is a valid OpenTelemetry attribute.
-func (kv KeyValue) Valid() bool {
- return kv.Key != "" && kv.Value.Type() != INVALID
-}
-
-// Bool creates a new key-value pair with a passed name and a bool
-// value.
-func Bool(k string, v bool) KeyValue {
- return Key(k).Bool(v)
-}
-
-// Int64 creates a new key-value pair with a passed name and an int64
-// value.
-func Int64(k string, v int64) KeyValue {
- return Key(k).Int64(v)
-}
-
-// Float64 creates a new key-value pair with a passed name and a float64
-// value.
-func Float64(k string, v float64) KeyValue {
- return Key(k).Float64(v)
-}
-
-// String creates a new key-value pair with a passed name and a string
-// value.
-func String(k, v string) KeyValue {
- return Key(k).String(v)
-}
-
-// Stringer creates a new key-value pair with a passed name and a string
-// value generated by the passed Stringer interface.
-func Stringer(k string, v fmt.Stringer) KeyValue {
- return Key(k).String(v.String())
-}
-
-// Int creates a new key-value pair instance with a passed name and
-// either an int32 or an int64 value, depending on whether the int
-// type is 32 or 64 bits wide.
-func Int(k string, v int) KeyValue {
- return Key(k).Int(v)
-}
-
-// Array creates a new key-value pair with a passed name and a array.
-// Only arrays of primitive type are supported.
-func Array(k string, v interface{}) KeyValue {
- return Key(k).Array(v)
-}
-
-// Any creates a new key-value pair instance with a passed name and
-// automatic type inference. This is slower, and not type-safe.
-func Any(k string, value interface{}) KeyValue {
- if value == nil {
- return String(k, "<nil>")
- }
-
- if stringer, ok := value.(fmt.Stringer); ok {
- return String(k, stringer.String())
- }
-
- rv := reflect.ValueOf(value)
-
- switch rv.Kind() {
- case reflect.Array, reflect.Slice:
- return Array(k, value)
- case reflect.Bool:
- return Bool(k, rv.Bool())
- case reflect.Int, reflect.Int8, reflect.Int16:
- return Int(k, int(rv.Int()))
- case reflect.Int64:
- return Int64(k, rv.Int())
- case reflect.Float64:
- return Float64(k, rv.Float())
- case reflect.String:
- return String(k, rv.String())
- }
- if b, err := json.Marshal(value); b != nil && err == nil {
- return String(k, string(b))
- }
- return String(k, fmt.Sprint(value))
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/set.go b/vendor/go.opentelemetry.io/otel/attribute/set.go
deleted file mode 100644
index 882dc112f7..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/set.go
+++ /dev/null
@@ -1,471 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "encoding/json"
- "reflect"
- "sort"
- "sync"
-)
-
-type (
- // Set is the representation for a distinct label set. It
- // manages an immutable set of labels, with an internal cache
- // for storing label encodings.
- //
- // This type supports the `Equivalent` method of comparison
- // using values of type `Distinct`.
- //
- // This type is used to implement:
- // 1. Metric labels
- // 2. Resource sets
- // 3. Correlation map (TODO)
- Set struct {
- equivalent Distinct
-
- lock sync.Mutex
- encoders [maxConcurrentEncoders]EncoderID
- encoded [maxConcurrentEncoders]string
- }
-
- // Distinct wraps a variable-size array of `KeyValue`,
- // constructed with keys in sorted order. This can be used as
- // a map key or for equality checking between Sets.
- Distinct struct {
- iface interface{}
- }
-
- // Filter supports removing certain labels from label sets.
- // When the filter returns true, the label will be kept in
- // the filtered label set. When the filter returns false, the
- // label is excluded from the filtered label set, and the
- // label instead appears in the `removed` list of excluded labels.
- Filter func(KeyValue) bool
-
- // Sortable implements `sort.Interface`, used for sorting
- // `KeyValue`. This is an exported type to support a
- // memory optimization. A pointer to one of these is needed
- // for the call to `sort.Stable()`, which the caller may
- // provide in order to avoid an allocation. See
- // `NewSetWithSortable()`.
- Sortable []KeyValue
-)
-
-var (
- // keyValueType is used in `computeDistinctReflect`.
- keyValueType = reflect.TypeOf(KeyValue{})
-
- // emptySet is returned for empty label sets.
- emptySet = &Set{
- equivalent: Distinct{
- iface: [0]KeyValue{},
- },
- }
-)
-
-const maxConcurrentEncoders = 3
-
-// EmptySet returns a reference to a Set with no elements.
-//
-// This is a convenience provided for optimized calling utility.
-func EmptySet() *Set {
- return emptySet
-}
-
-// reflect abbreviates `reflect.ValueOf`.
-func (d Distinct) reflect() reflect.Value {
- return reflect.ValueOf(d.iface)
-}
-
-// Valid returns true if this value refers to a valid `*Set`.
-func (d Distinct) Valid() bool {
- return d.iface != nil
-}
-
-// Len returns the number of labels in this set.
-func (l *Set) Len() int {
- if l == nil || !l.equivalent.Valid() {
- return 0
- }
- return l.equivalent.reflect().Len()
-}
-
-// Get returns the KeyValue at ordered position `idx` in this set.
-func (l *Set) Get(idx int) (KeyValue, bool) {
- if l == nil {
- return KeyValue{}, false
- }
- value := l.equivalent.reflect()
-
- if idx >= 0 && idx < value.Len() {
- // Note: The Go compiler successfully avoids an allocation for
- // the interface{} conversion here:
- return value.Index(idx).Interface().(KeyValue), true
- }
-
- return KeyValue{}, false
-}
-
-// Value returns the value of a specified key in this set.
-func (l *Set) Value(k Key) (Value, bool) {
- if l == nil {
- return Value{}, false
- }
- rValue := l.equivalent.reflect()
- vlen := rValue.Len()
-
- idx := sort.Search(vlen, func(idx int) bool {
- return rValue.Index(idx).Interface().(KeyValue).Key >= k
- })
- if idx >= vlen {
- return Value{}, false
- }
- keyValue := rValue.Index(idx).Interface().(KeyValue)
- if k == keyValue.Key {
- return keyValue.Value, true
- }
- return Value{}, false
-}
-
-// HasValue tests whether a key is defined in this set.
-func (l *Set) HasValue(k Key) bool {
- if l == nil {
- return false
- }
- _, ok := l.Value(k)
- return ok
-}
-
-// Iter returns an iterator for visiting the labels in this set.
-func (l *Set) Iter() Iterator {
- return Iterator{
- storage: l,
- idx: -1,
- }
-}
-
-// ToSlice returns the set of labels belonging to this set, sorted,
-// where keys appear no more than once.
-func (l *Set) ToSlice() []KeyValue {
- iter := l.Iter()
- return iter.ToSlice()
-}
-
-// Equivalent returns a value that may be used as a map key. The
-// Distinct type guarantees that the result will equal the equivalent
-// Distinct value of any label set with the same elements as this,
-// where sets are made unique by choosing the last value in the input
-// for any given key.
-func (l *Set) Equivalent() Distinct {
- if l == nil || !l.equivalent.Valid() {
- return emptySet.equivalent
- }
- return l.equivalent
-}
-
-// Equals returns true if the argument set is equivalent to this set.
-func (l *Set) Equals(o *Set) bool {
- return l.Equivalent() == o.Equivalent()
-}
-
-// Encoded returns the encoded form of this set, according to
-// `encoder`. The result will be cached in this `*Set`.
-func (l *Set) Encoded(encoder Encoder) string {
- if l == nil || encoder == nil {
- return ""
- }
-
- id := encoder.ID()
- if !id.Valid() {
- // Invalid IDs are not cached.
- return encoder.Encode(l.Iter())
- }
-
- var lookup *string
- l.lock.Lock()
- for idx := 0; idx < maxConcurrentEncoders; idx++ {
- if l.encoders[idx] == id {
- lookup = &l.encoded[idx]
- break
- }
- }
- l.lock.Unlock()
-
- if lookup != nil {
- return *lookup
- }
-
- r := encoder.Encode(l.Iter())
-
- l.lock.Lock()
- defer l.lock.Unlock()
-
- for idx := 0; idx < maxConcurrentEncoders; idx++ {
- if l.encoders[idx] == id {
- return l.encoded[idx]
- }
- if !l.encoders[idx].Valid() {
- l.encoders[idx] = id
- l.encoded[idx] = r
- return r
- }
- }
-
- // TODO: This is a performance cliff. Find a way for this to
- // generate a warning.
- return r
-}
-
-func empty() Set {
- return Set{
- equivalent: emptySet.equivalent,
- }
-}
-
-// NewSet returns a new `Set`. See the documentation for
-// `NewSetWithSortableFiltered` for more details.
-//
-// Except for empty sets, this method adds an additional allocation
-// compared with calls that include a `*Sortable`.
-func NewSet(kvs ...KeyValue) Set {
- // Check for empty set.
- if len(kvs) == 0 {
- return empty()
- }
- s, _ := NewSetWithSortableFiltered(kvs, new(Sortable), nil)
- return s //nolint
-}
-
-// NewSetWithSortable returns a new `Set`. See the documentation for
-// `NewSetWithSortableFiltered` for more details.
-//
-// This call includes a `*Sortable` option as a memory optimization.
-func NewSetWithSortable(kvs []KeyValue, tmp *Sortable) Set {
- // Check for empty set.
- if len(kvs) == 0 {
- return empty()
- }
- s, _ := NewSetWithSortableFiltered(kvs, tmp, nil)
- return s //nolint
-}
-
-// NewSetWithFiltered returns a new `Set`. See the documentation for
-// `NewSetWithSortableFiltered` for more details.
-//
-// This call includes a `Filter` to include/exclude label keys from
-// the return value. Excluded keys are returned as a slice of label
-// values.
-func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
- // Check for empty set.
- if len(kvs) == 0 {
- return empty(), nil
- }
- return NewSetWithSortableFiltered(kvs, new(Sortable), filter)
-}
-
-// NewSetWithSortableFiltered returns a new `Set`.
-//
-// Duplicate keys are eliminated by taking the last value. This
-// re-orders the input slice so that unique last-values are contiguous
-// at the end of the slice.
-//
-// This ensures the following:
-//
-// - Last-value-wins semantics
-// - Caller sees the reordering, but doesn't lose values
-// - Repeated call preserve last-value wins.
-//
-// Note that methods are defined on `*Set`, although this returns `Set`.
-// Callers can avoid memory allocations by:
-//
-// - allocating a `Sortable` for use as a temporary in this method
-// - allocating a `Set` for storing the return value of this
-// constructor.
-//
-// The result maintains a cache of encoded labels, by attribute.EncoderID.
-// This value should not be copied after its first use.
-//
-// The second `[]KeyValue` return value is a list of labels that were
-// excluded by the Filter (if non-nil).
-func NewSetWithSortableFiltered(kvs []KeyValue, tmp *Sortable, filter Filter) (Set, []KeyValue) {
- // Check for empty set.
- if len(kvs) == 0 {
- return empty(), nil
- }
-
- *tmp = kvs
-
- // Stable sort so the following de-duplication can implement
- // last-value-wins semantics.
- sort.Stable(tmp)
-
- *tmp = nil
-
- position := len(kvs) - 1
- offset := position - 1
-
- // The requirements stated above require that the stable
- // result be placed in the end of the input slice, while
- // overwritten values are swapped to the beginning.
- //
- // De-duplicate with last-value-wins semantics. Preserve
- // duplicate values at the beginning of the input slice.
- for ; offset >= 0; offset-- {
- if kvs[offset].Key == kvs[position].Key {
- continue
- }
- position--
- kvs[offset], kvs[position] = kvs[position], kvs[offset]
- }
- if filter != nil {
- return filterSet(kvs[position:], filter)
- }
- return Set{
- equivalent: computeDistinct(kvs[position:]),
- }, nil
-}
-
-// filterSet reorders `kvs` so that included keys are contiguous at
-// the end of the slice, while excluded keys precede the included keys.
-func filterSet(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
- var excluded []KeyValue
-
- // Move labels that do not match the filter so
- // they're adjacent before calling computeDistinct().
- distinctPosition := len(kvs)
-
- // Swap indistinct keys forward and distinct keys toward the
- // end of the slice.
- offset := len(kvs) - 1
- for ; offset >= 0; offset-- {
- if filter(kvs[offset]) {
- distinctPosition--
- kvs[offset], kvs[distinctPosition] = kvs[distinctPosition], kvs[offset]
- continue
- }
- }
- excluded = kvs[:distinctPosition]
-
- return Set{
- equivalent: computeDistinct(kvs[distinctPosition:]),
- }, excluded
-}
-
-// Filter returns a filtered copy of this `Set`. See the
-// documentation for `NewSetWithSortableFiltered` for more details.
-func (l *Set) Filter(re Filter) (Set, []KeyValue) {
- if re == nil {
- return Set{
- equivalent: l.equivalent,
- }, nil
- }
-
- // Note: This could be refactored to avoid the temporary slice
- // allocation, if it proves to be expensive.
- return filterSet(l.ToSlice(), re)
-}
-
-// computeDistinct returns a `Distinct` using either the fixed- or
-// reflect-oriented code path, depending on the size of the input.
-// The input slice is assumed to already be sorted and de-duplicated.
-func computeDistinct(kvs []KeyValue) Distinct {
- iface := computeDistinctFixed(kvs)
- if iface == nil {
- iface = computeDistinctReflect(kvs)
- }
- return Distinct{
- iface: iface,
- }
-}
-
-// computeDistinctFixed computes a `Distinct` for small slices. It
-// returns nil if the input is too large for this code path.
-func computeDistinctFixed(kvs []KeyValue) interface{} {
- switch len(kvs) {
- case 1:
- ptr := new([1]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 2:
- ptr := new([2]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 3:
- ptr := new([3]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 4:
- ptr := new([4]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 5:
- ptr := new([5]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 6:
- ptr := new([6]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 7:
- ptr := new([7]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 8:
- ptr := new([8]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 9:
- ptr := new([9]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- case 10:
- ptr := new([10]KeyValue)
- copy((*ptr)[:], kvs)
- return *ptr
- default:
- return nil
- }
-}
-
-// computeDistinctReflect computes a `Distinct` using reflection,
-// works for any size input.
-func computeDistinctReflect(kvs []KeyValue) interface{} {
- at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()
- for i, keyValue := range kvs {
- *(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue
- }
- return at.Interface()
-}
-
-// MarshalJSON returns the JSON encoding of the `*Set`.
-func (l *Set) MarshalJSON() ([]byte, error) {
- return json.Marshal(l.equivalent.iface)
-}
-
-// Len implements `sort.Interface`.
-func (l *Sortable) Len() int {
- return len(*l)
-}
-
-// Swap implements `sort.Interface`.
-func (l *Sortable) Swap(i, j int) {
- (*l)[i], (*l)[j] = (*l)[j], (*l)[i]
-}
-
-// Less implements `sort.Interface`.
-func (l *Sortable) Less(i, j int) bool {
- return (*l)[i].Key < (*l)[j].Key
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/type_string.go b/vendor/go.opentelemetry.io/otel/attribute/type_string.go
deleted file mode 100644
index 1f2c7dccfa..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/type_string.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// Code generated by "stringer -type=Type"; DO NOT EDIT.
-
-package attribute
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[INVALID-0]
- _ = x[BOOL-1]
- _ = x[INT64-2]
- _ = x[FLOAT64-3]
- _ = x[STRING-4]
- _ = x[ARRAY-5]
-}
-
-const _Type_name = "INVALIDBOOLINT64FLOAT64STRINGARRAY"
-
-var _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 34}
-
-func (i Type) String() string {
- if i < 0 || i >= Type(len(_Type_index)-1) {
- return "Type(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _Type_name[_Type_index[i]:_Type_index[i+1]]
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/value.go b/vendor/go.opentelemetry.io/otel/attribute/value.go
deleted file mode 100644
index 7b979409e3..0000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/value.go
+++ /dev/null
@@ -1,204 +0,0 @@
-// 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 attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "encoding/json"
- "fmt"
- "reflect"
- "strconv"
-
- "go.opentelemetry.io/otel/internal"
-)
-
-//go:generate stringer -type=Type
-
-// Type describes the type of the data Value holds.
-type Type int
-
-// Value represents the value part in key-value pairs.
-type Value struct {
- vtype Type
- numeric uint64
- stringly string
- // TODO Lazy value type?
-
- array interface{}
-}
-
-const (
- // INVALID is used for a Value with no value set.
- INVALID Type = iota
- // BOOL is a boolean Type Value.
- BOOL
- // INT64 is a 64-bit signed integral Type Value.
- INT64
- // FLOAT64 is a 64-bit floating point Type Value.
- FLOAT64
- // STRING is a string Type Value.
- STRING
- // ARRAY is an array Type Value used to store 1-dimensional slices or
- // arrays of bool, int, int32, int64, uint, uint32, uint64, float,
- // float32, float64, or string types.
- ARRAY
-)
-
-// BoolValue creates a BOOL Value.
-func BoolValue(v bool) Value {
- return Value{
- vtype: BOOL,
- numeric: internal.BoolToRaw(v),
- }
-}
-
-// Int64Value creates an INT64 Value.
-func Int64Value(v int64) Value {
- return Value{
- vtype: INT64,
- numeric: internal.Int64ToRaw(v),
- }
-}
-
-// Float64Value creates a FLOAT64 Value.
-func Float64Value(v float64) Value {
- return Value{
- vtype: FLOAT64,
- numeric: internal.Float64ToRaw(v),
- }
-}
-
-// StringValue creates a STRING Value.
-func StringValue(v string) Value {
- return Value{
- vtype: STRING,
- stringly: v,
- }
-}
-
-// IntValue creates an INT64 Value.
-func IntValue(v int) Value {
- return Int64Value(int64(v))
-}
-
-// ArrayValue creates an ARRAY value from an array or slice.
-// Only arrays or slices of bool, int, int64, float, float64, or string types are allowed.
-// Specifically, arrays and slices can not contain other arrays, slices, structs, or non-standard
-// types. If the passed value is not an array or slice of these types an
-// INVALID value is returned.
-func ArrayValue(v interface{}) Value {
- switch reflect.TypeOf(v).Kind() {
- case reflect.Array, reflect.Slice:
- // get array type regardless of dimensions
- typ := reflect.TypeOf(v).Elem()
- kind := typ.Kind()
- switch kind {
- case reflect.Bool, reflect.Int, reflect.Int64,
- reflect.Float64, reflect.String:
- val := reflect.ValueOf(v)
- length := val.Len()
- frozen := reflect.Indirect(reflect.New(reflect.ArrayOf(length, typ)))
- reflect.Copy(frozen, val)
- return Value{
- vtype: ARRAY,
- array: frozen.Interface(),
- }
- default:
- return Value{vtype: INVALID}
- }
- }
- return Value{vtype: INVALID}
-}
-
-// Type returns a type of the Value.
-func (v Value) Type() Type {
- return v.vtype
-}
-
-// AsBool returns the bool value. Make sure that the Value's type is
-// BOOL.
-func (v Value) AsBool() bool {
- return internal.RawToBool(v.numeric)
-}
-
-// AsInt64 returns the int64 value. Make sure that the Value's type is
-// INT64.
-func (v Value) AsInt64() int64 {
- return internal.RawToInt64(v.numeric)
-}
-
-// AsFloat64 returns the float64 value. Make sure that the Value's
-// type is FLOAT64.
-func (v Value) AsFloat64() float64 {
- return internal.RawToFloat64(v.numeric)
-}
-
-// AsString returns the string value. Make sure that the Value's type
-// is STRING.
-func (v Value) AsString() string {
- return v.stringly
-}
-
-// AsArray returns the array Value as an interface{}.
-func (v Value) AsArray() interface{} {
- return v.array
-}
-
-type unknownValueType struct{}
-
-// AsInterface returns Value's data as interface{}.
-func (v Value) AsInterface() interface{} {
- switch v.Type() {
- case ARRAY:
- return v.AsArray()
- case BOOL:
- return v.AsBool()
- case INT64:
- return v.AsInt64()
- case FLOAT64:
- return v.AsFloat64()
- case STRING:
- return v.stringly
- }
- return unknownValueType{}
-}
-
-// Emit returns a string representation of Value's data.
-func (v Value) Emit() string {
- switch v.Type() {
- case ARRAY:
- return fmt.Sprint(v.array)
- case BOOL:
- return strconv.FormatBool(v.AsBool())
- case INT64:
- return strconv.FormatInt(v.AsInt64(), 10)
- case FLOAT64:
- return fmt.Sprint(v.AsFloat64())
- case STRING:
- return v.stringly
- default:
- return "unknown"
- }
-}
-
-// MarshalJSON returns the JSON encoding of the Value.
-func (v Value) MarshalJSON() ([]byte, error) {
- var jsonVal struct {
- Type string
- Value interface{}
- }
- jsonVal.Type = v.Type().String()
- jsonVal.Value = v.AsInterface()
- return json.Marshal(jsonVal)
-}
diff --git a/vendor/go.opentelemetry.io/otel/codes/codes.go b/vendor/go.opentelemetry.io/otel/codes/codes.go
deleted file mode 100644
index 064a9279fd..0000000000
--- a/vendor/go.opentelemetry.io/otel/codes/codes.go
+++ /dev/null
@@ -1,106 +0,0 @@
-// 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 codes // import "go.opentelemetry.io/otel/codes"
-
-import (
- "encoding/json"
- "fmt"
- "strconv"
-)
-
-const (
- // Unset is the default status code.
- Unset Code = 0
- // Error indicates the operation contains an error.
- Error Code = 1
- // Ok indicates operation has been validated by an Application developers
- // or Operator to have completed successfully, or contain no error.
- Ok Code = 2
-
- maxCode = 3
-)
-
-// Code is an 32-bit representation of a status state.
-type Code uint32
-
-var codeToStr = map[Code]string{
- Unset: "Unset",
- Error: "Error",
- Ok: "Ok",
-}
-
-var strToCode = map[string]Code{
- `"Unset"`: Unset,
- `"Error"`: Error,
- `"Ok"`: Ok,
-}
-
-// String returns the Code as a string.
-func (c Code) String() string {
- return codeToStr[c]
-}
-
-// UnmarshalJSON unmarshals b into the Code.
-//
-// This is based on the functionality in the gRPC codes package:
-// https://github.com/grpc/grpc-go/blob/bb64fee312b46ebee26be43364a7a966033521b1/codes/codes.go#L218-L244
-func (c *Code) UnmarshalJSON(b []byte) error {
- // From json.Unmarshaler: By convention, to approximate the behavior of
- // Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as
- // a no-op.
- if string(b) == "null" {
- return nil
- }
- if c == nil {
- return fmt.Errorf("nil receiver passed to UnmarshalJSON")
- }
-
- var x interface{}
- if err := json.Unmarshal(b, &x); err != nil {
- return err
- }
- switch x.(type) {
- case string:
- if jc, ok := strToCode[string(b)]; ok {
- *c = jc
- return nil
- }
- return fmt.Errorf("invalid code: %q", string(b))
- case float64:
- if ci, err := strconv.ParseUint(string(b), 10, 32); err == nil {
- if ci >= maxCode {
- return fmt.Errorf("invalid code: %q", ci)
- }
-
- *c = Code(ci)
- return nil
- }
- return fmt.Errorf("invalid code: %q", string(b))
- default:
- return fmt.Errorf("invalid code: %q", string(b))
- }
-}
-
-// MarshalJSON returns c as the JSON encoding of c.
-func (c *Code) MarshalJSON() ([]byte, error) {
- if c == nil {
- return []byte("null"), nil
- }
- str, ok := codeToStr[*c]
- if !ok {
- return nil, fmt.Errorf("invalid code: %d", *c)
- }
- return []byte(fmt.Sprintf("%q", str)), nil
-}
diff --git a/vendor/go.opentelemetry.io/otel/codes/doc.go b/vendor/go.opentelemetry.io/otel/codes/doc.go
deleted file mode 100644
index fcf89ba1ac..0000000000
--- a/vendor/go.opentelemetry.io/otel/codes/doc.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// 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 codes defines the canonical error codes used by OpenTelemetry.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track
-the evolving OpenTelemetry specification and user feedback.
-
-It conforms to [the OpenTelemetry
-specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#statuscanonicalcode).
-*/
-package codes // import "go.opentelemetry.io/otel/codes"
diff --git a/vendor/go.opentelemetry.io/otel/internal/baggage/baggage.go b/vendor/go.opentelemetry.io/otel/internal/baggage/baggage.go
deleted file mode 100644
index b1f7daf8d8..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/baggage/baggage.go
+++ /dev/null
@@ -1,338 +0,0 @@
-// 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 baggage provides types and functions to manage W3C Baggage.
-package baggage
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/attribute"
-)
-
-type rawMap map[attribute.Key]attribute.Value
-type keySet map[attribute.Key]struct{}
-
-// Map is an immutable storage for correlations.
-type Map struct {
- m rawMap
-}
-
-// MapUpdate contains information about correlation changes to be
-// made.
-type MapUpdate struct {
- // DropSingleK contains a single key to be dropped from
- // correlations. Use this to avoid an overhead of a slice
- // allocation if there is only one key to drop.
- DropSingleK attribute.Key
- // DropMultiK contains all the keys to be dropped from
- // correlations.
- DropMultiK []attribute.Key
-
- // SingleKV contains a single key-value pair to be added to
- // correlations. Use this to avoid an overhead of a slice
- // allocation if there is only one key-value pair to add.
- SingleKV attribute.KeyValue
- // MultiKV contains all the key-value pairs to be added to
- // correlations.
- MultiKV []attribute.KeyValue
-}
-
-func newMap(raw rawMap) Map {
- return Map{
- m: raw,
- }
-}
-
-// NewEmptyMap creates an empty correlations map.
-func NewEmptyMap() Map {
- return newMap(nil)
-}
-
-// NewMap creates a map with the contents of the update applied. In
-// this function, having an update with DropSingleK or DropMultiK
-// makes no sense - those fields are effectively ignored.
-func NewMap(update MapUpdate) Map {
- return NewEmptyMap().Apply(update)
-}
-
-// Apply creates a copy of the map with the contents of the update
-// applied. Apply will first drop the keys from DropSingleK and
-// DropMultiK, then add key-value pairs from SingleKV and MultiKV.
-func (m Map) Apply(update MapUpdate) Map {
- delSet, addSet := getModificationSets(update)
- mapSize := getNewMapSize(m.m, delSet, addSet)
-
- r := make(rawMap, mapSize)
- for k, v := range m.m {
- // do not copy items we want to drop
- if _, ok := delSet[k]; ok {
- continue
- }
- // do not copy items we would overwrite
- if _, ok := addSet[k]; ok {
- continue
- }
- r[k] = v
- }
- if update.SingleKV.Key.Defined() {
- r[update.SingleKV.Key] = update.SingleKV.Value
- }
- for _, kv := range update.MultiKV {
- r[kv.Key] = kv.Value
- }
- if len(r) == 0 {
- r = nil
- }
- return newMap(r)
-}
-
-func getModificationSets(update MapUpdate) (delSet, addSet keySet) {
- deletionsCount := len(update.DropMultiK)
- if update.DropSingleK.Defined() {
- deletionsCount++
- }
- if deletionsCount > 0 {
- delSet = make(map[attribute.Key]struct{}, deletionsCount)
- for _, k := range update.DropMultiK {
- delSet[k] = struct{}{}
- }
- if update.DropSingleK.Defined() {
- delSet[update.DropSingleK] = struct{}{}
- }
- }
-
- additionsCount := len(update.MultiKV)
- if update.SingleKV.Key.Defined() {
- additionsCount++
- }
- if additionsCount > 0 {
- addSet = make(map[attribute.Key]struct{}, additionsCount)
- for _, k := range update.MultiKV {
- addSet[k.Key] = struct{}{}
- }
- if update.SingleKV.Key.Defined() {
- addSet[update.SingleKV.Key] = struct{}{}
- }
- }
-
- return
-}
-
-func getNewMapSize(m rawMap, delSet, addSet keySet) int {
- mapSizeDiff := 0
- for k := range addSet {
- if _, ok := m[k]; !ok {
- mapSizeDiff++
- }
- }
- for k := range delSet {
- if _, ok := m[k]; ok {
- if _, inAddSet := addSet[k]; !inAddSet {
- mapSizeDiff--
- }
- }
- }
- return len(m) + mapSizeDiff
-}
-
-// Value gets a value from correlations map and returns a boolean
-// value indicating whether the key exist in the map.
-func (m Map) Value(k attribute.Key) (attribute.Value, bool) {
- value, ok := m.m[k]
- return value, ok
-}
-
-// HasValue returns a boolean value indicating whether the key exist
-// in the map.
-func (m Map) HasValue(k attribute.Key) bool {
- _, has := m.Value(k)
- return has
-}
-
-// Len returns a length of the map.
-func (m Map) Len() int {
- return len(m.m)
-}
-
-// Foreach calls a passed callback once on each key-value pair until
-// all the key-value pairs of the map were iterated or the callback
-// returns false, whichever happens first.
-func (m Map) Foreach(f func(attribute.KeyValue) bool) {
- for k, v := range m.m {
- if !f(attribute.KeyValue{
- Key: k,
- Value: v,
- }) {
- return
- }
- }
-}
-
-type correlationsType struct{}
-
-// SetHookFunc describes a type of a callback that is called when
-// storing baggage in the context.
-type SetHookFunc func(context.Context) context.Context
-
-// GetHookFunc describes a type of a callback that is called when
-// getting baggage from the context.
-type GetHookFunc func(context.Context, Map) Map
-
-// value under this key is either of type Map or correlationsData
-var correlationsKey = &correlationsType{}
-
-type correlationsData struct {
- m Map
- setHook SetHookFunc
- getHook GetHookFunc
-}
-
-func (d correlationsData) isHookless() bool {
- return d.setHook == nil && d.getHook == nil
-}
-
-type hookKind int
-
-const (
- hookKindSet hookKind = iota
- hookKindGet
-)
-
-func (d *correlationsData) overrideHook(kind hookKind, setHook SetHookFunc, getHook GetHookFunc) {
- switch kind {
- case hookKindSet:
- d.setHook = setHook
- case hookKindGet:
- d.getHook = getHook
- }
-}
-
-// ContextWithSetHook installs a hook function that will be invoked
-// every time ContextWithMap is called. To avoid unnecessary callback
-// invocations (recursive or not), the callback can temporarily clear
-// the hooks from the context with the ContextWithNoHooks function.
-//
-// Note that NewContext also calls ContextWithMap, so the hook will be
-// invoked.
-//
-// Passing nil SetHookFunc creates a context with no set hook to call.
-//
-// This function should not be used by applications or libraries. It
-// is mostly for interoperation with other observability APIs.
-func ContextWithSetHook(ctx context.Context, hook SetHookFunc) context.Context {
- return contextWithHook(ctx, hookKindSet, hook, nil)
-}
-
-// ContextWithGetHook installs a hook function that will be invoked
-// every time MapFromContext is called. To avoid unnecessary callback
-// invocations (recursive or not), the callback can temporarily clear
-// the hooks from the context with the ContextWithNoHooks function.
-//
-// Note that NewContext also calls MapFromContext, so the hook will be
-// invoked.
-//
-// Passing nil GetHookFunc creates a context with no get hook to call.
-//
-// This function should not be used by applications or libraries. It
-// is mostly for interoperation with other observability APIs.
-func ContextWithGetHook(ctx context.Context, hook GetHookFunc) context.Context {
- return contextWithHook(ctx, hookKindGet, nil, hook)
-}
-
-func contextWithHook(ctx context.Context, kind hookKind, setHook SetHookFunc, getHook GetHookFunc) context.Context {
- switch v := ctx.Value(correlationsKey).(type) {
- case correlationsData:
- v.overrideHook(kind, setHook, getHook)
- if v.isHookless() {
- return context.WithValue(ctx, correlationsKey, v.m)
- }
- return context.WithValue(ctx, correlationsKey, v)
- case Map:
- return contextWithOneHookAndMap(ctx, kind, setHook, getHook, v)
- default:
- m := NewEmptyMap()
- return contextWithOneHookAndMap(ctx, kind, setHook, getHook, m)
- }
-}
-
-func contextWithOneHookAndMap(ctx context.Context, kind hookKind, setHook SetHookFunc, getHook GetHookFunc, m Map) context.Context {
- d := correlationsData{m: m}
- d.overrideHook(kind, setHook, getHook)
- if d.isHookless() {
- return ctx
- }
- return context.WithValue(ctx, correlationsKey, d)
-}
-
-// ContextWithNoHooks creates a context with all the hooks
-// disabled. Also returns old set and get hooks. This function can be
-// used to temporarily clear the context from hooks and then reinstate
-// them by calling ContextWithSetHook and ContextWithGetHook functions
-// passing the hooks returned by this function.
-//
-// This function should not be used by applications or libraries. It
-// is mostly for interoperation with other observability APIs.
-func ContextWithNoHooks(ctx context.Context) (context.Context, SetHookFunc, GetHookFunc) {
- switch v := ctx.Value(correlationsKey).(type) {
- case correlationsData:
- return context.WithValue(ctx, correlationsKey, v.m), v.setHook, v.getHook
- default:
- return ctx, nil, nil
- }
-}
-
-// ContextWithMap returns a context with the Map entered into it.
-func ContextWithMap(ctx context.Context, m Map) context.Context {
- switch v := ctx.Value(correlationsKey).(type) {
- case correlationsData:
- v.m = m
- ctx = context.WithValue(ctx, correlationsKey, v)
- if v.setHook != nil {
- ctx = v.setHook(ctx)
- }
- return ctx
- default:
- return context.WithValue(ctx, correlationsKey, m)
- }
-}
-
-// ContextWithNoCorrelationData returns a context stripped of correlation
-// data.
-func ContextWithNoCorrelationData(ctx context.Context) context.Context {
- return context.WithValue(ctx, correlationsKey, nil)
-}
-
-// NewContext returns a context with the map from passed context
-// updated with the passed key-value pairs.
-func NewContext(ctx context.Context, keyvalues ...attribute.KeyValue) context.Context {
- return ContextWithMap(ctx, MapFromContext(ctx).Apply(MapUpdate{
- MultiKV: keyvalues,
- }))
-}
-
-// MapFromContext gets the current Map from a Context.
-func MapFromContext(ctx context.Context) Map {
- switch v := ctx.Value(correlationsKey).(type) {
- case correlationsData:
- if v.getHook != nil {
- return v.getHook(ctx, v.m)
- }
- return v.m
- case Map:
- return v
- default:
- return NewEmptyMap()
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/meter.go b/vendor/go.opentelemetry.io/otel/internal/global/meter.go
deleted file mode 100644
index 36f9edeb8c..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/global/meter.go
+++ /dev/null
@@ -1,348 +0,0 @@
-// 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 global
-
-import (
- "context"
- "sync"
- "sync/atomic"
- "unsafe"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric"
- "go.opentelemetry.io/otel/metric/number"
- "go.opentelemetry.io/otel/metric/registry"
-)
-
-// This file contains the forwarding implementation of MeterProvider used as
-// the default global instance. Metric events using instruments provided by
-// this implementation are no-ops until the first Meter implementation is set
-// as the global provider.
-//
-// The implementation here uses Mutexes to maintain a list of active Meters in
-// the MeterProvider and Instruments in each Meter, under the assumption that
-// these interfaces are not performance-critical.
-//
-// We have the invariant that setDelegate() will be called before a new
-// MeterProvider implementation is registered as the global provider. Mutexes
-// in the MeterProvider and Meters ensure that each instrument has a delegate
-// before the global provider is set.
-//
-// Bound instrument operations are implemented by delegating to the
-// instrument after it is registered, with a sync.Once initializer to
-// protect against races with Release().
-//
-// Metric uniqueness checking is implemented by calling the exported
-// methods of the api/metric/registry package.
-
-type meterKey struct {
- Name, Version string
-}
-
-type meterProvider struct {
- delegate metric.MeterProvider
-
- // lock protects `delegate` and `meters`.
- lock sync.Mutex
-
- // meters maintains a unique entry for every named Meter
- // that has been registered through the global instance.
- meters map[meterKey]*meterEntry
-}
-
-type meterImpl struct {
- delegate unsafe.Pointer // (*metric.MeterImpl)
-
- lock sync.Mutex
- syncInsts []*syncImpl
- asyncInsts []*asyncImpl
-}
-
-type meterEntry struct {
- unique metric.MeterImpl
- impl meterImpl
-}
-
-type instrument struct {
- descriptor metric.Descriptor
-}
-
-type syncImpl struct {
- delegate unsafe.Pointer // (*metric.SyncImpl)
-
- instrument
-}
-
-type asyncImpl struct {
- delegate unsafe.Pointer // (*metric.AsyncImpl)
-
- instrument
-
- runner metric.AsyncRunner
-}
-
-// SyncImpler is implemented by all of the sync metric
-// instruments.
-type SyncImpler interface {
- SyncImpl() metric.SyncImpl
-}
-
-// AsyncImpler is implemented by all of the async
-// metric instruments.
-type AsyncImpler interface {
- AsyncImpl() metric.AsyncImpl
-}
-
-type syncHandle struct {
- delegate unsafe.Pointer // (*metric.BoundInstrumentImpl)
-
- inst *syncImpl
- labels []attribute.KeyValue
-
- initialize sync.Once
-}
-
-var _ metric.MeterProvider = &meterProvider{}
-var _ metric.MeterImpl = &meterImpl{}
-var _ metric.InstrumentImpl = &syncImpl{}
-var _ metric.BoundSyncImpl = &syncHandle{}
-var _ metric.AsyncImpl = &asyncImpl{}
-
-func (inst *instrument) Descriptor() metric.Descriptor {
- return inst.descriptor
-}
-
-// MeterProvider interface and delegation
-
-func newMeterProvider() *meterProvider {
- return &meterProvider{
- meters: map[meterKey]*meterEntry{},
- }
-}
-
-func (p *meterProvider) setDelegate(provider metric.MeterProvider) {
- p.lock.Lock()
- defer p.lock.Unlock()
-
- p.delegate = provider
- for key, entry := range p.meters {
- entry.impl.setDelegate(key.Name, key.Version, provider)
- }
- p.meters = nil
-}
-
-func (p *meterProvider) Meter(instrumentationName string, opts ...metric.MeterOption) metric.Meter {
- p.lock.Lock()
- defer p.lock.Unlock()
-
- if p.delegate != nil {
- return p.delegate.Meter(instrumentationName, opts...)
- }
-
- key := meterKey{
- Name: instrumentationName,
- Version: metric.NewMeterConfig(opts...).InstrumentationVersion,
- }
- entry, ok := p.meters[key]
- if !ok {
- entry = &meterEntry{}
- entry.unique = registry.NewUniqueInstrumentMeterImpl(&entry.impl)
- p.meters[key] = entry
-
- }
- return metric.WrapMeterImpl(entry.unique, key.Name, metric.WithInstrumentationVersion(key.Version))
-}
-
-// Meter interface and delegation
-
-func (m *meterImpl) setDelegate(name, version string, provider metric.MeterProvider) {
- m.lock.Lock()
- defer m.lock.Unlock()
-
- d := new(metric.MeterImpl)
- *d = provider.Meter(name, metric.WithInstrumentationVersion(version)).MeterImpl()
- m.delegate = unsafe.Pointer(d)
-
- for _, inst := range m.syncInsts {
- inst.setDelegate(*d)
- }
- m.syncInsts = nil
- for _, obs := range m.asyncInsts {
- obs.setDelegate(*d)
- }
- m.asyncInsts = nil
-}
-
-func (m *meterImpl) NewSyncInstrument(desc metric.Descriptor) (metric.SyncImpl, error) {
- m.lock.Lock()
- defer m.lock.Unlock()
-
- if meterPtr := (*metric.MeterImpl)(atomic.LoadPointer(&m.delegate)); meterPtr != nil {
- return (*meterPtr).NewSyncInstrument(desc)
- }
-
- inst := &syncImpl{
- instrument: instrument{
- descriptor: desc,
- },
- }
- m.syncInsts = append(m.syncInsts, inst)
- return inst, nil
-}
-
-// Synchronous delegation
-
-func (inst *syncImpl) setDelegate(d metric.MeterImpl) {
- implPtr := new(metric.SyncImpl)
-
- var err error
- *implPtr, err = d.NewSyncInstrument(inst.descriptor)
-
- if err != nil {
- // TODO: There is no standard way to deliver this error to the user.
- // See https://github.com/open-telemetry/opentelemetry-go/issues/514
- // Note that the default SDK will not generate any errors yet, this is
- // only for added safety.
- panic(err)
- }
-
- atomic.StorePointer(&inst.delegate, unsafe.Pointer(implPtr))
-}
-
-func (inst *syncImpl) Implementation() interface{} {
- if implPtr := (*metric.SyncImpl)(atomic.LoadPointer(&inst.delegate)); implPtr != nil {
- return (*implPtr).Implementation()
- }
- return inst
-}
-
-func (inst *syncImpl) Bind(labels []attribute.KeyValue) metric.BoundSyncImpl {
- if implPtr := (*metric.SyncImpl)(atomic.LoadPointer(&inst.delegate)); implPtr != nil {
- return (*implPtr).Bind(labels)
- }
- return &syncHandle{
- inst: inst,
- labels: labels,
- }
-}
-
-func (bound *syncHandle) Unbind() {
- bound.initialize.Do(func() {})
-
- implPtr := (*metric.BoundSyncImpl)(atomic.LoadPointer(&bound.delegate))
-
- if implPtr == nil {
- return
- }
-
- (*implPtr).Unbind()
-}
-
-// Async delegation
-
-func (m *meterImpl) NewAsyncInstrument(
- desc metric.Descriptor,
- runner metric.AsyncRunner,
-) (metric.AsyncImpl, error) {
-
- m.lock.Lock()
- defer m.lock.Unlock()
-
- if meterPtr := (*metric.MeterImpl)(atomic.LoadPointer(&m.delegate)); meterPtr != nil {
- return (*meterPtr).NewAsyncInstrument(desc, runner)
- }
-
- inst := &asyncImpl{
- instrument: instrument{
- descriptor: desc,
- },
- runner: runner,
- }
- m.asyncInsts = append(m.asyncInsts, inst)
- return inst, nil
-}
-
-func (obs *asyncImpl) Implementation() interface{} {
- if implPtr := (*metric.AsyncImpl)(atomic.LoadPointer(&obs.delegate)); implPtr != nil {
- return (*implPtr).Implementation()
- }
- return obs
-}
-
-func (obs *asyncImpl) setDelegate(d metric.MeterImpl) {
- implPtr := new(metric.AsyncImpl)
-
- var err error
- *implPtr, err = d.NewAsyncInstrument(obs.descriptor, obs.runner)
-
- if err != nil {
- // TODO: There is no standard way to deliver this error to the user.
- // See https://github.com/open-telemetry/opentelemetry-go/issues/514
- // Note that the default SDK will not generate any errors yet, this is
- // only for added safety.
- panic(err)
- }
-
- atomic.StorePointer(&obs.delegate, unsafe.Pointer(implPtr))
-}
-
-// Metric updates
-
-func (m *meterImpl) RecordBatch(ctx context.Context, labels []attribute.KeyValue, measurements ...metric.Measurement) {
- if delegatePtr := (*metric.MeterImpl)(atomic.LoadPointer(&m.delegate)); delegatePtr != nil {
- (*delegatePtr).RecordBatch(ctx, labels, measurements...)
- }
-}
-
-func (inst *syncImpl) RecordOne(ctx context.Context, number number.Number, labels []attribute.KeyValue) {
- if instPtr := (*metric.SyncImpl)(atomic.LoadPointer(&inst.delegate)); instPtr != nil {
- (*instPtr).RecordOne(ctx, number, labels)
- }
-}
-
-// Bound instrument initialization
-
-func (bound *syncHandle) RecordOne(ctx context.Context, number number.Number) {
- instPtr := (*metric.SyncImpl)(atomic.LoadPointer(&bound.inst.delegate))
- if instPtr == nil {
- return
- }
- var implPtr *metric.BoundSyncImpl
- bound.initialize.Do(func() {
- implPtr = new(metric.BoundSyncImpl)
- *implPtr = (*instPtr).Bind(bound.labels)
- atomic.StorePointer(&bound.delegate, unsafe.Pointer(implPtr))
- })
- if implPtr == nil {
- implPtr = (*metric.BoundSyncImpl)(atomic.LoadPointer(&bound.delegate))
- }
- // This may still be nil if instrument was created and bound
- // without a delegate, then the instrument was set to have a
- // delegate and unbound.
- if implPtr == nil {
- return
- }
- (*implPtr).RecordOne(ctx, number)
-}
-
-func AtomicFieldOffsets() map[string]uintptr {
- return map[string]uintptr{
- "meterProvider.delegate": unsafe.Offsetof(meterProvider{}.delegate),
- "meterImpl.delegate": unsafe.Offsetof(meterImpl{}.delegate),
- "syncImpl.delegate": unsafe.Offsetof(syncImpl{}.delegate),
- "asyncImpl.delegate": unsafe.Offsetof(asyncImpl{}.delegate),
- "syncHandle.delegate": unsafe.Offsetof(syncHandle{}.delegate),
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/propagator.go b/vendor/go.opentelemetry.io/otel/internal/global/propagator.go
deleted file mode 100644
index 1c8b8589b0..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/global/propagator.go
+++ /dev/null
@@ -1,82 +0,0 @@
-// 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 global
-
-import (
- "context"
- "sync"
-
- "go.opentelemetry.io/otel/propagation"
-)
-
-// textMapPropagator is a default TextMapPropagator that delegates calls to a
-// registered delegate if one is set, otherwise it defaults to delegating the
-// calls to a the default no-op propagation.TextMapPropagator.
-type textMapPropagator struct {
- mtx sync.Mutex
- once sync.Once
- delegate propagation.TextMapPropagator
- noop propagation.TextMapPropagator
-}
-
-// Compile-time guarantee that textMapPropagator implements the
-// propagation.TextMapPropagator interface.
-var _ propagation.TextMapPropagator = (*textMapPropagator)(nil)
-
-func newTextMapPropagator() *textMapPropagator {
- return &textMapPropagator{
- noop: propagation.NewCompositeTextMapPropagator(),
- }
-}
-
-// SetDelegate sets a delegate propagation.TextMapPropagator that all calls are
-// forwarded to. Delegation can only be performed once, all subsequent calls
-// perform no delegation.
-func (p *textMapPropagator) SetDelegate(delegate propagation.TextMapPropagator) {
- if delegate == nil {
- return
- }
-
- p.mtx.Lock()
- p.once.Do(func() { p.delegate = delegate })
- p.mtx.Unlock()
-}
-
-// effectiveDelegate returns the current delegate of p if one is set,
-// otherwise the default noop TextMapPropagator is returned. This method
-// can be called concurrently.
-func (p *textMapPropagator) effectiveDelegate() propagation.TextMapPropagator {
- p.mtx.Lock()
- defer p.mtx.Unlock()
- if p.delegate != nil {
- return p.delegate
- }
- return p.noop
-}
-
-// Inject set cross-cutting concerns from the Context into the carrier.
-func (p *textMapPropagator) Inject(ctx context.Context, carrier propagation.TextMapCarrier) {
- p.effectiveDelegate().Inject(ctx, carrier)
-}
-
-// Extract reads cross-cutting concerns from the carrier into a Context.
-func (p *textMapPropagator) Extract(ctx context.Context, carrier propagation.TextMapCarrier) context.Context {
- return p.effectiveDelegate().Extract(ctx, carrier)
-}
-
-// Fields returns the keys whose values are set with Inject.
-func (p *textMapPropagator) Fields() []string {
- return p.effectiveDelegate().Fields()
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/state.go b/vendor/go.opentelemetry.io/otel/internal/global/state.go
deleted file mode 100644
index f3bf003510..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/global/state.go
+++ /dev/null
@@ -1,143 +0,0 @@
-// 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 global
-
-import (
- "sync"
- "sync/atomic"
-
- "go.opentelemetry.io/otel/metric"
- "go.opentelemetry.io/otel/propagation"
- "go.opentelemetry.io/otel/trace"
-)
-
-type (
- tracerProviderHolder struct {
- tp trace.TracerProvider
- }
-
- meterProviderHolder struct {
- mp metric.MeterProvider
- }
-
- propagatorsHolder struct {
- tm propagation.TextMapPropagator
- }
-)
-
-var (
- globalTracer = defaultTracerValue()
- globalMeter = defaultMeterValue()
- globalPropagators = defaultPropagatorsValue()
-
- delegateMeterOnce sync.Once
- delegateTraceOnce sync.Once
- delegateTextMapPropagatorOnce sync.Once
-)
-
-// TracerProvider is the internal implementation for global.TracerProvider.
-func TracerProvider() trace.TracerProvider {
- return globalTracer.Load().(tracerProviderHolder).tp
-}
-
-// SetTracerProvider is the internal implementation for global.SetTracerProvider.
-func SetTracerProvider(tp trace.TracerProvider) {
- delegateTraceOnce.Do(func() {
- current := TracerProvider()
- if current == tp {
- // Setting the provider to the prior default is nonsense, panic.
- // Panic is acceptable because we are likely still early in the
- // process lifetime.
- panic("invalid TracerProvider, the global instance cannot be reinstalled")
- } else if def, ok := current.(*tracerProvider); ok {
- def.setDelegate(tp)
- }
-
- })
- globalTracer.Store(tracerProviderHolder{tp: tp})
-}
-
-// MeterProvider is the internal implementation for global.MeterProvider.
-func MeterProvider() metric.MeterProvider {
- return globalMeter.Load().(meterProviderHolder).mp
-}
-
-// SetMeterProvider is the internal implementation for global.SetMeterProvider.
-func SetMeterProvider(mp metric.MeterProvider) {
- delegateMeterOnce.Do(func() {
- current := MeterProvider()
-
- if current == mp {
- // Setting the provider to the prior default is nonsense, panic.
- // Panic is acceptable because we are likely still early in the
- // process lifetime.
- panic("invalid MeterProvider, the global instance cannot be reinstalled")
- } else if def, ok := current.(*meterProvider); ok {
- def.setDelegate(mp)
- }
- })
- globalMeter.Store(meterProviderHolder{mp: mp})
-}
-
-// TextMapPropagator is the internal implementation for global.TextMapPropagator.
-func TextMapPropagator() propagation.TextMapPropagator {
- return globalPropagators.Load().(propagatorsHolder).tm
-}
-
-// SetTextMapPropagator is the internal implementation for global.SetTextMapPropagator.
-func SetTextMapPropagator(p propagation.TextMapPropagator) {
- // For the textMapPropagator already returned by TextMapPropagator
- // delegate to p.
- delegateTextMapPropagatorOnce.Do(func() {
- if current := TextMapPropagator(); current == p {
- // Setting the provider to the prior default is nonsense, panic.
- // Panic is acceptable because we are likely still early in the
- // process lifetime.
- panic("invalid TextMapPropagator, the global instance cannot be reinstalled")
- } else if def, ok := current.(*textMapPropagator); ok {
- def.SetDelegate(p)
- }
- })
- // Return p when subsequent calls to TextMapPropagator are made.
- globalPropagators.Store(propagatorsHolder{tm: p})
-}
-
-func defaultTracerValue() *atomic.Value {
- v := &atomic.Value{}
- v.Store(tracerProviderHolder{tp: &tracerProvider{}})
- return v
-}
-
-func defaultMeterValue() *atomic.Value {
- v := &atomic.Value{}
- v.Store(meterProviderHolder{mp: newMeterProvider()})
- return v
-}
-
-func defaultPropagatorsValue() *atomic.Value {
- v := &atomic.Value{}
- v.Store(propagatorsHolder{tm: newTextMapPropagator()})
- return v
-}
-
-// ResetForTest restores the initial global state, for testing purposes.
-func ResetForTest() {
- globalTracer = defaultTracerValue()
- globalMeter = defaultMeterValue()
- globalPropagators = defaultPropagatorsValue()
- delegateMeterOnce = sync.Once{}
- delegateTraceOnce = sync.Once{}
- delegateTextMapPropagatorOnce = sync.Once{}
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/global/trace.go b/vendor/go.opentelemetry.io/otel/internal/global/trace.go
deleted file mode 100644
index d7f71dc06c..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/global/trace.go
+++ /dev/null
@@ -1,147 +0,0 @@
-// 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 global
-
-/*
-This file contains the forwarding implementation of the TracerProvider used as
-the default global instance. Prior to initialization of an SDK, Tracers
-returned by the global TracerProvider will provide no-op functionality. This
-means that all Span created prior to initialization are no-op Spans.
-
-Once an SDK has been initialized, all provided no-op Tracers are swapped for
-Tracers provided by the SDK defined TracerProvider. However, any Span started
-prior to this initialization does not change its behavior. Meaning, the Span
-remains a no-op Span.
-
-The implementation to track and swap Tracers locks all new Tracer creation
-until the swap is complete. This assumes that this operation is not
-performance-critical. If that assumption is incorrect, be sure to configure an
-SDK prior to any Tracer creation.
-*/
-
-import (
- "context"
- "sync"
- "sync/atomic"
-
- "go.opentelemetry.io/otel/internal/trace/noop"
- "go.opentelemetry.io/otel/trace"
-)
-
-// tracerProvider is a placeholder for a configured SDK TracerProvider.
-//
-// All TracerProvider functionality is forwarded to a delegate once
-// configured.
-type tracerProvider struct {
- mtx sync.Mutex
- tracers map[il]*tracer
- delegate trace.TracerProvider
-}
-
-// Compile-time guarantee that tracerProvider implements the TracerProvider
-// interface.
-var _ trace.TracerProvider = &tracerProvider{}
-
-// setDelegate configures p to delegate all TracerProvider functionality to
-// provider.
-//
-// All Tracers provided prior to this function call are switched out to be
-// Tracers provided by provider.
-//
-// It is guaranteed by the caller that this happens only once.
-func (p *tracerProvider) setDelegate(provider trace.TracerProvider) {
- p.mtx.Lock()
- defer p.mtx.Unlock()
-
- p.delegate = provider
-
- if len(p.tracers) == 0 {
- return
- }
-
- for _, t := range p.tracers {
- t.setDelegate(provider)
- }
-
- p.tracers = nil
-}
-
-// Tracer implements TracerProvider.
-func (p *tracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer {
- p.mtx.Lock()
- defer p.mtx.Unlock()
-
- if p.delegate != nil {
- return p.delegate.Tracer(name, opts...)
- }
-
- // At this moment it is guaranteed that no sdk is installed, save the tracer in the tracers map.
-
- key := il{
- name: name,
- version: trace.NewTracerConfig(opts...).InstrumentationVersion,
- }
-
- if p.tracers == nil {
- p.tracers = make(map[il]*tracer)
- }
-
- if val, ok := p.tracers[key]; ok {
- return val
- }
-
- t := &tracer{name: name, opts: opts}
- p.tracers[key] = t
- return t
-}
-
-type il struct {
- name string
- version string
-}
-
-// tracer is a placeholder for a trace.Tracer.
-//
-// All Tracer functionality is forwarded to a delegate once configured.
-// Otherwise, all functionality is forwarded to a NoopTracer.
-type tracer struct {
- name string
- opts []trace.TracerOption
-
- delegate atomic.Value
-}
-
-// Compile-time guarantee that tracer implements the trace.Tracer interface.
-var _ trace.Tracer = &tracer{}
-
-// setDelegate configures t to delegate all Tracer functionality to Tracers
-// created by provider.
-//
-// All subsequent calls to the Tracer methods will be passed to the delegate.
-//
-// It is guaranteed by the caller that this happens only once.
-func (t *tracer) setDelegate(provider trace.TracerProvider) {
- t.delegate.Store(provider.Tracer(t.name, t.opts...))
-}
-
-// Start implements trace.Tracer by forwarding the call to t.delegate if
-// set, otherwise it forwards the call to a NoopTracer.
-func (t *tracer) Start(ctx context.Context, name string, opts ...trace.SpanOption) (context.Context, trace.Span) {
- delegate := t.delegate.Load()
- if delegate != nil {
- return delegate.(trace.Tracer).Start(ctx, name, opts...)
- }
- return noop.Tracer.Start(ctx, name, opts...)
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go b/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go
deleted file mode 100644
index 0d806b1c89..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/rawhelpers.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// 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 internal
-
-import (
- "math"
- "unsafe"
-)
-
-func BoolToRaw(b bool) uint64 {
- if b {
- return 1
- }
- return 0
-}
-
-func RawToBool(r uint64) bool {
- return r != 0
-}
-
-func Int64ToRaw(i int64) uint64 {
- return uint64(i)
-}
-
-func RawToInt64(r uint64) int64 {
- return int64(r)
-}
-
-func Float64ToRaw(f float64) uint64 {
- return math.Float64bits(f)
-}
-
-func RawToFloat64(r uint64) float64 {
- return math.Float64frombits(r)
-}
-
-func RawPtrToFloat64Ptr(r *uint64) *float64 {
- return (*float64)(unsafe.Pointer(r))
-}
-
-func RawPtrToInt64Ptr(r *uint64) *int64 {
- return (*int64)(unsafe.Pointer(r))
-}
diff --git a/vendor/go.opentelemetry.io/otel/internal/trace/noop/noop.go b/vendor/go.opentelemetry.io/otel/internal/trace/noop/noop.go
deleted file mode 100644
index 765c21a289..0000000000
--- a/vendor/go.opentelemetry.io/otel/internal/trace/noop/noop.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// 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 noop provides noop tracing implementations for tracer and span.
-package noop
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/trace"
-)
-
-var (
- // Tracer is a noop tracer that starts noop spans.
- Tracer trace.Tracer
-
- // Span is a noop Span.
- Span trace.Span
-)
-
-func init() {
- Tracer = trace.NewNoopTracerProvider().Tracer("")
- _, Span = Tracer.Start(context.Background(), "")
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/LICENSE b/vendor/go.opentelemetry.io/otel/metric/LICENSE
deleted file mode 100644
index 261eeb9e9f..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/vendor/go.opentelemetry.io/otel/metric/config.go b/vendor/go.opentelemetry.io/otel/metric/config.go
deleted file mode 100644
index 02f0ff8e0c..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/config.go
+++ /dev/null
@@ -1,128 +0,0 @@
-// 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 metric // import "go.opentelemetry.io/otel/metric"
-
-import (
- "go.opentelemetry.io/otel/unit"
-)
-
-// InstrumentConfig contains options for metric instrument descriptors.
-type InstrumentConfig struct {
- // Description describes the instrument in human-readable terms.
- Description string
- // Unit describes the measurement unit for a instrument.
- Unit unit.Unit
- // InstrumentationName is the name of the library providing
- // instrumentation.
- InstrumentationName string
- // InstrumentationVersion is the version of the library providing
- // instrumentation.
- InstrumentationVersion string
-}
-
-// InstrumentOption is an interface for applying metric instrument options.
-type InstrumentOption interface {
- // ApplyMeter is used to set a InstrumentOption value of a
- // InstrumentConfig.
- ApplyInstrument(*InstrumentConfig)
-}
-
-// NewInstrumentConfig creates a new InstrumentConfig
-// and applies all the given options.
-func NewInstrumentConfig(opts ...InstrumentOption) InstrumentConfig {
- var config InstrumentConfig
- for _, o := range opts {
- o.ApplyInstrument(&config)
- }
- return config
-}
-
-// WithDescription applies provided description.
-func WithDescription(desc string) InstrumentOption {
- return descriptionOption(desc)
-}
-
-type descriptionOption string
-
-func (d descriptionOption) ApplyInstrument(config *InstrumentConfig) {
- config.Description = string(d)
-}
-
-// WithUnit applies provided unit.
-func WithUnit(unit unit.Unit) InstrumentOption {
- return unitOption(unit)
-}
-
-type unitOption unit.Unit
-
-func (u unitOption) ApplyInstrument(config *InstrumentConfig) {
- config.Unit = unit.Unit(u)
-}
-
-// WithInstrumentationName sets the instrumentation name.
-func WithInstrumentationName(name string) InstrumentOption {
- return instrumentationNameOption(name)
-}
-
-type instrumentationNameOption string
-
-func (i instrumentationNameOption) ApplyInstrument(config *InstrumentConfig) {
- config.InstrumentationName = string(i)
-}
-
-// MeterConfig contains options for Meters.
-type MeterConfig struct {
- // InstrumentationVersion is the version of the library providing
- // instrumentation.
- InstrumentationVersion string
-}
-
-// MeterOption is an interface for applying Meter options.
-type MeterOption interface {
- // ApplyMeter is used to set a MeterOption value of a MeterConfig.
- ApplyMeter(*MeterConfig)
-}
-
-// NewMeterConfig creates a new MeterConfig and applies
-// all the given options.
-func NewMeterConfig(opts ...MeterOption) MeterConfig {
- var config MeterConfig
- for _, o := range opts {
- o.ApplyMeter(&config)
- }
- return config
-}
-
-// InstrumentationOption is an interface for applying instrumentation specific
-// options.
-type InstrumentationOption interface {
- InstrumentOption
- MeterOption
-}
-
-// WithInstrumentationVersion sets the instrumentation version.
-func WithInstrumentationVersion(version string) InstrumentationOption {
- return instrumentationVersionOption(version)
-}
-
-type instrumentationVersionOption string
-
-func (i instrumentationVersionOption) ApplyMeter(config *MeterConfig) {
- config.InstrumentationVersion = string(i)
-}
-
-func (i instrumentationVersionOption) ApplyInstrument(config *InstrumentConfig) {
- config.InstrumentationVersion = string(i)
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/doc.go b/vendor/go.opentelemetry.io/otel/metric/doc.go
deleted file mode 100644
index 7889ff000f..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/doc.go
+++ /dev/null
@@ -1,67 +0,0 @@
-// 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 metric provides an implementation of the metrics part of the
-OpenTelemetry API.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track the
-evolving OpenTelemetry specification and user feedback.
-
-Measurements can be made about an operation being performed or the state of a
-system in general. These measurements can be crucial to the reliable operation
-of code and provide valuable insights about the inner workings of a system.
-
-Measurements are made using instruments provided by this package. The type of
-instrument used will depend on the type of measurement being made and of what
-part of a system is being measured.
-
-Instruments are categorized as Synchronous or Asynchronous and independently
-as Adding or Grouping. Synchronous instruments are called by the user with a
-Context. Asynchronous instruments are called by the SDK during collection.
-Additive instruments are semantically intended for capturing a sum. Grouping
-instruments are intended for capturing a distribution.
-
-Additive instruments may be monotonic, in which case they are non-decreasing
-and naturally define a rate.
-
-The synchronous instrument names are:
-
- Counter: additive, monotonic
- UpDownCounter: additive
- ValueRecorder: grouping
-
-and the asynchronous instruments are:
-
- SumObserver: additive, monotonic
- UpDownSumObserver: additive
- ValueObserver: grouping
-
-All instruments are provided with support for either float64 or int64 input
-values.
-
-An instrument is created using a Meter. Additionally, a Meter is used to
-record batches of synchronous measurements or asynchronous observations. A
-Meter is obtained using a MeterProvider. A Meter, like a Tracer, is unique to
-the instrumentation it instruments and must be named and versioned when
-created with a MeterProvider with the name and version of the instrumentation
-library.
-
-Instrumentation should be designed to accept a MeterProvider from which it can
-create its own unique Meter. Alternatively, the registered global
-MeterProvider from the go.opentelemetry.io/otel package can be used as a
-default.
-*/
-package metric // import "go.opentelemetry.io/otel/metric"
diff --git a/vendor/go.opentelemetry.io/otel/metric/global/metric.go b/vendor/go.opentelemetry.io/otel/metric/global/metric.go
deleted file mode 100644
index 8d16d34d48..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/global/metric.go
+++ /dev/null
@@ -1,49 +0,0 @@
-// 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 global // import "go.opentelemetry.io/otel/metric/global"
-
-import (
- "go.opentelemetry.io/otel/internal/global"
- "go.opentelemetry.io/otel/metric"
-)
-
-// Meter creates an implementation of the Meter interface from the global
-// MeterProvider. The instrumentationName must be the name of the library
-// providing instrumentation. This name may be the same as the instrumented
-// code only if that code provides built-in instrumentation. If the
-// instrumentationName is empty, then a implementation defined default name
-// will be used instead.
-//
-// This is short for MeterProvider().Meter(name)
-func Meter(instrumentationName string, opts ...metric.MeterOption) metric.Meter {
- return GetMeterProvider().Meter(instrumentationName, opts...)
-}
-
-// GetMeterProvider returns the registered global meter provider. If
-// none is registered then a default meter provider is returned that
-// forwards the Meter interface to the first registered Meter.
-//
-// Use the meter provider to create a named meter. E.g.
-// meter := global.MeterProvider().Meter("example.com/foo")
-// or
-// meter := global.Meter("example.com/foo")
-func GetMeterProvider() metric.MeterProvider {
- return global.MeterProvider()
-}
-
-// SetMeterProvider registers `mp` as the global meter provider.
-func SetMeterProvider(mp metric.MeterProvider) {
- global.SetMeterProvider(mp)
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/go.mod b/vendor/go.opentelemetry.io/otel/metric/go.mod
deleted file mode 100644
index 47bc47badd..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/go.mod
+++ /dev/null
@@ -1,54 +0,0 @@
-module go.opentelemetry.io/otel/metric
-
-go 1.14
-
-replace go.opentelemetry.io/otel => ../
-
-replace go.opentelemetry.io/otel/bridge/opencensus => ../bridge/opencensus
-
-replace go.opentelemetry.io/otel/bridge/opentracing => ../bridge/opentracing
-
-replace go.opentelemetry.io/otel/example/jaeger => ../example/jaeger
-
-replace go.opentelemetry.io/otel/example/namedtracer => ../example/namedtracer
-
-replace go.opentelemetry.io/otel/example/opencensus => ../example/opencensus
-
-replace go.opentelemetry.io/otel/example/otel-collector => ../example/otel-collector
-
-replace go.opentelemetry.io/otel/example/prom-collector => ../example/prom-collector
-
-replace go.opentelemetry.io/otel/example/prometheus => ../example/prometheus
-
-replace go.opentelemetry.io/otel/example/zipkin => ../example/zipkin
-
-replace go.opentelemetry.io/otel/exporters/metric/prometheus => ../exporters/metric/prometheus
-
-replace go.opentelemetry.io/otel/exporters/otlp => ../exporters/otlp
-
-replace go.opentelemetry.io/otel/exporters/stdout => ../exporters/stdout
-
-replace go.opentelemetry.io/otel/exporters/trace/jaeger => ../exporters/trace/jaeger
-
-replace go.opentelemetry.io/otel/exporters/trace/zipkin => ../exporters/trace/zipkin
-
-replace go.opentelemetry.io/otel/internal/tools => ../internal/tools
-
-replace go.opentelemetry.io/otel/metric => ./
-
-replace go.opentelemetry.io/otel/oteltest => ../oteltest
-
-replace go.opentelemetry.io/otel/sdk => ../sdk
-
-replace go.opentelemetry.io/otel/sdk/export/metric => ../sdk/export/metric
-
-replace go.opentelemetry.io/otel/sdk/metric => ../sdk/metric
-
-replace go.opentelemetry.io/otel/trace => ../trace
-
-require (
- github.com/google/go-cmp v0.5.5
- github.com/stretchr/testify v1.7.0
- go.opentelemetry.io/otel v0.20.0
- go.opentelemetry.io/otel/oteltest v0.20.0
-)
diff --git a/vendor/go.opentelemetry.io/otel/metric/go.sum b/vendor/go.opentelemetry.io/otel/metric/go.sum
deleted file mode 100644
index b69f2e56da..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/go.sum
+++ /dev/null
@@ -1,15 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-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.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/go.opentelemetry.io/otel/metric/instrumentkind_string.go b/vendor/go.opentelemetry.io/otel/metric/instrumentkind_string.go
deleted file mode 100644
index 2805e22500..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/instrumentkind_string.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// Code generated by "stringer -type=InstrumentKind"; DO NOT EDIT.
-
-package metric
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[ValueRecorderInstrumentKind-0]
- _ = x[ValueObserverInstrumentKind-1]
- _ = x[CounterInstrumentKind-2]
- _ = x[UpDownCounterInstrumentKind-3]
- _ = x[SumObserverInstrumentKind-4]
- _ = x[UpDownSumObserverInstrumentKind-5]
-}
-
-const _InstrumentKind_name = "ValueRecorderInstrumentKindValueObserverInstrumentKindCounterInstrumentKindUpDownCounterInstrumentKindSumObserverInstrumentKindUpDownSumObserverInstrumentKind"
-
-var _InstrumentKind_index = [...]uint8{0, 27, 54, 75, 102, 127, 158}
-
-func (i InstrumentKind) String() string {
- if i < 0 || i >= InstrumentKind(len(_InstrumentKind_index)-1) {
- return "InstrumentKind(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _InstrumentKind_name[_InstrumentKind_index[i]:_InstrumentKind_index[i+1]]
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/metric.go b/vendor/go.opentelemetry.io/otel/metric/metric.go
deleted file mode 100644
index b591985df6..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/metric.go
+++ /dev/null
@@ -1,577 +0,0 @@
-// 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 metric // import "go.opentelemetry.io/otel/metric"
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric/number"
- "go.opentelemetry.io/otel/unit"
-)
-
-// MeterProvider supports named Meter instances.
-type MeterProvider interface {
- // Meter creates an implementation of the Meter interface.
- // The instrumentationName must be the name of the library providing
- // instrumentation. This name may be the same as the instrumented code
- // only if that code provides built-in instrumentation. If the
- // instrumentationName is empty, then a implementation defined default
- // name will be used instead.
- Meter(instrumentationName string, opts ...MeterOption) Meter
-}
-
-// Meter is the creator of metric instruments.
-//
-// An uninitialized Meter is a no-op implementation.
-type Meter struct {
- impl MeterImpl
- name, version string
-}
-
-// RecordBatch atomically records a batch of measurements.
-func (m Meter) RecordBatch(ctx context.Context, ls []attribute.KeyValue, ms ...Measurement) {
- if m.impl == nil {
- return
- }
- m.impl.RecordBatch(ctx, ls, ms...)
-}
-
-// NewBatchObserver creates a new BatchObserver that supports
-// making batches of observations for multiple instruments.
-func (m Meter) NewBatchObserver(callback BatchObserverFunc) BatchObserver {
- return BatchObserver{
- meter: m,
- runner: newBatchAsyncRunner(callback),
- }
-}
-
-// NewInt64Counter creates a new integer Counter instrument with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewInt64Counter(name string, options ...InstrumentOption) (Int64Counter, error) {
- return wrapInt64CounterInstrument(
- m.newSync(name, CounterInstrumentKind, number.Int64Kind, options))
-}
-
-// NewFloat64Counter creates a new floating point Counter with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewFloat64Counter(name string, options ...InstrumentOption) (Float64Counter, error) {
- return wrapFloat64CounterInstrument(
- m.newSync(name, CounterInstrumentKind, number.Float64Kind, options))
-}
-
-// NewInt64UpDownCounter creates a new integer UpDownCounter instrument with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewInt64UpDownCounter(name string, options ...InstrumentOption) (Int64UpDownCounter, error) {
- return wrapInt64UpDownCounterInstrument(
- m.newSync(name, UpDownCounterInstrumentKind, number.Int64Kind, options))
-}
-
-// NewFloat64UpDownCounter creates a new floating point UpDownCounter with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewFloat64UpDownCounter(name string, options ...InstrumentOption) (Float64UpDownCounter, error) {
- return wrapFloat64UpDownCounterInstrument(
- m.newSync(name, UpDownCounterInstrumentKind, number.Float64Kind, options))
-}
-
-// NewInt64ValueRecorder creates a new integer ValueRecorder instrument with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewInt64ValueRecorder(name string, opts ...InstrumentOption) (Int64ValueRecorder, error) {
- return wrapInt64ValueRecorderInstrument(
- m.newSync(name, ValueRecorderInstrumentKind, number.Int64Kind, opts))
-}
-
-// NewFloat64ValueRecorder creates a new floating point ValueRecorder with the
-// given name, customized with options. May return an error if the
-// name is invalid (e.g., empty) or improperly registered (e.g.,
-// duplicate registration).
-func (m Meter) NewFloat64ValueRecorder(name string, opts ...InstrumentOption) (Float64ValueRecorder, error) {
- return wrapFloat64ValueRecorderInstrument(
- m.newSync(name, ValueRecorderInstrumentKind, number.Float64Kind, opts))
-}
-
-// NewInt64ValueObserver creates a new integer ValueObserver instrument
-// with the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewInt64ValueObserver(name string, callback Int64ObserverFunc, opts ...InstrumentOption) (Int64ValueObserver, error) {
- if callback == nil {
- return wrapInt64ValueObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64ValueObserverInstrument(
- m.newAsync(name, ValueObserverInstrumentKind, number.Int64Kind, opts,
- newInt64AsyncRunner(callback)))
-}
-
-// NewFloat64ValueObserver creates a new floating point ValueObserver with
-// the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewFloat64ValueObserver(name string, callback Float64ObserverFunc, opts ...InstrumentOption) (Float64ValueObserver, error) {
- if callback == nil {
- return wrapFloat64ValueObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64ValueObserverInstrument(
- m.newAsync(name, ValueObserverInstrumentKind, number.Float64Kind, opts,
- newFloat64AsyncRunner(callback)))
-}
-
-// NewInt64SumObserver creates a new integer SumObserver instrument
-// with the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewInt64SumObserver(name string, callback Int64ObserverFunc, opts ...InstrumentOption) (Int64SumObserver, error) {
- if callback == nil {
- return wrapInt64SumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64SumObserverInstrument(
- m.newAsync(name, SumObserverInstrumentKind, number.Int64Kind, opts,
- newInt64AsyncRunner(callback)))
-}
-
-// NewFloat64SumObserver creates a new floating point SumObserver with
-// the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewFloat64SumObserver(name string, callback Float64ObserverFunc, opts ...InstrumentOption) (Float64SumObserver, error) {
- if callback == nil {
- return wrapFloat64SumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64SumObserverInstrument(
- m.newAsync(name, SumObserverInstrumentKind, number.Float64Kind, opts,
- newFloat64AsyncRunner(callback)))
-}
-
-// NewInt64UpDownSumObserver creates a new integer UpDownSumObserver instrument
-// with the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewInt64UpDownSumObserver(name string, callback Int64ObserverFunc, opts ...InstrumentOption) (Int64UpDownSumObserver, error) {
- if callback == nil {
- return wrapInt64UpDownSumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64UpDownSumObserverInstrument(
- m.newAsync(name, UpDownSumObserverInstrumentKind, number.Int64Kind, opts,
- newInt64AsyncRunner(callback)))
-}
-
-// NewFloat64UpDownSumObserver creates a new floating point UpDownSumObserver with
-// the given name, running a given callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (m Meter) NewFloat64UpDownSumObserver(name string, callback Float64ObserverFunc, opts ...InstrumentOption) (Float64UpDownSumObserver, error) {
- if callback == nil {
- return wrapFloat64UpDownSumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64UpDownSumObserverInstrument(
- m.newAsync(name, UpDownSumObserverInstrumentKind, number.Float64Kind, opts,
- newFloat64AsyncRunner(callback)))
-}
-
-// NewInt64ValueObserver creates a new integer ValueObserver instrument
-// with the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewInt64ValueObserver(name string, opts ...InstrumentOption) (Int64ValueObserver, error) {
- if b.runner == nil {
- return wrapInt64ValueObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64ValueObserverInstrument(
- b.meter.newAsync(name, ValueObserverInstrumentKind, number.Int64Kind, opts, b.runner))
-}
-
-// NewFloat64ValueObserver creates a new floating point ValueObserver with
-// the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewFloat64ValueObserver(name string, opts ...InstrumentOption) (Float64ValueObserver, error) {
- if b.runner == nil {
- return wrapFloat64ValueObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64ValueObserverInstrument(
- b.meter.newAsync(name, ValueObserverInstrumentKind, number.Float64Kind, opts,
- b.runner))
-}
-
-// NewInt64SumObserver creates a new integer SumObserver instrument
-// with the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewInt64SumObserver(name string, opts ...InstrumentOption) (Int64SumObserver, error) {
- if b.runner == nil {
- return wrapInt64SumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64SumObserverInstrument(
- b.meter.newAsync(name, SumObserverInstrumentKind, number.Int64Kind, opts, b.runner))
-}
-
-// NewFloat64SumObserver creates a new floating point SumObserver with
-// the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewFloat64SumObserver(name string, opts ...InstrumentOption) (Float64SumObserver, error) {
- if b.runner == nil {
- return wrapFloat64SumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64SumObserverInstrument(
- b.meter.newAsync(name, SumObserverInstrumentKind, number.Float64Kind, opts,
- b.runner))
-}
-
-// NewInt64UpDownSumObserver creates a new integer UpDownSumObserver instrument
-// with the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewInt64UpDownSumObserver(name string, opts ...InstrumentOption) (Int64UpDownSumObserver, error) {
- if b.runner == nil {
- return wrapInt64UpDownSumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapInt64UpDownSumObserverInstrument(
- b.meter.newAsync(name, UpDownSumObserverInstrumentKind, number.Int64Kind, opts, b.runner))
-}
-
-// NewFloat64UpDownSumObserver creates a new floating point UpDownSumObserver with
-// the given name, running in a batch callback, and customized with
-// options. May return an error if the name is invalid (e.g., empty)
-// or improperly registered (e.g., duplicate registration).
-func (b BatchObserver) NewFloat64UpDownSumObserver(name string, opts ...InstrumentOption) (Float64UpDownSumObserver, error) {
- if b.runner == nil {
- return wrapFloat64UpDownSumObserverInstrument(NoopAsync{}, nil)
- }
- return wrapFloat64UpDownSumObserverInstrument(
- b.meter.newAsync(name, UpDownSumObserverInstrumentKind, number.Float64Kind, opts,
- b.runner))
-}
-
-// MeterImpl returns the underlying MeterImpl of this Meter.
-func (m Meter) MeterImpl() MeterImpl {
- return m.impl
-}
-
-// newAsync constructs one new asynchronous instrument.
-func (m Meter) newAsync(
- name string,
- mkind InstrumentKind,
- nkind number.Kind,
- opts []InstrumentOption,
- runner AsyncRunner,
-) (
- AsyncImpl,
- error,
-) {
- if m.impl == nil {
- return NoopAsync{}, nil
- }
- desc := NewDescriptor(name, mkind, nkind, opts...)
- desc.config.InstrumentationName = m.name
- desc.config.InstrumentationVersion = m.version
- return m.impl.NewAsyncInstrument(desc, runner)
-}
-
-// newSync constructs one new synchronous instrument.
-func (m Meter) newSync(
- name string,
- metricKind InstrumentKind,
- numberKind number.Kind,
- opts []InstrumentOption,
-) (
- SyncImpl,
- error,
-) {
- if m.impl == nil {
- return NoopSync{}, nil
- }
- desc := NewDescriptor(name, metricKind, numberKind, opts...)
- desc.config.InstrumentationName = m.name
- desc.config.InstrumentationVersion = m.version
- return m.impl.NewSyncInstrument(desc)
-}
-
-// MeterMust is a wrapper for Meter interfaces that panics when any
-// instrument constructor encounters an error.
-type MeterMust struct {
- meter Meter
-}
-
-// BatchObserverMust is a wrapper for BatchObserver that panics when
-// any instrument constructor encounters an error.
-type BatchObserverMust struct {
- batch BatchObserver
-}
-
-// Must constructs a MeterMust implementation from a Meter, allowing
-// the application to panic when any instrument constructor yields an
-// error.
-func Must(meter Meter) MeterMust {
- return MeterMust{meter: meter}
-}
-
-// NewInt64Counter calls `Meter.NewInt64Counter` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64Counter(name string, cos ...InstrumentOption) Int64Counter {
- if inst, err := mm.meter.NewInt64Counter(name, cos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64Counter calls `Meter.NewFloat64Counter` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64Counter(name string, cos ...InstrumentOption) Float64Counter {
- if inst, err := mm.meter.NewFloat64Counter(name, cos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64UpDownCounter calls `Meter.NewInt64UpDownCounter` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64UpDownCounter(name string, cos ...InstrumentOption) Int64UpDownCounter {
- if inst, err := mm.meter.NewInt64UpDownCounter(name, cos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64UpDownCounter calls `Meter.NewFloat64UpDownCounter` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64UpDownCounter(name string, cos ...InstrumentOption) Float64UpDownCounter {
- if inst, err := mm.meter.NewFloat64UpDownCounter(name, cos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64ValueRecorder calls `Meter.NewInt64ValueRecorder` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64ValueRecorder(name string, mos ...InstrumentOption) Int64ValueRecorder {
- if inst, err := mm.meter.NewInt64ValueRecorder(name, mos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64ValueRecorder calls `Meter.NewFloat64ValueRecorder` and returns the
-// instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64ValueRecorder(name string, mos ...InstrumentOption) Float64ValueRecorder {
- if inst, err := mm.meter.NewFloat64ValueRecorder(name, mos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64ValueObserver calls `Meter.NewInt64ValueObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64ValueObserver(name string, callback Int64ObserverFunc, oos ...InstrumentOption) Int64ValueObserver {
- if inst, err := mm.meter.NewInt64ValueObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64ValueObserver calls `Meter.NewFloat64ValueObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64ValueObserver(name string, callback Float64ObserverFunc, oos ...InstrumentOption) Float64ValueObserver {
- if inst, err := mm.meter.NewFloat64ValueObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64SumObserver calls `Meter.NewInt64SumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64SumObserver(name string, callback Int64ObserverFunc, oos ...InstrumentOption) Int64SumObserver {
- if inst, err := mm.meter.NewInt64SumObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64SumObserver calls `Meter.NewFloat64SumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64SumObserver(name string, callback Float64ObserverFunc, oos ...InstrumentOption) Float64SumObserver {
- if inst, err := mm.meter.NewFloat64SumObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64UpDownSumObserver calls `Meter.NewInt64UpDownSumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewInt64UpDownSumObserver(name string, callback Int64ObserverFunc, oos ...InstrumentOption) Int64UpDownSumObserver {
- if inst, err := mm.meter.NewInt64UpDownSumObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64UpDownSumObserver calls `Meter.NewFloat64UpDownSumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (mm MeterMust) NewFloat64UpDownSumObserver(name string, callback Float64ObserverFunc, oos ...InstrumentOption) Float64UpDownSumObserver {
- if inst, err := mm.meter.NewFloat64UpDownSumObserver(name, callback, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewBatchObserver returns a wrapper around BatchObserver that panics
-// when any instrument constructor returns an error.
-func (mm MeterMust) NewBatchObserver(callback BatchObserverFunc) BatchObserverMust {
- return BatchObserverMust{
- batch: mm.meter.NewBatchObserver(callback),
- }
-}
-
-// NewInt64ValueObserver calls `BatchObserver.NewInt64ValueObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewInt64ValueObserver(name string, oos ...InstrumentOption) Int64ValueObserver {
- if inst, err := bm.batch.NewInt64ValueObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64ValueObserver calls `BatchObserver.NewFloat64ValueObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewFloat64ValueObserver(name string, oos ...InstrumentOption) Float64ValueObserver {
- if inst, err := bm.batch.NewFloat64ValueObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64SumObserver calls `BatchObserver.NewInt64SumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewInt64SumObserver(name string, oos ...InstrumentOption) Int64SumObserver {
- if inst, err := bm.batch.NewInt64SumObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64SumObserver calls `BatchObserver.NewFloat64SumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewFloat64SumObserver(name string, oos ...InstrumentOption) Float64SumObserver {
- if inst, err := bm.batch.NewFloat64SumObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewInt64UpDownSumObserver calls `BatchObserver.NewInt64UpDownSumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewInt64UpDownSumObserver(name string, oos ...InstrumentOption) Int64UpDownSumObserver {
- if inst, err := bm.batch.NewInt64UpDownSumObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// NewFloat64UpDownSumObserver calls `BatchObserver.NewFloat64UpDownSumObserver` and
-// returns the instrument, panicking if it encounters an error.
-func (bm BatchObserverMust) NewFloat64UpDownSumObserver(name string, oos ...InstrumentOption) Float64UpDownSumObserver {
- if inst, err := bm.batch.NewFloat64UpDownSumObserver(name, oos...); err != nil {
- panic(err)
- } else {
- return inst
- }
-}
-
-// Descriptor contains all the settings that describe an instrument,
-// including its name, metric kind, number kind, and the configurable
-// options.
-type Descriptor struct {
- name string
- instrumentKind InstrumentKind
- numberKind number.Kind
- config InstrumentConfig
-}
-
-// NewDescriptor returns a Descriptor with the given contents.
-func NewDescriptor(name string, ikind InstrumentKind, nkind number.Kind, opts ...InstrumentOption) Descriptor {
- return Descriptor{
- name: name,
- instrumentKind: ikind,
- numberKind: nkind,
- config: NewInstrumentConfig(opts...),
- }
-}
-
-// Name returns the metric instrument's name.
-func (d Descriptor) Name() string {
- return d.name
-}
-
-// InstrumentKind returns the specific kind of instrument.
-func (d Descriptor) InstrumentKind() InstrumentKind {
- return d.instrumentKind
-}
-
-// Description provides a human-readable description of the metric
-// instrument.
-func (d Descriptor) Description() string {
- return d.config.Description
-}
-
-// Unit describes the units of the metric instrument. Unitless
-// metrics return the empty string.
-func (d Descriptor) Unit() unit.Unit {
- return d.config.Unit
-}
-
-// NumberKind returns whether this instrument is declared over int64,
-// float64, or uint64 values.
-func (d Descriptor) NumberKind() number.Kind {
- return d.numberKind
-}
-
-// InstrumentationName returns the name of the library that provided
-// instrumentation for this instrument.
-func (d Descriptor) InstrumentationName() string {
- return d.config.InstrumentationName
-}
-
-// InstrumentationVersion returns the version of the library that provided
-// instrumentation for this instrument.
-func (d Descriptor) InstrumentationVersion() string {
- return d.config.InstrumentationVersion
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/metric_instrument.go b/vendor/go.opentelemetry.io/otel/metric/metric_instrument.go
deleted file mode 100644
index 6f3fc997cb..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/metric_instrument.go
+++ /dev/null
@@ -1,777 +0,0 @@
-// 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.
-
-//go:generate stringer -type=InstrumentKind
-
-package metric // import "go.opentelemetry.io/otel/metric"
-
-import (
- "context"
- "errors"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric/number"
-)
-
-// ErrSDKReturnedNilImpl is returned when a new `MeterImpl` returns nil.
-var ErrSDKReturnedNilImpl = errors.New("SDK returned a nil implementation")
-
-// InstrumentKind describes the kind of instrument.
-type InstrumentKind int8
-
-const (
- // ValueRecorderInstrumentKind indicates a ValueRecorder instrument.
- ValueRecorderInstrumentKind InstrumentKind = iota
- // ValueObserverInstrumentKind indicates an ValueObserver instrument.
- ValueObserverInstrumentKind
-
- // CounterInstrumentKind indicates a Counter instrument.
- CounterInstrumentKind
- // UpDownCounterInstrumentKind indicates a UpDownCounter instrument.
- UpDownCounterInstrumentKind
-
- // SumObserverInstrumentKind indicates a SumObserver instrument.
- SumObserverInstrumentKind
- // UpDownSumObserverInstrumentKind indicates a UpDownSumObserver
- // instrument.
- UpDownSumObserverInstrumentKind
-)
-
-// Synchronous returns whether this is a synchronous kind of instrument.
-func (k InstrumentKind) Synchronous() bool {
- switch k {
- case CounterInstrumentKind, UpDownCounterInstrumentKind, ValueRecorderInstrumentKind:
- return true
- }
- return false
-}
-
-// Asynchronous returns whether this is an asynchronous kind of instrument.
-func (k InstrumentKind) Asynchronous() bool {
- return !k.Synchronous()
-}
-
-// Adding returns whether this kind of instrument adds its inputs (as opposed to Grouping).
-func (k InstrumentKind) Adding() bool {
- switch k {
- case CounterInstrumentKind, UpDownCounterInstrumentKind, SumObserverInstrumentKind, UpDownSumObserverInstrumentKind:
- return true
- }
- return false
-}
-
-// Grouping returns whether this kind of instrument groups its inputs (as opposed to Adding).
-func (k InstrumentKind) Grouping() bool {
- return !k.Adding()
-}
-
-// Monotonic returns whether this kind of instrument exposes a non-decreasing sum.
-func (k InstrumentKind) Monotonic() bool {
- switch k {
- case CounterInstrumentKind, SumObserverInstrumentKind:
- return true
- }
- return false
-}
-
-// PrecomputedSum returns whether this kind of instrument receives precomputed sums.
-func (k InstrumentKind) PrecomputedSum() bool {
- return k.Adding() && k.Asynchronous()
-}
-
-// Observation is used for reporting an asynchronous batch of metric
-// values. Instances of this type should be created by asynchronous
-// instruments (e.g., Int64ValueObserver.Observation()).
-type Observation struct {
- // number needs to be aligned for 64-bit atomic operations.
- number number.Number
- instrument AsyncImpl
-}
-
-// Int64ObserverFunc is a type of callback that integral
-// observers run.
-type Int64ObserverFunc func(context.Context, Int64ObserverResult)
-
-// Float64ObserverFunc is a type of callback that floating point
-// observers run.
-type Float64ObserverFunc func(context.Context, Float64ObserverResult)
-
-// BatchObserverFunc is a callback argument for use with any
-// Observer instrument that will be reported as a batch of
-// observations.
-type BatchObserverFunc func(context.Context, BatchObserverResult)
-
-// Int64ObserverResult is passed to an observer callback to capture
-// observations for one asynchronous integer metric instrument.
-type Int64ObserverResult struct {
- instrument AsyncImpl
- function func([]attribute.KeyValue, ...Observation)
-}
-
-// Float64ObserverResult is passed to an observer callback to capture
-// observations for one asynchronous floating point metric instrument.
-type Float64ObserverResult struct {
- instrument AsyncImpl
- function func([]attribute.KeyValue, ...Observation)
-}
-
-// BatchObserverResult is passed to a batch observer callback to
-// capture observations for multiple asynchronous instruments.
-type BatchObserverResult struct {
- function func([]attribute.KeyValue, ...Observation)
-}
-
-// Observe captures a single integer value from the associated
-// instrument callback, with the given labels.
-func (ir Int64ObserverResult) Observe(value int64, labels ...attribute.KeyValue) {
- ir.function(labels, Observation{
- instrument: ir.instrument,
- number: number.NewInt64Number(value),
- })
-}
-
-// Observe captures a single floating point value from the associated
-// instrument callback, with the given labels.
-func (fr Float64ObserverResult) Observe(value float64, labels ...attribute.KeyValue) {
- fr.function(labels, Observation{
- instrument: fr.instrument,
- number: number.NewFloat64Number(value),
- })
-}
-
-// Observe captures a multiple observations from the associated batch
-// instrument callback, with the given labels.
-func (br BatchObserverResult) Observe(labels []attribute.KeyValue, obs ...Observation) {
- br.function(labels, obs...)
-}
-
-// AsyncRunner is expected to convert into an AsyncSingleRunner or an
-// AsyncBatchRunner. SDKs will encounter an error if the AsyncRunner
-// does not satisfy one of these interfaces.
-type AsyncRunner interface {
- // AnyRunner() is a non-exported method with no functional use
- // other than to make this a non-empty interface.
- AnyRunner()
-}
-
-// AsyncSingleRunner is an interface implemented by single-observer
-// callbacks.
-type AsyncSingleRunner interface {
- // Run accepts a single instrument and function for capturing
- // observations of that instrument. Each call to the function
- // receives one captured observation. (The function accepts
- // multiple observations so the same implementation can be
- // used for batch runners.)
- Run(ctx context.Context, single AsyncImpl, capture func([]attribute.KeyValue, ...Observation))
-
- AsyncRunner
-}
-
-// AsyncBatchRunner is an interface implemented by batch-observer
-// callbacks.
-type AsyncBatchRunner interface {
- // Run accepts a function for capturing observations of
- // multiple instruments.
- Run(ctx context.Context, capture func([]attribute.KeyValue, ...Observation))
-
- AsyncRunner
-}
-
-var _ AsyncSingleRunner = (*Int64ObserverFunc)(nil)
-var _ AsyncSingleRunner = (*Float64ObserverFunc)(nil)
-var _ AsyncBatchRunner = (*BatchObserverFunc)(nil)
-
-// newInt64AsyncRunner returns a single-observer callback for integer Observer instruments.
-func newInt64AsyncRunner(c Int64ObserverFunc) AsyncSingleRunner {
- return &c
-}
-
-// newFloat64AsyncRunner returns a single-observer callback for floating point Observer instruments.
-func newFloat64AsyncRunner(c Float64ObserverFunc) AsyncSingleRunner {
- return &c
-}
-
-// newBatchAsyncRunner returns a batch-observer callback use with multiple Observer instruments.
-func newBatchAsyncRunner(c BatchObserverFunc) AsyncBatchRunner {
- return &c
-}
-
-// AnyRunner implements AsyncRunner.
-func (*Int64ObserverFunc) AnyRunner() {}
-
-// AnyRunner implements AsyncRunner.
-func (*Float64ObserverFunc) AnyRunner() {}
-
-// AnyRunner implements AsyncRunner.
-func (*BatchObserverFunc) AnyRunner() {}
-
-// Run implements AsyncSingleRunner.
-func (i *Int64ObserverFunc) Run(ctx context.Context, impl AsyncImpl, function func([]attribute.KeyValue, ...Observation)) {
- (*i)(ctx, Int64ObserverResult{
- instrument: impl,
- function: function,
- })
-}
-
-// Run implements AsyncSingleRunner.
-func (f *Float64ObserverFunc) Run(ctx context.Context, impl AsyncImpl, function func([]attribute.KeyValue, ...Observation)) {
- (*f)(ctx, Float64ObserverResult{
- instrument: impl,
- function: function,
- })
-}
-
-// Run implements AsyncBatchRunner.
-func (b *BatchObserverFunc) Run(ctx context.Context, function func([]attribute.KeyValue, ...Observation)) {
- (*b)(ctx, BatchObserverResult{
- function: function,
- })
-}
-
-// wrapInt64ValueObserverInstrument converts an AsyncImpl into Int64ValueObserver.
-func wrapInt64ValueObserverInstrument(asyncInst AsyncImpl, err error) (Int64ValueObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Int64ValueObserver{asyncInstrument: common}, err
-}
-
-// wrapFloat64ValueObserverInstrument converts an AsyncImpl into Float64ValueObserver.
-func wrapFloat64ValueObserverInstrument(asyncInst AsyncImpl, err error) (Float64ValueObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Float64ValueObserver{asyncInstrument: common}, err
-}
-
-// wrapInt64SumObserverInstrument converts an AsyncImpl into Int64SumObserver.
-func wrapInt64SumObserverInstrument(asyncInst AsyncImpl, err error) (Int64SumObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Int64SumObserver{asyncInstrument: common}, err
-}
-
-// wrapFloat64SumObserverInstrument converts an AsyncImpl into Float64SumObserver.
-func wrapFloat64SumObserverInstrument(asyncInst AsyncImpl, err error) (Float64SumObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Float64SumObserver{asyncInstrument: common}, err
-}
-
-// wrapInt64UpDownSumObserverInstrument converts an AsyncImpl into Int64UpDownSumObserver.
-func wrapInt64UpDownSumObserverInstrument(asyncInst AsyncImpl, err error) (Int64UpDownSumObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Int64UpDownSumObserver{asyncInstrument: common}, err
-}
-
-// wrapFloat64UpDownSumObserverInstrument converts an AsyncImpl into Float64UpDownSumObserver.
-func wrapFloat64UpDownSumObserverInstrument(asyncInst AsyncImpl, err error) (Float64UpDownSumObserver, error) {
- common, err := checkNewAsync(asyncInst, err)
- return Float64UpDownSumObserver{asyncInstrument: common}, err
-}
-
-// BatchObserver represents an Observer callback that can report
-// observations for multiple instruments.
-type BatchObserver struct {
- meter Meter
- runner AsyncBatchRunner
-}
-
-// Int64ValueObserver is a metric that captures a set of int64 values at a
-// point in time.
-type Int64ValueObserver struct {
- asyncInstrument
-}
-
-// Float64ValueObserver is a metric that captures a set of float64 values
-// at a point in time.
-type Float64ValueObserver struct {
- asyncInstrument
-}
-
-// Int64SumObserver is a metric that captures a precomputed sum of
-// int64 values at a point in time.
-type Int64SumObserver struct {
- asyncInstrument
-}
-
-// Float64SumObserver is a metric that captures a precomputed sum of
-// float64 values at a point in time.
-type Float64SumObserver struct {
- asyncInstrument
-}
-
-// Int64UpDownSumObserver is a metric that captures a precomputed sum of
-// int64 values at a point in time.
-type Int64UpDownSumObserver struct {
- asyncInstrument
-}
-
-// Float64UpDownSumObserver is a metric that captures a precomputed sum of
-// float64 values at a point in time.
-type Float64UpDownSumObserver struct {
- asyncInstrument
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (i Int64ValueObserver) Observation(v int64) Observation {
- return Observation{
- number: number.NewInt64Number(v),
- instrument: i.instrument,
- }
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (f Float64ValueObserver) Observation(v float64) Observation {
- return Observation{
- number: number.NewFloat64Number(v),
- instrument: f.instrument,
- }
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (i Int64SumObserver) Observation(v int64) Observation {
- return Observation{
- number: number.NewInt64Number(v),
- instrument: i.instrument,
- }
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (f Float64SumObserver) Observation(v float64) Observation {
- return Observation{
- number: number.NewFloat64Number(v),
- instrument: f.instrument,
- }
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (i Int64UpDownSumObserver) Observation(v int64) Observation {
- return Observation{
- number: number.NewInt64Number(v),
- instrument: i.instrument,
- }
-}
-
-// Observation returns an Observation, a BatchObserverFunc
-// argument, for an asynchronous integer instrument.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (f Float64UpDownSumObserver) Observation(v float64) Observation {
- return Observation{
- number: number.NewFloat64Number(v),
- instrument: f.instrument,
- }
-}
-
-// Measurement is used for reporting a synchronous batch of metric
-// values. Instances of this type should be created by synchronous
-// instruments (e.g., Int64Counter.Measurement()).
-type Measurement struct {
- // number needs to be aligned for 64-bit atomic operations.
- number number.Number
- instrument SyncImpl
-}
-
-// syncInstrument contains a SyncImpl.
-type syncInstrument struct {
- instrument SyncImpl
-}
-
-// syncBoundInstrument contains a BoundSyncImpl.
-type syncBoundInstrument struct {
- boundInstrument BoundSyncImpl
-}
-
-// asyncInstrument contains a AsyncImpl.
-type asyncInstrument struct {
- instrument AsyncImpl
-}
-
-// SyncImpl returns the instrument that created this measurement.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (m Measurement) SyncImpl() SyncImpl {
- return m.instrument
-}
-
-// Number returns a number recorded in this measurement.
-func (m Measurement) Number() number.Number {
- return m.number
-}
-
-// AsyncImpl returns the instrument that created this observation.
-// This returns an implementation-level object for use by the SDK,
-// users should not refer to this.
-func (m Observation) AsyncImpl() AsyncImpl {
- return m.instrument
-}
-
-// Number returns a number recorded in this observation.
-func (m Observation) Number() number.Number {
- return m.number
-}
-
-// AsyncImpl implements AsyncImpl.
-func (a asyncInstrument) AsyncImpl() AsyncImpl {
- return a.instrument
-}
-
-// SyncImpl returns the implementation object for synchronous instruments.
-func (s syncInstrument) SyncImpl() SyncImpl {
- return s.instrument
-}
-
-func (s syncInstrument) bind(labels []attribute.KeyValue) syncBoundInstrument {
- return newSyncBoundInstrument(s.instrument.Bind(labels))
-}
-
-func (s syncInstrument) float64Measurement(value float64) Measurement {
- return newMeasurement(s.instrument, number.NewFloat64Number(value))
-}
-
-func (s syncInstrument) int64Measurement(value int64) Measurement {
- return newMeasurement(s.instrument, number.NewInt64Number(value))
-}
-
-func (s syncInstrument) directRecord(ctx context.Context, number number.Number, labels []attribute.KeyValue) {
- s.instrument.RecordOne(ctx, number, labels)
-}
-
-func (h syncBoundInstrument) directRecord(ctx context.Context, number number.Number) {
- h.boundInstrument.RecordOne(ctx, number)
-}
-
-// Unbind calls SyncImpl.Unbind.
-func (h syncBoundInstrument) Unbind() {
- h.boundInstrument.Unbind()
-}
-
-// checkNewAsync receives an AsyncImpl and potential
-// error, and returns the same types, checking for and ensuring that
-// the returned interface is not nil.
-func checkNewAsync(instrument AsyncImpl, err error) (asyncInstrument, error) {
- if instrument == nil {
- if err == nil {
- err = ErrSDKReturnedNilImpl
- }
- instrument = NoopAsync{}
- }
- return asyncInstrument{
- instrument: instrument,
- }, err
-}
-
-// checkNewSync receives an SyncImpl and potential
-// error, and returns the same types, checking for and ensuring that
-// the returned interface is not nil.
-func checkNewSync(instrument SyncImpl, err error) (syncInstrument, error) {
- if instrument == nil {
- if err == nil {
- err = ErrSDKReturnedNilImpl
- }
- // Note: an alternate behavior would be to synthesize a new name
- // or group all duplicately-named instruments of a certain type
- // together and use a tag for the original name, e.g.,
- // name = 'invalid.counter.int64'
- // label = 'original-name=duplicate-counter-name'
- instrument = NoopSync{}
- }
- return syncInstrument{
- instrument: instrument,
- }, err
-}
-
-func newSyncBoundInstrument(boundInstrument BoundSyncImpl) syncBoundInstrument {
- return syncBoundInstrument{
- boundInstrument: boundInstrument,
- }
-}
-
-func newMeasurement(instrument SyncImpl, number number.Number) Measurement {
- return Measurement{
- instrument: instrument,
- number: number,
- }
-}
-
-// wrapInt64CounterInstrument converts a SyncImpl into Int64Counter.
-func wrapInt64CounterInstrument(syncInst SyncImpl, err error) (Int64Counter, error) {
- common, err := checkNewSync(syncInst, err)
- return Int64Counter{syncInstrument: common}, err
-}
-
-// wrapFloat64CounterInstrument converts a SyncImpl into Float64Counter.
-func wrapFloat64CounterInstrument(syncInst SyncImpl, err error) (Float64Counter, error) {
- common, err := checkNewSync(syncInst, err)
- return Float64Counter{syncInstrument: common}, err
-}
-
-// wrapInt64UpDownCounterInstrument converts a SyncImpl into Int64UpDownCounter.
-func wrapInt64UpDownCounterInstrument(syncInst SyncImpl, err error) (Int64UpDownCounter, error) {
- common, err := checkNewSync(syncInst, err)
- return Int64UpDownCounter{syncInstrument: common}, err
-}
-
-// wrapFloat64UpDownCounterInstrument converts a SyncImpl into Float64UpDownCounter.
-func wrapFloat64UpDownCounterInstrument(syncInst SyncImpl, err error) (Float64UpDownCounter, error) {
- common, err := checkNewSync(syncInst, err)
- return Float64UpDownCounter{syncInstrument: common}, err
-}
-
-// wrapInt64ValueRecorderInstrument converts a SyncImpl into Int64ValueRecorder.
-func wrapInt64ValueRecorderInstrument(syncInst SyncImpl, err error) (Int64ValueRecorder, error) {
- common, err := checkNewSync(syncInst, err)
- return Int64ValueRecorder{syncInstrument: common}, err
-}
-
-// wrapFloat64ValueRecorderInstrument converts a SyncImpl into Float64ValueRecorder.
-func wrapFloat64ValueRecorderInstrument(syncInst SyncImpl, err error) (Float64ValueRecorder, error) {
- common, err := checkNewSync(syncInst, err)
- return Float64ValueRecorder{syncInstrument: common}, err
-}
-
-// Float64Counter is a metric that accumulates float64 values.
-type Float64Counter struct {
- syncInstrument
-}
-
-// Int64Counter is a metric that accumulates int64 values.
-type Int64Counter struct {
- syncInstrument
-}
-
-// BoundFloat64Counter is a bound instrument for Float64Counter.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundFloat64Counter struct {
- syncBoundInstrument
-}
-
-// BoundInt64Counter is a boundInstrument for Int64Counter.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundInt64Counter struct {
- syncBoundInstrument
-}
-
-// Bind creates a bound instrument for this counter. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Float64Counter) Bind(labels ...attribute.KeyValue) (h BoundFloat64Counter) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Bind creates a bound instrument for this counter. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Int64Counter) Bind(labels ...attribute.KeyValue) (h BoundInt64Counter) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Float64Counter) Measurement(value float64) Measurement {
- return c.float64Measurement(value)
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Int64Counter) Measurement(value int64) Measurement {
- return c.int64Measurement(value)
-}
-
-// Add adds the value to the counter's sum. The labels should contain
-// the keys and values to be associated with this value.
-func (c Float64Counter) Add(ctx context.Context, value float64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewFloat64Number(value), labels)
-}
-
-// Add adds the value to the counter's sum. The labels should contain
-// the keys and values to be associated with this value.
-func (c Int64Counter) Add(ctx context.Context, value int64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewInt64Number(value), labels)
-}
-
-// Add adds the value to the counter's sum using the labels
-// previously bound to this counter via Bind()
-func (b BoundFloat64Counter) Add(ctx context.Context, value float64) {
- b.directRecord(ctx, number.NewFloat64Number(value))
-}
-
-// Add adds the value to the counter's sum using the labels
-// previously bound to this counter via Bind()
-func (b BoundInt64Counter) Add(ctx context.Context, value int64) {
- b.directRecord(ctx, number.NewInt64Number(value))
-}
-
-// Float64UpDownCounter is a metric instrument that sums floating
-// point values.
-type Float64UpDownCounter struct {
- syncInstrument
-}
-
-// Int64UpDownCounter is a metric instrument that sums integer values.
-type Int64UpDownCounter struct {
- syncInstrument
-}
-
-// BoundFloat64UpDownCounter is a bound instrument for Float64UpDownCounter.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundFloat64UpDownCounter struct {
- syncBoundInstrument
-}
-
-// BoundInt64UpDownCounter is a boundInstrument for Int64UpDownCounter.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundInt64UpDownCounter struct {
- syncBoundInstrument
-}
-
-// Bind creates a bound instrument for this counter. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Float64UpDownCounter) Bind(labels ...attribute.KeyValue) (h BoundFloat64UpDownCounter) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Bind creates a bound instrument for this counter. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Int64UpDownCounter) Bind(labels ...attribute.KeyValue) (h BoundInt64UpDownCounter) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Float64UpDownCounter) Measurement(value float64) Measurement {
- return c.float64Measurement(value)
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Int64UpDownCounter) Measurement(value int64) Measurement {
- return c.int64Measurement(value)
-}
-
-// Add adds the value to the counter's sum. The labels should contain
-// the keys and values to be associated with this value.
-func (c Float64UpDownCounter) Add(ctx context.Context, value float64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewFloat64Number(value), labels)
-}
-
-// Add adds the value to the counter's sum. The labels should contain
-// the keys and values to be associated with this value.
-func (c Int64UpDownCounter) Add(ctx context.Context, value int64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewInt64Number(value), labels)
-}
-
-// Add adds the value to the counter's sum using the labels
-// previously bound to this counter via Bind()
-func (b BoundFloat64UpDownCounter) Add(ctx context.Context, value float64) {
- b.directRecord(ctx, number.NewFloat64Number(value))
-}
-
-// Add adds the value to the counter's sum using the labels
-// previously bound to this counter via Bind()
-func (b BoundInt64UpDownCounter) Add(ctx context.Context, value int64) {
- b.directRecord(ctx, number.NewInt64Number(value))
-}
-
-// Float64ValueRecorder is a metric that records float64 values.
-type Float64ValueRecorder struct {
- syncInstrument
-}
-
-// Int64ValueRecorder is a metric that records int64 values.
-type Int64ValueRecorder struct {
- syncInstrument
-}
-
-// BoundFloat64ValueRecorder is a bound instrument for Float64ValueRecorder.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundFloat64ValueRecorder struct {
- syncBoundInstrument
-}
-
-// BoundInt64ValueRecorder is a bound instrument for Int64ValueRecorder.
-//
-// It inherits the Unbind function from syncBoundInstrument.
-type BoundInt64ValueRecorder struct {
- syncBoundInstrument
-}
-
-// Bind creates a bound instrument for this ValueRecorder. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Float64ValueRecorder) Bind(labels ...attribute.KeyValue) (h BoundFloat64ValueRecorder) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Bind creates a bound instrument for this ValueRecorder. The labels are
-// associated with values recorded via subsequent calls to Record.
-func (c Int64ValueRecorder) Bind(labels ...attribute.KeyValue) (h BoundInt64ValueRecorder) {
- h.syncBoundInstrument = c.bind(labels)
- return
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Float64ValueRecorder) Measurement(value float64) Measurement {
- return c.float64Measurement(value)
-}
-
-// Measurement creates a Measurement object to use with batch
-// recording.
-func (c Int64ValueRecorder) Measurement(value int64) Measurement {
- return c.int64Measurement(value)
-}
-
-// Record adds a new value to the list of ValueRecorder's records. The
-// labels should contain the keys and values to be associated with
-// this value.
-func (c Float64ValueRecorder) Record(ctx context.Context, value float64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewFloat64Number(value), labels)
-}
-
-// Record adds a new value to the ValueRecorder's distribution. The
-// labels should contain the keys and values to be associated with
-// this value.
-func (c Int64ValueRecorder) Record(ctx context.Context, value int64, labels ...attribute.KeyValue) {
- c.directRecord(ctx, number.NewInt64Number(value), labels)
-}
-
-// Record adds a new value to the ValueRecorder's distribution using the labels
-// previously bound to the ValueRecorder via Bind().
-func (b BoundFloat64ValueRecorder) Record(ctx context.Context, value float64) {
- b.directRecord(ctx, number.NewFloat64Number(value))
-}
-
-// Record adds a new value to the ValueRecorder's distribution using the labels
-// previously bound to the ValueRecorder via Bind().
-func (b BoundInt64ValueRecorder) Record(ctx context.Context, value int64) {
- b.directRecord(ctx, number.NewInt64Number(value))
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/metric_noop.go b/vendor/go.opentelemetry.io/otel/metric/metric_noop.go
deleted file mode 100644
index 30e57b6945..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/metric_noop.go
+++ /dev/null
@@ -1,59 +0,0 @@
-// 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 metric // import "go.opentelemetry.io/otel/metric"
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric/number"
-)
-
-type NoopMeterProvider struct{}
-
-type noopInstrument struct{}
-type noopBoundInstrument struct{}
-type NoopSync struct{ noopInstrument }
-type NoopAsync struct{ noopInstrument }
-
-var _ MeterProvider = NoopMeterProvider{}
-var _ SyncImpl = NoopSync{}
-var _ BoundSyncImpl = noopBoundInstrument{}
-var _ AsyncImpl = NoopAsync{}
-
-func (NoopMeterProvider) Meter(_ string, _ ...MeterOption) Meter {
- return Meter{}
-}
-
-func (noopInstrument) Implementation() interface{} {
- return nil
-}
-
-func (noopInstrument) Descriptor() Descriptor {
- return Descriptor{}
-}
-
-func (noopBoundInstrument) RecordOne(context.Context, number.Number) {
-}
-
-func (noopBoundInstrument) Unbind() {
-}
-
-func (NoopSync) Bind([]attribute.KeyValue) BoundSyncImpl {
- return noopBoundInstrument{}
-}
-
-func (NoopSync) RecordOne(context.Context, number.Number, []attribute.KeyValue) {
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/metric_sdkapi.go b/vendor/go.opentelemetry.io/otel/metric/metric_sdkapi.go
deleted file mode 100644
index 94164f7b48..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/metric_sdkapi.go
+++ /dev/null
@@ -1,95 +0,0 @@
-// 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 metric // import "go.opentelemetry.io/otel/metric"
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric/number"
-)
-
-// MeterImpl is the interface an SDK must implement to supply a Meter
-// implementation.
-type MeterImpl interface {
- // RecordBatch atomically records a batch of measurements.
- RecordBatch(ctx context.Context, labels []attribute.KeyValue, measurement ...Measurement)
-
- // NewSyncInstrument returns a newly constructed
- // synchronous instrument implementation or an error, should
- // one occur.
- NewSyncInstrument(descriptor Descriptor) (SyncImpl, error)
-
- // NewAsyncInstrument returns a newly constructed
- // asynchronous instrument implementation or an error, should
- // one occur.
- NewAsyncInstrument(
- descriptor Descriptor,
- runner AsyncRunner,
- ) (AsyncImpl, error)
-}
-
-// InstrumentImpl is a common interface for synchronous and
-// asynchronous instruments.
-type InstrumentImpl interface {
- // Implementation returns the underlying implementation of the
- // instrument, which allows the implementation to gain access
- // to its own representation especially from a `Measurement`.
- Implementation() interface{}
-
- // Descriptor returns a copy of the instrument's Descriptor.
- Descriptor() Descriptor
-}
-
-// SyncImpl is the implementation-level interface to a generic
-// synchronous instrument (e.g., ValueRecorder and Counter instruments).
-type SyncImpl interface {
- InstrumentImpl
-
- // Bind creates an implementation-level bound instrument,
- // binding a label set with this instrument implementation.
- Bind(labels []attribute.KeyValue) BoundSyncImpl
-
- // RecordOne captures a single synchronous metric event.
- RecordOne(ctx context.Context, number number.Number, labels []attribute.KeyValue)
-}
-
-// BoundSyncImpl is the implementation-level interface to a
-// generic bound synchronous instrument
-type BoundSyncImpl interface {
-
- // RecordOne captures a single synchronous metric event.
- RecordOne(ctx context.Context, number number.Number)
-
- // Unbind frees the resources associated with this bound instrument. It
- // does not affect the metric this bound instrument was created through.
- Unbind()
-}
-
-// AsyncImpl is an implementation-level interface to an
-// asynchronous instrument (e.g., Observer instruments).
-type AsyncImpl interface {
- InstrumentImpl
-}
-
-// WrapMeterImpl constructs a `Meter` implementation from a
-// `MeterImpl` implementation.
-func WrapMeterImpl(impl MeterImpl, instrumentationName string, opts ...MeterOption) Meter {
- return Meter{
- impl: impl,
- name: instrumentationName,
- version: NewMeterConfig(opts...).InstrumentationVersion,
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/number/doc.go b/vendor/go.opentelemetry.io/otel/metric/number/doc.go
deleted file mode 100644
index 0649ff875e..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/number/doc.go
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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 number provides a number abstraction for instruments that
-either support int64 or float64 input values.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track the
-evolving OpenTelemetry specification and user feedback.
-*/
-package number // import "go.opentelemetry.io/otel/metric/number"
diff --git a/vendor/go.opentelemetry.io/otel/metric/number/kind_string.go b/vendor/go.opentelemetry.io/otel/metric/number/kind_string.go
deleted file mode 100644
index 6288c7ea29..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/number/kind_string.go
+++ /dev/null
@@ -1,24 +0,0 @@
-// Code generated by "stringer -type=Kind"; DO NOT EDIT.
-
-package number
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[Int64Kind-0]
- _ = x[Float64Kind-1]
-}
-
-const _Kind_name = "Int64KindFloat64Kind"
-
-var _Kind_index = [...]uint8{0, 9, 20}
-
-func (i Kind) String() string {
- if i < 0 || i >= Kind(len(_Kind_index)-1) {
- return "Kind(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _Kind_name[_Kind_index[i]:_Kind_index[i+1]]
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/number/number.go b/vendor/go.opentelemetry.io/otel/metric/number/number.go
deleted file mode 100644
index 3ec95e2014..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/number/number.go
+++ /dev/null
@@ -1,538 +0,0 @@
-// 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 number // import "go.opentelemetry.io/otel/metric/number"
-
-//go:generate stringer -type=Kind
-
-import (
- "fmt"
- "math"
- "sync/atomic"
-
- "go.opentelemetry.io/otel/internal"
-)
-
-// Kind describes the data type of the Number.
-type Kind int8
-
-const (
- // Int64Kind means that the Number stores int64.
- Int64Kind Kind = iota
- // Float64Kind means that the Number stores float64.
- Float64Kind
-)
-
-// Zero returns a zero value for a given Kind
-func (k Kind) Zero() Number {
- switch k {
- case Int64Kind:
- return NewInt64Number(0)
- case Float64Kind:
- return NewFloat64Number(0.)
- default:
- return Number(0)
- }
-}
-
-// Minimum returns the minimum representable value
-// for a given Kind
-func (k Kind) Minimum() Number {
- switch k {
- case Int64Kind:
- return NewInt64Number(math.MinInt64)
- case Float64Kind:
- return NewFloat64Number(-1. * math.MaxFloat64)
- default:
- return Number(0)
- }
-}
-
-// Maximum returns the maximum representable value
-// for a given Kind
-func (k Kind) Maximum() Number {
- switch k {
- case Int64Kind:
- return NewInt64Number(math.MaxInt64)
- case Float64Kind:
- return NewFloat64Number(math.MaxFloat64)
- default:
- return Number(0)
- }
-}
-
-// Number represents either an integral or a floating point value. It
-// needs to be accompanied with a source of Kind that describes
-// the actual type of the value stored within Number.
-type Number uint64
-
-// - constructors
-
-// NewNumberFromRaw creates a new Number from a raw value.
-func NewNumberFromRaw(r uint64) Number {
- return Number(r)
-}
-
-// NewInt64Number creates an integral Number.
-func NewInt64Number(i int64) Number {
- return NewNumberFromRaw(internal.Int64ToRaw(i))
-}
-
-// NewFloat64Number creates a floating point Number.
-func NewFloat64Number(f float64) Number {
- return NewNumberFromRaw(internal.Float64ToRaw(f))
-}
-
-// NewNumberSignChange returns a number with the same magnitude and
-// the opposite sign. `kind` must describe the kind of number in `nn`.
-func NewNumberSignChange(kind Kind, nn Number) Number {
- switch kind {
- case Int64Kind:
- return NewInt64Number(-nn.AsInt64())
- case Float64Kind:
- return NewFloat64Number(-nn.AsFloat64())
- }
- return nn
-}
-
-// - as x
-
-// AsNumber gets the Number.
-func (n *Number) AsNumber() Number {
- return *n
-}
-
-// AsRaw gets the uninterpreted raw value. Might be useful for some
-// atomic operations.
-func (n *Number) AsRaw() uint64 {
- return uint64(*n)
-}
-
-// AsInt64 assumes that the value contains an int64 and returns it as
-// such.
-func (n *Number) AsInt64() int64 {
- return internal.RawToInt64(n.AsRaw())
-}
-
-// AsFloat64 assumes that the measurement value contains a float64 and
-// returns it as such.
-func (n *Number) AsFloat64() float64 {
- return internal.RawToFloat64(n.AsRaw())
-}
-
-// - as x atomic
-
-// AsNumberAtomic gets the Number atomically.
-func (n *Number) AsNumberAtomic() Number {
- return NewNumberFromRaw(n.AsRawAtomic())
-}
-
-// AsRawAtomic gets the uninterpreted raw value atomically. Might be
-// useful for some atomic operations.
-func (n *Number) AsRawAtomic() uint64 {
- return atomic.LoadUint64(n.AsRawPtr())
-}
-
-// AsInt64Atomic assumes that the number contains an int64 and returns
-// it as such atomically.
-func (n *Number) AsInt64Atomic() int64 {
- return atomic.LoadInt64(n.AsInt64Ptr())
-}
-
-// AsFloat64Atomic assumes that the measurement value contains a
-// float64 and returns it as such atomically.
-func (n *Number) AsFloat64Atomic() float64 {
- return internal.RawToFloat64(n.AsRawAtomic())
-}
-
-// - as x ptr
-
-// AsRawPtr gets the pointer to the raw, uninterpreted raw
-// value. Might be useful for some atomic operations.
-func (n *Number) AsRawPtr() *uint64 {
- return (*uint64)(n)
-}
-
-// AsInt64Ptr assumes that the number contains an int64 and returns a
-// pointer to it.
-func (n *Number) AsInt64Ptr() *int64 {
- return internal.RawPtrToInt64Ptr(n.AsRawPtr())
-}
-
-// AsFloat64Ptr assumes that the number contains a float64 and returns a
-// pointer to it.
-func (n *Number) AsFloat64Ptr() *float64 {
- return internal.RawPtrToFloat64Ptr(n.AsRawPtr())
-}
-
-// - coerce
-
-// CoerceToInt64 casts the number to int64. May result in
-// data/precision loss.
-func (n *Number) CoerceToInt64(kind Kind) int64 {
- switch kind {
- case Int64Kind:
- return n.AsInt64()
- case Float64Kind:
- return int64(n.AsFloat64())
- default:
- // you get what you deserve
- return 0
- }
-}
-
-// CoerceToFloat64 casts the number to float64. May result in
-// data/precision loss.
-func (n *Number) CoerceToFloat64(kind Kind) float64 {
- switch kind {
- case Int64Kind:
- return float64(n.AsInt64())
- case Float64Kind:
- return n.AsFloat64()
- default:
- // you get what you deserve
- return 0
- }
-}
-
-// - set
-
-// SetNumber sets the number to the passed number. Both should be of
-// the same kind.
-func (n *Number) SetNumber(nn Number) {
- *n.AsRawPtr() = nn.AsRaw()
-}
-
-// SetRaw sets the number to the passed raw value. Both number and the
-// raw number should represent the same kind.
-func (n *Number) SetRaw(r uint64) {
- *n.AsRawPtr() = r
-}
-
-// SetInt64 assumes that the number contains an int64 and sets it to
-// the passed value.
-func (n *Number) SetInt64(i int64) {
- *n.AsInt64Ptr() = i
-}
-
-// SetFloat64 assumes that the number contains a float64 and sets it
-// to the passed value.
-func (n *Number) SetFloat64(f float64) {
- *n.AsFloat64Ptr() = f
-}
-
-// - set atomic
-
-// SetNumberAtomic sets the number to the passed number
-// atomically. Both should be of the same kind.
-func (n *Number) SetNumberAtomic(nn Number) {
- atomic.StoreUint64(n.AsRawPtr(), nn.AsRaw())
-}
-
-// SetRawAtomic sets the number to the passed raw value
-// atomically. Both number and the raw number should represent the
-// same kind.
-func (n *Number) SetRawAtomic(r uint64) {
- atomic.StoreUint64(n.AsRawPtr(), r)
-}
-
-// SetInt64Atomic assumes that the number contains an int64 and sets
-// it to the passed value atomically.
-func (n *Number) SetInt64Atomic(i int64) {
- atomic.StoreInt64(n.AsInt64Ptr(), i)
-}
-
-// SetFloat64Atomic assumes that the number contains a float64 and
-// sets it to the passed value atomically.
-func (n *Number) SetFloat64Atomic(f float64) {
- atomic.StoreUint64(n.AsRawPtr(), internal.Float64ToRaw(f))
-}
-
-// - swap
-
-// SwapNumber sets the number to the passed number and returns the old
-// number. Both this number and the passed number should be of the
-// same kind.
-func (n *Number) SwapNumber(nn Number) Number {
- old := *n
- n.SetNumber(nn)
- return old
-}
-
-// SwapRaw sets the number to the passed raw value and returns the old
-// raw value. Both number and the raw number should represent the same
-// kind.
-func (n *Number) SwapRaw(r uint64) uint64 {
- old := n.AsRaw()
- n.SetRaw(r)
- return old
-}
-
-// SwapInt64 assumes that the number contains an int64, sets it to the
-// passed value and returns the old int64 value.
-func (n *Number) SwapInt64(i int64) int64 {
- old := n.AsInt64()
- n.SetInt64(i)
- return old
-}
-
-// SwapFloat64 assumes that the number contains an float64, sets it to
-// the passed value and returns the old float64 value.
-func (n *Number) SwapFloat64(f float64) float64 {
- old := n.AsFloat64()
- n.SetFloat64(f)
- return old
-}
-
-// - swap atomic
-
-// SwapNumberAtomic sets the number to the passed number and returns
-// the old number atomically. Both this number and the passed number
-// should be of the same kind.
-func (n *Number) SwapNumberAtomic(nn Number) Number {
- return NewNumberFromRaw(atomic.SwapUint64(n.AsRawPtr(), nn.AsRaw()))
-}
-
-// SwapRawAtomic sets the number to the passed raw value and returns
-// the old raw value atomically. Both number and the raw number should
-// represent the same kind.
-func (n *Number) SwapRawAtomic(r uint64) uint64 {
- return atomic.SwapUint64(n.AsRawPtr(), r)
-}
-
-// SwapInt64Atomic assumes that the number contains an int64, sets it
-// to the passed value and returns the old int64 value atomically.
-func (n *Number) SwapInt64Atomic(i int64) int64 {
- return atomic.SwapInt64(n.AsInt64Ptr(), i)
-}
-
-// SwapFloat64Atomic assumes that the number contains an float64, sets
-// it to the passed value and returns the old float64 value
-// atomically.
-func (n *Number) SwapFloat64Atomic(f float64) float64 {
- return internal.RawToFloat64(atomic.SwapUint64(n.AsRawPtr(), internal.Float64ToRaw(f)))
-}
-
-// - add
-
-// AddNumber assumes that this and the passed number are of the passed
-// kind and adds the passed number to this number.
-func (n *Number) AddNumber(kind Kind, nn Number) {
- switch kind {
- case Int64Kind:
- n.AddInt64(nn.AsInt64())
- case Float64Kind:
- n.AddFloat64(nn.AsFloat64())
- }
-}
-
-// AddRaw assumes that this number and the passed raw value are of the
-// passed kind and adds the passed raw value to this number.
-func (n *Number) AddRaw(kind Kind, r uint64) {
- n.AddNumber(kind, NewNumberFromRaw(r))
-}
-
-// AddInt64 assumes that the number contains an int64 and adds the
-// passed int64 to it.
-func (n *Number) AddInt64(i int64) {
- *n.AsInt64Ptr() += i
-}
-
-// AddFloat64 assumes that the number contains a float64 and adds the
-// passed float64 to it.
-func (n *Number) AddFloat64(f float64) {
- *n.AsFloat64Ptr() += f
-}
-
-// - add atomic
-
-// AddNumberAtomic assumes that this and the passed number are of the
-// passed kind and adds the passed number to this number atomically.
-func (n *Number) AddNumberAtomic(kind Kind, nn Number) {
- switch kind {
- case Int64Kind:
- n.AddInt64Atomic(nn.AsInt64())
- case Float64Kind:
- n.AddFloat64Atomic(nn.AsFloat64())
- }
-}
-
-// AddRawAtomic assumes that this number and the passed raw value are
-// of the passed kind and adds the passed raw value to this number
-// atomically.
-func (n *Number) AddRawAtomic(kind Kind, r uint64) {
- n.AddNumberAtomic(kind, NewNumberFromRaw(r))
-}
-
-// AddInt64Atomic assumes that the number contains an int64 and adds
-// the passed int64 to it atomically.
-func (n *Number) AddInt64Atomic(i int64) {
- atomic.AddInt64(n.AsInt64Ptr(), i)
-}
-
-// AddFloat64Atomic assumes that the number contains a float64 and
-// adds the passed float64 to it atomically.
-func (n *Number) AddFloat64Atomic(f float64) {
- for {
- o := n.AsFloat64Atomic()
- if n.CompareAndSwapFloat64(o, o+f) {
- break
- }
- }
-}
-
-// - compare and swap (atomic only)
-
-// CompareAndSwapNumber does the atomic CAS operation on this
-// number. This number and passed old and new numbers should be of the
-// same kind.
-func (n *Number) CompareAndSwapNumber(on, nn Number) bool {
- return atomic.CompareAndSwapUint64(n.AsRawPtr(), on.AsRaw(), nn.AsRaw())
-}
-
-// CompareAndSwapRaw does the atomic CAS operation on this
-// number. This number and passed old and new raw values should be of
-// the same kind.
-func (n *Number) CompareAndSwapRaw(or, nr uint64) bool {
- return atomic.CompareAndSwapUint64(n.AsRawPtr(), or, nr)
-}
-
-// CompareAndSwapInt64 assumes that this number contains an int64 and
-// does the atomic CAS operation on it.
-func (n *Number) CompareAndSwapInt64(oi, ni int64) bool {
- return atomic.CompareAndSwapInt64(n.AsInt64Ptr(), oi, ni)
-}
-
-// CompareAndSwapFloat64 assumes that this number contains a float64 and
-// does the atomic CAS operation on it.
-func (n *Number) CompareAndSwapFloat64(of, nf float64) bool {
- return atomic.CompareAndSwapUint64(n.AsRawPtr(), internal.Float64ToRaw(of), internal.Float64ToRaw(nf))
-}
-
-// - compare
-
-// CompareNumber compares two Numbers given their kind. Both numbers
-// should have the same kind. This returns:
-// 0 if the numbers are equal
-// -1 if the subject `n` is less than the argument `nn`
-// +1 if the subject `n` is greater than the argument `nn`
-func (n *Number) CompareNumber(kind Kind, nn Number) int {
- switch kind {
- case Int64Kind:
- return n.CompareInt64(nn.AsInt64())
- case Float64Kind:
- return n.CompareFloat64(nn.AsFloat64())
- default:
- // you get what you deserve
- return 0
- }
-}
-
-// CompareRaw compares two numbers, where one is input as a raw
-// uint64, interpreting both values as a `kind` of number.
-func (n *Number) CompareRaw(kind Kind, r uint64) int {
- return n.CompareNumber(kind, NewNumberFromRaw(r))
-}
-
-// CompareInt64 assumes that the Number contains an int64 and performs
-// a comparison between the value and the other value. It returns the
-// typical result of the compare function: -1 if the value is less
-// than the other, 0 if both are equal, 1 if the value is greater than
-// the other.
-func (n *Number) CompareInt64(i int64) int {
- this := n.AsInt64()
- if this < i {
- return -1
- } else if this > i {
- return 1
- }
- return 0
-}
-
-// CompareFloat64 assumes that the Number contains a float64 and
-// performs a comparison between the value and the other value. It
-// returns the typical result of the compare function: -1 if the value
-// is less than the other, 0 if both are equal, 1 if the value is
-// greater than the other.
-//
-// Do not compare NaN values.
-func (n *Number) CompareFloat64(f float64) int {
- this := n.AsFloat64()
- if this < f {
- return -1
- } else if this > f {
- return 1
- }
- return 0
-}
-
-// - relations to zero
-
-// IsPositive returns true if the actual value is greater than zero.
-func (n *Number) IsPositive(kind Kind) bool {
- return n.compareWithZero(kind) > 0
-}
-
-// IsNegative returns true if the actual value is less than zero.
-func (n *Number) IsNegative(kind Kind) bool {
- return n.compareWithZero(kind) < 0
-}
-
-// IsZero returns true if the actual value is equal to zero.
-func (n *Number) IsZero(kind Kind) bool {
- return n.compareWithZero(kind) == 0
-}
-
-// - misc
-
-// Emit returns a string representation of the raw value of the
-// Number. A %d is used for integral values, %f for floating point
-// values.
-func (n *Number) Emit(kind Kind) string {
- switch kind {
- case Int64Kind:
- return fmt.Sprintf("%d", n.AsInt64())
- case Float64Kind:
- return fmt.Sprintf("%f", n.AsFloat64())
- default:
- return ""
- }
-}
-
-// AsInterface returns the number as an interface{}, typically used
-// for Kind-correct JSON conversion.
-func (n *Number) AsInterface(kind Kind) interface{} {
- switch kind {
- case Int64Kind:
- return n.AsInt64()
- case Float64Kind:
- return n.AsFloat64()
- default:
- return math.NaN()
- }
-}
-
-// - private stuff
-
-func (n *Number) compareWithZero(kind Kind) int {
- switch kind {
- case Int64Kind:
- return n.CompareInt64(0)
- case Float64Kind:
- return n.CompareFloat64(0.)
- default:
- // you get what you deserve
- return 0
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/metric/registry/doc.go b/vendor/go.opentelemetry.io/otel/metric/registry/doc.go
deleted file mode 100644
index a53ba45545..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/registry/doc.go
+++ /dev/null
@@ -1,24 +0,0 @@
-// 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 registry provides a non-standalone implementation of
-MeterProvider that adds uniqueness checking for instrument descriptors
-on top of other MeterProvider it wraps.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track the
-evolving OpenTelemetry specification and user feedback.
-*/
-package registry // import "go.opentelemetry.io/otel/metric/registry"
diff --git a/vendor/go.opentelemetry.io/otel/metric/registry/registry.go b/vendor/go.opentelemetry.io/otel/metric/registry/registry.go
deleted file mode 100644
index 0a42a0fdf8..0000000000
--- a/vendor/go.opentelemetry.io/otel/metric/registry/registry.go
+++ /dev/null
@@ -1,170 +0,0 @@
-// 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 registry // import "go.opentelemetry.io/otel/metric/registry"
-
-import (
- "context"
- "fmt"
- "sync"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/metric"
-)
-
-// MeterProvider is a standard MeterProvider for wrapping `MeterImpl`
-type MeterProvider struct {
- impl metric.MeterImpl
-}
-
-var _ metric.MeterProvider = (*MeterProvider)(nil)
-
-// uniqueInstrumentMeterImpl implements the metric.MeterImpl interface, adding
-// uniqueness checking for instrument descriptors. Use NewUniqueInstrumentMeter
-// to wrap an implementation with uniqueness checking.
-type uniqueInstrumentMeterImpl struct {
- lock sync.Mutex
- impl metric.MeterImpl
- state map[key]metric.InstrumentImpl
-}
-
-var _ metric.MeterImpl = (*uniqueInstrumentMeterImpl)(nil)
-
-type key struct {
- instrumentName string
- instrumentationName string
- InstrumentationVersion string
-}
-
-// NewMeterProvider returns a new provider that implements instrument
-// name-uniqueness checking.
-func NewMeterProvider(impl metric.MeterImpl) *MeterProvider {
- return &MeterProvider{
- impl: NewUniqueInstrumentMeterImpl(impl),
- }
-}
-
-// Meter implements MeterProvider.
-func (p *MeterProvider) Meter(instrumentationName string, opts ...metric.MeterOption) metric.Meter {
- return metric.WrapMeterImpl(p.impl, instrumentationName, opts...)
-}
-
-// ErrMetricKindMismatch is the standard error for mismatched metric
-// instrument definitions.
-var ErrMetricKindMismatch = fmt.Errorf(
- "a metric was already registered by this name with another kind or number type")
-
-// NewUniqueInstrumentMeterImpl returns a wrapped metric.MeterImpl with
-// the addition of uniqueness checking.
-func NewUniqueInstrumentMeterImpl(impl metric.MeterImpl) metric.MeterImpl {
- return &uniqueInstrumentMeterImpl{
- impl: impl,
- state: map[key]metric.InstrumentImpl{},
- }
-}
-
-// RecordBatch implements metric.MeterImpl.
-func (u *uniqueInstrumentMeterImpl) RecordBatch(ctx context.Context, labels []attribute.KeyValue, ms ...metric.Measurement) {
- u.impl.RecordBatch(ctx, labels, ms...)
-}
-
-func keyOf(descriptor metric.Descriptor) key {
- return key{
- descriptor.Name(),
- descriptor.InstrumentationName(),
- descriptor.InstrumentationVersion(),
- }
-}
-
-// NewMetricKindMismatchError formats an error that describes a
-// mismatched metric instrument definition.
-func NewMetricKindMismatchError(desc metric.Descriptor) error {
- return fmt.Errorf("metric was %s (%s %s)registered as a %s %s: %w",
- desc.Name(),
- desc.InstrumentationName(),
- desc.InstrumentationVersion(),
- desc.NumberKind(),
- desc.InstrumentKind(),
- ErrMetricKindMismatch)
-}
-
-// Compatible determines whether two metric.Descriptors are considered
-// the same for the purpose of uniqueness checking.
-func Compatible(candidate, existing metric.Descriptor) bool {
- return candidate.InstrumentKind() == existing.InstrumentKind() &&
- candidate.NumberKind() == existing.NumberKind()
-}
-
-// checkUniqueness returns an ErrMetricKindMismatch error if there is
-// a conflict between a descriptor that was already registered and the
-// `descriptor` argument. If there is an existing compatible
-// registration, this returns the already-registered instrument. If
-// there is no conflict and no prior registration, returns (nil, nil).
-func (u *uniqueInstrumentMeterImpl) checkUniqueness(descriptor metric.Descriptor) (metric.InstrumentImpl, error) {
- impl, ok := u.state[keyOf(descriptor)]
- if !ok {
- return nil, nil
- }
-
- if !Compatible(descriptor, impl.Descriptor()) {
- return nil, NewMetricKindMismatchError(impl.Descriptor())
- }
-
- return impl, nil
-}
-
-// NewSyncInstrument implements metric.MeterImpl.
-func (u *uniqueInstrumentMeterImpl) NewSyncInstrument(descriptor metric.Descriptor) (metric.SyncImpl, error) {
- u.lock.Lock()
- defer u.lock.Unlock()
-
- impl, err := u.checkUniqueness(descriptor)
-
- if err != nil {
- return nil, err
- } else if impl != nil {
- return impl.(metric.SyncImpl), nil
- }
-
- syncInst, err := u.impl.NewSyncInstrument(descriptor)
- if err != nil {
- return nil, err
- }
- u.state[keyOf(descriptor)] = syncInst
- return syncInst, nil
-}
-
-// NewAsyncInstrument implements metric.MeterImpl.
-func (u *uniqueInstrumentMeterImpl) NewAsyncInstrument(
- descriptor metric.Descriptor,
- runner metric.AsyncRunner,
-) (metric.AsyncImpl, error) {
- u.lock.Lock()
- defer u.lock.Unlock()
-
- impl, err := u.checkUniqueness(descriptor)
-
- if err != nil {
- return nil, err
- } else if impl != nil {
- return impl.(metric.AsyncImpl), nil
- }
-
- asyncInst, err := u.impl.NewAsyncInstrument(descriptor, runner)
- if err != nil {
- return nil, err
- }
- u.state[keyOf(descriptor)] = asyncInst
- return asyncInst, nil
-}
diff --git a/vendor/go.opentelemetry.io/otel/propagation/baggage.go b/vendor/go.opentelemetry.io/otel/propagation/baggage.go
deleted file mode 100644
index bc76191892..0000000000
--- a/vendor/go.opentelemetry.io/otel/propagation/baggage.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// 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 propagation // import "go.opentelemetry.io/otel/propagation"
-
-import (
- "context"
- "net/url"
- "strings"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/internal/baggage"
-)
-
-const baggageHeader = "baggage"
-
-// Baggage is a propagator that supports the W3C Baggage format.
-//
-// This propagates user-defined baggage associated with a trace. The complete
-// specification is defined at https://w3c.github.io/baggage/.
-type Baggage struct{}
-
-var _ TextMapPropagator = Baggage{}
-
-// Inject sets baggage key-values from ctx into the carrier.
-func (b Baggage) Inject(ctx context.Context, carrier TextMapCarrier) {
- baggageMap := baggage.MapFromContext(ctx)
- firstIter := true
- var headerValueBuilder strings.Builder
- baggageMap.Foreach(func(kv attribute.KeyValue) bool {
- if !firstIter {
- headerValueBuilder.WriteRune(',')
- }
- firstIter = false
- headerValueBuilder.WriteString(url.QueryEscape(strings.TrimSpace((string)(kv.Key))))
- headerValueBuilder.WriteRune('=')
- headerValueBuilder.WriteString(url.QueryEscape(strings.TrimSpace(kv.Value.Emit())))
- return true
- })
- if headerValueBuilder.Len() > 0 {
- headerString := headerValueBuilder.String()
- carrier.Set(baggageHeader, headerString)
- }
-}
-
-// Extract returns a copy of parent with the baggage from the carrier added.
-func (b Baggage) Extract(parent context.Context, carrier TextMapCarrier) context.Context {
- bVal := carrier.Get(baggageHeader)
- if bVal == "" {
- return parent
- }
-
- baggageValues := strings.Split(bVal, ",")
- keyValues := make([]attribute.KeyValue, 0, len(baggageValues))
- for _, baggageValue := range baggageValues {
- valueAndProps := strings.Split(baggageValue, ";")
- if len(valueAndProps) < 1 {
- continue
- }
- nameValue := strings.Split(valueAndProps[0], "=")
- if len(nameValue) < 2 {
- continue
- }
- name, err := url.QueryUnescape(nameValue[0])
- if err != nil {
- continue
- }
- trimmedName := strings.TrimSpace(name)
- value, err := url.QueryUnescape(nameValue[1])
- if err != nil {
- continue
- }
- trimmedValue := strings.TrimSpace(value)
-
- // TODO (skaris): properties defiend https://w3c.github.io/correlation-context/, are currently
- // just put as part of the value.
- var trimmedValueWithProps strings.Builder
- trimmedValueWithProps.WriteString(trimmedValue)
- for _, prop := range valueAndProps[1:] {
- trimmedValueWithProps.WriteRune(';')
- trimmedValueWithProps.WriteString(prop)
- }
-
- keyValues = append(keyValues, attribute.String(trimmedName, trimmedValueWithProps.String()))
- }
-
- if len(keyValues) > 0 {
- // Only update the context if valid values were found
- return baggage.ContextWithMap(parent, baggage.NewMap(baggage.MapUpdate{
- MultiKV: keyValues,
- }))
- }
-
- return parent
-}
-
-// Fields returns the keys who's values are set with Inject.
-func (b Baggage) Fields() []string {
- return []string{baggageHeader}
-}
diff --git a/vendor/go.opentelemetry.io/otel/propagation/doc.go b/vendor/go.opentelemetry.io/otel/propagation/doc.go
deleted file mode 100644
index 89573f1baa..0000000000
--- a/vendor/go.opentelemetry.io/otel/propagation/doc.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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 propagation contains OpenTelemetry context propagators.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track the
-evolving OpenTelemetry specification and user feedback.
-
-OpenTelemetry propagators are used to extract and inject context data from and
-into messages exchanged by applications. The propagator supported by this
-package is the W3C Trace Context encoding
-(https://www.w3.org/TR/trace-context/), and W3C Baggage
-(https://w3c.github.io/baggage/).
-*/
-package propagation // import "go.opentelemetry.io/otel/propagation"
diff --git a/vendor/go.opentelemetry.io/otel/propagation/propagation.go b/vendor/go.opentelemetry.io/otel/propagation/propagation.go
deleted file mode 100644
index 9cfeb347a3..0000000000
--- a/vendor/go.opentelemetry.io/otel/propagation/propagation.go
+++ /dev/null
@@ -1,105 +0,0 @@
-// 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 propagation // import "go.opentelemetry.io/otel/propagation"
-
-import (
- "context"
- "net/http"
-)
-
-// TextMapCarrier is the storage medium used by a TextMapPropagator.
-type TextMapCarrier interface {
- // Get returns the value associated with the passed key.
- Get(key string) string
- // Set stores the key-value pair.
- Set(key string, value string)
- // Keys lists the keys stored in this carrier.
- Keys() []string
-}
-
-// HeaderCarrier adapts http.Header to satisfy the TextMapCarrier interface.
-type HeaderCarrier http.Header
-
-// Get returns the value associated with the passed key.
-func (hc HeaderCarrier) Get(key string) string {
- return http.Header(hc).Get(key)
-}
-
-// Set stores the key-value pair.
-func (hc HeaderCarrier) Set(key string, value string) {
- http.Header(hc).Set(key, value)
-}
-
-// Keys lists the keys stored in this carrier.
-func (hc HeaderCarrier) Keys() []string {
- keys := make([]string, 0, len(hc))
- for k := range hc {
- keys = append(keys, k)
- }
- return keys
-}
-
-// TextMapPropagator propagates cross-cutting concerns as key-value text
-// pairs within a carrier that travels in-band across process boundaries.
-type TextMapPropagator interface {
- // Inject set cross-cutting concerns from the Context into the carrier.
- Inject(ctx context.Context, carrier TextMapCarrier)
- // Extract reads cross-cutting concerns from the carrier into a Context.
- Extract(ctx context.Context, carrier TextMapCarrier) context.Context
- // Fields returns the keys who's values are set with Inject.
- Fields() []string
-}
-
-type compositeTextMapPropagator []TextMapPropagator
-
-func (p compositeTextMapPropagator) Inject(ctx context.Context, carrier TextMapCarrier) {
- for _, i := range p {
- i.Inject(ctx, carrier)
- }
-}
-
-func (p compositeTextMapPropagator) Extract(ctx context.Context, carrier TextMapCarrier) context.Context {
- for _, i := range p {
- ctx = i.Extract(ctx, carrier)
- }
- return ctx
-}
-
-func (p compositeTextMapPropagator) Fields() []string {
- unique := make(map[string]struct{})
- for _, i := range p {
- for _, k := range i.Fields() {
- unique[k] = struct{}{}
- }
- }
-
- fields := make([]string, 0, len(unique))
- for k := range unique {
- fields = append(fields, k)
- }
- return fields
-}
-
-// NewCompositeTextMapPropagator returns a unified TextMapPropagator from the
-// group of passed TextMapPropagator. This allows different cross-cutting
-// concerns to be propagates in a unified manner.
-//
-// The returned TextMapPropagator will inject and extract cross-cutting
-// concerns in the order the TextMapPropagators were provided. Additionally,
-// the Fields method will return a de-duplicated slice of the keys that are
-// set with the Inject method.
-func NewCompositeTextMapPropagator(p ...TextMapPropagator) TextMapPropagator {
- return compositeTextMapPropagator(p)
-}
diff --git a/vendor/go.opentelemetry.io/otel/propagation/trace_context.go b/vendor/go.opentelemetry.io/otel/propagation/trace_context.go
deleted file mode 100644
index 82de416bea..0000000000
--- a/vendor/go.opentelemetry.io/otel/propagation/trace_context.go
+++ /dev/null
@@ -1,178 +0,0 @@
-// 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 propagation // import "go.opentelemetry.io/otel/propagation"
-
-import (
- "context"
- "encoding/hex"
- "fmt"
- "regexp"
- "strings"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/trace"
-)
-
-const (
- supportedVersion = 0
- maxVersion = 254
- traceparentHeader = "traceparent"
- tracestateHeader = "tracestate"
-)
-
-// TraceContext is a propagator that supports the W3C Trace Context format
-// (https://www.w3.org/TR/trace-context/)
-//
-// This propagator will propagate the traceparent and tracestate headers to
-// guarantee traces are not broken. It is up to the users of this propagator
-// to choose if they want to participate in a trace by modifying the
-// traceparent header and relevant parts of the tracestate header containing
-// their proprietary information.
-type TraceContext struct{}
-
-var _ TextMapPropagator = TraceContext{}
-var traceCtxRegExp = regexp.MustCompile("^(?P<version>[0-9a-f]{2})-(?P<traceID>[a-f0-9]{32})-(?P<spanID>[a-f0-9]{16})-(?P<traceFlags>[a-f0-9]{2})(?:-.*)?$")
-
-// Inject set tracecontext from the Context into the carrier.
-func (tc TraceContext) Inject(ctx context.Context, carrier TextMapCarrier) {
- sc := trace.SpanContextFromContext(ctx)
- if !sc.IsValid() {
- return
- }
-
- carrier.Set(tracestateHeader, sc.TraceState().String())
-
- // Clear all flags other than the trace-context supported sampling bit.
- flags := sc.TraceFlags() & trace.FlagsSampled
-
- h := fmt.Sprintf("%.2x-%s-%s-%s",
- supportedVersion,
- sc.TraceID(),
- sc.SpanID(),
- flags)
- carrier.Set(traceparentHeader, h)
-}
-
-// Extract reads tracecontext from the carrier into a returned Context.
-//
-// The returned Context will be a copy of ctx and contain the extracted
-// tracecontext as the remote SpanContext. If the extracted tracecontext is
-// invalid, the passed ctx will be returned directly instead.
-func (tc TraceContext) Extract(ctx context.Context, carrier TextMapCarrier) context.Context {
- sc := tc.extract(carrier)
- if !sc.IsValid() {
- return ctx
- }
- return trace.ContextWithRemoteSpanContext(ctx, sc)
-}
-
-func (tc TraceContext) extract(carrier TextMapCarrier) trace.SpanContext {
- h := carrier.Get(traceparentHeader)
- if h == "" {
- return trace.SpanContext{}
- }
-
- matches := traceCtxRegExp.FindStringSubmatch(h)
-
- if len(matches) == 0 {
- return trace.SpanContext{}
- }
-
- if len(matches) < 5 { // four subgroups plus the overall match
- return trace.SpanContext{}
- }
-
- if len(matches[1]) != 2 {
- return trace.SpanContext{}
- }
- ver, err := hex.DecodeString(matches[1])
- if err != nil {
- return trace.SpanContext{}
- }
- version := int(ver[0])
- if version > maxVersion {
- return trace.SpanContext{}
- }
-
- if version == 0 && len(matches) != 5 { // four subgroups plus the overall match
- return trace.SpanContext{}
- }
-
- if len(matches[2]) != 32 {
- return trace.SpanContext{}
- }
-
- var scc trace.SpanContextConfig
-
- scc.TraceID, err = trace.TraceIDFromHex(matches[2][:32])
- if err != nil {
- return trace.SpanContext{}
- }
-
- if len(matches[3]) != 16 {
- return trace.SpanContext{}
- }
- scc.SpanID, err = trace.SpanIDFromHex(matches[3])
- if err != nil {
- return trace.SpanContext{}
- }
-
- if len(matches[4]) != 2 {
- return trace.SpanContext{}
- }
- opts, err := hex.DecodeString(matches[4])
- if err != nil || len(opts) < 1 || (version == 0 && opts[0] > 2) {
- return trace.SpanContext{}
- }
- // Clear all flags other than the trace-context supported sampling bit.
- scc.TraceFlags = trace.TraceFlags(opts[0]) & trace.FlagsSampled
-
- scc.TraceState = parseTraceState(carrier.Get(tracestateHeader))
- scc.Remote = true
-
- sc := trace.NewSpanContext(scc)
- if !sc.IsValid() {
- return trace.SpanContext{}
- }
-
- return sc
-}
-
-// Fields returns the keys who's values are set with Inject.
-func (tc TraceContext) Fields() []string {
- return []string{traceparentHeader, tracestateHeader}
-}
-
-func parseTraceState(in string) trace.TraceState {
- if in == "" {
- return trace.TraceState{}
- }
-
- kvs := []attribute.KeyValue{}
- for _, entry := range strings.Split(in, ",") {
- parts := strings.SplitN(entry, "=", 2)
- if len(parts) != 2 {
- // Parse failure, abort!
- return trace.TraceState{}
- }
- kvs = append(kvs, attribute.String(parts[0], parts[1]))
- }
-
- // Ignoring error here as "failure to parse tracestate MUST NOT
- // affect the parsing of traceparent."
- // https://www.w3.org/TR/trace-context/#tracestate-header
- ts, _ := trace.TraceStateFromKeyValues(kvs...)
- return ts
-}
diff --git a/vendor/go.opentelemetry.io/otel/trace/LICENSE b/vendor/go.opentelemetry.io/otel/trace/LICENSE
deleted file mode 100644
index 261eeb9e9f..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/vendor/go.opentelemetry.io/otel/trace/config.go b/vendor/go.opentelemetry.io/otel/trace/config.go
deleted file mode 100644
index ea30ee35f1..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/config.go
+++ /dev/null
@@ -1,205 +0,0 @@
-// 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 trace
-
-import (
- "time"
-
- "go.opentelemetry.io/otel/attribute"
-)
-
-// TracerConfig is a group of options for a Tracer.
-type TracerConfig struct {
- // InstrumentationVersion is the version of the library providing
- // instrumentation.
- InstrumentationVersion string
-}
-
-// NewTracerConfig applies all the options to a returned TracerConfig.
-func NewTracerConfig(options ...TracerOption) *TracerConfig {
- config := new(TracerConfig)
- for _, option := range options {
- option.ApplyTracer(config)
- }
- return config
-}
-
-// TracerOption applies an option to a TracerConfig.
-type TracerOption interface {
- ApplyTracer(*TracerConfig)
-
- // A private method to prevent users implementing the
- // interface and so future additions to it will not
- // violate compatibility.
- private()
-}
-
-// SpanConfig is a group of options for a Span.
-type SpanConfig struct {
- // Attributes describe the associated qualities of a Span.
- Attributes []attribute.KeyValue
- // Timestamp is a time in a Span life-cycle.
- Timestamp time.Time
- // Links are the associations a Span has with other Spans.
- Links []Link
- // NewRoot identifies a Span as the root Span for a new trace. This is
- // commonly used when an existing trace crosses trust boundaries and the
- // remote parent span context should be ignored for security.
- NewRoot bool
- // SpanKind is the role a Span has in a trace.
- SpanKind SpanKind
-}
-
-// NewSpanConfig applies all the options to a returned SpanConfig.
-// No validation is performed on the returned SpanConfig (e.g. no uniqueness
-// checking or bounding of data), it is left to the SDK to perform this
-// action.
-func NewSpanConfig(options ...SpanOption) *SpanConfig {
- c := new(SpanConfig)
- for _, option := range options {
- option.ApplySpan(c)
- }
- return c
-}
-
-// SpanOption applies an option to a SpanConfig.
-type SpanOption interface {
- ApplySpan(*SpanConfig)
-
- // A private method to prevent users implementing the
- // interface and so future additions to it will not
- // violate compatibility.
- private()
-}
-
-// NewEventConfig applies all the EventOptions to a returned SpanConfig. If no
-// timestamp option is passed, the returned SpanConfig will have a Timestamp
-// set to the call time, otherwise no validation is performed on the returned
-// SpanConfig.
-func NewEventConfig(options ...EventOption) *SpanConfig {
- c := new(SpanConfig)
- for _, option := range options {
- option.ApplyEvent(c)
- }
- if c.Timestamp.IsZero() {
- c.Timestamp = time.Now()
- }
- return c
-}
-
-// EventOption applies span event options to a SpanConfig.
-type EventOption interface {
- ApplyEvent(*SpanConfig)
-
- // A private method to prevent users implementing the
- // interface and so future additions to it will not
- // violate compatibility.
- private()
-}
-
-// LifeCycleOption applies span life-cycle options to a SpanConfig. These
-// options set values releated to events in a spans life-cycle like starting,
-// ending, experiencing an error and other user defined notable events.
-type LifeCycleOption interface {
- SpanOption
- EventOption
-}
-
-type attributeSpanOption []attribute.KeyValue
-
-func (o attributeSpanOption) ApplySpan(c *SpanConfig) { o.apply(c) }
-func (o attributeSpanOption) ApplyEvent(c *SpanConfig) { o.apply(c) }
-func (attributeSpanOption) private() {}
-func (o attributeSpanOption) apply(c *SpanConfig) {
- c.Attributes = append(c.Attributes, []attribute.KeyValue(o)...)
-}
-
-// WithAttributes adds the attributes related to a span life-cycle event.
-// These attributes are used to describe the work a Span represents when this
-// option is provided to a Span's start or end events. Otherwise, these
-// attributes provide additional information about the event being recorded
-// (e.g. error, state change, processing progress, system event).
-//
-// If multiple of these options are passed the attributes of each successive
-// option will extend the attributes instead of overwriting. There is no
-// guarantee of uniqueness in the resulting attributes.
-func WithAttributes(attributes ...attribute.KeyValue) LifeCycleOption {
- return attributeSpanOption(attributes)
-}
-
-type timestampSpanOption time.Time
-
-func (o timestampSpanOption) ApplySpan(c *SpanConfig) { o.apply(c) }
-func (o timestampSpanOption) ApplyEvent(c *SpanConfig) { o.apply(c) }
-func (timestampSpanOption) private() {}
-func (o timestampSpanOption) apply(c *SpanConfig) { c.Timestamp = time.Time(o) }
-
-// WithTimestamp sets the time of a Span life-cycle moment (e.g. started,
-// stopped, errored).
-func WithTimestamp(t time.Time) LifeCycleOption {
- return timestampSpanOption(t)
-}
-
-type linksSpanOption []Link
-
-func (o linksSpanOption) ApplySpan(c *SpanConfig) { c.Links = append(c.Links, []Link(o)...) }
-func (linksSpanOption) private() {}
-
-// WithLinks adds links to a Span. The links are added to the existing Span
-// links, i.e. this does not overwrite.
-func WithLinks(links ...Link) SpanOption {
- return linksSpanOption(links)
-}
-
-type newRootSpanOption bool
-
-func (o newRootSpanOption) ApplySpan(c *SpanConfig) { c.NewRoot = bool(o) }
-func (newRootSpanOption) private() {}
-
-// WithNewRoot specifies that the Span should be treated as a root Span. Any
-// existing parent span context will be ignored when defining the Span's trace
-// identifiers.
-func WithNewRoot() SpanOption {
- return newRootSpanOption(true)
-}
-
-type spanKindSpanOption SpanKind
-
-func (o spanKindSpanOption) ApplySpan(c *SpanConfig) { c.SpanKind = SpanKind(o) }
-func (o spanKindSpanOption) private() {}
-
-// WithSpanKind sets the SpanKind of a Span.
-func WithSpanKind(kind SpanKind) SpanOption {
- return spanKindSpanOption(kind)
-}
-
-// InstrumentationOption is an interface for applying instrumentation specific
-// options.
-type InstrumentationOption interface {
- TracerOption
-}
-
-// WithInstrumentationVersion sets the instrumentation version.
-func WithInstrumentationVersion(version string) InstrumentationOption {
- return instrumentationVersionOption(version)
-}
-
-type instrumentationVersionOption string
-
-func (i instrumentationVersionOption) ApplyTracer(config *TracerConfig) {
- config.InstrumentationVersion = string(i)
-}
-
-func (instrumentationVersionOption) private() {}
diff --git a/vendor/go.opentelemetry.io/otel/trace/context.go b/vendor/go.opentelemetry.io/otel/trace/context.go
deleted file mode 100644
index 76f9a083c4..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/context.go
+++ /dev/null
@@ -1,61 +0,0 @@
-// 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 trace // import "go.opentelemetry.io/otel/trace"
-
-import "context"
-
-type traceContextKeyType int
-
-const currentSpanKey traceContextKeyType = iota
-
-// ContextWithSpan returns a copy of parent with span set as the current Span.
-func ContextWithSpan(parent context.Context, span Span) context.Context {
- return context.WithValue(parent, currentSpanKey, span)
-}
-
-// ContextWithSpanContext returns a copy of parent with sc as the current
-// Span. The Span implementation that wraps sc is non-recording and performs
-// no operations other than to return sc as the SpanContext from the
-// SpanContext method.
-func ContextWithSpanContext(parent context.Context, sc SpanContext) context.Context {
- return ContextWithSpan(parent, nonRecordingSpan{sc: sc})
-}
-
-// ContextWithRemoteSpanContext returns a copy of parent with rsc set explicly
-// as a remote SpanContext and as the current Span. The Span implementation
-// that wraps rsc is non-recording and performs no operations other than to
-// return rsc as the SpanContext from the SpanContext method.
-func ContextWithRemoteSpanContext(parent context.Context, rsc SpanContext) context.Context {
- return ContextWithSpanContext(parent, rsc.WithRemote(true))
-}
-
-// SpanFromContext returns the current Span from ctx.
-//
-// If no Span is currently set in ctx an implementation of a Span that
-// performs no operations is returned.
-func SpanFromContext(ctx context.Context) Span {
- if ctx == nil {
- return noopSpan{}
- }
- if span, ok := ctx.Value(currentSpanKey).(Span); ok {
- return span
- }
- return noopSpan{}
-}
-
-// SpanContextFromContext returns the current Span's SpanContext.
-func SpanContextFromContext(ctx context.Context) SpanContext {
- return SpanFromContext(ctx).SpanContext()
-}
diff --git a/vendor/go.opentelemetry.io/otel/trace/doc.go b/vendor/go.opentelemetry.io/otel/trace/doc.go
deleted file mode 100644
index c962f3bc62..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/doc.go
+++ /dev/null
@@ -1,70 +0,0 @@
-// 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 trace provides an implementation of the tracing part of the
-OpenTelemetry API.
-
-This package is currently in a pre-GA phase. Backwards incompatible changes
-may be introduced in subsequent minor version releases as we work to track the
-evolving OpenTelemetry specification and user feedback.
-
-To participate in distributed traces a Span needs to be created for the
-operation being performed as part of a traced workflow. It its simplest form:
-
- var tracer trace.Tracer
-
- func init() {
- tracer = otel.Tracer("instrumentation/package/name")
- }
-
- func operation(ctx context.Context) {
- var span trace.Span
- ctx, span = tracer.Start(ctx, "operation")
- defer span.End()
- // ...
- }
-
-A Tracer is unique to the instrumentation and is used to create Spans.
-Instrumentation should be designed to accept a TracerProvider from which it
-can create its own unique Tracer. Alternatively, the registered global
-TracerProvider from the go.opentelemetry.io/otel package can be used as
-a default.
-
- const (
- name = "instrumentation/package/name"
- version = "0.1.0"
- )
-
- type Instrumentation struct {
- tracer trace.Tracer
- }
-
- func NewInstrumentation(tp trace.TracerProvider) *Instrumentation {
- if tp == nil {
- tp = otel.TracerProvider()
- }
- return &Instrumentation{
- tracer: tp.Tracer(name, trace.WithInstrumentationVersion(version)),
- }
- }
-
- func operation(ctx context.Context, inst *Instrumentation) {
- var span trace.Span
- ctx, span = inst.tracer.Start(ctx, "operation")
- defer span.End()
- // ...
- }
-*/
-package trace // import "go.opentelemetry.io/otel/trace"
diff --git a/vendor/go.opentelemetry.io/otel/trace/go.mod b/vendor/go.opentelemetry.io/otel/trace/go.mod
deleted file mode 100644
index 914e4f4384..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/go.mod
+++ /dev/null
@@ -1,53 +0,0 @@
-module go.opentelemetry.io/otel/trace
-
-go 1.14
-
-replace go.opentelemetry.io/otel => ../
-
-replace go.opentelemetry.io/otel/bridge/opencensus => ../bridge/opencensus
-
-replace go.opentelemetry.io/otel/bridge/opentracing => ../bridge/opentracing
-
-replace go.opentelemetry.io/otel/example/jaeger => ../example/jaeger
-
-replace go.opentelemetry.io/otel/example/namedtracer => ../example/namedtracer
-
-replace go.opentelemetry.io/otel/example/opencensus => ../example/opencensus
-
-replace go.opentelemetry.io/otel/example/otel-collector => ../example/otel-collector
-
-replace go.opentelemetry.io/otel/example/prom-collector => ../example/prom-collector
-
-replace go.opentelemetry.io/otel/example/prometheus => ../example/prometheus
-
-replace go.opentelemetry.io/otel/example/zipkin => ../example/zipkin
-
-replace go.opentelemetry.io/otel/exporters/metric/prometheus => ../exporters/metric/prometheus
-
-replace go.opentelemetry.io/otel/exporters/otlp => ../exporters/otlp
-
-replace go.opentelemetry.io/otel/exporters/stdout => ../exporters/stdout
-
-replace go.opentelemetry.io/otel/exporters/trace/jaeger => ../exporters/trace/jaeger
-
-replace go.opentelemetry.io/otel/exporters/trace/zipkin => ../exporters/trace/zipkin
-
-replace go.opentelemetry.io/otel/internal/tools => ../internal/tools
-
-replace go.opentelemetry.io/otel/metric => ../metric
-
-replace go.opentelemetry.io/otel/oteltest => ../oteltest
-
-replace go.opentelemetry.io/otel/sdk => ../sdk
-
-replace go.opentelemetry.io/otel/sdk/export/metric => ../sdk/export/metric
-
-replace go.opentelemetry.io/otel/sdk/metric => ../sdk/metric
-
-replace go.opentelemetry.io/otel/trace => ./
-
-require (
- github.com/google/go-cmp v0.5.5
- github.com/stretchr/testify v1.7.0
- go.opentelemetry.io/otel v0.20.0
-)
diff --git a/vendor/go.opentelemetry.io/otel/trace/go.sum b/vendor/go.opentelemetry.io/otel/trace/go.sum
deleted file mode 100644
index b69f2e56da..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/go.sum
+++ /dev/null
@@ -1,15 +0,0 @@
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
-github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-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.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/vendor/go.opentelemetry.io/otel/trace/nonrecording.go b/vendor/go.opentelemetry.io/otel/trace/nonrecording.go
deleted file mode 100644
index 88fcb81611..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/nonrecording.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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 trace // import "go.opentelemetry.io/otel/trace"
-
-// nonRecordingSpan is a minimal implementation of a Span that wraps a
-// SpanContext. It performs no operations other than to return the wrapped
-// SpanContext.
-type nonRecordingSpan struct {
- noopSpan
-
- sc SpanContext
-}
-
-// SpanContext returns the wrapped SpanContext.
-func (s nonRecordingSpan) SpanContext() SpanContext { return s.sc }
diff --git a/vendor/go.opentelemetry.io/otel/trace/noop.go b/vendor/go.opentelemetry.io/otel/trace/noop.go
deleted file mode 100644
index 4a20f20cb4..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/noop.go
+++ /dev/null
@@ -1,84 +0,0 @@
-// 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 trace // import "go.opentelemetry.io/otel/trace"
-
-import (
- "context"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/codes"
-)
-
-// NewNoopTracerProvider returns an implementation of TracerProvider that
-// performs no operations. The Tracer and Spans created from the returned
-// TracerProvider also perform no operations.
-func NewNoopTracerProvider() TracerProvider {
- return noopTracerProvider{}
-}
-
-type noopTracerProvider struct{}
-
-var _ TracerProvider = noopTracerProvider{}
-
-// Tracer returns noop implementation of Tracer.
-func (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer {
- return noopTracer{}
-}
-
-// noopTracer is an implementation of Tracer that preforms no operations.
-type noopTracer struct{}
-
-var _ Tracer = noopTracer{}
-
-// Start starts a noop span.
-func (t noopTracer) Start(ctx context.Context, name string, _ ...SpanOption) (context.Context, Span) {
- span := noopSpan{}
- return ContextWithSpan(ctx, span), span
-}
-
-// noopSpan is an implementation of Span that preforms no operations.
-type noopSpan struct{}
-
-var _ Span = noopSpan{}
-
-// SpanContext returns an empty span context.
-func (noopSpan) SpanContext() SpanContext { return SpanContext{} }
-
-// IsRecording always returns false.
-func (noopSpan) IsRecording() bool { return false }
-
-// SetStatus does nothing.
-func (noopSpan) SetStatus(codes.Code, string) {}
-
-// SetError does nothing.
-func (noopSpan) SetError(bool) {}
-
-// SetAttributes does nothing.
-func (noopSpan) SetAttributes(...attribute.KeyValue) {}
-
-// End does nothing.
-func (noopSpan) End(...SpanOption) {}
-
-// RecordError does nothing.
-func (noopSpan) RecordError(error, ...EventOption) {}
-
-// Tracer returns the Tracer that created this Span.
-func (noopSpan) Tracer() Tracer { return noopTracer{} }
-
-// AddEvent does nothing.
-func (noopSpan) AddEvent(string, ...EventOption) {}
-
-// SetName does nothing.
-func (noopSpan) SetName(string) {}
diff --git a/vendor/go.opentelemetry.io/otel/trace/trace.go b/vendor/go.opentelemetry.io/otel/trace/trace.go
deleted file mode 100644
index d372e7d9d7..0000000000
--- a/vendor/go.opentelemetry.io/otel/trace/trace.go
+++ /dev/null
@@ -1,673 +0,0 @@
-// 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 trace // import "go.opentelemetry.io/otel/trace"
-
-import (
- "bytes"
- "context"
- "encoding/hex"
- "encoding/json"
- "regexp"
- "strings"
- "time"
-
- "go.opentelemetry.io/otel/attribute"
- "go.opentelemetry.io/otel/codes"
-)
-
-const (
- // FlagsSampled is a bitmask with the sampled bit set. A SpanContext
- // with the sampling bit set means the span is sampled.
- FlagsSampled = TraceFlags(0x01)
-
- errInvalidHexID errorConst = "trace-id and span-id can only contain [0-9a-f] characters, all lowercase"
-
- errInvalidTraceIDLength errorConst = "hex encoded trace-id must have length equals to 32"
- errNilTraceID errorConst = "trace-id can't be all zero"
-
- errInvalidSpanIDLength errorConst = "hex encoded span-id must have length equals to 16"
- errNilSpanID errorConst = "span-id can't be all zero"
-
- // based on the W3C Trace Context specification, see https://www.w3.org/TR/trace-context-1/#tracestate-header
- traceStateKeyFormat = `[a-z][_0-9a-z\-\*\/]{0,255}`
- traceStateKeyFormatWithMultiTenantVendor = `[a-z0-9][_0-9a-z\-\*\/]{0,240}@[a-z][_0-9a-z\-\*\/]{0,13}`
- traceStateValueFormat = `[\x20-\x2b\x2d-\x3c\x3e-\x7e]{0,255}[\x21-\x2b\x2d-\x3c\x3e-\x7e]`
-
- traceStateMaxListMembers = 32
-
- errInvalidTraceStateKeyValue errorConst = "provided key or value is not valid according to the" +
- " W3C Trace Context specification"
- errInvalidTraceStateMembersNumber errorConst = "trace state would exceed the maximum limit of members (32)"
- errInvalidTraceStateDuplicate errorConst = "trace state key/value pairs with duplicate keys provided"
-)
-
-type errorConst string
-
-func (e errorConst) Error() string {
- return string(e)
-}
-
-// TraceID is a unique identity of a trace.
-// nolint:golint
-type TraceID [16]byte
-
-var nilTraceID TraceID
-var _ json.Marshaler = nilTraceID
-
-// IsValid checks whether the trace TraceID is valid. A valid trace ID does
-// not consist of zeros only.
-func (t TraceID) IsValid() bool {
- return !bytes.Equal(t[:], nilTraceID[:])
-}
-
-// MarshalJSON implements a custom marshal function to encode TraceID
-// as a hex string.
-func (t TraceID) MarshalJSON() ([]byte, error) {
- return json.Marshal(t.String())
-}
-
-// String returns the hex string representation form of a TraceID
-func (t TraceID) String() string {
- return hex.EncodeToString(t[:])
-}
-
-// SpanID is a unique identity of a span in a trace.
-type SpanID [8]byte
-
-var nilSpanID SpanID
-var _ json.Marshaler = nilSpanID
-
-// IsValid checks whether the SpanID is valid. A valid SpanID does not consist
-// of zeros only.
-func (s SpanID) IsValid() bool {
- return !bytes.Equal(s[:], nilSpanID[:])
-}
-
-// MarshalJSON implements a custom marshal function to encode SpanID
-// as a hex string.
-func (s SpanID) MarshalJSON() ([]byte, error) {
- return json.Marshal(s.String())
-}
-
-// String returns the hex string representation form of a SpanID
-func (s SpanID) String() string {
- return hex.EncodeToString(s[:])
-}
-
-// TraceIDFromHex returns a TraceID from a hex string if it is compliant with
-// the W3C trace-context specification. See more at
-// https://www.w3.org/TR/trace-context/#trace-id
-// nolint:golint
-func TraceIDFromHex(h string) (TraceID, error) {
- t := TraceID{}
- if len(h) != 32 {
- return t, errInvalidTraceIDLength
- }
-
- if err := decodeHex(h, t[:]); err != nil {
- return t, err
- }
-
- if !t.IsValid() {
- return t, errNilTraceID
- }
- return t, nil
-}
-
-// SpanIDFromHex returns a SpanID from a hex string if it is compliant
-// with the w3c trace-context specification.
-// See more at https://www.w3.org/TR/trace-context/#parent-id
-func SpanIDFromHex(h string) (SpanID, error) {
- s := SpanID{}
- if len(h) != 16 {
- return s, errInvalidSpanIDLength
- }
-
- if err := decodeHex(h, s[:]); err != nil {
- return s, err
- }
-
- if !s.IsValid() {
- return s, errNilSpanID
- }
- return s, nil
-}
-
-func decodeHex(h string, b []byte) error {
- for _, r := range h {
- switch {
- case 'a' <= r && r <= 'f':
- continue
- case '0' <= r && r <= '9':
- continue
- default:
- return errInvalidHexID
- }
- }
-
- decoded, err := hex.DecodeString(h)
- if err != nil {
- return err
- }
-
- copy(b, decoded)
- return nil
-}
-
-// TraceState provides additional vendor-specific trace identification information
-// across different distributed tracing systems. It represents an immutable list consisting
-// of key/value pairs. There can be a maximum of 32 entries in the list.
-//
-// Key and value of each list member must be valid according to the W3C Trace Context specification
-// (see https://www.w3.org/TR/trace-context-1/#key and https://www.w3.org/TR/trace-context-1/#value
-// respectively).
-//
-// Trace state must be valid according to the W3C Trace Context specification at all times. All
-// mutating operations validate their input and, in case of valid parameters, return a new TraceState.
-type TraceState struct { //nolint:golint
- // TODO @matej-g: Consider implementing this as attribute.Set, see
- // comment https://github.com/open-telemetry/opentelemetry-go/pull/1340#discussion_r540599226
- kvs []attribute.KeyValue
-}
-
-var _ json.Marshaler = TraceState{}
-var _ json.Marshaler = SpanContext{}
-
-var keyFormatRegExp = regexp.MustCompile(
- `^((` + traceStateKeyFormat + `)|(` + traceStateKeyFormatWithMultiTenantVendor + `))$`,
-)
-var valueFormatRegExp = regexp.MustCompile(`^(` + traceStateValueFormat + `)$`)
-
-// MarshalJSON implements a custom marshal function to encode trace state.
-func (ts TraceState) MarshalJSON() ([]byte, error) {
- return json.Marshal(ts.kvs)
-}
-
-// String returns trace state as a string valid according to the
-// W3C Trace Context specification.
-func (ts TraceState) String() string {
- var sb strings.Builder
-
- for i, kv := range ts.kvs {
- sb.WriteString((string)(kv.Key))
- sb.WriteByte('=')
- sb.WriteString(kv.Value.Emit())
-
- if i != len(ts.kvs)-1 {
- sb.WriteByte(',')
- }
- }
-
- return sb.String()
-}
-
-// Get returns a value for given key from the trace state.
-// If no key is found or provided key is invalid, returns an empty value.
-func (ts TraceState) Get(key attribute.Key) attribute.Value {
- if !isTraceStateKeyValid(key) {
- return attribute.Value{}
- }
-
- for _, kv := range ts.kvs {
- if kv.Key == key {
- return kv.Value
- }
- }
-
- return attribute.Value{}
-}
-
-// Insert adds a new key/value, if one doesn't exists; otherwise updates the existing entry.
-// The new or updated entry is always inserted at the beginning of the TraceState, i.e.
-// on the left side, as per the W3C Trace Context specification requirement.
-func (ts TraceState) Insert(entry attribute.KeyValue) (TraceState, error) {
- if !isTraceStateKeyValueValid(entry) {
- return ts, errInvalidTraceStateKeyValue
- }
-
- ckvs := ts.copyKVsAndDeleteEntry(entry.Key)
- if len(ckvs)+1 > traceStateMaxListMembers {
- return ts, errInvalidTraceStateMembersNumber
- }
-
- ckvs = append(ckvs, attribute.KeyValue{})
- copy(ckvs[1:], ckvs)
- ckvs[0] = entry
-
- return TraceState{ckvs}, nil
-}
-
-// Delete removes specified entry from the trace state.
-func (ts TraceState) Delete(key attribute.Key) (TraceState, error) {
- if !isTraceStateKeyValid(key) {
- return ts, errInvalidTraceStateKeyValue
- }
-
- return TraceState{ts.copyKVsAndDeleteEntry(key)}, nil
-}
-
-// IsEmpty returns true if the TraceState does not contain any entries
-func (ts TraceState) IsEmpty() bool {
- return len(ts.kvs) == 0
-}
-
-func (ts TraceState) copyKVsAndDeleteEntry(key attribute.Key) []attribute.KeyValue {
- ckvs := make([]attribute.KeyValue, len(ts.kvs))
- copy(ckvs, ts.kvs)
- for i, kv := range ts.kvs {
- if kv.Key == key {
- ckvs = append(ckvs[:i], ckvs[i+1:]...)
- break
- }
- }
-
- return ckvs
-}
-
-// TraceStateFromKeyValues is a convenience method to create a new TraceState from
-// provided key/value pairs.
-func TraceStateFromKeyValues(kvs ...attribute.KeyValue) (TraceState, error) { //nolint:golint
- if len(kvs) == 0 {
- return TraceState{}, nil
- }
-
- if len(kvs) > traceStateMaxListMembers {
- return TraceState{}, errInvalidTraceStateMembersNumber
- }
-
- km := make(map[attribute.Key]bool)
- for _, kv := range kvs {
- if !isTraceStateKeyValueValid(kv) {
- return TraceState{}, errInvalidTraceStateKeyValue
- }
- _, ok := km[kv.Key]
- if ok {
- return TraceState{}, errInvalidTraceStateDuplicate
- }
- km[kv.Key] = true
- }
-
- ckvs := make([]attribute.KeyValue, len(kvs))
- copy(ckvs, kvs)
- return TraceState{ckvs}, nil
-}
-
-func isTraceStateKeyValid(key attribute.Key) bool {
- return keyFormatRegExp.MatchString(string(key))
-}
-
-func isTraceStateKeyValueValid(kv attribute.KeyValue) bool {
- return isTraceStateKeyValid(kv.Key) &&
- valueFormatRegExp.MatchString(kv.Value.Emit())
-}
-
-// TraceFlags contains flags that can be set on a SpanContext
-type TraceFlags byte //nolint:golint
-
-// IsSampled returns if the sampling bit is set in the TraceFlags.
-func (tf TraceFlags) IsSampled() bool {
- return tf&FlagsSampled == FlagsSampled
-}
-
-// WithSampled sets the sampling bit in a new copy of the TraceFlags.
-func (tf TraceFlags) WithSampled(sampled bool) TraceFlags {
- if sampled {
- return tf | FlagsSampled
- }
-
- return tf &^ FlagsSampled
-}
-
-// MarshalJSON implements a custom marshal function to encode TraceFlags
-// as a hex string.
-func (tf TraceFlags) MarshalJSON() ([]byte, error) {
- return json.Marshal(tf.String())
-}
-
-// String returns the hex string representation form of TraceFlags
-func (tf TraceFlags) String() string {
- return hex.EncodeToString([]byte{byte(tf)}[:])
-}
-
-// SpanContextConfig contains mutable fields usable for constructing
-// an immutable SpanContext.
-type SpanContextConfig struct {
- TraceID TraceID
- SpanID SpanID
- TraceFlags TraceFlags
- TraceState TraceState
- Remote bool
-}
-
-// NewSpanContext constructs a SpanContext using values from the provided
-// SpanContextConfig.
-func NewSpanContext(config SpanContextConfig) SpanContext {
- return SpanContext{
- traceID: config.TraceID,
- spanID: config.SpanID,
- traceFlags: config.TraceFlags,
- traceState: config.TraceState,
- remote: config.Remote,
- }
-}
-
-// SpanContext contains identifying trace information about a Span.
-type SpanContext struct {
- traceID TraceID
- spanID SpanID
- traceFlags TraceFlags
- traceState TraceState
- remote bool
-}
-
-// IsValid returns if the SpanContext is valid. A valid span context has a
-// valid TraceID and SpanID.
-func (sc SpanContext) IsValid() bool {
- return sc.HasTraceID() && sc.HasSpanID()
-}
-
-// IsRemote indicates whether the SpanContext represents a remotely-created Span.
-func (sc SpanContext) IsRemote() bool {
- return sc.remote
-}
-
-// WithRemote returns a copy of sc with the Remote property set to remote.
-func (sc SpanContext) WithRemote(remote bool) SpanContext {
- return SpanContext{
- traceID: sc.traceID,
- spanID: sc.spanID,
- traceFlags: sc.traceFlags,
- traceState: sc.traceState,
- remote: remote,
- }
-}
-
-// TraceID returns the TraceID from the SpanContext.
-func (sc SpanContext) TraceID() TraceID {
- return sc.traceID
-}
-
-// HasTraceID checks if the SpanContext has a valid TraceID.
-func (sc SpanContext) HasTraceID() bool {
- return sc.traceID.IsValid()
-}
-
-// WithTraceID returns a new SpanContext with the TraceID replaced.
-func (sc SpanContext) WithTraceID(traceID TraceID) SpanContext {
- return SpanContext{
- traceID: traceID,
- spanID: sc.spanID,
- traceFlags: sc.traceFlags,
- traceState: sc.traceState,
- remote: sc.remote,
- }
-}
-
-// SpanID returns the SpanID from the SpanContext.
-func (sc SpanContext) SpanID() SpanID {
- return sc.spanID
-}
-
-// HasSpanID checks if the SpanContext has a valid SpanID.
-func (sc SpanContext) HasSpanID() bool {
- return sc.spanID.IsValid()
-}
-
-// WithSpanID returns a new SpanContext with the SpanID replaced.
-func (sc SpanContext) WithSpanID(spanID SpanID) SpanContext {
- return SpanContext{
- traceID: sc.traceID,
- spanID: spanID,
- traceFlags: sc.traceFlags,
- traceState: sc.traceState,
- remote: sc.remote,
- }
-}
-
-// TraceFlags returns the flags from the SpanContext.
-func (sc SpanContext) TraceFlags() TraceFlags {
- return sc.traceFlags
-}
-
-// IsSampled returns if the sampling bit is set in the SpanContext's TraceFlags.
-func (sc SpanContext) IsSampled() bool {
- return sc.traceFlags.IsSampled()
-}
-
-// WithTraceFlags returns a new SpanContext with the TraceFlags replaced.
-func (sc SpanContext) WithTraceFlags(flags TraceFlags) SpanContext {
- return SpanContext{
- traceID: sc.traceID,
- spanID: sc.spanID,
- traceFlags: flags,
- traceState: sc.traceState,
- remote: sc.remote,
- }
-}
-
-// TraceState returns the TraceState from the SpanContext.
-func (sc SpanContext) TraceState() TraceState {
- return sc.traceState
-}
-
-// WithTraceState returns a new SpanContext with the TraceState replaced.
-func (sc SpanContext) WithTraceState(state TraceState) SpanContext {
- return SpanContext{
- traceID: sc.traceID,
- spanID: sc.spanID,
- traceFlags: sc.traceFlags,
- traceState: state,
- remote: sc.remote,
- }
-}
-
-// Equal is a predicate that determines whether two SpanContext values are equal.
-func (sc SpanContext) Equal(other SpanContext) bool {
- return sc.traceID == other.traceID &&
- sc.spanID == other.spanID &&
- sc.traceFlags == other.traceFlags &&
- sc.traceState.String() == other.traceState.String() &&
- sc.remote == other.remote
-}
-
-// MarshalJSON implements a custom marshal function to encode a SpanContext.
-func (sc SpanContext) MarshalJSON() ([]byte, error) {
- return json.Marshal(SpanContextConfig{
- TraceID: sc.traceID,
- SpanID: sc.spanID,
- TraceFlags: sc.traceFlags,
- TraceState: sc.traceState,
- Remote: sc.remote,
- })
-}
-
-// Span is the individual component of a trace. It represents a single named
-// and timed operation of a workflow that is traced. A Tracer is used to
-// create a Span and it is then up to the operation the Span represents to
-// properly end the Span when the operation itself ends.
-type Span interface {
- // Tracer returns the Tracer that created the Span. Tracer MUST NOT be
- // nil.
- Tracer() Tracer
-
- // End completes the Span. The Span is considered complete and ready to be
- // delivered through the rest of the telemetry pipeline after this method
- // is called. Therefore, updates to the Span are not allowed after this
- // method has been called.
- End(options ...SpanOption)
-
- // AddEvent adds an event with the provided name and options.
- AddEvent(name string, options ...EventOption)
-
- // IsRecording returns the recording state of the Span. It will return
- // true if the Span is active and events can be recorded.
- IsRecording() bool
-
- // RecordError will record err as an exception span event for this span. An
- // additional call toSetStatus is required if the Status of the Span should
- // be set to Error, this method does not change the Span status. If this
- // span is not being recorded or err is nil than this method does nothing.
- RecordError(err error, options ...EventOption)
-
- // SpanContext returns the SpanContext of the Span. The returned
- // SpanContext is usable even after the End has been called for the Span.
- SpanContext() SpanContext
-
- // SetStatus sets the status of the Span in the form of a code and a
- // message. SetStatus overrides the value of previous calls to SetStatus
- // on the Span.
- SetStatus(code codes.Code, msg string)
-
- // SetName sets the Span name.
- SetName(name string)
-
- // SetAttributes sets kv as attributes of the Span. If a key from kv
- // already exists for an attribute of the Span it will be overwritten with
- // the value contained in kv.
- SetAttributes(kv ...attribute.KeyValue)
-}
-
-// Event is a thing that happened during a Span's lifetime.
-type Event struct {
- // Name is the name of this event
- Name string
-
- // Attributes describe the aspects of the event.
- Attributes []attribute.KeyValue
-
- // DroppedAttributeCount is the number of attributes that were not
- // recorded due to configured limits being reached.
- DroppedAttributeCount int
-
- // Time at which this event was recorded.
- Time time.Time
-}
-
-// Link is the relationship between two Spans. The relationship can be within
-// the same Trace or across different Traces.
-//
-// For example, a Link is used in the following situations:
-//
-// 1. Batch Processing: A batch of operations may contain operations
-// associated with one or more traces/spans. Since there can only be one
-// parent SpanContext, a Link is used to keep reference to the
-// SpanContext of all operations in the batch.
-// 2. Public Endpoint: A SpanContext for an in incoming client request on a
-// public endpoint should be considered untrusted. In such a case, a new
-// trace with its own identity and sampling decision needs to be created,
-// but this new trace needs to be related to the original trace in some
-// form. A Link is used to keep reference to the original SpanContext and
-// track the relationship.
-type Link struct {
- // SpanContext of the linked Span.
- SpanContext
-
- // Attributes describe the aspects of the link.
- Attributes []attribute.KeyValue
-
- // DroppedAttributeCount is the number of attributes that were not
- // recorded due to configured limits being reached.
- DroppedAttributeCount int
-}
-
-// SpanKind is the role a Span plays in a Trace.
-type SpanKind int
-
-// As a convenience, these match the proto definition, see
-// https://github.com/open-telemetry/opentelemetry-proto/blob/30d237e1ff3ab7aa50e0922b5bebdd93505090af/opentelemetry/proto/trace/v1/trace.proto#L101-L129
-//
-// The unspecified value is not a valid `SpanKind`. Use `ValidateSpanKind()`
-// to coerce a span kind to a valid value.
-const (
- // SpanKindUnspecified is an unspecified SpanKind and is not a valid
- // SpanKind. SpanKindUnspecified should be replaced with SpanKindInternal
- // if it is received.
- SpanKindUnspecified SpanKind = 0
- // SpanKindInternal is a SpanKind for a Span that represents an internal
- // operation within an application.
- SpanKindInternal SpanKind = 1
- // SpanKindServer is a SpanKind for a Span that represents the operation
- // of handling a request from a client.
- SpanKindServer SpanKind = 2
- // SpanKindClient is a SpanKind for a Span that represents the operation
- // of client making a request to a server.
- SpanKindClient SpanKind = 3
- // SpanKindProducer is a SpanKind for a Span that represents the operation
- // of a producer sending a message to a message broker. Unlike
- // SpanKindClient and SpanKindServer, there is often no direct
- // relationship between this kind of Span and a SpanKindConsumer kind. A
- // SpanKindProducer Span will end once the message is accepted by the
- // message broker which might not overlap with the processing of that
- // message.
- SpanKindProducer SpanKind = 4
- // SpanKindConsumer is a SpanKind for a Span that represents the operation
- // of a consumer receiving a message from a message broker. Like
- // SpanKindProducer Spans, there is often no direct relationship between
- // this Span and the Span that produced the message.
- SpanKindConsumer SpanKind = 5
-)
-
-// ValidateSpanKind returns a valid span kind value. This will coerce
-// invalid values into the default value, SpanKindInternal.
-func ValidateSpanKind(spanKind SpanKind) SpanKind {
- switch spanKind {
- case SpanKindInternal,
- SpanKindServer,
- SpanKindClient,
- SpanKindProducer,
- SpanKindConsumer:
- // valid
- return spanKind
- default:
- return SpanKindInternal
- }
-}
-
-// String returns the specified name of the SpanKind in lower-case.
-func (sk SpanKind) String() string {
- switch sk {
- case SpanKindInternal:
- return "internal"
- case SpanKindServer:
- return "server"
- case SpanKindClient:
- return "client"
- case SpanKindProducer:
- return "producer"
- case SpanKindConsumer:
- return "consumer"
- default:
- return "unspecified"
- }
-}
-
-// Tracer is the creator of Spans.
-type Tracer interface {
- // Start creates a span.
- Start(ctx context.Context, spanName string, opts ...SpanOption) (context.Context, Span)
-}
-
-// TracerProvider provides access to instrumentation Tracers.
-type TracerProvider interface {
- // Tracer creates an implementation of the Tracer interface.
- // The instrumentationName must be the name of the library providing
- // instrumentation. This name may be the same as the instrumented code
- // only if that code provides built-in instrumentation. If the
- // instrumentationName is empty, then a implementation defined default
- // name will be used instead.
- //
- // This method must be concurrency safe.
- Tracer(instrumentationName string, opts ...TracerOption) Tracer
-}
diff --git a/vendor/go.opentelemetry.io/otel/unit/doc.go b/vendor/go.opentelemetry.io/otel/unit/doc.go
deleted file mode 100644
index 0d77a750cc..0000000000
--- a/vendor/go.opentelemetry.io/otel/unit/doc.go
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 unit provides units.
-//
-// This package is currently in a pre-GA phase. Backwards incompatible changes
-// may be introduced in subsequent minor version releases as we work to track
-// the evolving OpenTelemetry specification and user feedback.
-package unit // import "go.opentelemetry.io/otel/unit"
diff --git a/vendor/go.opentelemetry.io/otel/unit/unit.go b/vendor/go.opentelemetry.io/otel/unit/unit.go
deleted file mode 100644
index 523bfe1d0a..0000000000
--- a/vendor/go.opentelemetry.io/otel/unit/unit.go
+++ /dev/null
@@ -1,23 +0,0 @@
-// 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 unit // import "go.opentelemetry.io/otel/unit"
-
-type Unit string
-
-const (
- Dimensionless Unit = "1"
- Bytes Unit = "By"
- Milliseconds Unit = "ms"
-)