Bump OpenTelemetry contrib to v0.36.4
Signed-off-by: Luca Comellini <luca.com@gmail.com>
This commit is contained in:
parent
135af6d9ab
commit
bd66f588bf
2
go.mod
2
go.mod
@ -56,7 +56,7 @@ require (
|
||||
github.com/urfave/cli v1.22.9
|
||||
github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5
|
||||
go.etcd.io/bbolt v1.3.6
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4
|
||||
go.opentelemetry.io/otel v1.11.1
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1
|
||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1
|
||||
|
10
go.sum
10
go.sum
@ -173,7 +173,6 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP
|
||||
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
|
||||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
||||
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
|
||||
@ -375,7 +374,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
||||
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
|
||||
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
@ -503,7 +501,6 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0=
|
||||
@ -974,12 +971,11 @@ go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0 h1:WenoaOMNP71oq3KkMZ/jnxI9xU/JSCLw8yZILSI2lfU=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0/go.mod h1:J0dBVrt7dPS/lKJyQoW0xzQiUr4r2Ik1VwPjAUWnofI=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4 h1:PRXhsszxTt5bbPriTjmaweWUsAnJYeWBhUMLRetUgBU=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4/go.mod h1:05eWWy6ZWzmpeImD3UowLTB3VjDMU1yxQ+ENuVWDM3c=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
|
||||
go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
|
||||
go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs=
|
||||
go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
|
||||
go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4=
|
||||
go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE=
|
||||
go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
|
||||
@ -1005,7 +1001,6 @@ go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi
|
||||
go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
|
||||
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
|
||||
go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk=
|
||||
go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
|
||||
go.opentelemetry.io/otel/trace v1.11.1 h1:ofxdnzsNrGBYXbP7t7zpUK281+go5rF7dvdIZXF8gdQ=
|
||||
go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4vbPHFGkTPtOk=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
@ -1473,7 +1468,6 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ
|
||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||
google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
|
||||
google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
|
||||
google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY=
|
||||
google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
|
@ -1050,10 +1050,9 @@ go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
|
||||
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
|
||||
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0/go.mod h1:J0dBVrt7dPS/lKJyQoW0xzQiUr4r2Ik1VwPjAUWnofI=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4/go.mod h1:05eWWy6ZWzmpeImD3UowLTB3VjDMU1yxQ+ENuVWDM3c=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4=
|
||||
go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo=
|
||||
go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk=
|
||||
go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4=
|
||||
go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE=
|
||||
go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM=
|
||||
@ -1068,7 +1067,6 @@ go.opentelemetry.io/otel/sdk v1.11.1/go.mod h1:/l3FE4SupHJ12TduVjUkZtlfFqDCQJlOl
|
||||
go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE=
|
||||
go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE=
|
||||
go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw=
|
||||
go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU=
|
||||
go.opentelemetry.io/otel/trace v1.11.1 h1:ofxdnzsNrGBYXbP7t7zpUK281+go5rF7dvdIZXF8gdQ=
|
||||
go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4vbPHFGkTPtOk=
|
||||
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
|
||||
|
@ -33,8 +33,14 @@ const (
|
||||
GRPCStatusCodeKey = attribute.Key("rpc.grpc.status_code")
|
||||
)
|
||||
|
||||
// Filter is a predicate used to determine whether a given request in
|
||||
// interceptor info should be traced. A Filter must return true if
|
||||
// the request should be traced.
|
||||
type Filter func(*InterceptorInfo) bool
|
||||
|
||||
// config is a group of options for this instrumentation.
|
||||
type config struct {
|
||||
Filter Filter
|
||||
Propagators propagation.TextMapPropagator
|
||||
TracerProvider trace.TracerProvider
|
||||
}
|
||||
@ -78,6 +84,21 @@ func (o tracerProviderOption) apply(c *config) {
|
||||
}
|
||||
}
|
||||
|
||||
// WithInterceptorFilter returns an Option to use the request filter.
|
||||
func WithInterceptorFilter(f Filter) Option {
|
||||
return interceptorFilterOption{f: f}
|
||||
}
|
||||
|
||||
type interceptorFilterOption struct {
|
||||
f Filter
|
||||
}
|
||||
|
||||
func (o interceptorFilterOption) apply(c *config) {
|
||||
if o.f != nil {
|
||||
c.Filter = o.f
|
||||
}
|
||||
}
|
||||
|
||||
// WithTracerProvider returns an Option to use the TracerProvider when
|
||||
// creating a Tracer.
|
||||
func WithTracerProvider(tp trace.TracerProvider) Option {
|
||||
@ -88,7 +109,7 @@ type metadataSupplier struct {
|
||||
metadata *metadata.MD
|
||||
}
|
||||
|
||||
// assert that metadataSupplier implements the TextMapCarrier interface
|
||||
// assert that metadataSupplier implements the TextMapCarrier interface.
|
||||
var _ propagation.TextMapCarrier = &metadataSupplier{}
|
||||
|
||||
func (s *metadataSupplier) Get(key string) string {
|
||||
@ -114,21 +135,45 @@ func (s *metadataSupplier) Keys() []string {
|
||||
// Inject injects correlation context and span context into the gRPC
|
||||
// metadata object. This function is meant to be used on outgoing
|
||||
// requests.
|
||||
func Inject(ctx context.Context, metadata *metadata.MD, opts ...Option) {
|
||||
// Deprecated: Unnecessary public func.
|
||||
func Inject(ctx context.Context, md *metadata.MD, opts ...Option) {
|
||||
c := newConfig(opts)
|
||||
c.Propagators.Inject(ctx, &metadataSupplier{
|
||||
metadata: metadata,
|
||||
metadata: md,
|
||||
})
|
||||
}
|
||||
|
||||
func inject(ctx context.Context, propagators propagation.TextMapPropagator) context.Context {
|
||||
md, ok := metadata.FromOutgoingContext(ctx)
|
||||
if !ok {
|
||||
md = metadata.MD{}
|
||||
}
|
||||
propagators.Inject(ctx, &metadataSupplier{
|
||||
metadata: &md,
|
||||
})
|
||||
return metadata.NewOutgoingContext(ctx, md)
|
||||
}
|
||||
|
||||
// Extract returns the correlation context and span context that
|
||||
// another service encoded in the gRPC metadata object with Inject.
|
||||
// This function is meant to be used on incoming requests.
|
||||
func Extract(ctx context.Context, metadata *metadata.MD, opts ...Option) (baggage.Baggage, trace.SpanContext) {
|
||||
// Deprecated: Unnecessary public func.
|
||||
func Extract(ctx context.Context, md *metadata.MD, opts ...Option) (baggage.Baggage, trace.SpanContext) {
|
||||
c := newConfig(opts)
|
||||
ctx = c.Propagators.Extract(ctx, &metadataSupplier{
|
||||
metadata: metadata,
|
||||
metadata: md,
|
||||
})
|
||||
|
||||
return baggage.FromContext(ctx), trace.SpanContextFromContext(ctx)
|
||||
}
|
||||
|
||||
func extract(ctx context.Context, propagators propagation.TextMapPropagator) context.Context {
|
||||
md, ok := metadata.FromIncomingContext(ctx)
|
||||
if !ok {
|
||||
md = metadata.MD{}
|
||||
}
|
||||
|
||||
return propagators.Extract(ctx, &metadataSupplier{
|
||||
metadata: &md,
|
||||
})
|
||||
}
|
||||
|
@ -21,19 +21,17 @@ import (
|
||||
"io"
|
||||
"net"
|
||||
|
||||
"github.com/golang/protobuf/proto" // nolint:staticcheck
|
||||
|
||||
"google.golang.org/grpc"
|
||||
grpc_codes "google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/peer"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/baggage"
|
||||
"go.opentelemetry.io/otel/codes"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
@ -43,6 +41,9 @@ type messageType attribute.KeyValue
|
||||
// passed context with id and size (if message is a proto message).
|
||||
func (m messageType) Event(ctx context.Context, id int, message interface{}) {
|
||||
span := trace.SpanFromContext(ctx)
|
||||
if !span.IsRecording() {
|
||||
return
|
||||
}
|
||||
if p, ok := message.(proto.Message); ok {
|
||||
span.AddEvent("message", trace.WithAttributes(
|
||||
attribute.KeyValue(m),
|
||||
@ -65,6 +66,12 @@ var (
|
||||
// UnaryClientInterceptor returns a grpc.UnaryClientInterceptor suitable
|
||||
// for use in a grpc.Dial call.
|
||||
func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor {
|
||||
cfg := newConfig(opts)
|
||||
tracer := cfg.TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
|
||||
return func(
|
||||
ctx context.Context,
|
||||
method string,
|
||||
@ -73,13 +80,13 @@ func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor {
|
||||
invoker grpc.UnaryInvoker,
|
||||
callOpts ...grpc.CallOption,
|
||||
) error {
|
||||
requestMetadata, _ := metadata.FromOutgoingContext(ctx)
|
||||
metadataCopy := requestMetadata.Copy()
|
||||
|
||||
tracer := newConfig(opts).TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
i := &InterceptorInfo{
|
||||
Method: method,
|
||||
Type: UnaryClient,
|
||||
}
|
||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
||||
return invoker(ctx, method, req, reply, cc, callOpts...)
|
||||
}
|
||||
|
||||
name, attr := spanInfo(method, cc.Target())
|
||||
var span trace.Span
|
||||
@ -91,8 +98,7 @@ func UnaryClientInterceptor(opts ...Option) grpc.UnaryClientInterceptor {
|
||||
)
|
||||
defer span.End()
|
||||
|
||||
Inject(ctx, &metadataCopy, opts...)
|
||||
ctx = metadata.NewOutgoingContext(ctx, metadataCopy)
|
||||
ctx = inject(ctx, cfg.Propagators)
|
||||
|
||||
messageSent.Event(ctx, 1, req)
|
||||
|
||||
@ -235,6 +241,12 @@ func (w *clientStream) sendStreamEvent(eventType streamEventType, err error) {
|
||||
// StreamClientInterceptor returns a grpc.StreamClientInterceptor suitable
|
||||
// for use in a grpc.Dial call.
|
||||
func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
|
||||
cfg := newConfig(opts)
|
||||
tracer := cfg.TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
|
||||
return func(
|
||||
ctx context.Context,
|
||||
desc *grpc.StreamDesc,
|
||||
@ -243,13 +255,13 @@ func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
|
||||
streamer grpc.Streamer,
|
||||
callOpts ...grpc.CallOption,
|
||||
) (grpc.ClientStream, error) {
|
||||
requestMetadata, _ := metadata.FromOutgoingContext(ctx)
|
||||
metadataCopy := requestMetadata.Copy()
|
||||
|
||||
tracer := newConfig(opts).TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
i := &InterceptorInfo{
|
||||
Method: method,
|
||||
Type: StreamClient,
|
||||
}
|
||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
||||
return streamer(ctx, desc, cc, method, callOpts...)
|
||||
}
|
||||
|
||||
name, attr := spanInfo(method, cc.Target())
|
||||
var span trace.Span
|
||||
@ -260,8 +272,7 @@ func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
|
||||
trace.WithAttributes(attr...),
|
||||
)
|
||||
|
||||
Inject(ctx, &metadataCopy, opts...)
|
||||
ctx = metadata.NewOutgoingContext(ctx, metadataCopy)
|
||||
ctx = inject(ctx, cfg.Propagators)
|
||||
|
||||
s, err := streamer(ctx, desc, cc, method, callOpts...)
|
||||
if err != nil {
|
||||
@ -294,26 +305,31 @@ func StreamClientInterceptor(opts ...Option) grpc.StreamClientInterceptor {
|
||||
// UnaryServerInterceptor returns a grpc.UnaryServerInterceptor suitable
|
||||
// for use in a grpc.NewServer call.
|
||||
func UnaryServerInterceptor(opts ...Option) grpc.UnaryServerInterceptor {
|
||||
cfg := newConfig(opts)
|
||||
tracer := cfg.TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
|
||||
return func(
|
||||
ctx context.Context,
|
||||
req interface{},
|
||||
info *grpc.UnaryServerInfo,
|
||||
handler grpc.UnaryHandler,
|
||||
) (interface{}, error) {
|
||||
requestMetadata, _ := metadata.FromIncomingContext(ctx)
|
||||
metadataCopy := requestMetadata.Copy()
|
||||
i := &InterceptorInfo{
|
||||
UnaryServerInfo: info,
|
||||
Type: UnaryServer,
|
||||
}
|
||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
||||
return handler(ctx, req)
|
||||
}
|
||||
|
||||
bags, spanCtx := Extract(ctx, &metadataCopy, opts...)
|
||||
ctx = baggage.ContextWithBaggage(ctx, bags)
|
||||
|
||||
tracer := newConfig(opts).TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
ctx = extract(ctx, cfg.Propagators)
|
||||
|
||||
name, attr := spanInfo(info.FullMethod, peerFromCtx(ctx))
|
||||
ctx, span := tracer.Start(
|
||||
trace.ContextWithRemoteSpanContext(ctx, spanCtx),
|
||||
trace.ContextWithRemoteSpanContext(ctx, trace.SpanContextFromContext(ctx)),
|
||||
name,
|
||||
trace.WithSpanKind(trace.SpanKindServer),
|
||||
trace.WithAttributes(attr...),
|
||||
@ -381,6 +397,12 @@ func wrapServerStream(ctx context.Context, ss grpc.ServerStream) *serverStream {
|
||||
// StreamServerInterceptor returns a grpc.StreamServerInterceptor suitable
|
||||
// for use in a grpc.NewServer call.
|
||||
func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor {
|
||||
cfg := newConfig(opts)
|
||||
tracer := cfg.TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
|
||||
return func(
|
||||
srv interface{},
|
||||
ss grpc.ServerStream,
|
||||
@ -388,21 +410,19 @@ func StreamServerInterceptor(opts ...Option) grpc.StreamServerInterceptor {
|
||||
handler grpc.StreamHandler,
|
||||
) error {
|
||||
ctx := ss.Context()
|
||||
i := &InterceptorInfo{
|
||||
StreamServerInfo: info,
|
||||
Type: StreamServer,
|
||||
}
|
||||
if cfg.Filter != nil && !cfg.Filter(i) {
|
||||
return handler(srv, wrapServerStream(ctx, ss))
|
||||
}
|
||||
|
||||
requestMetadata, _ := metadata.FromIncomingContext(ctx)
|
||||
metadataCopy := requestMetadata.Copy()
|
||||
|
||||
bags, spanCtx := Extract(ctx, &metadataCopy, opts...)
|
||||
ctx = baggage.ContextWithBaggage(ctx, bags)
|
||||
|
||||
tracer := newConfig(opts).TracerProvider.Tracer(
|
||||
instrumentationName,
|
||||
trace.WithInstrumentationVersion(SemVersion()),
|
||||
)
|
||||
ctx = extract(ctx, cfg.Propagators)
|
||||
|
||||
name, attr := spanInfo(info.FullMethod, peerFromCtx(ctx))
|
||||
ctx, span := tracer.Start(
|
||||
trace.ContextWithRemoteSpanContext(ctx, spanCtx),
|
||||
trace.ContextWithRemoteSpanContext(ctx, trace.SpanContextFromContext(ctx)),
|
||||
name,
|
||||
trace.WithSpanKind(trace.SpanKindServer),
|
||||
trace.WithAttributes(attr...),
|
||||
@ -459,7 +479,7 @@ func peerFromCtx(ctx context.Context) string {
|
||||
return p.Addr.String()
|
||||
}
|
||||
|
||||
// statusCodeAttr returns status code attribute based on given gRPC code
|
||||
// statusCodeAttr returns status code attribute based on given gRPC code.
|
||||
func statusCodeAttr(c grpc_codes.Code) attribute.KeyValue {
|
||||
return GRPCStatusCodeKey.Int64(int64(c))
|
||||
}
|
||||
|
50
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/interceptorinfo.go
generated
vendored
Normal file
50
vendor/go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/interceptorinfo.go
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
// 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 otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
|
||||
|
||||
import (
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
// InterceptorType is the flag to define which gRPC interceptor
|
||||
// the InterceptorInfo object is.
|
||||
type InterceptorType uint8
|
||||
|
||||
const (
|
||||
// UndefinedInterceptor is the type for the interceptor information that is not
|
||||
// well initialized or categorized to other types.
|
||||
UndefinedInterceptor InterceptorType = iota
|
||||
// UnaryClient is the type for grpc.UnaryClient interceptor.
|
||||
UnaryClient
|
||||
// StreamClient is the type for grpc.StreamClient interceptor.
|
||||
StreamClient
|
||||
// UnaryServer is the type for grpc.UnaryServer interceptor.
|
||||
UnaryServer
|
||||
// StreamServer is the type for grpc.StreamServer interceptor.
|
||||
StreamServer
|
||||
)
|
||||
|
||||
// InterceptorInfo is the union of some arguments to four types of
|
||||
// gRPC interceptors.
|
||||
type InterceptorInfo struct {
|
||||
// Method is method name registered to UnaryClient and StreamClient
|
||||
Method string
|
||||
// UnaryServerInfo is the metadata for UnaryServer
|
||||
UnaryServerInfo *grpc.UnaryServerInfo
|
||||
// StreamServerInfo if the metadata for StreamServer
|
||||
StreamServerInfo *grpc.StreamServerInfo
|
||||
// Type is the type for interceptor
|
||||
Type InterceptorType
|
||||
}
|
@ -18,7 +18,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
|
||||
)
|
||||
|
||||
// ParseFullMethod returns a span name following the OpenTelemetry semantic
|
||||
|
@ -16,7 +16,7 @@ package otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.g
|
||||
|
||||
import (
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
|
||||
semconv "go.opentelemetry.io/otel/semconv/v1.12.0"
|
||||
)
|
||||
|
||||
// Semantic conventions for attribute keys for gRPC.
|
||||
|
@ -16,7 +16,7 @@ package otelgrpc // import "go.opentelemetry.io/contrib/instrumentation/google.g
|
||||
|
||||
// Version is the current release version of the gRPC instrumentation.
|
||||
func Version() string {
|
||||
return "0.32.0"
|
||||
return "0.36.4"
|
||||
// This string is updated by the pre_release.sh script during release
|
||||
}
|
||||
|
||||
|
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/doc.go
generated
vendored
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/doc.go
generated
vendored
@ -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.10.0 version of the OpenTelemetry specification.
|
||||
package semconv // import "go.opentelemetry.io/otel/semconv/v1.10.0"
|
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/exception.go
generated
vendored
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/exception.go
generated
vendored
@ -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.10.0"
|
||||
|
||||
const (
|
||||
// ExceptionEventName is the name of the Span event representing an exception.
|
||||
ExceptionEventName = "exception"
|
||||
)
|
114
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/http.go
generated
vendored
114
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/http.go
generated
vendored
@ -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.10.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)
|
||||
}
|
981
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/resource.go
generated
vendored
981
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/resource.go
generated
vendored
@ -1,981 +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.10.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.
|
||||
//
|
||||
// Type: string
|
||||
// Required: No
|
||||
// Stability: stable
|
||||
// Examples: 'us-central1', 'us-east-1'
|
||||
// Note: 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/), [Google Cloud
|
||||
// regions](https://cloud.google.com/about/locations), or [Tencent Cloud
|
||||
// regions](https://intl.cloud.tencent.com/document/product/213/6091).
|
||||
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")
|
||||
// Tencent Cloud
|
||||
CloudProviderTencentCloud = CloudProviderKey.String("tencent_cloud")
|
||||
)
|
||||
|
||||
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")
|
||||
// AWS App Runner
|
||||
CloudPlatformAWSAppRunner = CloudPlatformKey.String("aws_app_runner")
|
||||
// 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")
|
||||
// Tencent Cloud Cloud Virtual Machine (CVM)
|
||||
CloudPlatformTencentCloudCvm = CloudPlatformKey.String("tencent_cloud_cvm")
|
||||
// Tencent Cloud Elastic Kubernetes Service (EKS)
|
||||
CloudPlatformTencentCloudEKS = CloudPlatformKey.String("tencent_cloud_eks")
|
||||
// Tencent Cloud Serverless Cloud Function (SCF)
|
||||
CloudPlatformTencentCloudScf = CloudPlatformKey.String("tencent_cloud_scf")
|
||||
)
|
||||
|
||||
// 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 used by container runtime.
|
||||
//
|
||||
// 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")
|
||||
// The name of the device manufacturer
|
||||
//
|
||||
// Type: string
|
||||
// Required: No
|
||||
// Stability: stable
|
||||
// Examples: 'Apple', 'Samsung'
|
||||
// Note: The Android OS provides this field via
|
||||
// [Build](https://developer.android.com/reference/android/os/Build#MANUFACTURER).
|
||||
// iOS apps SHOULD hardcode the value `Apple`.
|
||||
DeviceManufacturerKey = attribute.Key("device.manufacturer")
|
||||
)
|
||||
|
||||
// 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")
|
||||
// IBM z/Architecture
|
||||
HostArchS390x = HostArchKey.String("s390x")
|
||||
// 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 from Pod specification, must be unique within a Pod.
|
||||
// Container runtime usually uses different globally unique name
|
||||
// (`container.name`).
|
||||
//
|
||||
// Type: string
|
||||
// Required: No
|
||||
// Stability: stable
|
||||
// Examples: 'redis'
|
||||
K8SContainerNameKey = attribute.Key("k8s.container.name")
|
||||
// Number of times the container was restarted. This attribute can be used to
|
||||
// identify a particular container (running or stopped) within a container spec.
|
||||
//
|
||||
// Type: int
|
||||
// Required: No
|
||||
// Stability: stable
|
||||
// Examples: 0, 2
|
||||
K8SContainerRestartCountKey = attribute.Key("k8s.container.restart_count")
|
||||
)
|
||||
|
||||
// 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")
|
||||
// swift
|
||||
TelemetrySDKLanguageSwift = TelemetrySDKLanguageKey.String("swift")
|
||||
)
|
||||
|
||||
// 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")
|
||||
)
|
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/schema.go
generated
vendored
20
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/schema.go
generated
vendored
@ -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.10.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.10.0"
|
1700
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/trace.go
generated
vendored
1700
vendor/go.opentelemetry.io/otel/semconv/v1.10.0/trace.go
generated
vendored
File diff suppressed because it is too large
Load Diff
5
vendor/modules.txt
vendored
5
vendor/modules.txt
vendored
@ -430,8 +430,8 @@ go.opencensus.io/internal
|
||||
go.opencensus.io/trace
|
||||
go.opencensus.io/trace/internal
|
||||
go.opencensus.io/trace/tracestate
|
||||
# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.32.0
|
||||
## explicit; go 1.16
|
||||
# go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4
|
||||
## explicit; go 1.18
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc/internal
|
||||
# go.opentelemetry.io/otel v1.11.1
|
||||
@ -448,7 +448,6 @@ 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/v1.10.0
|
||||
go.opentelemetry.io/otel/semconv/v1.12.0
|
||||
# go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1
|
||||
## explicit; go 1.18
|
||||
|
Loading…
Reference in New Issue
Block a user