mirror of https://github.com/docker/cli.git
vendor: github.com/docker/docker fc4d035e7a4e (v25.0.0-dev)
full diff: cdb3f9fb8d...fc4d035e7a
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
6891974ee9
commit
663a89b7ad
|
@ -13,7 +13,7 @@ require (
|
||||||
github.com/creack/pty v1.1.18
|
github.com/creack/pty v1.1.18
|
||||||
github.com/distribution/reference v0.5.0
|
github.com/distribution/reference v0.5.0
|
||||||
github.com/docker/distribution v2.8.3+incompatible
|
github.com/docker/distribution v2.8.3+incompatible
|
||||||
github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible // master (v25.0.0-dev)
|
github.com/docker/docker v24.0.0-rc.2.0.20231025221548-fc4d035e7a4e+incompatible // master (v25.0.0-dev)
|
||||||
github.com/docker/docker-credential-helpers v0.8.0
|
github.com/docker/docker-credential-helpers v0.8.0
|
||||||
github.com/docker/go-connections v0.4.0
|
github.com/docker/go-connections v0.4.0
|
||||||
github.com/docker/go-units v0.5.0
|
github.com/docker/go-units v0.5.0
|
||||||
|
@ -66,7 +66,7 @@ require (
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||||
github.com/miekg/pkcs11 v1.1.1 // indirect
|
github.com/miekg/pkcs11 v1.1.1 // indirect
|
||||||
github.com/moby/sys/symlink v0.2.0 // indirect
|
github.com/moby/sys/symlink v0.2.0 // indirect
|
||||||
github.com/opencontainers/runc v1.1.7 // indirect
|
github.com/moby/sys/user v0.1.0 // indirect
|
||||||
github.com/prometheus/client_golang v1.14.0 // indirect
|
github.com/prometheus/client_golang v1.14.0 // indirect
|
||||||
github.com/prometheus/client_model v0.3.0 // indirect
|
github.com/prometheus/client_model v0.3.0 // indirect
|
||||||
github.com/prometheus/common v0.42.0 // indirect
|
github.com/prometheus/common v0.42.0 // indirect
|
||||||
|
|
|
@ -56,8 +56,8 @@ github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
|
||||||
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible h1:dPyJJJlyetVDyMqY664Mopg71y+2yY5RQ4VN90ZChds=
|
github.com/docker/docker v24.0.0-rc.2.0.20231025221548-fc4d035e7a4e+incompatible h1:06ap953LHT+0JPkzYkYPMQHPxaC6NhzTSYaTS2/BeRc=
|
||||||
github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
github.com/docker/docker v24.0.0-rc.2.0.20231025221548-fc4d035e7a4e+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8=
|
github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8=
|
||||||
github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40=
|
github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40=
|
||||||
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
|
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0=
|
||||||
|
@ -175,6 +175,8 @@ github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI
|
||||||
github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg=
|
github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg=
|
||||||
github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc=
|
github.com/moby/sys/symlink v0.2.0 h1:tk1rOM+Ljp0nFmfOIBtlV3rTDlWOwFRhjEeAhZB0nZc=
|
||||||
github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs=
|
github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs=
|
||||||
|
github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg=
|
||||||
|
github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU=
|
||||||
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=
|
||||||
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
|
||||||
|
@ -194,8 +196,6 @@ github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3I
|
||||||
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
|
||||||
github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI=
|
github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI=
|
||||||
github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
|
github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
|
||||||
github.com/opencontainers/runc v1.1.7 h1:y2EZDS8sNng4Ksf0GUYNhKbTShZJPJg1FiXJNH/uoCk=
|
|
||||||
github.com/opencontainers/runc v1.1.7/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh/smNYNOhA50=
|
|
||||||
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
|
github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU=
|
||||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||||
|
|
|
@ -16,7 +16,7 @@ import (
|
||||||
"go.opentelemetry.io/otel"
|
"go.opentelemetry.io/otel"
|
||||||
"go.opentelemetry.io/otel/codes"
|
"go.opentelemetry.io/otel/codes"
|
||||||
"go.opentelemetry.io/otel/propagation"
|
"go.opentelemetry.io/otel/propagation"
|
||||||
semconv "go.opentelemetry.io/otel/semconv/v1.7.0"
|
"go.opentelemetry.io/otel/semconv/v1.17.0/httpconv"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -65,8 +65,8 @@ func (cli *Client) setupHijackConn(req *http.Request, proto string) (_ net.Conn,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, span := tp.Tracer("").Start(ctx, req.Method+" "+req.URL.Path)
|
ctx, span := tp.Tracer("").Start(ctx, req.Method+" "+req.URL.Path, trace.WithSpanKind(trace.SpanKindClient))
|
||||||
span.SetAttributes(semconv.HTTPClientAttributesFromHTTPRequest(req)...)
|
span.SetAttributes(httpconv.ClientRequest(req)...)
|
||||||
defer func() {
|
defer func() {
|
||||||
if retErr != nil {
|
if retErr != nil {
|
||||||
span.RecordError(retErr)
|
span.RecordError(retErr)
|
||||||
|
@ -98,7 +98,7 @@ func (cli *Client) setupHijackConn(req *http.Request, proto string) (_ net.Conn,
|
||||||
// Server hijacks the connection, error 'connection closed' expected
|
// Server hijacks the connection, error 'connection closed' expected
|
||||||
resp, err := clientconn.Do(req)
|
resp, err := clientconn.Do(req)
|
||||||
if resp != nil {
|
if resp != nil {
|
||||||
span.SetStatus(semconv.SpanStatusFromHTTPStatusCode(resp.StatusCode))
|
span.SetStatus(httpconv.ClientStatus(resp.StatusCode))
|
||||||
}
|
}
|
||||||
|
|
||||||
//nolint:staticcheck // ignore SA1019 for connecting to old (pre go1.8) daemons
|
//nolint:staticcheck // ignore SA1019 for connecting to old (pre go1.8) daemons
|
||||||
|
|
|
@ -12,7 +12,7 @@ import (
|
||||||
"strconv"
|
"strconv"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"github.com/opencontainers/runc/libcontainer/user"
|
"github.com/moby/sys/user"
|
||||||
)
|
)
|
||||||
|
|
||||||
func mkdirAs(path string, mode os.FileMode, owner Identity, mkAll, chownExisting bool) error {
|
func mkdirAs(path string, mode os.FileMode, owner Identity, mkAll, chownExisting bool) error {
|
||||||
|
|
13
vendor/github.com/opencontainers/runc/LICENSE → vendor/github.com/moby/sys/user/LICENSE
generated
vendored
13
vendor/github.com/opencontainers/runc/LICENSE → vendor/github.com/moby/sys/user/LICENSE
generated
vendored
|
@ -176,7 +176,18 @@
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
Copyright 2014 Docker, Inc.
|
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");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
|
@ -201,7 +201,7 @@ func ParseGroupFilter(r io.Reader, filter func(Group) bool) ([]Group, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// We should return no error if EOF is reached
|
// We should return no error if EOF is reached
|
||||||
// without a match.
|
// without a match.
|
||||||
if err == io.EOF { //nolint:errorlint // comparison with io.EOF is legit, https://github.com/polyfloyd/go-errorlint/pull/12
|
if err == io.EOF {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
return out, err
|
return out, err
|
|
@ -1,17 +0,0 @@
|
||||||
runc
|
|
||||||
|
|
||||||
Copyright 2012-2015 Docker, Inc.
|
|
||||||
|
|
||||||
This product includes software developed at Docker, Inc. (http://www.docker.com).
|
|
||||||
|
|
||||||
The following is courtesy of our legal counsel:
|
|
||||||
|
|
||||||
|
|
||||||
Use and transfer of Docker may be subject to certain restrictions by the
|
|
||||||
United States and other governments.
|
|
||||||
It is your responsibility to ensure that your use and/or transfer does not
|
|
||||||
violate applicable laws.
|
|
||||||
|
|
||||||
For more information, please see http://www.bis.doc.gov
|
|
||||||
|
|
||||||
See also http://www.apache.org/dev/crypto.html and/or seek legal counsel.
|
|
|
@ -1,336 +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 "go.opentelemetry.io/otel/semconv/internal"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"net"
|
|
||||||
"net/http"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/attribute"
|
|
||||||
"go.opentelemetry.io/otel/codes"
|
|
||||||
"go.opentelemetry.io/otel/trace"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SemanticConventions are the semantic convention values defined for a
|
|
||||||
// version of the OpenTelemetry specification.
|
|
||||||
type SemanticConventions struct {
|
|
||||||
EnduserIDKey attribute.Key
|
|
||||||
HTTPClientIPKey attribute.Key
|
|
||||||
HTTPFlavorKey attribute.Key
|
|
||||||
HTTPHostKey attribute.Key
|
|
||||||
HTTPMethodKey attribute.Key
|
|
||||||
HTTPRequestContentLengthKey attribute.Key
|
|
||||||
HTTPRouteKey attribute.Key
|
|
||||||
HTTPSchemeHTTP attribute.KeyValue
|
|
||||||
HTTPSchemeHTTPS attribute.KeyValue
|
|
||||||
HTTPServerNameKey attribute.Key
|
|
||||||
HTTPStatusCodeKey attribute.Key
|
|
||||||
HTTPTargetKey attribute.Key
|
|
||||||
HTTPURLKey attribute.Key
|
|
||||||
HTTPUserAgentKey attribute.Key
|
|
||||||
NetHostIPKey attribute.Key
|
|
||||||
NetHostNameKey attribute.Key
|
|
||||||
NetHostPortKey attribute.Key
|
|
||||||
NetPeerIPKey attribute.Key
|
|
||||||
NetPeerNameKey attribute.Key
|
|
||||||
NetPeerPortKey attribute.Key
|
|
||||||
NetTransportIP attribute.KeyValue
|
|
||||||
NetTransportOther attribute.KeyValue
|
|
||||||
NetTransportTCP attribute.KeyValue
|
|
||||||
NetTransportUDP attribute.KeyValue
|
|
||||||
NetTransportUnix attribute.KeyValue
|
|
||||||
}
|
|
||||||
|
|
||||||
// NetAttributesFromHTTPRequest generates attributes of the net
|
|
||||||
// namespace as specified by the OpenTelemetry specification for a
|
|
||||||
// span. The network parameter is a string that net.Dial function
|
|
||||||
// from standard library can understand.
|
|
||||||
func (sc *SemanticConventions) NetAttributesFromHTTPRequest(network string, request *http.Request) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{}
|
|
||||||
|
|
||||||
switch network {
|
|
||||||
case "tcp", "tcp4", "tcp6":
|
|
||||||
attrs = append(attrs, sc.NetTransportTCP)
|
|
||||||
case "udp", "udp4", "udp6":
|
|
||||||
attrs = append(attrs, sc.NetTransportUDP)
|
|
||||||
case "ip", "ip4", "ip6":
|
|
||||||
attrs = append(attrs, sc.NetTransportIP)
|
|
||||||
case "unix", "unixgram", "unixpacket":
|
|
||||||
attrs = append(attrs, sc.NetTransportUnix)
|
|
||||||
default:
|
|
||||||
attrs = append(attrs, sc.NetTransportOther)
|
|
||||||
}
|
|
||||||
|
|
||||||
peerIP, peerName, peerPort := hostIPNamePort(request.RemoteAddr)
|
|
||||||
if peerIP != "" {
|
|
||||||
attrs = append(attrs, sc.NetPeerIPKey.String(peerIP))
|
|
||||||
}
|
|
||||||
if peerName != "" {
|
|
||||||
attrs = append(attrs, sc.NetPeerNameKey.String(peerName))
|
|
||||||
}
|
|
||||||
if peerPort != 0 {
|
|
||||||
attrs = append(attrs, sc.NetPeerPortKey.Int(peerPort))
|
|
||||||
}
|
|
||||||
|
|
||||||
hostIP, hostName, hostPort := "", "", 0
|
|
||||||
for _, someHost := range []string{request.Host, request.Header.Get("Host"), request.URL.Host} {
|
|
||||||
hostIP, hostName, hostPort = hostIPNamePort(someHost)
|
|
||||||
if hostIP != "" || hostName != "" || hostPort != 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if hostIP != "" {
|
|
||||||
attrs = append(attrs, sc.NetHostIPKey.String(hostIP))
|
|
||||||
}
|
|
||||||
if hostName != "" {
|
|
||||||
attrs = append(attrs, sc.NetHostNameKey.String(hostName))
|
|
||||||
}
|
|
||||||
if hostPort != 0 {
|
|
||||||
attrs = append(attrs, sc.NetHostPortKey.Int(hostPort))
|
|
||||||
}
|
|
||||||
|
|
||||||
return attrs
|
|
||||||
}
|
|
||||||
|
|
||||||
// hostIPNamePort extracts the IP address, name and (optional) port from hostWithPort.
|
|
||||||
// It handles both IPv4 and IPv6 addresses. If the host portion is not recognized
|
|
||||||
// as a valid IPv4 or IPv6 address, the `ip` result will be empty and the
|
|
||||||
// host portion will instead be returned in `name`.
|
|
||||||
func hostIPNamePort(hostWithPort string) (ip string, name string, port int) {
|
|
||||||
var (
|
|
||||||
hostPart, portPart string
|
|
||||||
parsedPort uint64
|
|
||||||
err error
|
|
||||||
)
|
|
||||||
if hostPart, portPart, err = net.SplitHostPort(hostWithPort); err != nil {
|
|
||||||
hostPart, portPart = hostWithPort, ""
|
|
||||||
}
|
|
||||||
if parsedIP := net.ParseIP(hostPart); parsedIP != nil {
|
|
||||||
ip = parsedIP.String()
|
|
||||||
} else {
|
|
||||||
name = hostPart
|
|
||||||
}
|
|
||||||
if parsedPort, err = strconv.ParseUint(portPart, 10, 16); err == nil {
|
|
||||||
port = int(parsedPort)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// EndUserAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// enduser namespace as specified by the OpenTelemetry specification
|
|
||||||
// for a span.
|
|
||||||
func (sc *SemanticConventions) EndUserAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
if username, _, ok := request.BasicAuth(); ok {
|
|
||||||
return []attribute.KeyValue{sc.EnduserIDKey.String(username)}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPClientAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// http namespace as specified by the OpenTelemetry specification for
|
|
||||||
// a span on the client side.
|
|
||||||
func (sc *SemanticConventions) HTTPClientAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{}
|
|
||||||
|
|
||||||
// remove any username/password info that may be in the URL
|
|
||||||
// before adding it to the attributes
|
|
||||||
userinfo := request.URL.User
|
|
||||||
request.URL.User = nil
|
|
||||||
|
|
||||||
attrs = append(attrs, sc.HTTPURLKey.String(request.URL.String()))
|
|
||||||
|
|
||||||
// restore any username/password info that was removed
|
|
||||||
request.URL.User = userinfo
|
|
||||||
|
|
||||||
return append(attrs, sc.httpCommonAttributesFromHTTPRequest(request)...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sc *SemanticConventions) httpCommonAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{}
|
|
||||||
if ua := request.UserAgent(); ua != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPUserAgentKey.String(ua))
|
|
||||||
}
|
|
||||||
if request.ContentLength > 0 {
|
|
||||||
attrs = append(attrs, sc.HTTPRequestContentLengthKey.Int64(request.ContentLength))
|
|
||||||
}
|
|
||||||
|
|
||||||
return append(attrs, sc.httpBasicAttributesFromHTTPRequest(request)...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (sc *SemanticConventions) httpBasicAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
// as these attributes are used by HTTPServerMetricAttributesFromHTTPRequest, they should be low-cardinality
|
|
||||||
attrs := []attribute.KeyValue{}
|
|
||||||
|
|
||||||
if request.TLS != nil {
|
|
||||||
attrs = append(attrs, sc.HTTPSchemeHTTPS)
|
|
||||||
} else {
|
|
||||||
attrs = append(attrs, sc.HTTPSchemeHTTP)
|
|
||||||
}
|
|
||||||
|
|
||||||
if request.Host != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPHostKey.String(request.Host))
|
|
||||||
} else if request.URL != nil && request.URL.Host != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPHostKey.String(request.URL.Host))
|
|
||||||
}
|
|
||||||
|
|
||||||
flavor := ""
|
|
||||||
if request.ProtoMajor == 1 {
|
|
||||||
flavor = fmt.Sprintf("1.%d", request.ProtoMinor)
|
|
||||||
} else if request.ProtoMajor == 2 {
|
|
||||||
flavor = "2"
|
|
||||||
}
|
|
||||||
if flavor != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPFlavorKey.String(flavor))
|
|
||||||
}
|
|
||||||
|
|
||||||
if request.Method != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPMethodKey.String(request.Method))
|
|
||||||
} else {
|
|
||||||
attrs = append(attrs, sc.HTTPMethodKey.String(http.MethodGet))
|
|
||||||
}
|
|
||||||
|
|
||||||
return attrs
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPServerMetricAttributesFromHTTPRequest generates low-cardinality attributes
|
|
||||||
// to be used with server-side HTTP metrics.
|
|
||||||
func (sc *SemanticConventions) HTTPServerMetricAttributesFromHTTPRequest(serverName string, request *http.Request) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{}
|
|
||||||
if serverName != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPServerNameKey.String(serverName))
|
|
||||||
}
|
|
||||||
return append(attrs, sc.httpBasicAttributesFromHTTPRequest(request)...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPServerAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// http namespace as specified by the OpenTelemetry specification for
|
|
||||||
// a span on the server side. Currently, only basic authentication is
|
|
||||||
// supported.
|
|
||||||
func (sc *SemanticConventions) HTTPServerAttributesFromHTTPRequest(serverName, route string, request *http.Request) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{
|
|
||||||
sc.HTTPTargetKey.String(request.RequestURI),
|
|
||||||
}
|
|
||||||
|
|
||||||
if serverName != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPServerNameKey.String(serverName))
|
|
||||||
}
|
|
||||||
if route != "" {
|
|
||||||
attrs = append(attrs, sc.HTTPRouteKey.String(route))
|
|
||||||
}
|
|
||||||
if values, ok := request.Header["X-Forwarded-For"]; ok && len(values) > 0 {
|
|
||||||
if addresses := strings.SplitN(values[0], ",", 2); len(addresses) > 0 {
|
|
||||||
attrs = append(attrs, sc.HTTPClientIPKey.String(addresses[0]))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return append(attrs, sc.httpCommonAttributesFromHTTPRequest(request)...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPAttributesFromHTTPStatusCode generates attributes of the http
|
|
||||||
// namespace as specified by the OpenTelemetry specification for a
|
|
||||||
// span.
|
|
||||||
func (sc *SemanticConventions) HTTPAttributesFromHTTPStatusCode(code int) []attribute.KeyValue {
|
|
||||||
attrs := []attribute.KeyValue{
|
|
||||||
sc.HTTPStatusCodeKey.Int(code),
|
|
||||||
}
|
|
||||||
return attrs
|
|
||||||
}
|
|
||||||
|
|
||||||
type codeRange struct {
|
|
||||||
fromInclusive int
|
|
||||||
toInclusive int
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r codeRange) contains(code int) bool {
|
|
||||||
return r.fromInclusive <= code && code <= r.toInclusive
|
|
||||||
}
|
|
||||||
|
|
||||||
var validRangesPerCategory = map[int][]codeRange{
|
|
||||||
1: {
|
|
||||||
{http.StatusContinue, http.StatusEarlyHints},
|
|
||||||
},
|
|
||||||
2: {
|
|
||||||
{http.StatusOK, http.StatusAlreadyReported},
|
|
||||||
{http.StatusIMUsed, http.StatusIMUsed},
|
|
||||||
},
|
|
||||||
3: {
|
|
||||||
{http.StatusMultipleChoices, http.StatusUseProxy},
|
|
||||||
{http.StatusTemporaryRedirect, http.StatusPermanentRedirect},
|
|
||||||
},
|
|
||||||
4: {
|
|
||||||
{http.StatusBadRequest, http.StatusTeapot}, // yes, teapot is so useful…
|
|
||||||
{http.StatusMisdirectedRequest, http.StatusUpgradeRequired},
|
|
||||||
{http.StatusPreconditionRequired, http.StatusTooManyRequests},
|
|
||||||
{http.StatusRequestHeaderFieldsTooLarge, http.StatusRequestHeaderFieldsTooLarge},
|
|
||||||
{http.StatusUnavailableForLegalReasons, http.StatusUnavailableForLegalReasons},
|
|
||||||
},
|
|
||||||
5: {
|
|
||||||
{http.StatusInternalServerError, http.StatusLoopDetected},
|
|
||||||
{http.StatusNotExtended, http.StatusNetworkAuthenticationRequired},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpanStatusFromHTTPStatusCode generates a status code and a message
|
|
||||||
// as specified by the OpenTelemetry specification for a span.
|
|
||||||
func SpanStatusFromHTTPStatusCode(code int) (codes.Code, string) {
|
|
||||||
spanCode, valid := validateHTTPStatusCode(code)
|
|
||||||
if !valid {
|
|
||||||
return spanCode, fmt.Sprintf("Invalid HTTP status code %d", code)
|
|
||||||
}
|
|
||||||
return spanCode, ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpanStatusFromHTTPStatusCodeAndSpanKind generates a status code and a message
|
|
||||||
// as specified by the OpenTelemetry specification for a span.
|
|
||||||
// Exclude 4xx for SERVER to set the appropriate status.
|
|
||||||
func SpanStatusFromHTTPStatusCodeAndSpanKind(code int, spanKind trace.SpanKind) (codes.Code, string) {
|
|
||||||
spanCode, valid := validateHTTPStatusCode(code)
|
|
||||||
if !valid {
|
|
||||||
return spanCode, fmt.Sprintf("Invalid HTTP status code %d", code)
|
|
||||||
}
|
|
||||||
category := code / 100
|
|
||||||
if spanKind == trace.SpanKindServer && category == 4 {
|
|
||||||
return codes.Unset, ""
|
|
||||||
}
|
|
||||||
return spanCode, ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// validateHTTPStatusCode validates the HTTP status code and returns
|
|
||||||
// corresponding span status code. If the `code` is not a valid HTTP status
|
|
||||||
// code, returns span status Error and false.
|
|
||||||
func validateHTTPStatusCode(code int) (codes.Code, bool) {
|
|
||||||
category := code / 100
|
|
||||||
ranges, ok := validRangesPerCategory[category]
|
|
||||||
if !ok {
|
|
||||||
return codes.Error, false
|
|
||||||
}
|
|
||||||
ok = false
|
|
||||||
for _, crange := range ranges {
|
|
||||||
ok = crange.contains(code)
|
|
||||||
if ok {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !ok {
|
|
||||||
return codes.Error, false
|
|
||||||
}
|
|
||||||
if category > 0 && category < 4 {
|
|
||||||
return codes.Unset, true
|
|
||||||
}
|
|
||||||
return codes.Error, true
|
|
||||||
}
|
|
|
@ -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 semconv implements OpenTelemetry semantic conventions.
|
|
||||||
//
|
|
||||||
// OpenTelemetry semantic conventions are agreed standardized naming
|
|
||||||
// patterns for OpenTelemetry things. This package represents the conventions
|
|
||||||
// as of the v1.7.0 version of the OpenTelemetry specification.
|
|
||||||
package semconv // import "go.opentelemetry.io/otel/semconv/v1.7.0"
|
|
|
@ -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 semconv // import "go.opentelemetry.io/otel/semconv/v1.7.0"
|
|
||||||
|
|
||||||
const (
|
|
||||||
// ExceptionEventName is the name of the Span event representing an exception.
|
|
||||||
ExceptionEventName = "exception"
|
|
||||||
)
|
|
|
@ -1,114 +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 semconv // import "go.opentelemetry.io/otel/semconv/v1.7.0"
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/http"
|
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/attribute"
|
|
||||||
"go.opentelemetry.io/otel/codes"
|
|
||||||
"go.opentelemetry.io/otel/semconv/internal"
|
|
||||||
"go.opentelemetry.io/otel/trace"
|
|
||||||
)
|
|
||||||
|
|
||||||
// HTTP scheme attributes.
|
|
||||||
var (
|
|
||||||
HTTPSchemeHTTP = HTTPSchemeKey.String("http")
|
|
||||||
HTTPSchemeHTTPS = HTTPSchemeKey.String("https")
|
|
||||||
)
|
|
||||||
|
|
||||||
var sc = &internal.SemanticConventions{
|
|
||||||
EnduserIDKey: EnduserIDKey,
|
|
||||||
HTTPClientIPKey: HTTPClientIPKey,
|
|
||||||
HTTPFlavorKey: HTTPFlavorKey,
|
|
||||||
HTTPHostKey: HTTPHostKey,
|
|
||||||
HTTPMethodKey: HTTPMethodKey,
|
|
||||||
HTTPRequestContentLengthKey: HTTPRequestContentLengthKey,
|
|
||||||
HTTPRouteKey: HTTPRouteKey,
|
|
||||||
HTTPSchemeHTTP: HTTPSchemeHTTP,
|
|
||||||
HTTPSchemeHTTPS: HTTPSchemeHTTPS,
|
|
||||||
HTTPServerNameKey: HTTPServerNameKey,
|
|
||||||
HTTPStatusCodeKey: HTTPStatusCodeKey,
|
|
||||||
HTTPTargetKey: HTTPTargetKey,
|
|
||||||
HTTPURLKey: HTTPURLKey,
|
|
||||||
HTTPUserAgentKey: HTTPUserAgentKey,
|
|
||||||
NetHostIPKey: NetHostIPKey,
|
|
||||||
NetHostNameKey: NetHostNameKey,
|
|
||||||
NetHostPortKey: NetHostPortKey,
|
|
||||||
NetPeerIPKey: NetPeerIPKey,
|
|
||||||
NetPeerNameKey: NetPeerNameKey,
|
|
||||||
NetPeerPortKey: NetPeerPortKey,
|
|
||||||
NetTransportIP: NetTransportIP,
|
|
||||||
NetTransportOther: NetTransportOther,
|
|
||||||
NetTransportTCP: NetTransportTCP,
|
|
||||||
NetTransportUDP: NetTransportUDP,
|
|
||||||
NetTransportUnix: NetTransportUnix,
|
|
||||||
}
|
|
||||||
|
|
||||||
// NetAttributesFromHTTPRequest generates attributes of the net
|
|
||||||
// namespace as specified by the OpenTelemetry specification for a
|
|
||||||
// span. The network parameter is a string that net.Dial function
|
|
||||||
// from standard library can understand.
|
|
||||||
func NetAttributesFromHTTPRequest(network string, request *http.Request) []attribute.KeyValue {
|
|
||||||
return sc.NetAttributesFromHTTPRequest(network, request)
|
|
||||||
}
|
|
||||||
|
|
||||||
// EndUserAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// enduser namespace as specified by the OpenTelemetry specification
|
|
||||||
// for a span.
|
|
||||||
func EndUserAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
return sc.EndUserAttributesFromHTTPRequest(request)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPClientAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// http namespace as specified by the OpenTelemetry specification for
|
|
||||||
// a span on the client side.
|
|
||||||
func HTTPClientAttributesFromHTTPRequest(request *http.Request) []attribute.KeyValue {
|
|
||||||
return sc.HTTPClientAttributesFromHTTPRequest(request)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPServerMetricAttributesFromHTTPRequest generates low-cardinality attributes
|
|
||||||
// to be used with server-side HTTP metrics.
|
|
||||||
func HTTPServerMetricAttributesFromHTTPRequest(serverName string, request *http.Request) []attribute.KeyValue {
|
|
||||||
return sc.HTTPServerMetricAttributesFromHTTPRequest(serverName, request)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPServerAttributesFromHTTPRequest generates attributes of the
|
|
||||||
// http namespace as specified by the OpenTelemetry specification for
|
|
||||||
// a span on the server side. Currently, only basic authentication is
|
|
||||||
// supported.
|
|
||||||
func HTTPServerAttributesFromHTTPRequest(serverName, route string, request *http.Request) []attribute.KeyValue {
|
|
||||||
return sc.HTTPServerAttributesFromHTTPRequest(serverName, route, request)
|
|
||||||
}
|
|
||||||
|
|
||||||
// HTTPAttributesFromHTTPStatusCode generates attributes of the http
|
|
||||||
// namespace as specified by the OpenTelemetry specification for a
|
|
||||||
// span.
|
|
||||||
func HTTPAttributesFromHTTPStatusCode(code int) []attribute.KeyValue {
|
|
||||||
return sc.HTTPAttributesFromHTTPStatusCode(code)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpanStatusFromHTTPStatusCode generates a status code and a message
|
|
||||||
// as specified by the OpenTelemetry specification for a span.
|
|
||||||
func SpanStatusFromHTTPStatusCode(code int) (codes.Code, string) {
|
|
||||||
return internal.SpanStatusFromHTTPStatusCode(code)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SpanStatusFromHTTPStatusCodeAndSpanKind generates a status code and a message
|
|
||||||
// as specified by the OpenTelemetry specification for a span.
|
|
||||||
// Exclude 4xx for SERVER to set the appropriate status.
|
|
||||||
func SpanStatusFromHTTPStatusCodeAndSpanKind(code int, spanKind trace.SpanKind) (codes.Code, string) {
|
|
||||||
return internal.SpanStatusFromHTTPStatusCodeAndSpanKind(code, spanKind)
|
|
||||||
}
|
|
|
@ -1,946 +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.
|
|
||||||
|
|
||||||
// Code generated from semantic convention specification. DO NOT EDIT.
|
|
||||||
|
|
||||||
package semconv // import "go.opentelemetry.io/otel/semconv/v1.7.0"
|
|
||||||
|
|
||||||
import "go.opentelemetry.io/otel/attribute"
|
|
||||||
|
|
||||||
// A cloud environment (e.g. GCP, Azure, AWS)
|
|
||||||
const (
|
|
||||||
// Name of the cloud provider.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
CloudProviderKey = attribute.Key("cloud.provider")
|
|
||||||
// The cloud account ID the resource is assigned to.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '111111111111', 'opentelemetry'
|
|
||||||
CloudAccountIDKey = attribute.Key("cloud.account.id")
|
|
||||||
// The geographical region the resource is running. Refer to your provider's docs
|
|
||||||
// to see the available regions, for example [Alibaba Cloud
|
|
||||||
// regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS
|
|
||||||
// regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/),
|
|
||||||
// [Azure regions](https://azure.microsoft.com/en-us/global-
|
|
||||||
// infrastructure/geographies/), or [Google Cloud
|
|
||||||
// regions](https://cloud.google.com/about/locations).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'us-central1', 'us-east-1'
|
|
||||||
CloudRegionKey = attribute.Key("cloud.region")
|
|
||||||
// Cloud regions often have multiple, isolated locations known as zones to
|
|
||||||
// increase availability. Availability zone represents the zone where the resource
|
|
||||||
// is running.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'us-east-1c'
|
|
||||||
// Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.
|
|
||||||
CloudAvailabilityZoneKey = attribute.Key("cloud.availability_zone")
|
|
||||||
// The cloud platform in use.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Note: The prefix of the service SHOULD match the one specified in
|
|
||||||
// `cloud.provider`.
|
|
||||||
CloudPlatformKey = attribute.Key("cloud.platform")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// Alibaba Cloud
|
|
||||||
CloudProviderAlibabaCloud = CloudProviderKey.String("alibaba_cloud")
|
|
||||||
// Amazon Web Services
|
|
||||||
CloudProviderAWS = CloudProviderKey.String("aws")
|
|
||||||
// Microsoft Azure
|
|
||||||
CloudProviderAzure = CloudProviderKey.String("azure")
|
|
||||||
// Google Cloud Platform
|
|
||||||
CloudProviderGCP = CloudProviderKey.String("gcp")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// Alibaba Cloud Elastic Compute Service
|
|
||||||
CloudPlatformAlibabaCloudECS = CloudPlatformKey.String("alibaba_cloud_ecs")
|
|
||||||
// Alibaba Cloud Function Compute
|
|
||||||
CloudPlatformAlibabaCloudFc = CloudPlatformKey.String("alibaba_cloud_fc")
|
|
||||||
// AWS Elastic Compute Cloud
|
|
||||||
CloudPlatformAWSEC2 = CloudPlatformKey.String("aws_ec2")
|
|
||||||
// AWS Elastic Container Service
|
|
||||||
CloudPlatformAWSECS = CloudPlatformKey.String("aws_ecs")
|
|
||||||
// AWS Elastic Kubernetes Service
|
|
||||||
CloudPlatformAWSEKS = CloudPlatformKey.String("aws_eks")
|
|
||||||
// AWS Lambda
|
|
||||||
CloudPlatformAWSLambda = CloudPlatformKey.String("aws_lambda")
|
|
||||||
// AWS Elastic Beanstalk
|
|
||||||
CloudPlatformAWSElasticBeanstalk = CloudPlatformKey.String("aws_elastic_beanstalk")
|
|
||||||
// Azure Virtual Machines
|
|
||||||
CloudPlatformAzureVM = CloudPlatformKey.String("azure_vm")
|
|
||||||
// Azure Container Instances
|
|
||||||
CloudPlatformAzureContainerInstances = CloudPlatformKey.String("azure_container_instances")
|
|
||||||
// Azure Kubernetes Service
|
|
||||||
CloudPlatformAzureAKS = CloudPlatformKey.String("azure_aks")
|
|
||||||
// Azure Functions
|
|
||||||
CloudPlatformAzureFunctions = CloudPlatformKey.String("azure_functions")
|
|
||||||
// Azure App Service
|
|
||||||
CloudPlatformAzureAppService = CloudPlatformKey.String("azure_app_service")
|
|
||||||
// Google Cloud Compute Engine (GCE)
|
|
||||||
CloudPlatformGCPComputeEngine = CloudPlatformKey.String("gcp_compute_engine")
|
|
||||||
// Google Cloud Run
|
|
||||||
CloudPlatformGCPCloudRun = CloudPlatformKey.String("gcp_cloud_run")
|
|
||||||
// Google Cloud Kubernetes Engine (GKE)
|
|
||||||
CloudPlatformGCPKubernetesEngine = CloudPlatformKey.String("gcp_kubernetes_engine")
|
|
||||||
// Google Cloud Functions (GCF)
|
|
||||||
CloudPlatformGCPCloudFunctions = CloudPlatformKey.String("gcp_cloud_functions")
|
|
||||||
// Google Cloud App Engine (GAE)
|
|
||||||
CloudPlatformGCPAppEngine = CloudPlatformKey.String("gcp_app_engine")
|
|
||||||
)
|
|
||||||
|
|
||||||
// Resources used by AWS Elastic Container Service (ECS).
|
|
||||||
const (
|
|
||||||
// The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.
|
|
||||||
// amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:ecs:us-
|
|
||||||
// west-1:123456789123:container/32624152-9086-4f0e-acae-1a75b14fe4d9'
|
|
||||||
AWSECSContainerARNKey = attribute.Key("aws.ecs.container.arn")
|
|
||||||
// The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/develo
|
|
||||||
// perguide/clusters.html).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
|
|
||||||
AWSECSClusterARNKey = attribute.Key("aws.ecs.cluster.arn")
|
|
||||||
// The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/l
|
|
||||||
// aunch_types.html) for an ECS task.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
AWSECSLaunchtypeKey = attribute.Key("aws.ecs.launchtype")
|
|
||||||
// The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/lates
|
|
||||||
// t/developerguide/task_definitions.html).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:ecs:us-
|
|
||||||
// west-1:123456789123:task/10838bed-421f-43ef-870a-f43feacbbb5b'
|
|
||||||
AWSECSTaskARNKey = attribute.Key("aws.ecs.task.arn")
|
|
||||||
// The task definition family this task definition is a member of.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-family'
|
|
||||||
AWSECSTaskFamilyKey = attribute.Key("aws.ecs.task.family")
|
|
||||||
// The revision for this task definition.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '8', '26'
|
|
||||||
AWSECSTaskRevisionKey = attribute.Key("aws.ecs.task.revision")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// ec2
|
|
||||||
AWSECSLaunchtypeEC2 = AWSECSLaunchtypeKey.String("ec2")
|
|
||||||
// fargate
|
|
||||||
AWSECSLaunchtypeFargate = AWSECSLaunchtypeKey.String("fargate")
|
|
||||||
)
|
|
||||||
|
|
||||||
// Resources used by AWS Elastic Kubernetes Service (EKS).
|
|
||||||
const (
|
|
||||||
// The ARN of an EKS cluster.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:ecs:us-west-2:123456789123:cluster/my-cluster'
|
|
||||||
AWSEKSClusterARNKey = attribute.Key("aws.eks.cluster.arn")
|
|
||||||
)
|
|
||||||
|
|
||||||
// Resources specific to Amazon Web Services.
|
|
||||||
const (
|
|
||||||
// The name(s) of the AWS log group(s) an application is writing to.
|
|
||||||
//
|
|
||||||
// Type: string[]
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '/aws/lambda/my-function', 'opentelemetry-service'
|
|
||||||
// Note: Multiple log groups must be supported for cases like multi-container
|
|
||||||
// applications, where a single application has sidecar containers, and each write
|
|
||||||
// to their own log group.
|
|
||||||
AWSLogGroupNamesKey = attribute.Key("aws.log.group.names")
|
|
||||||
// The Amazon Resource Name(s) (ARN) of the AWS log group(s).
|
|
||||||
//
|
|
||||||
// Type: string[]
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:*'
|
|
||||||
// Note: See the [log group ARN format
|
|
||||||
// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-
|
|
||||||
// access-control-overview-cwl.html#CWL_ARN_Format).
|
|
||||||
AWSLogGroupARNsKey = attribute.Key("aws.log.group.arns")
|
|
||||||
// The name(s) of the AWS log stream(s) an application is writing to.
|
|
||||||
//
|
|
||||||
// Type: string[]
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
|
|
||||||
AWSLogStreamNamesKey = attribute.Key("aws.log.stream.names")
|
|
||||||
// The ARN(s) of the AWS log stream(s).
|
|
||||||
//
|
|
||||||
// Type: string[]
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:logs:us-west-1:123456789012:log-group:/aws/my/group:log-
|
|
||||||
// stream:logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'
|
|
||||||
// Note: See the [log stream ARN format
|
|
||||||
// documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-
|
|
||||||
// access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain
|
|
||||||
// several log streams, so these ARNs necessarily identify both a log group and a
|
|
||||||
// log stream.
|
|
||||||
AWSLogStreamARNsKey = attribute.Key("aws.log.stream.arns")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A container instance.
|
|
||||||
const (
|
|
||||||
// Container name.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-autoconf'
|
|
||||||
ContainerNameKey = attribute.Key("container.name")
|
|
||||||
// Container ID. Usually a UUID, as for example used to [identify Docker
|
|
||||||
// containers](https://docs.docker.com/engine/reference/run/#container-
|
|
||||||
// identification). The UUID might be abbreviated.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'a3bf90e006b2'
|
|
||||||
ContainerIDKey = attribute.Key("container.id")
|
|
||||||
// The container runtime managing this container.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'docker', 'containerd', 'rkt'
|
|
||||||
ContainerRuntimeKey = attribute.Key("container.runtime")
|
|
||||||
// Name of the image the container was built on.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'gcr.io/opentelemetry/operator'
|
|
||||||
ContainerImageNameKey = attribute.Key("container.image.name")
|
|
||||||
// Container image tag.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '0.1'
|
|
||||||
ContainerImageTagKey = attribute.Key("container.image.tag")
|
|
||||||
)
|
|
||||||
|
|
||||||
// The software deployment.
|
|
||||||
const (
|
|
||||||
// Name of the [deployment
|
|
||||||
// environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka
|
|
||||||
// deployment tier).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'staging', 'production'
|
|
||||||
DeploymentEnvironmentKey = attribute.Key("deployment.environment")
|
|
||||||
)
|
|
||||||
|
|
||||||
// The device on which the process represented by this resource is running.
|
|
||||||
const (
|
|
||||||
// A unique identifier representing the device
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '2ab2916d-a51f-4ac8-80ee-45ac31a28092'
|
|
||||||
// Note: The device identifier MUST only be defined using the values outlined
|
|
||||||
// below. This value is not an advertising identifier and MUST NOT be used as
|
|
||||||
// such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor id
|
|
||||||
// entifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-iden
|
|
||||||
// tifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the
|
|
||||||
// Firebase Installation ID or a globally unique UUID which is persisted across
|
|
||||||
// sessions in your application. More information can be found
|
|
||||||
// [here](https://developer.android.com/training/articles/user-data-ids) on best
|
|
||||||
// practices and exact implementation details. Caution should be taken when
|
|
||||||
// storing personal data or anything which can identify a user. GDPR and data
|
|
||||||
// protection laws may apply, ensure you do your own due diligence.
|
|
||||||
DeviceIDKey = attribute.Key("device.id")
|
|
||||||
// The model identifier for the device
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'iPhone3,4', 'SM-G920F'
|
|
||||||
// Note: It's recommended this value represents a machine readable version of the
|
|
||||||
// model identifier rather than the market or consumer-friendly name of the
|
|
||||||
// device.
|
|
||||||
DeviceModelIdentifierKey = attribute.Key("device.model.identifier")
|
|
||||||
// The marketing name for the device model
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'iPhone 6s Plus', 'Samsung Galaxy S6'
|
|
||||||
// Note: It's recommended this value represents a human readable version of the
|
|
||||||
// device model rather than a machine readable alternative.
|
|
||||||
DeviceModelNameKey = attribute.Key("device.model.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A serverless instance.
|
|
||||||
const (
|
|
||||||
// The name of the single function that this runtime instance executes.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: Always
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'my-function'
|
|
||||||
// Note: This is the name of the function as configured/deployed on the FaaS
|
|
||||||
// platform and is usually different from the name of the callback function (which
|
|
||||||
// may be stored in the
|
|
||||||
// [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-
|
|
||||||
// general.md#source-code-attributes) span attributes).
|
|
||||||
FaaSNameKey = attribute.Key("faas.name")
|
|
||||||
// The unique ID of the single function that this runtime instance executes.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'arn:aws:lambda:us-west-2:123456789012:function:my-function'
|
|
||||||
// Note: Depending on the cloud provider, use:
|
|
||||||
|
|
||||||
// * **AWS Lambda:** The function
|
|
||||||
// [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-
|
|
||||||
// namespaces.html).
|
|
||||||
// Take care not to use the "invoked ARN" directly but replace any
|
|
||||||
// [alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-
|
|
||||||
// aliases.html) with the resolved function version, as the same runtime instance
|
|
||||||
// may be invokable with multiple
|
|
||||||
// different aliases.
|
|
||||||
// * **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-
|
|
||||||
// resource-names)
|
|
||||||
// * **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-
|
|
||||||
// us/rest/api/resources/resources/get-by-id).
|
|
||||||
|
|
||||||
// On some providers, it may not be possible to determine the full ID at startup,
|
|
||||||
// which is why this field cannot be made required. For example, on AWS the
|
|
||||||
// account ID
|
|
||||||
// part of the ARN is not available without calling another AWS API
|
|
||||||
// which may be deemed too slow for a short-running lambda function.
|
|
||||||
// As an alternative, consider setting `faas.id` as a span attribute instead.
|
|
||||||
FaaSIDKey = attribute.Key("faas.id")
|
|
||||||
// The immutable version of the function being executed.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '26', 'pinkfroid-00002'
|
|
||||||
// Note: Depending on the cloud provider and platform, use:
|
|
||||||
|
|
||||||
// * **AWS Lambda:** The [function
|
|
||||||
// version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-
|
|
||||||
// versions.html)
|
|
||||||
// (an integer represented as a decimal string).
|
|
||||||
// * **Google Cloud Run:** The
|
|
||||||
// [revision](https://cloud.google.com/run/docs/managing/revisions)
|
|
||||||
// (i.e., the function name plus the revision suffix).
|
|
||||||
// * **Google Cloud Functions:** The value of the
|
|
||||||
// [`K_REVISION` environment
|
|
||||||
// variable](https://cloud.google.com/functions/docs/env-
|
|
||||||
// var#runtime_environment_variables_set_automatically).
|
|
||||||
// * **Azure Functions:** Not applicable. Do not set this attribute.
|
|
||||||
FaaSVersionKey = attribute.Key("faas.version")
|
|
||||||
// The execution environment ID as a string, that will be potentially reused for
|
|
||||||
// other invocations to the same function/function version.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de'
|
|
||||||
// Note: * **AWS Lambda:** Use the (full) log stream name.
|
|
||||||
FaaSInstanceKey = attribute.Key("faas.instance")
|
|
||||||
// The amount of memory available to the serverless function in MiB.
|
|
||||||
//
|
|
||||||
// Type: int
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 128
|
|
||||||
// Note: It's recommended to set this attribute since e.g. too little memory can
|
|
||||||
// easily stop a Java AWS Lambda function from working correctly. On AWS Lambda,
|
|
||||||
// the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this
|
|
||||||
// information.
|
|
||||||
FaaSMaxMemoryKey = attribute.Key("faas.max_memory")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A host is defined as a general computing instance.
|
|
||||||
const (
|
|
||||||
// Unique host ID. For Cloud, this must be the instance_id assigned by the cloud
|
|
||||||
// provider.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-test'
|
|
||||||
HostIDKey = attribute.Key("host.id")
|
|
||||||
// Name of the host. On Unix systems, it may contain what the hostname command
|
|
||||||
// returns, or the fully qualified hostname, or another name specified by the
|
|
||||||
// user.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-test'
|
|
||||||
HostNameKey = attribute.Key("host.name")
|
|
||||||
// Type of host. For Cloud, this must be the machine type.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'n1-standard-1'
|
|
||||||
HostTypeKey = attribute.Key("host.type")
|
|
||||||
// The CPU architecture the host system is running on.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
HostArchKey = attribute.Key("host.arch")
|
|
||||||
// Name of the VM image or OS install the host was instantiated from.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'infra-ami-eks-worker-node-7d4ec78312', 'CentOS-8-x86_64-1905'
|
|
||||||
HostImageNameKey = attribute.Key("host.image.name")
|
|
||||||
// VM image ID. For Cloud, this value is from the provider.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'ami-07b06b442921831e5'
|
|
||||||
HostImageIDKey = attribute.Key("host.image.id")
|
|
||||||
// The version string of the VM image as defined in [Version
|
|
||||||
// Attributes](README.md#version-attributes).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '0.1'
|
|
||||||
HostImageVersionKey = attribute.Key("host.image.version")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// AMD64
|
|
||||||
HostArchAMD64 = HostArchKey.String("amd64")
|
|
||||||
// ARM32
|
|
||||||
HostArchARM32 = HostArchKey.String("arm32")
|
|
||||||
// ARM64
|
|
||||||
HostArchARM64 = HostArchKey.String("arm64")
|
|
||||||
// Itanium
|
|
||||||
HostArchIA64 = HostArchKey.String("ia64")
|
|
||||||
// 32-bit PowerPC
|
|
||||||
HostArchPPC32 = HostArchKey.String("ppc32")
|
|
||||||
// 64-bit PowerPC
|
|
||||||
HostArchPPC64 = HostArchKey.String("ppc64")
|
|
||||||
// 32-bit x86
|
|
||||||
HostArchX86 = HostArchKey.String("x86")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Cluster.
|
|
||||||
const (
|
|
||||||
// The name of the cluster.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-cluster'
|
|
||||||
K8SClusterNameKey = attribute.Key("k8s.cluster.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Node object.
|
|
||||||
const (
|
|
||||||
// The name of the Node.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'node-1'
|
|
||||||
K8SNodeNameKey = attribute.Key("k8s.node.name")
|
|
||||||
// The UID of the Node.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '1eb3a0c6-0477-4080-a9cb-0cb7db65c6a2'
|
|
||||||
K8SNodeUIDKey = attribute.Key("k8s.node.uid")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Namespace.
|
|
||||||
const (
|
|
||||||
// The name of the namespace that the pod is running in.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'default'
|
|
||||||
K8SNamespaceNameKey = attribute.Key("k8s.namespace.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Pod object.
|
|
||||||
const (
|
|
||||||
// The UID of the Pod.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SPodUIDKey = attribute.Key("k8s.pod.uid")
|
|
||||||
// The name of the Pod.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry-pod-autoconf'
|
|
||||||
K8SPodNameKey = attribute.Key("k8s.pod.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).
|
|
||||||
const (
|
|
||||||
// The name of the Container in a Pod template.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'redis'
|
|
||||||
K8SContainerNameKey = attribute.Key("k8s.container.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes ReplicaSet object.
|
|
||||||
const (
|
|
||||||
// The UID of the ReplicaSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SReplicaSetUIDKey = attribute.Key("k8s.replicaset.uid")
|
|
||||||
// The name of the ReplicaSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SReplicaSetNameKey = attribute.Key("k8s.replicaset.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Deployment object.
|
|
||||||
const (
|
|
||||||
// The UID of the Deployment.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SDeploymentUIDKey = attribute.Key("k8s.deployment.uid")
|
|
||||||
// The name of the Deployment.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SDeploymentNameKey = attribute.Key("k8s.deployment.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes StatefulSet object.
|
|
||||||
const (
|
|
||||||
// The UID of the StatefulSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SStatefulSetUIDKey = attribute.Key("k8s.statefulset.uid")
|
|
||||||
// The name of the StatefulSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SStatefulSetNameKey = attribute.Key("k8s.statefulset.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes DaemonSet object.
|
|
||||||
const (
|
|
||||||
// The UID of the DaemonSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SDaemonSetUIDKey = attribute.Key("k8s.daemonset.uid")
|
|
||||||
// The name of the DaemonSet.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SDaemonSetNameKey = attribute.Key("k8s.daemonset.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes Job object.
|
|
||||||
const (
|
|
||||||
// The UID of the Job.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SJobUIDKey = attribute.Key("k8s.job.uid")
|
|
||||||
// The name of the Job.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SJobNameKey = attribute.Key("k8s.job.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A Kubernetes CronJob object.
|
|
||||||
const (
|
|
||||||
// The UID of the CronJob.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '275ecb36-5aa8-4c2a-9c47-d8bb681b9aff'
|
|
||||||
K8SCronJobUIDKey = attribute.Key("k8s.cronjob.uid")
|
|
||||||
// The name of the CronJob.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
K8SCronJobNameKey = attribute.Key("k8s.cronjob.name")
|
|
||||||
)
|
|
||||||
|
|
||||||
// The operating system (OS) on which the process represented by this resource is running.
|
|
||||||
const (
|
|
||||||
// The operating system type.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: Always
|
|
||||||
// Stability: stable
|
|
||||||
OSTypeKey = attribute.Key("os.type")
|
|
||||||
// Human readable (not intended to be parsed) OS version information, like e.g.
|
|
||||||
// reported by `ver` or `lsb_release -a` commands.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'
|
|
||||||
OSDescriptionKey = attribute.Key("os.description")
|
|
||||||
// Human readable operating system name.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'iOS', 'Android', 'Ubuntu'
|
|
||||||
OSNameKey = attribute.Key("os.name")
|
|
||||||
// The version string of the operating system as defined in [Version
|
|
||||||
// Attributes](../../resource/semantic_conventions/README.md#version-attributes).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '14.2.1', '18.04.1'
|
|
||||||
OSVersionKey = attribute.Key("os.version")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// Microsoft Windows
|
|
||||||
OSTypeWindows = OSTypeKey.String("windows")
|
|
||||||
// Linux
|
|
||||||
OSTypeLinux = OSTypeKey.String("linux")
|
|
||||||
// Apple Darwin
|
|
||||||
OSTypeDarwin = OSTypeKey.String("darwin")
|
|
||||||
// FreeBSD
|
|
||||||
OSTypeFreeBSD = OSTypeKey.String("freebsd")
|
|
||||||
// NetBSD
|
|
||||||
OSTypeNetBSD = OSTypeKey.String("netbsd")
|
|
||||||
// OpenBSD
|
|
||||||
OSTypeOpenBSD = OSTypeKey.String("openbsd")
|
|
||||||
// DragonFly BSD
|
|
||||||
OSTypeDragonflyBSD = OSTypeKey.String("dragonflybsd")
|
|
||||||
// HP-UX (Hewlett Packard Unix)
|
|
||||||
OSTypeHPUX = OSTypeKey.String("hpux")
|
|
||||||
// AIX (Advanced Interactive eXecutive)
|
|
||||||
OSTypeAIX = OSTypeKey.String("aix")
|
|
||||||
// Oracle Solaris
|
|
||||||
OSTypeSolaris = OSTypeKey.String("solaris")
|
|
||||||
// IBM z/OS
|
|
||||||
OSTypeZOS = OSTypeKey.String("z_os")
|
|
||||||
)
|
|
||||||
|
|
||||||
// An operating system process.
|
|
||||||
const (
|
|
||||||
// Process identifier (PID).
|
|
||||||
//
|
|
||||||
// Type: int
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 1234
|
|
||||||
ProcessPIDKey = attribute.Key("process.pid")
|
|
||||||
// The name of the process executable. On Linux based systems, can be set to the
|
|
||||||
// `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of
|
|
||||||
// `GetProcessImageFileNameW`.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: See below
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'otelcol'
|
|
||||||
ProcessExecutableNameKey = attribute.Key("process.executable.name")
|
|
||||||
// The full path to the process executable. On Linux based systems, can be set to
|
|
||||||
// the target of `proc/[pid]/exe`. On Windows, can be set to the result of
|
|
||||||
// `GetProcessImageFileNameW`.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: See below
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '/usr/bin/cmd/otelcol'
|
|
||||||
ProcessExecutablePathKey = attribute.Key("process.executable.path")
|
|
||||||
// The command used to launch the process (i.e. the command name). On Linux based
|
|
||||||
// systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows,
|
|
||||||
// can be set to the first parameter extracted from `GetCommandLineW`.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: See below
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'cmd/otelcol'
|
|
||||||
ProcessCommandKey = attribute.Key("process.command")
|
|
||||||
// The full command used to launch the process as a single string representing the
|
|
||||||
// full command. On Windows, can be set to the result of `GetCommandLineW`. Do not
|
|
||||||
// set this if you have to assemble it just for monitoring; use
|
|
||||||
// `process.command_args` instead.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: See below
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'C:\\cmd\\otecol --config="my directory\\config.yaml"'
|
|
||||||
ProcessCommandLineKey = attribute.Key("process.command_line")
|
|
||||||
// All the command arguments (including the command/executable itself) as received
|
|
||||||
// by the process. On Linux-based systems (and some other Unixoid systems
|
|
||||||
// supporting procfs), can be set according to the list of null-delimited strings
|
|
||||||
// extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be
|
|
||||||
// the full argv vector passed to `main`.
|
|
||||||
//
|
|
||||||
// Type: string[]
|
|
||||||
// Required: See below
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'cmd/otecol', '--config=config.yaml'
|
|
||||||
ProcessCommandArgsKey = attribute.Key("process.command_args")
|
|
||||||
// The username of the user that owns the process.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'root'
|
|
||||||
ProcessOwnerKey = attribute.Key("process.owner")
|
|
||||||
)
|
|
||||||
|
|
||||||
// The single (language) runtime instance which is monitored.
|
|
||||||
const (
|
|
||||||
// The name of the runtime of this process. For compiled native binaries, this
|
|
||||||
// SHOULD be the name of the compiler.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'OpenJDK Runtime Environment'
|
|
||||||
ProcessRuntimeNameKey = attribute.Key("process.runtime.name")
|
|
||||||
// The version of the runtime of this process, as returned by the runtime without
|
|
||||||
// modification.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '14.0.2'
|
|
||||||
ProcessRuntimeVersionKey = attribute.Key("process.runtime.version")
|
|
||||||
// An additional description about the runtime of the process, for example a
|
|
||||||
// specific vendor customization of the runtime environment.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0'
|
|
||||||
ProcessRuntimeDescriptionKey = attribute.Key("process.runtime.description")
|
|
||||||
)
|
|
||||||
|
|
||||||
// A service instance.
|
|
||||||
const (
|
|
||||||
// Logical name of the service.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: Always
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'shoppingcart'
|
|
||||||
// Note: MUST be the same for all instances of horizontally scaled services. If
|
|
||||||
// the value was not specified, SDKs MUST fallback to `unknown_service:`
|
|
||||||
// concatenated with [`process.executable.name`](process.md#process), e.g.
|
|
||||||
// `unknown_service:bash`. If `process.executable.name` is not available, the
|
|
||||||
// value MUST be set to `unknown_service`.
|
|
||||||
ServiceNameKey = attribute.Key("service.name")
|
|
||||||
// A namespace for `service.name`.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'Shop'
|
|
||||||
// Note: A string value having a meaning that helps to distinguish a group of
|
|
||||||
// services, for example the team name that owns a group of services.
|
|
||||||
// `service.name` is expected to be unique within the same namespace. If
|
|
||||||
// `service.namespace` is not specified in the Resource then `service.name` is
|
|
||||||
// expected to be unique for all services that have no explicit namespace defined
|
|
||||||
// (so the empty/unspecified namespace is simply one more valid namespace). Zero-
|
|
||||||
// length namespace string is assumed equal to unspecified namespace.
|
|
||||||
ServiceNamespaceKey = attribute.Key("service.namespace")
|
|
||||||
// The string ID of the service instance.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '627cc493-f310-47de-96bd-71410b7dec09'
|
|
||||||
// Note: MUST be unique for each instance of the same
|
|
||||||
// `service.namespace,service.name` pair (in other words
|
|
||||||
// `service.namespace,service.name,service.instance.id` triplet MUST be globally
|
|
||||||
// unique). The ID helps to distinguish instances of the same service that exist
|
|
||||||
// at the same time (e.g. instances of a horizontally scaled service). It is
|
|
||||||
// preferable for the ID to be persistent and stay the same for the lifetime of
|
|
||||||
// the service instance, however it is acceptable that the ID is ephemeral and
|
|
||||||
// changes during important lifetime events for the service (e.g. service
|
|
||||||
// restarts). If the service has no inherent unique ID that can be used as the
|
|
||||||
// value of this attribute it is recommended to generate a random Version 1 or
|
|
||||||
// Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use
|
|
||||||
// Version 5, see RFC 4122 for more recommendations).
|
|
||||||
ServiceInstanceIDKey = attribute.Key("service.instance.id")
|
|
||||||
// The version string of the service API or implementation.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '2.0.0'
|
|
||||||
ServiceVersionKey = attribute.Key("service.version")
|
|
||||||
)
|
|
||||||
|
|
||||||
// The telemetry SDK used to capture data recorded by the instrumentation libraries.
|
|
||||||
const (
|
|
||||||
// The name of the telemetry SDK as defined above.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'opentelemetry'
|
|
||||||
TelemetrySDKNameKey = attribute.Key("telemetry.sdk.name")
|
|
||||||
// The language of the telemetry SDK.
|
|
||||||
//
|
|
||||||
// Type: Enum
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
TelemetrySDKLanguageKey = attribute.Key("telemetry.sdk.language")
|
|
||||||
// The version string of the telemetry SDK.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '1.2.3'
|
|
||||||
TelemetrySDKVersionKey = attribute.Key("telemetry.sdk.version")
|
|
||||||
// The version string of the auto instrumentation agent, if used.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '1.2.3'
|
|
||||||
TelemetryAutoVersionKey = attribute.Key("telemetry.auto.version")
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// cpp
|
|
||||||
TelemetrySDKLanguageCPP = TelemetrySDKLanguageKey.String("cpp")
|
|
||||||
// dotnet
|
|
||||||
TelemetrySDKLanguageDotnet = TelemetrySDKLanguageKey.String("dotnet")
|
|
||||||
// erlang
|
|
||||||
TelemetrySDKLanguageErlang = TelemetrySDKLanguageKey.String("erlang")
|
|
||||||
// go
|
|
||||||
TelemetrySDKLanguageGo = TelemetrySDKLanguageKey.String("go")
|
|
||||||
// java
|
|
||||||
TelemetrySDKLanguageJava = TelemetrySDKLanguageKey.String("java")
|
|
||||||
// nodejs
|
|
||||||
TelemetrySDKLanguageNodejs = TelemetrySDKLanguageKey.String("nodejs")
|
|
||||||
// php
|
|
||||||
TelemetrySDKLanguagePHP = TelemetrySDKLanguageKey.String("php")
|
|
||||||
// python
|
|
||||||
TelemetrySDKLanguagePython = TelemetrySDKLanguageKey.String("python")
|
|
||||||
// ruby
|
|
||||||
TelemetrySDKLanguageRuby = TelemetrySDKLanguageKey.String("ruby")
|
|
||||||
// webjs
|
|
||||||
TelemetrySDKLanguageWebjs = TelemetrySDKLanguageKey.String("webjs")
|
|
||||||
)
|
|
||||||
|
|
||||||
// Resource describing the packaged software running the application code. Web engines are typically executed using process.runtime.
|
|
||||||
const (
|
|
||||||
// The name of the web engine.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: Always
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'WildFly'
|
|
||||||
WebEngineNameKey = attribute.Key("webengine.name")
|
|
||||||
// The version of the web engine.
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: '21.0.0'
|
|
||||||
WebEngineVersionKey = attribute.Key("webengine.version")
|
|
||||||
// Additional description of the web engine (e.g. detailed version and edition
|
|
||||||
// information).
|
|
||||||
//
|
|
||||||
// Type: string
|
|
||||||
// Required: No
|
|
||||||
// Stability: stable
|
|
||||||
// Examples: 'WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final'
|
|
||||||
WebEngineDescriptionKey = attribute.Key("webengine.description")
|
|
||||||
)
|
|
|
@ -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 semconv // import "go.opentelemetry.io/otel/semconv/v1.7.0"
|
|
||||||
|
|
||||||
// SchemaURL is the schema URL that matches the version of the semantic conventions
|
|
||||||
// that this package defines. Semconv packages starting from v1.4.0 must declare
|
|
||||||
// non-empty schema URL in the form https://opentelemetry.io/schemas/<version>
|
|
||||||
const SchemaURL = "https://opentelemetry.io/schemas/1.7.0"
|
|
File diff suppressed because it is too large
Load Diff
|
@ -56,7 +56,7 @@ github.com/docker/distribution/registry/client/transport
|
||||||
github.com/docker/distribution/registry/storage/cache
|
github.com/docker/distribution/registry/storage/cache
|
||||||
github.com/docker/distribution/registry/storage/cache/memory
|
github.com/docker/distribution/registry/storage/cache/memory
|
||||||
github.com/docker/distribution/uuid
|
github.com/docker/distribution/uuid
|
||||||
# github.com/docker/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible
|
# github.com/docker/docker v24.0.0-rc.2.0.20231025221548-fc4d035e7a4e+incompatible
|
||||||
## explicit
|
## explicit
|
||||||
github.com/docker/docker/api
|
github.com/docker/docker/api
|
||||||
github.com/docker/docker/api/types
|
github.com/docker/docker/api/types
|
||||||
|
@ -204,6 +204,9 @@ github.com/moby/sys/signal
|
||||||
# github.com/moby/sys/symlink v0.2.0
|
# github.com/moby/sys/symlink v0.2.0
|
||||||
## explicit; go 1.16
|
## explicit; go 1.16
|
||||||
github.com/moby/sys/symlink
|
github.com/moby/sys/symlink
|
||||||
|
# github.com/moby/sys/user v0.1.0
|
||||||
|
## explicit; go 1.17
|
||||||
|
github.com/moby/sys/user
|
||||||
# github.com/moby/term v0.5.0
|
# github.com/moby/term v0.5.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
github.com/moby/term
|
github.com/moby/term
|
||||||
|
@ -218,9 +221,6 @@ github.com/opencontainers/go-digest
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
github.com/opencontainers/image-spec/specs-go
|
github.com/opencontainers/image-spec/specs-go
|
||||||
github.com/opencontainers/image-spec/specs-go/v1
|
github.com/opencontainers/image-spec/specs-go/v1
|
||||||
# github.com/opencontainers/runc v1.1.7
|
|
||||||
## explicit; go 1.17
|
|
||||||
github.com/opencontainers/runc/libcontainer/user
|
|
||||||
# github.com/pkg/errors v0.9.1
|
# github.com/pkg/errors v0.9.1
|
||||||
## explicit
|
## explicit
|
||||||
github.com/pkg/errors
|
github.com/pkg/errors
|
||||||
|
@ -299,11 +299,9 @@ go.opentelemetry.io/otel/internal/attribute
|
||||||
go.opentelemetry.io/otel/internal/baggage
|
go.opentelemetry.io/otel/internal/baggage
|
||||||
go.opentelemetry.io/otel/internal/global
|
go.opentelemetry.io/otel/internal/global
|
||||||
go.opentelemetry.io/otel/propagation
|
go.opentelemetry.io/otel/propagation
|
||||||
go.opentelemetry.io/otel/semconv/internal
|
|
||||||
go.opentelemetry.io/otel/semconv/internal/v2
|
go.opentelemetry.io/otel/semconv/internal/v2
|
||||||
go.opentelemetry.io/otel/semconv/v1.17.0
|
go.opentelemetry.io/otel/semconv/v1.17.0
|
||||||
go.opentelemetry.io/otel/semconv/v1.17.0/httpconv
|
go.opentelemetry.io/otel/semconv/v1.17.0/httpconv
|
||||||
go.opentelemetry.io/otel/semconv/v1.7.0
|
|
||||||
# go.opentelemetry.io/otel/metric v0.37.0
|
# go.opentelemetry.io/otel/metric v0.37.0
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
go.opentelemetry.io/otel/metric
|
go.opentelemetry.io/otel/metric
|
||||||
|
|
Loading…
Reference in New Issue