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/distribution/reference v0.5.0
|
||||
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/go-connections v0.4.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/miekg/pkcs11 v1.1.1 // 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_model v0.3.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.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/docker v24.0.0-rc.2.0.20231013183648-cdb3f9fb8dca+incompatible h1:dPyJJJlyetVDyMqY664Mopg71y+2yY5RQ4VN90ZChds=
|
||||
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 h1:06ap953LHT+0JPkzYkYPMQHPxaC6NhzTSYaTS2/BeRc=
|
||||
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/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40=
|
||||
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/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/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/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y=
|
||||
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.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI=
|
||||
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/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||
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/codes"
|
||||
"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"
|
||||
)
|
||||
|
||||
|
@ -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)
|
||||
span.SetAttributes(semconv.HTTPClientAttributesFromHTTPRequest(req)...)
|
||||
ctx, span := tp.Tracer("").Start(ctx, req.Method+" "+req.URL.Path, trace.WithSpanKind(trace.SpanKindClient))
|
||||
span.SetAttributes(httpconv.ClientRequest(req)...)
|
||||
defer func() {
|
||||
if retErr != nil {
|
||||
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
|
||||
resp, err := clientconn.Do(req)
|
||||
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
|
||||
|
|
|
@ -12,7 +12,7 @@ import (
|
|||
"strconv"
|
||||
"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 {
|
||||
|
|
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
|
||||
|
||||
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");
|
||||
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 {
|
||||
// We should return no error if EOF is reached
|
||||
// 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
|
||||
}
|
||||
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/memory
|
||||
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
|
||||
github.com/docker/docker/api
|
||||
github.com/docker/docker/api/types
|
||||
|
@ -204,6 +204,9 @@ github.com/moby/sys/signal
|
|||
# github.com/moby/sys/symlink v0.2.0
|
||||
## explicit; go 1.16
|
||||
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
|
||||
## explicit; go 1.18
|
||||
github.com/moby/term
|
||||
|
@ -218,9 +221,6 @@ github.com/opencontainers/go-digest
|
|||
## explicit; go 1.18
|
||||
github.com/opencontainers/image-spec/specs-go
|
||||
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
|
||||
## explicit
|
||||
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/global
|
||||
go.opentelemetry.io/otel/propagation
|
||||
go.opentelemetry.io/otel/semconv/internal
|
||||
go.opentelemetry.io/otel/semconv/internal/v2
|
||||
go.opentelemetry.io/otel/semconv/v1.17.0
|
||||
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
|
||||
## explicit; go 1.18
|
||||
go.opentelemetry.io/otel/metric
|
||||
|
|
Loading…
Reference in New Issue