mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 00:32:25 -05:00 
			
		
		
		
	[bugfix] Downstep otel to fix freebsd compile issue (#1773)
https://github.com/open-telemetry/opentelemetry-go/issues/4076
This commit is contained in:
		
					parent
					
						
							
								ec325fee14
							
						
					
				
			
			
				commit
				
					
						b47661f033
					
				
			
		
					 70 changed files with 1097 additions and 3138 deletions
				
			
		
							
								
								
									
										20
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								go.mod
									
										
									
									
									
								
							|  | @ -49,14 +49,14 @@ require ( | |||
| 	github.com/uptrace/bun v1.1.13 | ||||
| 	github.com/uptrace/bun/dialect/pgdialect v1.1.13 | ||||
| 	github.com/uptrace/bun/dialect/sqlitedialect v1.1.13 | ||||
| 	github.com/uptrace/bun/extra/bunotel v1.1.13 | ||||
| 	github.com/uptrace/bun/extra/bunotel v1.1.12 | ||||
| 	github.com/wagslane/go-password-validator v0.3.0 | ||||
| 	github.com/yuin/goldmark v1.5.4 | ||||
| 	go.opentelemetry.io/otel v1.15.1 | ||||
| 	go.opentelemetry.io/otel/exporters/jaeger v1.15.1 | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 | ||||
| 	go.opentelemetry.io/otel/sdk v1.15.1 | ||||
| 	go.opentelemetry.io/otel/trace v1.15.1 | ||||
| 	go.opentelemetry.io/otel v1.14.0 | ||||
| 	go.opentelemetry.io/otel/exporters/jaeger v1.14.0 | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 | ||||
| 	go.opentelemetry.io/otel/sdk v1.14.0 | ||||
| 	go.opentelemetry.io/otel/trace v1.14.0 | ||||
| 	go.uber.org/automaxprocs v1.5.2 | ||||
| 	golang.org/x/crypto v0.8.0 | ||||
| 	golang.org/x/exp v0.0.0-20220613132600-b0d781184e0d | ||||
|  | @ -154,12 +154,12 @@ require ( | |||
| 	github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect | ||||
| 	github.com/twitchyliquid64/golang-asm v0.15.1 // indirect | ||||
| 	github.com/ugorji/go/codec v1.2.9 // indirect | ||||
| 	github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.0 // indirect | ||||
| 	github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.21 // indirect | ||||
| 	github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect | ||||
| 	github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v0.38.1 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v0.37.0 // indirect | ||||
| 	go.opentelemetry.io/proto/otlp v0.19.0 // indirect | ||||
| 	golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect | ||||
| 	golang.org/x/mod v0.10.0 // indirect | ||||
|  |  | |||
							
								
								
									
										40
									
								
								go.sum
									
										
									
									
									
								
							
							
						
						
									
										40
									
								
								go.sum
									
										
									
									
									
								
							|  | @ -598,10 +598,10 @@ github.com/uptrace/bun/dialect/pgdialect v1.1.13 h1:j9BecpkRA9SDVBwh6oKhC5rABk4B | |||
| github.com/uptrace/bun/dialect/pgdialect v1.1.13/go.mod h1:G9h6kk5qfTyACjTja7gqM7SbRc0rqRc9AWDjzxwA7nY= | ||||
| github.com/uptrace/bun/dialect/sqlitedialect v1.1.13 h1:ipYi26qS4xC9AVmArXqv4Rq+EJFtrsZfS+Ksqx21QVI= | ||||
| github.com/uptrace/bun/dialect/sqlitedialect v1.1.13/go.mod h1:pOUXT+1n1/cIJUwdq7w97NS6nA1kd01o8ZRWPy/JBMM= | ||||
| github.com/uptrace/bun/extra/bunotel v1.1.13 h1:QE0fNJpA+4mZi7cJXPDp5eQ3p5J/+tbwT0BRrXGFhhU= | ||||
| github.com/uptrace/bun/extra/bunotel v1.1.13/go.mod h1:ktwAHvvAlxy0G0z5Gl/HQDFOI7XOmWqbudDegdtZmfo= | ||||
| github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.0 h1:7srBbziwY2NM8xtco+JMqsRu1FSvI1ZJn/eRtgcHtmg= | ||||
| github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.0/go.mod h1:OsbPyR3wEfyJVdlEaMLXBrBpIWkyxEb9iwDQcxkMkTI= | ||||
| github.com/uptrace/bun/extra/bunotel v1.1.12 h1:uWPU75j9dYGXMRC9jF0ASlndZZAcngoqZagH4w3kn54= | ||||
| github.com/uptrace/bun/extra/bunotel v1.1.12/go.mod h1:QfszJGLzNaTTGvvg17cEEUyEwxXq2NJ7sRvrPYvYSIU= | ||||
| github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.21 h1:iHkIlTU2P3xbSbVJbAiHL9IT+ekYV5empheF+652yeQ= | ||||
| github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.21/go.mod h1:hiCFa1UeZITKXi8lhu2qwOD5LHXjdGMCUIQHbybxoF0= | ||||
| github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | ||||
| github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | ||||
| github.com/valyala/fasthttp v1.14.0/go.mod h1:ol1PCaL0dX20wC0htZ7sYCsvCYmrouYra0zHzaclZhE= | ||||
|  | @ -644,22 +644,22 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | |||
| go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= | ||||
| go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= | ||||
| go.opentelemetry.io/otel v1.15.1 h1:3Iwq3lfRByPaws0f6bU3naAqOR1n5IeDWd9390kWHa8= | ||||
| go.opentelemetry.io/otel v1.15.1/go.mod h1:mHHGEHVDLal6YrKMmk9LqC4a3sF5g+fHfrttQIB1NTc= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.15.1 h1:x3SLvwli0OyAJapNcOIzf1xXBRBA+HD3elrMQmFfmXo= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.15.1/go.mod h1:0Ck9b5oLL/bFZvfAEEqtrb1U0jZXjm5fWXMCOCG3vvM= | ||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 h1:XYDQtNzdb2T4uM1pku2m76eSMDJgqhJ+6KzkqgQBALc= | ||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1/go.mod h1:uOTV75+LOzV+ODmL8ahRLWkFA3eQcSC2aAsbxIu4duk= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 h1:tyoeaUh8REKay72DVYsSEBYV18+fGONe+YYPaOxgLoE= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1/go.mod h1:HUSnrjQQ19KX9ECjpQxufsF+3ioD3zISPMlauTPZu2g= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 h1:pIfoG5IAZFzp9EUlJzdSkpUwpaUAAnD+Ru1nBLTACIQ= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1/go.mod h1:poNKBqF5+nR/6ke2oGTDjHfksrsHDOHXAl2g4+9ONsY= | ||||
| go.opentelemetry.io/otel/metric v0.38.1 h1:2MM7m6wPw9B8Qv8iHygoAgkbejed59uUR6ezR5T3X2s= | ||||
| go.opentelemetry.io/otel/metric v0.38.1/go.mod h1:FwqNHD3I/5iX9pfrRGZIlYICrJv0rHEUl2Ln5vdIVnQ= | ||||
| go.opentelemetry.io/otel/sdk v1.15.1 h1:5FKR+skgpzvhPQHIEfcwMYjCBr14LWzs3uSqKiQzETI= | ||||
| go.opentelemetry.io/otel/sdk v1.15.1/go.mod h1:8rVtxQfrbmbHKfqzpQkT5EzZMcbMBwTzNAggbEAM0KA= | ||||
| go.opentelemetry.io/otel/trace v1.15.1 h1:uXLo6iHJEzDfrNC0L0mNjItIp06SyaBQxu5t3xMlngY= | ||||
| go.opentelemetry.io/otel/trace v1.15.1/go.mod h1:IWdQG/5N1x7f6YUlmdLeJvH9yxtuJAfc4VW5Agv9r/8= | ||||
| go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= | ||||
| go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.14.0 h1:CjbUNd4iN2hHmWekmOqZ+zSCU+dzZppG8XsV+A3oc8Q= | ||||
| go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA= | ||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho= | ||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc= | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM= | ||||
| go.opentelemetry.io/otel/metric v0.37.0 h1:pHDQuLQOZwYD+Km0eb657A25NaRzy0a+eLyKfDXedEs= | ||||
| go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= | ||||
| go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= | ||||
| go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= | ||||
| go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= | ||||
| go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= | ||||
| go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= | ||||
| go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= | ||||
| go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/github.com/uptrace/bun/extra/bunotel/otel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/uptrace/bun/extra/bunotel/otel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -10,7 +10,6 @@ import ( | |||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/codes" | ||||
| 	"go.opentelemetry.io/otel/metric" | ||||
| 	"go.opentelemetry.io/otel/metric/global" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| 	semconv "go.opentelemetry.io/otel/semconv/v1.12.0" | ||||
|  | @ -76,8 +75,7 @@ func (h *QueryHook) AfterQuery(ctx context.Context, event *bun.QueryEvent) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	dur := time.Since(event.StartTime) | ||||
| 	queryHistogram.Record(ctx, dur.Milliseconds(), metric.WithAttributes(labels...)) | ||||
| 	queryHistogram.Record(ctx, time.Since(event.StartTime).Milliseconds(), labels...) | ||||
| 
 | ||||
| 	span := trace.SpanFromContext(ctx) | ||||
| 	if !span.IsRecording() { | ||||
|  |  | |||
							
								
								
									
										47
									
								
								vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,6 +12,7 @@ import ( | |||
| 	"go.opentelemetry.io/otel/codes" | ||||
| 	"go.opentelemetry.io/otel/metric" | ||||
| 	"go.opentelemetry.io/otel/metric/global" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| 	semconv "go.opentelemetry.io/otel/semconv/v1.10.0" | ||||
| 	"go.opentelemetry.io/otel/trace" | ||||
| ) | ||||
|  | @ -53,7 +54,7 @@ func (c *config) formatQuery(query string) string { | |||
| type dbInstrum struct { | ||||
| 	*config | ||||
| 
 | ||||
| 	queryHistogram metric.Int64Histogram | ||||
| 	queryHistogram instrument.Int64Histogram | ||||
| } | ||||
| 
 | ||||
| func newDBInstrum(opts []Option) *dbInstrum { | ||||
|  | @ -71,8 +72,8 @@ func newDBInstrum(opts []Option) *dbInstrum { | |||
| 	var err error | ||||
| 	t.queryHistogram, err = t.meter.Int64Histogram( | ||||
| 		"go.sql.query_timing", | ||||
| 		metric.WithDescription("Timing of processed queries"), | ||||
| 		metric.WithUnit("milliseconds"), | ||||
| 		instrument.WithDescription("Timing of processed queries"), | ||||
| 		instrument.WithUnit("milliseconds"), | ||||
| 	) | ||||
| 	if err != nil { | ||||
| 		panic(err) | ||||
|  | @ -105,7 +106,7 @@ func (t *dbInstrum) withSpan( | |||
| 	span.End() | ||||
| 
 | ||||
| 	if query != "" { | ||||
| 		t.queryHistogram.Record(ctx, time.Since(startTime).Milliseconds(), metric.WithAttributes(t.attrs...)) | ||||
| 		t.queryHistogram.Record(ctx, time.Since(startTime).Milliseconds(), t.attrs...) | ||||
| 	} | ||||
| 
 | ||||
| 	if !span.IsRecording() { | ||||
|  | @ -184,57 +185,57 @@ func ReportDBStatsMetrics(db *sql.DB, opts ...Option) { | |||
| 
 | ||||
| 	maxOpenConns, _ := meter.Int64ObservableGauge( | ||||
| 		"go.sql.connections_max_open", | ||||
| 		metric.WithDescription("Maximum number of open connections to the database"), | ||||
| 		instrument.WithDescription("Maximum number of open connections to the database"), | ||||
| 	) | ||||
| 	openConns, _ := meter.Int64ObservableGauge( | ||||
| 		"go.sql.connections_open", | ||||
| 		metric.WithDescription("The number of established connections both in use and idle"), | ||||
| 		instrument.WithDescription("The number of established connections both in use and idle"), | ||||
| 	) | ||||
| 	inUseConns, _ := meter.Int64ObservableGauge( | ||||
| 		"go.sql.connections_in_use", | ||||
| 		metric.WithDescription("The number of connections currently in use"), | ||||
| 		instrument.WithDescription("The number of connections currently in use"), | ||||
| 	) | ||||
| 	idleConns, _ := meter.Int64ObservableGauge( | ||||
| 		"go.sql.connections_idle", | ||||
| 		metric.WithDescription("The number of idle connections"), | ||||
| 		instrument.WithDescription("The number of idle connections"), | ||||
| 	) | ||||
| 	connsWaitCount, _ := meter.Int64ObservableCounter( | ||||
| 		"go.sql.connections_wait_count", | ||||
| 		metric.WithDescription("The total number of connections waited for"), | ||||
| 		instrument.WithDescription("The total number of connections waited for"), | ||||
| 	) | ||||
| 	connsWaitDuration, _ := meter.Int64ObservableCounter( | ||||
| 		"go.sql.connections_wait_duration", | ||||
| 		metric.WithDescription("The total time blocked waiting for a new connection"), | ||||
| 		metric.WithUnit("nanoseconds"), | ||||
| 		instrument.WithDescription("The total time blocked waiting for a new connection"), | ||||
| 		instrument.WithUnit("nanoseconds"), | ||||
| 	) | ||||
| 	connsClosedMaxIdle, _ := meter.Int64ObservableCounter( | ||||
| 		"go.sql.connections_closed_max_idle", | ||||
| 		metric.WithDescription("The total number of connections closed due to SetMaxIdleConns"), | ||||
| 		instrument.WithDescription("The total number of connections closed due to SetMaxIdleConns"), | ||||
| 	) | ||||
| 	connsClosedMaxIdleTime, _ := meter.Int64ObservableCounter( | ||||
| 		"go.sql.connections_closed_max_idle_time", | ||||
| 		metric.WithDescription("The total number of connections closed due to SetConnMaxIdleTime"), | ||||
| 		instrument.WithDescription("The total number of connections closed due to SetConnMaxIdleTime"), | ||||
| 	) | ||||
| 	connsClosedMaxLifetime, _ := meter.Int64ObservableCounter( | ||||
| 		"go.sql.connections_closed_max_lifetime", | ||||
| 		metric.WithDescription("The total number of connections closed due to SetConnMaxLifetime"), | ||||
| 		instrument.WithDescription("The total number of connections closed due to SetConnMaxLifetime"), | ||||
| 	) | ||||
| 
 | ||||
| 	if _, err := meter.RegisterCallback( | ||||
| 		func(ctx context.Context, o metric.Observer) error { | ||||
| 			stats := db.Stats() | ||||
| 
 | ||||
| 			o.ObserveInt64(maxOpenConns, int64(stats.MaxOpenConnections), metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(maxOpenConns, int64(stats.MaxOpenConnections), labels...) | ||||
| 
 | ||||
| 			o.ObserveInt64(openConns, int64(stats.OpenConnections), metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(inUseConns, int64(stats.InUse), metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(idleConns, int64(stats.Idle), metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(openConns, int64(stats.OpenConnections), labels...) | ||||
| 			o.ObserveInt64(inUseConns, int64(stats.InUse), labels...) | ||||
| 			o.ObserveInt64(idleConns, int64(stats.Idle), labels...) | ||||
| 
 | ||||
| 			o.ObserveInt64(connsWaitCount, stats.WaitCount, metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(connsWaitDuration, int64(stats.WaitDuration), metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(connsClosedMaxIdle, stats.MaxIdleClosed, metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(connsClosedMaxIdleTime, stats.MaxIdleTimeClosed, metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(connsClosedMaxLifetime, stats.MaxLifetimeClosed, metric.WithAttributes(labels...)) | ||||
| 			o.ObserveInt64(connsWaitCount, stats.WaitCount, labels...) | ||||
| 			o.ObserveInt64(connsWaitDuration, int64(stats.WaitDuration), labels...) | ||||
| 			o.ObserveInt64(connsClosedMaxIdle, stats.MaxIdleClosed, labels...) | ||||
| 			o.ObserveInt64(connsClosedMaxIdleTime, stats.MaxIdleTimeClosed, labels...) | ||||
| 			o.ObserveInt64(connsClosedMaxLifetime, stats.MaxLifetimeClosed, labels...) | ||||
| 
 | ||||
| 			return nil | ||||
| 		}, | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -2,5 +2,5 @@ package otelsql | |||
| 
 | ||||
| // Version is the current release version. | ||||
| func Version() string { | ||||
| 	return "0.2.0" | ||||
| 	return "0.1.21" | ||||
| } | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/.gitignore
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/.gitignore
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -7,8 +7,6 @@ Thumbs.db | |||
| *.iml | ||||
| *.so | ||||
| coverage.* | ||||
| go.work | ||||
| go.work.sum | ||||
| 
 | ||||
| gen/ | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/.golangci.yml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -85,8 +85,6 @@ linters-settings: | |||
|           - "**/internal/matchers/*.go" | ||||
|   godot: | ||||
|     exclude: | ||||
|       # Exclude links. | ||||
|       - '^ *\[[^]]+\]:' | ||||
|       # Exclude sentence fragments for lists. | ||||
|       - '^[ ]*[-•]' | ||||
|       # Exclude sentences prefixing a list. | ||||
|  |  | |||
							
								
								
									
										161
									
								
								vendor/go.opentelemetry.io/otel/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										161
									
								
								vendor/go.opentelemetry.io/otel/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -8,147 +8,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm | |||
| 
 | ||||
| ## [Unreleased] | ||||
| 
 | ||||
| ## [1.15.1/0.38.1] 2023-05-02 | ||||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
| - Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. (#4040, #4041) | ||||
| 
 | ||||
| ## [1.15.0/0.38.0] 2023-04-27 | ||||
| 
 | ||||
| ### Added | ||||
| 
 | ||||
| - The `go.opentelemetry.io/otel/metric/embedded` package. (#3916) | ||||
| - The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. (#3949) | ||||
| - Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. (#3970) | ||||
| - The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. (#3971) | ||||
|   - The `AddConfig` used to hold configuration for addition measurements | ||||
|     - `NewAddConfig` used to create a new `AddConfig` | ||||
|     - `AddOption` used to configure an `AddConfig` | ||||
|   - The `RecordConfig` used to hold configuration for recorded measurements | ||||
|     - `NewRecordConfig` used to create a new `RecordConfig` | ||||
|     - `RecordOption` used to configure a `RecordConfig` | ||||
|   - The `ObserveConfig` used to hold configuration for observed measurements | ||||
|     - `NewObserveConfig` used to create a new `ObserveConfig` | ||||
|     - `ObserveOption` used to configure an `ObserveConfig` | ||||
| - `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`. | ||||
|   They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971) | ||||
| - The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. (#3956) | ||||
| - The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. (#3956) | ||||
| 
 | ||||
| ### Changed | ||||
| 
 | ||||
| - The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870) | ||||
| - Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`. | ||||
|   This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916) | ||||
| - Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941) | ||||
|   - `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider` | ||||
| - Add all the methods from `"go.opentelemetry.io/otel/trace".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. (#3966) | ||||
| - Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974) | ||||
| - The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971) | ||||
|   - The `Int64Counter.Add` method now accepts `...AddOption` | ||||
|   - The `Float64Counter.Add` method now accepts `...AddOption` | ||||
|   - The `Int64UpDownCounter.Add` method now accepts `...AddOption` | ||||
|   - The `Float64UpDownCounter.Add` method now accepts `...AddOption` | ||||
|   - The `Int64Histogram.Record` method now accepts `...RecordOption` | ||||
|   - The `Float64Histogram.Record` method now accepts `...RecordOption` | ||||
|   - The `Int64Observer.Observe` method now accepts `...ObserveOption` | ||||
|   - The `Float64Observer.Observe` method now accepts `...ObserveOption` | ||||
| - The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971) | ||||
|   - The `Observer.ObserveInt64` method now accepts `...ObserveOption` | ||||
|   - The `Observer.ObserveFloat64` method now accepts `...ObserveOption` | ||||
| - Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986) | ||||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
| - `TracerProvider` allows calling `Tracer()` while it's shutting down. | ||||
|   It used to deadlock. (#3924) | ||||
| - Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. (#3949) | ||||
| - Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#3951) | ||||
| - Automatically figure out the default aggregation with `aggregation.Default`. (#3967) | ||||
| 
 | ||||
| ### Deprecated | ||||
| 
 | ||||
| - The `go.opentelemetry.io/otel/metric/instrument` package is deprecated. | ||||
|   Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. (#4018) | ||||
| 
 | ||||
| ## [1.15.0-rc.2/0.38.0-rc.2] 2023-03-23 | ||||
| 
 | ||||
| This is a release candidate for the v1.15.0/v0.38.0 release. | ||||
| That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. | ||||
| See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. | ||||
| 
 | ||||
| ### Added | ||||
| 
 | ||||
| - The `WithHostID` option to `go.opentelemetry.io/otel/sdk/resource`. (#3812) | ||||
| - The `WithoutTimestamps` option to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to sets all timestamps to zero. (#3828) | ||||
| - The new `Exemplar` type is added to `go.opentelemetry.io/otel/sdk/metric/metricdata`. | ||||
|   Both the `DataPoint` and `HistogramDataPoint` types from that package have a new field of `Exemplars` containing the sampled exemplars for their timeseries. (#3849) | ||||
| - Configuration for each metric instrument in `go.opentelemetry.io/otel/sdk/metric/instrument`. (#3895) | ||||
| - The internal logging introduces a warning level verbosity equal to `V(1)`. (#3900) | ||||
| - Added a log message warning about usage of `SimpleSpanProcessor` in production environments. (#3854) | ||||
| 
 | ||||
| ### Changed | ||||
| 
 | ||||
| - Optimize memory allocation when creation a new `Set` using `NewSet` or `NewSetWithFiltered` in `go.opentelemetry.io/otel/attribute`. (#3832) | ||||
| - Optimize memory allocation when creation new metric instruments in `go.opentelemetry.io/otel/sdk/metric`. (#3832) | ||||
| - Avoid creating new objects on all calls to `WithDeferredSetup` and `SkipContextSetup` in OpenTracing bridge. (#3833) | ||||
| - The `New` and `Detect` functions from `go.opentelemetry.io/otel/sdk/resource` return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844) | ||||
| - Both the `Histogram` and `HistogramDataPoint` are redefined with a generic argument of `[N int64 | float64]` in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#3849) | ||||
| - The metric `Export` interface from `go.opentelemetry.io/otel/sdk/metric` accepts a `*ResourceMetrics` instead of `ResourceMetrics`. (#3853) | ||||
| - Rename `Asynchronous` to `Observable` in `go.opentelemetry.io/otel/metric/instrument`. (#3892) | ||||
| - Rename `Int64ObserverOption` to `Int64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895) | ||||
| - Rename `Float64ObserverOption` to `Float64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895) | ||||
| - The internal logging changes the verbosity level of info to `V(4)`, the verbosity level of debug to `V(8)`. (#3900) | ||||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
| - `TracerProvider` consistently doesn't allow to register a `SpanProcessor` after shutdown. (#3845) | ||||
| 
 | ||||
| ### Removed | ||||
| 
 | ||||
| - The deprecated `go.opentelemetry.io/otel/metric/global` package is removed. (#3829) | ||||
| - The unneeded `Synchronous` interface in `go.opentelemetry.io/otel/metric/instrument` was removed. (#3892) | ||||
| - The `Float64ObserverConfig` and `NewFloat64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`. | ||||
|   Use the added `float64` instrument configuration instead. (#3895) | ||||
| - The `Int64ObserverConfig` and `NewInt64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`. | ||||
|   Use the added `int64` instrument configuration instead. (#3895) | ||||
| - The `NewNoopMeter` function in `go.opentelemetry.io/otel/metric`, use `NewMeterProvider().Meter("")` instead. (#3893) | ||||
| 
 | ||||
| ## [1.15.0-rc.1/0.38.0-rc.1] 2023-03-01 | ||||
| 
 | ||||
| This is a release candidate for the v1.15.0/v0.38.0 release. | ||||
| That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. | ||||
| See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. | ||||
| 
 | ||||
| This release drops the compatibility guarantee of [Go 1.18]. | ||||
| 
 | ||||
| ### Added | ||||
| 
 | ||||
| - Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#3818) | ||||
|   - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`. | ||||
|   - Use `GetMeterProivder` for a global `metric.MeterProvider`. | ||||
|   - Use `SetMeterProivder` to set the global `metric.MeterProvider`. | ||||
| 
 | ||||
| ### Changed | ||||
| 
 | ||||
| - Dropped compatibility testing for [Go 1.18]. | ||||
|   The project no longer guarantees support for this version of Go. (#3813) | ||||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
| - Handle empty environment variable as it they were not set. (#3764) | ||||
| - Clarify the `httpconv` and `netconv` packages in `go.opentelemetry.io/otel/semconv/*` provide tracing semantic conventions. (#3823) | ||||
| 
 | ||||
| ### Deprecated | ||||
| 
 | ||||
| - The `go.opentelemetry.io/otel/metric/global` package is deprecated. | ||||
|   Use `go.opentelemetry.io/otel` instead. (#3818) | ||||
| 
 | ||||
| ### Removed | ||||
| 
 | ||||
| - The deprecated `go.opentelemetry.io/otel/metric/unit` package is removed. (#3814) | ||||
| 
 | ||||
| ## [1.14.0/0.37.0/0.0.4] 2023-02-27 | ||||
| 
 | ||||
| This release is the last to support [Go 1.18]. | ||||
|  | @ -262,7 +121,7 @@ The next release will require at least [Go 1.19]. | |||
| - The `go.opentelemetry.io/otel/semconv/v1.16.0` package. | ||||
|   The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. (#3579) | ||||
| - Metric instruments to `go.opentelemetry.io/otel/metric/instrument`. | ||||
|   These instruments are use as replacements of the deprecated `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586) | ||||
|   These instruments are use as replacements of the depreacted `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586) | ||||
|   - `Float64ObservableCounter` replaces the `asyncfloat64.Counter` | ||||
|   - `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter` | ||||
|   - `Float64ObservableGauge` replaces the `asyncfloat64.Gauge` | ||||
|  | @ -285,7 +144,7 @@ The next release will require at least [Go 1.19]. | |||
| ### Changed | ||||
| 
 | ||||
| - Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. (#3497, #3500) | ||||
| - Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and configuration based on the instrument type. (#3507) | ||||
| - Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and confguration based on the instrument type. (#3507) | ||||
|   - Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`. | ||||
|   - Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`. | ||||
|   - Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`. | ||||
|  | @ -298,7 +157,7 @@ The next release will require at least [Go 1.19]. | |||
| - The `Shutdown` method of the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` releases all computational resources when called the first time. (#3551) | ||||
| - The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions. | ||||
|   This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. (#3557) | ||||
| - Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in errors identifying their signal name. | ||||
| - Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in erros identifying their signal name. | ||||
|   Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. (#3516) | ||||
| - Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. (#3514) | ||||
| - The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. (#3562) | ||||
|  | @ -407,7 +266,7 @@ The next release will require at least [Go 1.19]. | |||
| - Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. (#3398) | ||||
| - Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. (#3340) | ||||
| - `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. (#3394, #3436) | ||||
| - Re-enabled Attribute Filters in the Metric SDK. (#3396) | ||||
| - Reenabled Attribute Filters in the Metric SDK. (#3396) | ||||
| - Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408) | ||||
| - Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. (#3438, #3432) | ||||
| - Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. (#3162, #3440) | ||||
|  | @ -988,7 +847,7 @@ This release includes an API and SDK for the tracing signal that will comply wit | |||
| - Setting the global `ErrorHandler` with `"go.opentelemetry.io/otel".SetErrorHandler` multiple times is now supported. (#2160, #2140) | ||||
| - The `"go.opentelemetry.io/otel/attribute".Any` function now supports `int32` values. (#2169) | ||||
| - Multiple calls to `"go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource()` are handled correctly, and when no resources are provided `"go.opentelemetry.io/otel/sdk/resource".Default()` is used. (#2120) | ||||
| - The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly omit timestamps. (#2195) | ||||
| - The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly ommit timestamps. (#2195) | ||||
| - Fixed typos in resources.go. (#2201) | ||||
| 
 | ||||
| ## [1.0.0-RC2] - 2021-07-26 | ||||
|  | @ -1434,7 +1293,7 @@ with major version 0. | |||
| - `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. (#1369) | ||||
| - Added documentation about the project's versioning policy. (#1388) | ||||
| - Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418) | ||||
| - Added codeql workflow to GitHub Actions (#1428) | ||||
| - Added codeql worfklow to GitHub Actions (#1428) | ||||
| - Added Gosec workflow to GitHub Actions (#1429) | ||||
| - Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. (#1420) | ||||
| - Add an OpenCensus exporter bridge. (#1444) | ||||
|  | @ -2277,7 +2136,7 @@ There is still a possibility of breaking changes. | |||
| 
 | ||||
| ### Fixed | ||||
| 
 | ||||
| - Use stateful batcher on Prometheus exporter fixing regression introduced in #395. (#428) | ||||
| - Use stateful batcher on Prometheus exporter fixing regresion introduced in #395. (#428) | ||||
| 
 | ||||
| ## [0.2.1] - 2020-01-08 | ||||
| 
 | ||||
|  | @ -2443,11 +2302,7 @@ It contains api and sdk for trace and meter. | |||
| - CircleCI build CI manifest files. | ||||
| - CODEOWNERS file to track owners of this project. | ||||
| 
 | ||||
| [Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...HEAD | ||||
| [1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1 | ||||
| [1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0 | ||||
| [1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2 | ||||
| [1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1 | ||||
| [Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.14.0...HEAD | ||||
| [1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0 | ||||
| [1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0 | ||||
| [1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/CODEOWNERS
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/CODEOWNERS
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,6 +12,6 @@ | |||
| #  https://help.github.com/en/articles/about-code-owners | ||||
| # | ||||
| 
 | ||||
| * @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu | ||||
| * @jmacd @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu | ||||
| 
 | ||||
| CODEOWNERS @MrAlias @Aneurysm9 @MadVikingGod | ||||
|  |  | |||
							
								
								
									
										93
									
								
								vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										93
									
								
								vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -6,7 +6,7 @@ OpenTelemetry | |||
| repo for information on this and other language SIGs. | ||||
| 
 | ||||
| See the [public meeting | ||||
| notes](https://docs.google.com/document/d/1E5e7Ld0NuU1iVvf-42tOBpu2VBBLYnh73GJuITGJTTU/edit) | ||||
| notes](https://docs.google.com/document/d/1A63zSWX0x2CyCK_LoNhmQC4rqhLpYXJzXbEPDUQ2n6w/edit#heading=h.9tngw7jdwd6b) | ||||
| for a summary description of past meetings. To request edit access, | ||||
| join the meeting or get in touch on | ||||
| [Slack](https://cloud-native.slack.com/archives/C01NPAXACKT). | ||||
|  | @ -94,58 +94,30 @@ request ID to the entry you added to `CHANGELOG.md`. | |||
| 
 | ||||
| ### How to Get PRs Merged | ||||
| 
 | ||||
| A PR is considered **ready to merge** when: | ||||
| A PR is considered to be **ready to merge** when: | ||||
| 
 | ||||
| * It has received two qualified approvals[^1]. | ||||
| * It has received two approvals from Collaborators/Maintainers (at | ||||
|   different companies). This is not enforced through technical means | ||||
|   and a PR may be **ready to merge** with a single approval if the change | ||||
|   and its approach have been discussed and consensus reached. | ||||
| * Feedback has been addressed. | ||||
| * Any substantive changes to your PR will require that you clear any prior | ||||
|   Approval reviews, this includes changes resulting from other feedback. Unless | ||||
|   the approver explicitly stated that their approval will persist across | ||||
|   changes it should be assumed that the PR needs their review again. Other | ||||
|   project members (e.g. approvers, maintainers) can help with this if there are | ||||
|   any questions or if you forget to clear reviews. | ||||
| * It has been open for review for at least one working day. This gives | ||||
|   people reasonable time to review. | ||||
| * Trivial changes (typo, cosmetic, doc, etc.) do not have to wait for | ||||
|   one day and may be merged with a single Maintainer's approval. | ||||
| * `CHANGELOG.md` has been updated to reflect what has been | ||||
|   added, changed, removed, or fixed. | ||||
| * `README.md` has been updated if necessary. | ||||
| * Urgent fix can take exception as long as it has been actively | ||||
|   communicated. | ||||
| 
 | ||||
|   This is not enforced through automation, but needs to be validated by the | ||||
|   maintainer merging. | ||||
|   * The qualified approvals need to be from [Approver]s/[Maintainer]s | ||||
|     affiliated with different companies. Two qualified approvals from | ||||
|     [Approver]s or [Maintainer]s affiliated with the same company counts as a | ||||
|     single qualified approval. | ||||
|   * PRs introducing changes that have already been discussed and consensus | ||||
|     reached only need one qualified approval. The discussion and resolution | ||||
|     needs to be linked to the PR. | ||||
|   * Trivial changes[^2] only need one qualified approval. | ||||
| 
 | ||||
| * All feedback has been addressed. | ||||
|   * All PR comments and suggestions are resolved. | ||||
|   * All GitHub Pull Request reviews with a status of "Request changes" have | ||||
|     been addressed. Another review by the objecting reviewer with a different | ||||
|     status can be submitted to clear the original review, or the review can be | ||||
|     dismissed by a [Maintainer] when the issues from the original review have | ||||
|     been addressed. | ||||
|   * Any comments or reviews that cannot be resolved between the PR author and | ||||
|     reviewers can be submitted to the community [Approver]s and [Maintainer]s | ||||
|     during the weekly SIG meeting. If consensus is reached among the | ||||
|     [Approver]s and [Maintainer]s during the SIG meeting the objections to the | ||||
|     PR may be dismissed or resolved or the PR closed by a [Maintainer]. | ||||
|   * Any substantive changes to the PR require existing Approval reviews be | ||||
|     cleared unless the approver explicitly states that their approval persists | ||||
|     across changes. This includes changes resulting from other feedback. | ||||
|     [Approver]s and [Maintainer]s can help in clearing reviews and they should | ||||
|     be consulted if there are any questions. | ||||
| 
 | ||||
| * The PR branch is up to date with the base branch it is merging into. | ||||
|   * To ensure this does not block the PR, it should be configured to allow | ||||
|     maintainers to update it. | ||||
| 
 | ||||
| * It has been open for review for at least one working day. This gives people | ||||
|   reasonable time to review. | ||||
|   * Trivial changes[^2] do not have to wait for one day and may be merged with | ||||
|     a single [Maintainer]'s approval. | ||||
| 
 | ||||
| * All required GitHub workflows have succeeded. | ||||
| * Urgent fix can take exception as long as it has been actively communicated | ||||
|   among [Maintainer]s. | ||||
| 
 | ||||
| Any [Maintainer] can merge the PR once the above criteria have been met. | ||||
| 
 | ||||
| [^1]: A qualified approval is a GitHub Pull Request review with "Approve" | ||||
|   status from an OpenTelemetry Go [Approver] or [Maintainer]. | ||||
| [^2]: Trivial changes include: typo corrections, cosmetic non-substantive | ||||
|   changes, documentation corrections or updates, dependency updates, etc. | ||||
| Any Maintainer can merge the PR once it is **ready to merge**. | ||||
| 
 | ||||
| ## Design Choices | ||||
| 
 | ||||
|  | @ -244,7 +216,7 @@ Meaning a `config` from one package should not be directly used by another. The | |||
| one exception is the API packages.  The configs from the base API, eg. | ||||
| `go.opentelemetry.io/otel/trace.TracerConfig` and | ||||
| `go.opentelemetry.io/otel/metric.InstrumentConfig`, are intended to be consumed | ||||
| by the SDK therefore it is expected that these are exported. | ||||
| by the SDK therefor it is expected that these are exported. | ||||
| 
 | ||||
| When a config is exported we want to maintain forward and backward | ||||
| compatibility, to achieve this no fields should be exported but should | ||||
|  | @ -262,12 +234,12 @@ func newConfig(options ...Option) config { | |||
| 	for _, option := range options { | ||||
| 		config = option.apply(config) | ||||
| 	} | ||||
| 	// Perform any validation here. | ||||
| 	// Preform any validation here. | ||||
| 	return config | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| If validation of the `config` options is also performed this can return an | ||||
| If validation of the `config` options is also preformed this can return an | ||||
| error as well that is expected to be handled by the instantiation function | ||||
| or propagated to the user. | ||||
| 
 | ||||
|  | @ -466,7 +438,7 @@ their parameters appropriately named. | |||
| #### Interface Stability | ||||
| 
 | ||||
| All exported stable interfaces that include the following warning in their | ||||
| documentation are allowed to be extended with additional methods. | ||||
| doumentation are allowed to be extended with additional methods. | ||||
| 
 | ||||
| > Warning: methods may be added to this interface in minor releases. | ||||
| 
 | ||||
|  | @ -528,30 +500,27 @@ interface that defines the specific functionality should be preferred. | |||
| 
 | ||||
| ## Approvers and Maintainers | ||||
| 
 | ||||
| ### Approvers | ||||
| Approvers: | ||||
| 
 | ||||
| - [Evan Torrie](https://github.com/evantorrie), Verizon Media | ||||
| - [Josh MacDonald](https://github.com/jmacd), LightStep | ||||
| - [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics | ||||
| - [David Ashpole](https://github.com/dashpole), Google | ||||
| - [Robert Pająk](https://github.com/pellared), Splunk | ||||
| - [Chester Cheung](https://github.com/hanyuancheung), Tencent | ||||
| - [Damien Mathieu](https://github.com/dmathieu), Elastic | ||||
| 
 | ||||
| ### Maintainers | ||||
| Maintainers: | ||||
| 
 | ||||
| - [Aaron Clawson](https://github.com/MadVikingGod), LightStep | ||||
| - [Anthony Mirabella](https://github.com/Aneurysm9), AWS | ||||
| - [Tyler Yahn](https://github.com/MrAlias), Splunk | ||||
| 
 | ||||
| ### Emeritus | ||||
| Emeritus: | ||||
| 
 | ||||
| - [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep | ||||
| - [Josh MacDonald](https://github.com/jmacd), LightStep | ||||
| 
 | ||||
| ### Become an Approver or a Maintainer | ||||
| 
 | ||||
| See the [community membership document in OpenTelemetry community | ||||
| repo](https://github.com/open-telemetry/community/blob/main/community-membership.md). | ||||
| 
 | ||||
| [Approver]: #approvers | ||||
| [Maintainer]: #maintainers | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/Makefile
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/Makefile
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -156,7 +156,7 @@ go-mod-tidy/%: DIR=$* | |||
| go-mod-tidy/%: | crosslink | ||||
| 	@echo "$(GO) mod tidy in $(DIR)" \
 | ||||
| 		&& cd $(DIR) \
 | ||||
| 		&& $(GO) mod tidy -compat=1.19 | ||||
| 		&& $(GO) mod tidy -compat=1.18 | ||||
| 
 | ||||
| .PHONY: lint-modules | ||||
| lint-modules: go-mod-tidy | ||||
|  |  | |||
							
								
								
									
										7
									
								
								vendor/go.opentelemetry.io/otel/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/go.opentelemetry.io/otel/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,7 @@ It provides a set of APIs to directly measure performance and behavior of your s | |||
| | Signal  | Status     | Project | | ||||
| | ------- | ---------- | ------- | | ||||
| | Traces  | Stable     | N/A     | | ||||
| | Metrics | Beta       | N/A     | | ||||
| | Metrics | Alpha      | N/A     | | ||||
| | Logs    | Frozen [1] | N/A     | | ||||
| 
 | ||||
| - [1]: The Logs signal development is halted for this project while we develop both Traces and Metrics. | ||||
|  | @ -52,14 +52,19 @@ Currently, this project supports the following environments. | |||
| | ------- | ---------- | ------------ | | ||||
| | Ubuntu  | 1.20       | amd64        | | ||||
| | Ubuntu  | 1.19       | amd64        | | ||||
| | Ubuntu  | 1.18       | amd64        | | ||||
| | Ubuntu  | 1.20       | 386          | | ||||
| | Ubuntu  | 1.19       | 386          | | ||||
| | Ubuntu  | 1.18       | 386          | | ||||
| | MacOS   | 1.20       | amd64        | | ||||
| | MacOS   | 1.19       | amd64        | | ||||
| | MacOS   | 1.18       | amd64        | | ||||
| | Windows | 1.20       | amd64        | | ||||
| | Windows | 1.19       | amd64        | | ||||
| | Windows | 1.18       | amd64        | | ||||
| | Windows | 1.20       | 386          | | ||||
| | Windows | 1.19       | 386          | | ||||
| | Windows | 1.18       | 386          | | ||||
| 
 | ||||
| While this project should work for other systems, no compatibility guarantees | ||||
| are made for those systems currently. | ||||
|  |  | |||
							
								
								
									
										20
									
								
								vendor/go.opentelemetry.io/otel/attribute/set.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/go.opentelemetry.io/otel/attribute/set.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -18,7 +18,6 @@ import ( | |||
| 	"encoding/json" | ||||
| 	"reflect" | ||||
| 	"sort" | ||||
| 	"sync" | ||||
| ) | ||||
| 
 | ||||
| type ( | ||||
|  | @ -63,12 +62,6 @@ var ( | |||
| 			iface: [0]KeyValue{}, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	// sortables is a pool of Sortables used to create Sets with a user does | ||||
| 	// not provide one. | ||||
| 	sortables = sync.Pool{ | ||||
| 		New: func() interface{} { return new(Sortable) }, | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| // EmptySet returns a reference to a Set with no elements. | ||||
|  | @ -98,7 +91,7 @@ func (l *Set) Len() int { | |||
| 
 | ||||
| // Get returns the KeyValue at ordered position idx in this set. | ||||
| func (l *Set) Get(idx int) (KeyValue, bool) { | ||||
| 	if l == nil || !l.equivalent.Valid() { | ||||
| 	if l == nil { | ||||
| 		return KeyValue{}, false | ||||
| 	} | ||||
| 	value := l.equivalent.reflectValue() | ||||
|  | @ -114,7 +107,7 @@ func (l *Set) Get(idx int) (KeyValue, bool) { | |||
| 
 | ||||
| // Value returns the value of a specified key in this set. | ||||
| func (l *Set) Value(k Key) (Value, bool) { | ||||
| 	if l == nil || !l.equivalent.Valid() { | ||||
| 	if l == nil { | ||||
| 		return Value{}, false | ||||
| 	} | ||||
| 	rValue := l.equivalent.reflectValue() | ||||
|  | @ -198,9 +191,7 @@ func NewSet(kvs ...KeyValue) Set { | |||
| 	if len(kvs) == 0 { | ||||
| 		return empty() | ||||
| 	} | ||||
| 	srt := sortables.Get().(*Sortable) | ||||
| 	s, _ := NewSetWithSortableFiltered(kvs, srt, nil) | ||||
| 	sortables.Put(srt) | ||||
| 	s, _ := NewSetWithSortableFiltered(kvs, new(Sortable), nil) | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
|  | @ -227,10 +218,7 @@ func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) { | |||
| 	if len(kvs) == 0 { | ||||
| 		return empty(), nil | ||||
| 	} | ||||
| 	srt := sortables.Get().(*Sortable) | ||||
| 	s, filtered := NewSetWithSortableFiltered(kvs, srt, filter) | ||||
| 	sortables.Put(srt) | ||||
| 	return s, filtered | ||||
| 	return NewSetWithSortableFiltered(kvs, new(Sortable), filter) | ||||
| } | ||||
| 
 | ||||
| // NewSetWithSortableFiltered returns a new Set. | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -47,4 +47,4 @@ When re-generating Thrift code in the future, please adapt import paths as neces | |||
| 
 | ||||
| - [Jaeger](https://www.jaegertracing.io/) | ||||
| - [OpenTelemetry to Jaeger Transformation](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk_exporters/jaeger.md) | ||||
| - [OpenTelemetry Environment Variable Specification](https://opentelemetry.io/docs/reference/specification/sdk-environment-variables/#general-sdk-configuration) | ||||
| - [OpenTelemetry Environment Variable Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md) | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -37,7 +37,7 @@ const ( | |||
| 
 | ||||
| // envOr returns an env variable's value if it is exists or the default if not. | ||||
| func envOr(key, defaultValue string) string { | ||||
| 	if v := os.Getenv(key); v != "" { | ||||
| 	if v, ok := os.LookupEnv(key); ok && v != "" { | ||||
| 		return v | ||||
| 	} | ||||
| 	return defaultValue | ||||
|  |  | |||
|  | @ -77,7 +77,7 @@ const ( | |||
| // WrapTException wraps an error into TException. | ||||
| // | ||||
| // If err is nil or already TException, it's returned as-is. | ||||
| // Otherwise it will be wrapped into TException with TExceptionType() returning | ||||
| // Otherwise it will be wraped into TException with TExceptionType() returning | ||||
| // TExceptionTypeUnknown, and Unwrap() returning the original error. | ||||
| func WrapTException(err error) TException { | ||||
| 	if err == nil { | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ type stringWriter interface { | |||
| 	WriteString(s string) (n int, err error) | ||||
| } | ||||
| 
 | ||||
| // This is "enhanced" transport with extra capabilities. You need to use one of these | ||||
| // This is "enchanced" transport with extra capabilities. You need to use one of these | ||||
| // to construct protocol. | ||||
| // Notably, TSocket does not implement this interface, and it is always a mistake to use | ||||
| // TSocket directly in protocol. | ||||
|  |  | |||
|  | @ -40,7 +40,7 @@ const ( | |||
| 	LIST   = 15 | ||||
| 	UTF8   = 16 | ||||
| 	UTF16  = 17 | ||||
| 	//BINARY = 18   wrong and unused | ||||
| 	//BINARY = 18   wrong and unusued | ||||
| ) | ||||
| 
 | ||||
| var typeNames = map[int]string{ | ||||
|  |  | |||
|  | @ -12,14 +12,13 @@ | |||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package internal // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal" | ||||
| // Package internal contains common functionality for all OTLP exporters. | ||||
| package internal // import "go.opentelemetry.io/otel/exporters/otlp/internal" | ||||
| 
 | ||||
| import ( | ||||
| 	"go.opentelemetry.io/otel/exporters/otlp/otlptrace" | ||||
| ) | ||||
| import "go.opentelemetry.io/otel" | ||||
| 
 | ||||
| // GetUserAgentHeader returns an OTLP header value form "OTel OTLP Exporter Go/{{ .Version }}" | ||||
| // GetUserAgentHeader return an OTLP header value form "OTel OTLP Exporter Go/{{ .Version }}" | ||||
| // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#user-agent | ||||
| func GetUserAgentHeader() string { | ||||
| 	return "OTel OTLP Exporter Go/" + otlptrace.Version() | ||||
| 	return "OTel OTLP Exporter Go/" + otel.Version() | ||||
| } | ||||
|  | @ -27,7 +27,6 @@ import ( | |||
| 
 | ||||
| 	"go.opentelemetry.io/otel/exporters/otlp/internal" | ||||
| 	"go.opentelemetry.io/otel/exporters/otlp/internal/retry" | ||||
| 	otinternal "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
|  | @ -98,7 +97,7 @@ func NewGRPCConfig(opts ...GRPCOption) Config { | |||
| 			Timeout:     DefaultTimeout, | ||||
| 		}, | ||||
| 		RetryConfig: retry.DefaultConfig, | ||||
| 		DialOptions: []grpc.DialOption{grpc.WithUserAgent(otinternal.GetUserAgentHeader())}, | ||||
| 		DialOptions: []grpc.DialOption{grpc.WithUserAgent(internal.GetUserAgentHeader())}, | ||||
| 	} | ||||
| 	cfg = ApplyGRPCEnvConfigs(cfg) | ||||
| 	for _, opt := range opts { | ||||
|  |  | |||
							
								
								
									
										5
									
								
								vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -130,16 +130,13 @@ var errAlreadyStopped = errors.New("the client is already stopped") | |||
| // If the client has already stopped, an error will be returned describing | ||||
| // this. | ||||
| func (c *client) Stop(ctx context.Context) error { | ||||
| 	// Make sure to return context error if the context is done when calling this method. | ||||
| 	err := ctx.Err() | ||||
| 
 | ||||
| 	// Acquire the c.tscMu lock within the ctx lifetime. | ||||
| 	acquired := make(chan struct{}) | ||||
| 	go func() { | ||||
| 		c.tscMu.Lock() | ||||
| 		close(acquired) | ||||
| 	}() | ||||
| 
 | ||||
| 	var err error | ||||
| 	select { | ||||
| 	case <-ctx.Done(): | ||||
| 		// The Stop timeout is reached. Kill any remaining exports to force | ||||
|  |  | |||
							
								
								
									
										20
									
								
								vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.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 otlptrace // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace" | ||||
| 
 | ||||
| // Version is the current release version of the OpenTelemetry OTLP trace exporter in use. | ||||
| func Version() string { | ||||
| 	return "1.15.1" | ||||
| } | ||||
							
								
								
									
										64
									
								
								vendor/go.opentelemetry.io/otel/handler.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										64
									
								
								vendor/go.opentelemetry.io/otel/handler.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -15,16 +15,58 @@ | |||
| package otel // import "go.opentelemetry.io/otel" | ||||
| 
 | ||||
| import ( | ||||
| 	"go.opentelemetry.io/otel/internal/global" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"sync/atomic" | ||||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	// Compile-time check global.ErrDelegator implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*global.ErrDelegator)(nil) | ||||
| 	// Compile-time check global.ErrLogger implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*global.ErrLogger)(nil) | ||||
| 	// globalErrorHandler provides an ErrorHandler that can be used | ||||
| 	// throughout an OpenTelemetry instrumented project. When a user | ||||
| 	// specified ErrorHandler is registered (`SetErrorHandler`) all calls to | ||||
| 	// `Handle` and will be delegated to the registered ErrorHandler. | ||||
| 	globalErrorHandler = defaultErrorHandler() | ||||
| 
 | ||||
| 	// Compile-time check that delegator implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*delegator)(nil) | ||||
| 	// Compile-time check that errLogger implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*errLogger)(nil) | ||||
| ) | ||||
| 
 | ||||
| type delegator struct { | ||||
| 	delegate unsafe.Pointer | ||||
| } | ||||
| 
 | ||||
| func (d *delegator) Handle(err error) { | ||||
| 	d.getDelegate().Handle(err) | ||||
| } | ||||
| 
 | ||||
| func (d *delegator) getDelegate() ErrorHandler { | ||||
| 	return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate)) | ||||
| } | ||||
| 
 | ||||
| // setDelegate sets the ErrorHandler delegate. | ||||
| func (d *delegator) setDelegate(eh ErrorHandler) { | ||||
| 	atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh)) | ||||
| } | ||||
| 
 | ||||
| func defaultErrorHandler() *delegator { | ||||
| 	d := &delegator{} | ||||
| 	d.setDelegate(&errLogger{l: log.New(os.Stderr, "", log.LstdFlags)}) | ||||
| 	return d | ||||
| } | ||||
| 
 | ||||
| // errLogger logs errors if no delegate is set, otherwise they are delegated. | ||||
| type errLogger struct { | ||||
| 	l *log.Logger | ||||
| } | ||||
| 
 | ||||
| // Handle logs err if no delegate is set, otherwise it is delegated. | ||||
| func (h *errLogger) Handle(err error) { | ||||
| 	h.l.Print(err) | ||||
| } | ||||
| 
 | ||||
| // GetErrorHandler returns the global ErrorHandler instance. | ||||
| // | ||||
| // The default ErrorHandler instance returned will log all errors to STDERR | ||||
|  | @ -34,7 +76,9 @@ var ( | |||
| // | ||||
| // Subsequent calls to SetErrorHandler after the first will not forward errors | ||||
| // to the new ErrorHandler for prior returned instances. | ||||
| func GetErrorHandler() ErrorHandler { return global.GetErrorHandler() } | ||||
| func GetErrorHandler() ErrorHandler { | ||||
| 	return globalErrorHandler | ||||
| } | ||||
| 
 | ||||
| // SetErrorHandler sets the global ErrorHandler to h. | ||||
| // | ||||
|  | @ -42,7 +86,11 @@ func GetErrorHandler() ErrorHandler { return global.GetErrorHandler() } | |||
| // GetErrorHandler will send errors to h instead of the default logging | ||||
| // ErrorHandler. Subsequent calls will set the global ErrorHandler, but not | ||||
| // delegate errors to h. | ||||
| func SetErrorHandler(h ErrorHandler) { global.SetErrorHandler(h) } | ||||
| func SetErrorHandler(h ErrorHandler) { | ||||
| 	globalErrorHandler.setDelegate(h) | ||||
| } | ||||
| 
 | ||||
| // Handle is a convenience function for ErrorHandler().Handle(err). | ||||
| func Handle(err error) { global.Handle(err) } | ||||
| func Handle(err error) { | ||||
| 	GetErrorHandler().Handle(err) | ||||
| } | ||||
|  |  | |||
							
								
								
									
										103
									
								
								vendor/go.opentelemetry.io/otel/internal/global/handler.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								vendor/go.opentelemetry.io/otel/internal/global/handler.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,103 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package global // import "go.opentelemetry.io/otel/internal/global" | ||||
| 
 | ||||
| import ( | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"sync/atomic" | ||||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	// GlobalErrorHandler provides an ErrorHandler that can be used | ||||
| 	// throughout an OpenTelemetry instrumented project. When a user | ||||
| 	// specified ErrorHandler is registered (`SetErrorHandler`) all calls to | ||||
| 	// `Handle` and will be delegated to the registered ErrorHandler. | ||||
| 	GlobalErrorHandler = defaultErrorHandler() | ||||
| 
 | ||||
| 	// Compile-time check that delegator implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*ErrDelegator)(nil) | ||||
| 	// Compile-time check that errLogger implements ErrorHandler. | ||||
| 	_ ErrorHandler = (*ErrLogger)(nil) | ||||
| ) | ||||
| 
 | ||||
| // ErrorHandler handles irremediable events. | ||||
| type ErrorHandler interface { | ||||
| 	// Handle handles any error deemed irremediable by an OpenTelemetry | ||||
| 	// component. | ||||
| 	Handle(error) | ||||
| } | ||||
| 
 | ||||
| type ErrDelegator struct { | ||||
| 	delegate unsafe.Pointer | ||||
| } | ||||
| 
 | ||||
| func (d *ErrDelegator) Handle(err error) { | ||||
| 	d.getDelegate().Handle(err) | ||||
| } | ||||
| 
 | ||||
| func (d *ErrDelegator) getDelegate() ErrorHandler { | ||||
| 	return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate)) | ||||
| } | ||||
| 
 | ||||
| // setDelegate sets the ErrorHandler delegate. | ||||
| func (d *ErrDelegator) setDelegate(eh ErrorHandler) { | ||||
| 	atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh)) | ||||
| } | ||||
| 
 | ||||
| func defaultErrorHandler() *ErrDelegator { | ||||
| 	d := &ErrDelegator{} | ||||
| 	d.setDelegate(&ErrLogger{l: log.New(os.Stderr, "", log.LstdFlags)}) | ||||
| 	return d | ||||
| } | ||||
| 
 | ||||
| // ErrLogger logs errors if no delegate is set, otherwise they are delegated. | ||||
| type ErrLogger struct { | ||||
| 	l *log.Logger | ||||
| } | ||||
| 
 | ||||
| // Handle logs err if no delegate is set, otherwise it is delegated. | ||||
| func (h *ErrLogger) Handle(err error) { | ||||
| 	h.l.Print(err) | ||||
| } | ||||
| 
 | ||||
| // GetErrorHandler returns the global ErrorHandler instance. | ||||
| // | ||||
| // The default ErrorHandler instance returned will log all errors to STDERR | ||||
| // until an override ErrorHandler is set with SetErrorHandler. All | ||||
| // ErrorHandler returned prior to this will automatically forward errors to | ||||
| // the set instance instead of logging. | ||||
| // | ||||
| // Subsequent calls to SetErrorHandler after the first will not forward errors | ||||
| // to the new ErrorHandler for prior returned instances. | ||||
| func GetErrorHandler() ErrorHandler { | ||||
| 	return GlobalErrorHandler | ||||
| } | ||||
| 
 | ||||
| // SetErrorHandler sets the global ErrorHandler to h. | ||||
| // | ||||
| // The first time this is called all ErrorHandler previously returned from | ||||
| // GetErrorHandler will send errors to h instead of the default logging | ||||
| // ErrorHandler. Subsequent calls will set the global ErrorHandler, but not | ||||
| // delegate errors to h. | ||||
| func SetErrorHandler(h ErrorHandler) { | ||||
| 	GlobalErrorHandler.setDelegate(h) | ||||
| } | ||||
| 
 | ||||
| // Handle is a convenience function for ErrorHandler().Handle(err). | ||||
| func Handle(err error) { | ||||
| 	GetErrorHandler().Handle(err) | ||||
| } | ||||
							
								
								
									
										19
									
								
								vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -24,7 +24,7 @@ import ( | |||
| 	"github.com/go-logr/stdr" | ||||
| ) | ||||
| 
 | ||||
| // globalLogger is the logging interface used within the otel api and sdk provide details of the internals. | ||||
| // globalLogger is the logging interface used within the otel api and sdk provide deatails of the internals. | ||||
| // | ||||
| // The default logger uses stdr which is backed by the standard `log.Logger` | ||||
| // interface. This logger will only show messages at the Error Level. | ||||
|  | @ -36,9 +36,8 @@ func init() { | |||
| 
 | ||||
| // SetLogger overrides the globalLogger with l. | ||||
| // | ||||
| // To see Warn messages use a logger with `l.V(1).Enabled() == true` | ||||
| // To see Info messages use a logger with `l.V(4).Enabled() == true` | ||||
| // To see Debug messages use a logger with `l.V(8).Enabled() == true`. | ||||
| // To see Info messages use a logger with `l.V(1).Enabled() == true` | ||||
| // To see Debug messages use a logger with `l.V(5).Enabled() == true`. | ||||
| func SetLogger(l logr.Logger) { | ||||
| 	atomic.StorePointer(&globalLogger, unsafe.Pointer(&l)) | ||||
| } | ||||
|  | @ -48,9 +47,9 @@ func getLogger() logr.Logger { | |||
| } | ||||
| 
 | ||||
| // Info prints messages about the general state of the API or SDK. | ||||
| // This should usually be less than 5 messages a minute. | ||||
| // This should usually be less then 5 messages a minute. | ||||
| func Info(msg string, keysAndValues ...interface{}) { | ||||
| 	getLogger().V(4).Info(msg, keysAndValues...) | ||||
| 	getLogger().V(1).Info(msg, keysAndValues...) | ||||
| } | ||||
| 
 | ||||
| // Error prints messages about exceptional states of the API or SDK. | ||||
|  | @ -60,11 +59,5 @@ func Error(err error, msg string, keysAndValues ...interface{}) { | |||
| 
 | ||||
| // Debug prints messages about all internal changes in the API or SDK. | ||||
| func Debug(msg string, keysAndValues ...interface{}) { | ||||
| 	getLogger().V(8).Info(msg, keysAndValues...) | ||||
| } | ||||
| 
 | ||||
| // Warn prints messages about warnings in the API or SDK. | ||||
| // Not an error but is likely more important than an informational event. | ||||
| func Warn(msg string, keysAndValues ...interface{}) { | ||||
| 	getLogger().V(1).Info(msg, keysAndValues...) | ||||
| 	getLogger().V(5).Info(msg, keysAndValues...) | ||||
| } | ||||
|  |  | |||
							
								
								
									
										258
									
								
								vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										258
									
								
								vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,258 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| ) | ||||
| 
 | ||||
| // Float64Observable describes a set of instruments used asynchronously to | ||||
| // record float64 measurements once per collection cycle. Observations of | ||||
| // these instruments are only made within a callback. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. | ||||
| type Float64Observable interface { | ||||
| 	Observable | ||||
| 
 | ||||
| 	float64Observable() | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableCounter is an instrument used to asynchronously record | ||||
| // increasing float64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. The value observed is | ||||
| // assumed the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64ObservableCounter interface { | ||||
| 	embedded.Float64ObservableCounter | ||||
| 
 | ||||
| 	Float64Observable | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableCounterConfig contains options for asynchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Float64ObservableCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Float64Callback | ||||
| } | ||||
| 
 | ||||
| // NewFloat64ObservableCounterConfig returns a new | ||||
| // [Float64ObservableCounterConfig] with all opts applied. | ||||
| func NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig { | ||||
| 	var config Float64ObservableCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64ObservableCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64ObservableCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64ObservableCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Float64ObservableCounterConfig) Callbacks() []Float64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableCounterOption applies options to a | ||||
| // [Float64ObservableCounterConfig]. See [Float64ObservableOption] and [Option] | ||||
| // for other options that can be used as a Float64ObservableCounterOption. | ||||
| type Float64ObservableCounterOption interface { | ||||
| 	applyFloat64ObservableCounter(Float64ObservableCounterConfig) Float64ObservableCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounter is an instrument used to asynchronously | ||||
| // record float64 measurements once per collection cycle. Observations are only | ||||
| // made within a callback for this instrument. The value observed is assumed | ||||
| // the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64ObservableUpDownCounter interface { | ||||
| 	embedded.Float64ObservableUpDownCounter | ||||
| 
 | ||||
| 	Float64Observable | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounterConfig contains options for asynchronous | ||||
| // counter instruments that record int64 values. | ||||
| type Float64ObservableUpDownCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Float64Callback | ||||
| } | ||||
| 
 | ||||
| // NewFloat64ObservableUpDownCounterConfig returns a new | ||||
| // [Float64ObservableUpDownCounterConfig] with all opts applied. | ||||
| func NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig { | ||||
| 	var config Float64ObservableUpDownCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64ObservableUpDownCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64ObservableUpDownCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64ObservableUpDownCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Float64ObservableUpDownCounterConfig) Callbacks() []Float64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounterOption applies options to a | ||||
| // [Float64ObservableUpDownCounterConfig]. See [Float64ObservableOption] and | ||||
| // [Option] for other options that can be used as a | ||||
| // Float64ObservableUpDownCounterOption. | ||||
| type Float64ObservableUpDownCounterOption interface { | ||||
| 	applyFloat64ObservableUpDownCounter(Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableGauge is an instrument used to asynchronously record | ||||
| // instantaneous float64 measurements once per collection cycle. Observations | ||||
| // are only made within a callback for this instrument. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64ObservableGauge interface { | ||||
| 	embedded.Float64ObservableGauge | ||||
| 
 | ||||
| 	Float64Observable | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableGaugeConfig contains options for asynchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Float64ObservableGaugeConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Float64Callback | ||||
| } | ||||
| 
 | ||||
| // NewFloat64ObservableGaugeConfig returns a new [Float64ObservableGaugeConfig] | ||||
| // with all opts applied. | ||||
| func NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig { | ||||
| 	var config Float64ObservableGaugeConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64ObservableGauge(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64ObservableGaugeConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64ObservableGaugeConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Float64ObservableGaugeConfig) Callbacks() []Float64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableGaugeOption applies options to a | ||||
| // [Float64ObservableGaugeConfig]. See [Float64ObservableOption] and | ||||
| // [Option] for other options that can be used as a | ||||
| // Float64ObservableGaugeOption. | ||||
| type Float64ObservableGaugeOption interface { | ||||
| 	applyFloat64ObservableGauge(Float64ObservableGaugeConfig) Float64ObservableGaugeConfig | ||||
| } | ||||
| 
 | ||||
| // Float64Observer is a recorder of float64 measurements. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64Observer interface { | ||||
| 	embedded.Float64Observer | ||||
| 
 | ||||
| 	// Observe records the float64 value. | ||||
| 	Observe(value float64, opts ...ObserveOption) | ||||
| } | ||||
| 
 | ||||
| // Float64Callback is a function registered with a Meter that makes | ||||
| // observations for a Float64Observerable instrument it is registered with. | ||||
| // Calls to the Float64Observer record measurement values for the | ||||
| // Float64Observable. | ||||
| // | ||||
| // The function needs to complete in a finite amount of time and the deadline | ||||
| // of the passed context is expected to be honored. | ||||
| // | ||||
| // The function needs to make unique observations across all registered | ||||
| // Float64Callbacks. Meaning, it should not report measurements with the same | ||||
| // attributes as another Float64Callbacks also registered for the same | ||||
| // instrument. | ||||
| // | ||||
| // The function needs to be concurrent safe. | ||||
| type Float64Callback func(context.Context, Float64Observer) error | ||||
| 
 | ||||
| // Float64ObservableOption applies options to float64 Observer instruments. | ||||
| type Float64ObservableOption interface { | ||||
| 	Float64ObservableCounterOption | ||||
| 	Float64ObservableUpDownCounterOption | ||||
| 	Float64ObservableGaugeOption | ||||
| } | ||||
| 
 | ||||
| type float64CallbackOpt struct { | ||||
| 	cback Float64Callback | ||||
| } | ||||
| 
 | ||||
| func (o float64CallbackOpt) applyFloat64ObservableCounter(cfg Float64ObservableCounterConfig) Float64ObservableCounterConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| func (o float64CallbackOpt) applyFloat64ObservableUpDownCounter(cfg Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| func (o float64CallbackOpt) applyFloat64ObservableGauge(cfg Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| // WithFloat64Callback adds callback to be called for an instrument. | ||||
| func WithFloat64Callback(callback Float64Callback) Float64ObservableOption { | ||||
| 	return float64CallbackOpt{callback} | ||||
| } | ||||
							
								
								
									
										256
									
								
								vendor/go.opentelemetry.io/otel/metric/asyncint64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										256
									
								
								vendor/go.opentelemetry.io/otel/metric/asyncint64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,256 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| ) | ||||
| 
 | ||||
| // Int64Observable describes a set of instruments used asynchronously to record | ||||
| // int64 measurements once per collection cycle. Observations of these | ||||
| // instruments are only made within a callback. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. | ||||
| type Int64Observable interface { | ||||
| 	Observable | ||||
| 
 | ||||
| 	int64Observable() | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableCounter is an instrument used to asynchronously record | ||||
| // increasing int64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. The value observed is | ||||
| // assumed the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64ObservableCounter interface { | ||||
| 	embedded.Int64ObservableCounter | ||||
| 
 | ||||
| 	Int64Observable | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableCounterConfig contains options for asynchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Int64ObservableCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Int64Callback | ||||
| } | ||||
| 
 | ||||
| // NewInt64ObservableCounterConfig returns a new [Int64ObservableCounterConfig] | ||||
| // with all opts applied. | ||||
| func NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig { | ||||
| 	var config Int64ObservableCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64ObservableCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64ObservableCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64ObservableCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Int64ObservableCounterConfig) Callbacks() []Int64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableCounterOption applies options to a | ||||
| // [Int64ObservableCounterConfig]. See [Int64ObservableOption] and [Option] for | ||||
| // other options that can be used as an Int64ObservableCounterOption. | ||||
| type Int64ObservableCounterOption interface { | ||||
| 	applyInt64ObservableCounter(Int64ObservableCounterConfig) Int64ObservableCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounter is an instrument used to asynchronously record | ||||
| // int64 measurements once per collection cycle. Observations are only made | ||||
| // within a callback for this instrument. The value observed is assumed the to | ||||
| // be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64ObservableUpDownCounter interface { | ||||
| 	embedded.Int64ObservableUpDownCounter | ||||
| 
 | ||||
| 	Int64Observable | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounterConfig contains options for asynchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Int64ObservableUpDownCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Int64Callback | ||||
| } | ||||
| 
 | ||||
| // NewInt64ObservableUpDownCounterConfig returns a new | ||||
| // [Int64ObservableUpDownCounterConfig] with all opts applied. | ||||
| func NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig { | ||||
| 	var config Int64ObservableUpDownCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64ObservableUpDownCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64ObservableUpDownCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64ObservableUpDownCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Int64ObservableUpDownCounterConfig) Callbacks() []Int64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounterOption applies options to a | ||||
| // [Int64ObservableUpDownCounterConfig]. See [Int64ObservableOption] and | ||||
| // [Option] for other options that can be used as an | ||||
| // Int64ObservableUpDownCounterOption. | ||||
| type Int64ObservableUpDownCounterOption interface { | ||||
| 	applyInt64ObservableUpDownCounter(Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableGauge is an instrument used to asynchronously record | ||||
| // instantaneous int64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64ObservableGauge interface { | ||||
| 	embedded.Int64ObservableGauge | ||||
| 
 | ||||
| 	Int64Observable | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableGaugeConfig contains options for asynchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Int64ObservableGaugeConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Int64Callback | ||||
| } | ||||
| 
 | ||||
| // NewInt64ObservableGaugeConfig returns a new [Int64ObservableGaugeConfig] | ||||
| // with all opts applied. | ||||
| func NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig { | ||||
| 	var config Int64ObservableGaugeConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64ObservableGauge(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64ObservableGaugeConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64ObservableGaugeConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the configured callbacks. | ||||
| func (c Int64ObservableGaugeConfig) Callbacks() []Int64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableGaugeOption applies options to a | ||||
| // [Int64ObservableGaugeConfig]. See [Int64ObservableOption] and [Option] for | ||||
| // other options that can be used as an Int64ObservableGaugeOption. | ||||
| type Int64ObservableGaugeOption interface { | ||||
| 	applyInt64ObservableGauge(Int64ObservableGaugeConfig) Int64ObservableGaugeConfig | ||||
| } | ||||
| 
 | ||||
| // Int64Observer is a recorder of int64 measurements. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64Observer interface { | ||||
| 	embedded.Int64Observer | ||||
| 
 | ||||
| 	// Observe records the int64 value. | ||||
| 	Observe(value int64, opts ...ObserveOption) | ||||
| } | ||||
| 
 | ||||
| // Int64Callback is a function registered with a Meter that makes observations | ||||
| // for an Int64Observerable instrument it is registered with. Calls to the | ||||
| // Int64Observer record measurement values for the Int64Observable. | ||||
| // | ||||
| // The function needs to complete in a finite amount of time and the deadline | ||||
| // of the passed context is expected to be honored. | ||||
| // | ||||
| // The function needs to make unique observations across all registered | ||||
| // Int64Callbacks. Meaning, it should not report measurements with the same | ||||
| // attributes as another Int64Callbacks also registered for the same | ||||
| // instrument. | ||||
| // | ||||
| // The function needs to be concurrent safe. | ||||
| type Int64Callback func(context.Context, Int64Observer) error | ||||
| 
 | ||||
| // Int64ObservableOption applies options to int64 Observer instruments. | ||||
| type Int64ObservableOption interface { | ||||
| 	Int64ObservableCounterOption | ||||
| 	Int64ObservableUpDownCounterOption | ||||
| 	Int64ObservableGaugeOption | ||||
| } | ||||
| 
 | ||||
| type int64CallbackOpt struct { | ||||
| 	cback Int64Callback | ||||
| } | ||||
| 
 | ||||
| func (o int64CallbackOpt) applyInt64ObservableCounter(cfg Int64ObservableCounterConfig) Int64ObservableCounterConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| func (o int64CallbackOpt) applyInt64ObservableUpDownCounter(cfg Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| func (o int64CallbackOpt) applyInt64ObservableGauge(cfg Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { | ||||
| 	cfg.callbacks = append(cfg.callbacks, o.cback) | ||||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| // WithInt64Callback adds callback to be called for an instrument. | ||||
| func WithInt64Callback(callback Int64Callback) Int64ObservableOption { | ||||
| 	return int64CallbackOpt{callback} | ||||
| } | ||||
							
								
								
									
										124
									
								
								vendor/go.opentelemetry.io/otel/metric/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										124
									
								
								vendor/go.opentelemetry.io/otel/metric/doc.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -13,125 +13,11 @@ | |||
| // limitations under the License. | ||||
| 
 | ||||
| /* | ||||
| Package metric provides the OpenTelemetry API used to measure metrics about | ||||
| source code operation. | ||||
| Package metric provides an implementation of the metrics part of the | ||||
| OpenTelemetry API. | ||||
| 
 | ||||
| This API is separate from its implementation so the instrumentation built from | ||||
| it is reusable. See [go.opentelemetry.io/otel/sdk/metric] for the official | ||||
| OpenTelemetry implementation of this API. | ||||
| 
 | ||||
| All measurements made with this package are made via instruments. These | ||||
| instruments are created by a [Meter] which itself is created by a | ||||
| [MeterProvider]. Applications need to accept a [MeterProvider] implementation | ||||
| as a starting point when instrumenting. This can be done directly, or by using | ||||
| the OpenTelemetry global MeterProvider via [GetMeterProvider]. Using an | ||||
| appropriately named [Meter] from the accepted [MeterProvider], instrumentation | ||||
| can then be built from the [Meter]'s instruments. | ||||
| 
 | ||||
| # Instruments | ||||
| 
 | ||||
| Each instrument is designed to make measurements of a particular type. Broadly, | ||||
| all instruments fall into two overlapping logical categories: asynchronous or | ||||
| synchronous, and int64 or float64. | ||||
| 
 | ||||
| All synchronous instruments ([Int64Counter], [Int64UpDownCounter], | ||||
| [Int64Histogram], [Float64Counter], [Float64UpDownCounter], [Float64Histogram]) | ||||
| are used to measure the operation and performance of source code during the | ||||
| source code execution. These instruments only make measurements when the source | ||||
| code they instrument is run. | ||||
| 
 | ||||
| All asynchronous instruments ([Int64ObservableCounter], | ||||
| [Int64ObservableUpDownCounter], [Int64ObservableGauge], | ||||
| [Float64ObservableCounter], [Float64ObservableUpDownCounter], | ||||
| [Float64ObservableGauge]) are used to measure metrics outside of the execution | ||||
| of source code. They are said to make "observations" via a callback function | ||||
| called once every measurement collection cycle. | ||||
| 
 | ||||
| Each instrument is also grouped by the value type it measures. Either int64 or | ||||
| float64. The value being measured will dictate which instrument in these | ||||
| categories to use. | ||||
| 
 | ||||
| Outside of these two broad categories, instruments are described by the | ||||
| function they are designed to serve. All Counters ([Int64Counter], | ||||
| [Float64Counter], [Int64ObservableCounter], [Float64ObservableCounter]) are | ||||
| designed to measure values that never decrease in value, but instead only | ||||
| incrementally increase in value. UpDownCounters ([Int64UpDownCounter], | ||||
| [Float64UpDownCounter], [Int64ObservableUpDownCounter], | ||||
| [Float64ObservableUpDownCounter]) on the other hand, are designed to measure | ||||
| values that can increase and decrease. When more information | ||||
| needs to be conveyed about all the synchronous measurements made during a | ||||
| collection cycle, a Histogram ([Int64Histogram], [Float64Histogram]) should be | ||||
| used. Finally, when just the most recent measurement needs to be conveyed about an | ||||
| asynchronous measurement, a Gauge ([Int64ObservableGauge], | ||||
| [Float64ObservableGauge]) should be used. | ||||
| 
 | ||||
| See the [OpenTelemetry documentation] for more information about instruments | ||||
| and their intended use. | ||||
| 
 | ||||
| # API Implementations | ||||
| 
 | ||||
| This package does not conform to the standard Go versioning policy, all of its | ||||
| interfaces may have methods added to them without a package major version bump. | ||||
| This non-standard API evolution could surprise an uninformed implementation | ||||
| author. They could unknowingly build their implementation in a way that would | ||||
| result in a runtime panic for their users that update to the new API. | ||||
| 
 | ||||
| The API is designed to help inform an instrumentation author about this | ||||
| non-standard API evolution. It requires them to choose a default behavior for | ||||
| unimplemented interface methods. There are three behavior choices they can | ||||
| make: | ||||
| 
 | ||||
|   - Compilation failure | ||||
|   - Panic | ||||
|   - Default to another implementation | ||||
| 
 | ||||
| All interfaces in this API embed a corresponding interface from | ||||
| [go.opentelemetry.io/otel/metric/embedded]. If an author wants the default | ||||
| behavior of their implementations to be a compilation failure, signaling to | ||||
| their users they need to update to the latest version of that implementation, | ||||
| they need to embed the corresponding interface from | ||||
| [go.opentelemetry.io/otel/metric/embedded] in their implementation. For | ||||
| example, | ||||
| 
 | ||||
| 	import "go.opentelemetry.io/otel/metric/embedded" | ||||
| 
 | ||||
| 	type MeterProvider struct { | ||||
| 		embedded.MeterProvider | ||||
| 		// ... | ||||
| 	} | ||||
| 
 | ||||
| If an author wants the default behavior of their implementations to a panic, | ||||
| they need to embed the API interface directly. | ||||
| 
 | ||||
| 	import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| 	type MeterProvider struct { | ||||
| 		metric.MeterProvider | ||||
| 		// ... | ||||
| 	} | ||||
| 
 | ||||
| This is not a recommended behavior as it could lead to publishing packages that | ||||
| contain runtime panics when users update other package that use newer versions | ||||
| of [go.opentelemetry.io/otel/metric]. | ||||
| 
 | ||||
| Finally, an author can embed another implementation in theirs. The embedded | ||||
| implementation will be used for methods not defined by the author. For example, | ||||
| an author who want to default to silently dropping the call can use | ||||
| [go.opentelemetry.io/otel/metric/noop]: | ||||
| 
 | ||||
| 	import "go.opentelemetry.io/otel/metric/noop" | ||||
| 
 | ||||
| 	type MeterProvider struct { | ||||
| 		noop.MeterProvider | ||||
| 		// ... | ||||
| 	} | ||||
| 
 | ||||
| It is strongly recommended that authors only embed | ||||
| [go.opentelemetry.io/otel/metric/noop] if they choose this default behavior. | ||||
| That implementation is the only one OpenTelemetry authors can guarantee will | ||||
| fully implement all the API interfaces when a user updates their API. | ||||
| 
 | ||||
| [OpenTelemetry documentation]: https://opentelemetry.io/docs/concepts/signals/metrics/ | ||||
| [GetMeterProvider]: https://pkg.go.dev/go.opentelemetry.io/otel#GetMeterProvider | ||||
| This package is currently in a pre-GA phase. Backwards incompatible changes | ||||
| may be introduced in subsequent minor version releases as we work to track the | ||||
| evolving OpenTelemetry specification and user feedback. | ||||
| */ | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
|  |  | |||
							
								
								
									
										234
									
								
								vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										234
									
								
								vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,234 +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 embedded provides interfaces embedded within the [OpenTelemetry | ||||
| // metric API]. | ||||
| // | ||||
| // Implementers of the [OpenTelemetry metric API] can embed the relevant type | ||||
| // from this package into their implementation directly. Doing so will result | ||||
| // in a compilation error for users when the [OpenTelemetry metric API] is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| // | ||||
| // [OpenTelemetry metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric | ||||
| package embedded // import "go.opentelemetry.io/otel/metric/embedded" | ||||
| 
 | ||||
| // MeterProvider is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.MeterProvider]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.MeterProvider] if you want users to | ||||
| // experience a compilation error, signaling they need to update to your latest | ||||
| // implementation, when the [go.opentelemetry.io/otel/metric.MeterProvider] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type MeterProvider interface{ meterProvider() } | ||||
| 
 | ||||
| // Meter is embedded in [go.opentelemetry.io/otel/metric.Meter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Meter] if you want users to experience a | ||||
| // compilation error, signaling they need to update to your latest | ||||
| // implementation, when the [go.opentelemetry.io/otel/metric.Meter] interface | ||||
| // is extended (which is something that can happen without a major version bump | ||||
| // of the API package). | ||||
| type Meter interface{ meter() } | ||||
| 
 | ||||
| // Float64Observer is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64Observer]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Observer] if you want | ||||
| // users to experience a compilation error, signaling they need to update to | ||||
| // your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Observer] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Float64Observer interface{ float64Observer() } | ||||
| 
 | ||||
| // Int64Observer is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64Observer]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Observer] if you want users | ||||
| // to experience a compilation error, signaling they need to update to your | ||||
| // latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Observer] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Int64Observer interface{ int64Observer() } | ||||
| 
 | ||||
| // Observer is embedded in [go.opentelemetry.io/otel/metric.Observer]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Observer] if you want users to experience a | ||||
| // compilation error, signaling they need to update to your latest | ||||
| // implementation, when the [go.opentelemetry.io/otel/metric.Observer] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Observer interface{ observer() } | ||||
| 
 | ||||
| // Registration is embedded in [go.opentelemetry.io/otel/metric.Registration]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Registration] if you want users to | ||||
| // experience a compilation error, signaling they need to update to your latest | ||||
| // implementation, when the [go.opentelemetry.io/otel/metric.Registration] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Registration interface{ registration() } | ||||
| 
 | ||||
| // Float64Counter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64Counter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Counter] if you want | ||||
| // users to experience a compilation error, signaling they need to update to | ||||
| // your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Counter] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Float64Counter interface{ float64Counter() } | ||||
| 
 | ||||
| // Float64Histogram is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64Histogram]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Histogram] if you want | ||||
| // users to experience a compilation error, signaling they need to update to | ||||
| // your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64Histogram] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Float64Histogram interface{ float64Histogram() } | ||||
| 
 | ||||
| // Float64ObservableCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableCounter] if you | ||||
| // want users to experience a compilation error, signaling they need to update | ||||
| // to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableCounter] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Float64ObservableCounter interface{ float64ObservableCounter() } | ||||
| 
 | ||||
| // Float64ObservableGauge is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableGauge]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableGauge] if you | ||||
| // want users to experience a compilation error, signaling they need to update | ||||
| // to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableGauge] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Float64ObservableGauge interface{ float64ObservableGauge() } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] | ||||
| // if you want users to experience a compilation error, signaling they need to | ||||
| // update to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Float64ObservableUpDownCounter interface{ float64ObservableUpDownCounter() } | ||||
| 
 | ||||
| // Float64UpDownCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Float64UpDownCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Float64UpDownCounter] if you | ||||
| // want users to experience a compilation error, signaling they need to update | ||||
| // to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Float64UpDownCounter] interface | ||||
| // is extended (which is something that can happen without a major version bump | ||||
| // of the API package). | ||||
| type Float64UpDownCounter interface{ float64UpDownCounter() } | ||||
| 
 | ||||
| // Int64Counter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64Counter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Counter] if you want users | ||||
| // to experience a compilation error, signaling they need to update to your | ||||
| // latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Counter] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Int64Counter interface{ int64Counter() } | ||||
| 
 | ||||
| // Int64Histogram is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64Histogram]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Histogram] if you want | ||||
| // users to experience a compilation error, signaling they need to update to | ||||
| // your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64Histogram] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Int64Histogram interface{ int64Histogram() } | ||||
| 
 | ||||
| // Int64ObservableCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableCounter] if you | ||||
| // want users to experience a compilation error, signaling they need to update | ||||
| // to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableCounter] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Int64ObservableCounter interface{ int64ObservableCounter() } | ||||
| 
 | ||||
| // Int64ObservableGauge is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableGauge]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableGauge] if you | ||||
| // want users to experience a compilation error, signaling they need to update | ||||
| // to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableGauge] interface | ||||
| // is extended (which is something that can happen without a major version bump | ||||
| // of the API package). | ||||
| type Int64ObservableGauge interface{ int64ObservableGauge() } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] if | ||||
| // you want users to experience a compilation error, signaling they need to | ||||
| // update to your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] | ||||
| // interface is extended (which is something that can happen without a major | ||||
| // version bump of the API package). | ||||
| type Int64ObservableUpDownCounter interface{ int64ObservableUpDownCounter() } | ||||
| 
 | ||||
| // Int64UpDownCounter is embedded in | ||||
| // [go.opentelemetry.io/otel/metric.Int64UpDownCounter]. | ||||
| // | ||||
| // Embed this interface in your implementation of the | ||||
| // [go.opentelemetry.io/otel/metric.Int64UpDownCounter] if you want | ||||
| // users to experience a compilation error, signaling they need to update to | ||||
| // your latest implementation, when the | ||||
| // [go.opentelemetry.io/otel/metric.Int64UpDownCounter] interface is | ||||
| // extended (which is something that can happen without a major version bump of | ||||
| // the API package). | ||||
| type Int64UpDownCounter interface{ int64UpDownCounter() } | ||||
|  | @ -19,31 +19,24 @@ import ( | |||
| 	"go.opentelemetry.io/otel/metric/internal/global" | ||||
| ) | ||||
| 
 | ||||
| // Meter returns a Meter from the global MeterProvider. The name must be the | ||||
| // name of the library providing instrumentation. This name may be the same as | ||||
| // the instrumented code only if that code provides built-in instrumentation. | ||||
| // If the name is empty, then a implementation defined default name will be | ||||
| // used instead. | ||||
| // Meter returns a Meter from the global MeterProvider. The | ||||
| // instrumentationName must be the name of the library providing | ||||
| // instrumentation. This name may be the same as the instrumented code only if | ||||
| // that code provides built-in instrumentation. If the instrumentationName is | ||||
| // empty, then a implementation defined default name will be used instead. | ||||
| // | ||||
| // If this is called before a global MeterProvider is registered the returned | ||||
| // Meter will be a No-op implementation of a Meter. When a global MeterProvider | ||||
| // is registered for the first time, the returned Meter, and all the | ||||
| // instruments it has created or will create, are recreated automatically from | ||||
| // the new MeterProvider. | ||||
| // | ||||
| // This is short for GetMeterProvider().Meter(name). | ||||
| // This is short for MeterProvider().Meter(name). | ||||
| func Meter(instrumentationName string, opts ...metric.MeterOption) metric.Meter { | ||||
| 	return MeterProvider().Meter(instrumentationName, opts...) | ||||
| } | ||||
| 
 | ||||
| // MeterProvider returns the registered global meter provider. | ||||
| // | ||||
| // If no global MeterProvider has been registered, a No-op MeterProvider implementation is returned. When a global MeterProvider is registered for the first time, the returned MeterProvider, and all the Meters it has created or will create, are recreated automatically from the new MeterProvider. | ||||
| // If none is registered then a No-op MeterProvider is returned. | ||||
| func MeterProvider() metric.MeterProvider { | ||||
| 	return global.MeterProvider() | ||||
| } | ||||
| 
 | ||||
| // SetMeterProvider registers mp as the global MeterProvider. | ||||
| // SetMeterProvider registers `mp` as the global meter provider. | ||||
| func SetMeterProvider(mp metric.MeterProvider) { | ||||
| 	global.SetMeterProvider(mp) | ||||
| } | ||||
							
								
								
									
										332
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										332
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,332 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import "go.opentelemetry.io/otel/attribute" | ||||
| 
 | ||||
| // Observable is used as a grouping mechanism for all instruments that are | ||||
| // updated within a Callback. | ||||
| type Observable interface { | ||||
| 	observable() | ||||
| } | ||||
| 
 | ||||
| // InstrumentOption applies options to all instruments. | ||||
| type InstrumentOption interface { | ||||
| 	Int64CounterOption | ||||
| 	Int64UpDownCounterOption | ||||
| 	Int64HistogramOption | ||||
| 	Int64ObservableCounterOption | ||||
| 	Int64ObservableUpDownCounterOption | ||||
| 	Int64ObservableGaugeOption | ||||
| 
 | ||||
| 	Float64CounterOption | ||||
| 	Float64UpDownCounterOption | ||||
| 	Float64HistogramOption | ||||
| 	Float64ObservableCounterOption | ||||
| 	Float64ObservableUpDownCounterOption | ||||
| 	Float64ObservableGaugeOption | ||||
| } | ||||
| 
 | ||||
| type descOpt string | ||||
| 
 | ||||
| func (o descOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // WithDescription sets the instrument description. | ||||
| func WithDescription(desc string) InstrumentOption { return descOpt(desc) } | ||||
| 
 | ||||
| type unitOpt string | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // WithUnit sets the instrument unit. | ||||
| func WithUnit(u string) InstrumentOption { return unitOpt(u) } | ||||
| 
 | ||||
| // AddOption applies options to an addition measurement. See | ||||
| // [MeasurementOption] for other options that can be used as a AddOption. | ||||
| type AddOption interface { | ||||
| 	applyAdd(AddConfig) AddConfig | ||||
| } | ||||
| 
 | ||||
| // AddConfig contains options for an addition measurement. | ||||
| type AddConfig struct { | ||||
| 	attrs attribute.Set | ||||
| } | ||||
| 
 | ||||
| // NewAddConfig returns a new [AddConfig] with all opts applied. | ||||
| func NewAddConfig(opts []AddOption) AddConfig { | ||||
| 	config := AddConfig{attrs: *attribute.EmptySet()} | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyAdd(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Attributes returns the configured attribute set. | ||||
| func (c AddConfig) Attributes() attribute.Set { | ||||
| 	return c.attrs | ||||
| } | ||||
| 
 | ||||
| // RecordOption applies options to an addition measurement. See | ||||
| // [MeasurementOption] for other options that can be used as a RecordOption. | ||||
| type RecordOption interface { | ||||
| 	applyRecord(RecordConfig) RecordConfig | ||||
| } | ||||
| 
 | ||||
| // RecordConfig contains options for a recorded measurement. | ||||
| type RecordConfig struct { | ||||
| 	attrs attribute.Set | ||||
| } | ||||
| 
 | ||||
| // NewRecordConfig returns a new [RecordConfig] with all opts applied. | ||||
| func NewRecordConfig(opts []RecordOption) RecordConfig { | ||||
| 	config := RecordConfig{attrs: *attribute.EmptySet()} | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyRecord(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Attributes returns the configured attribute set. | ||||
| func (c RecordConfig) Attributes() attribute.Set { | ||||
| 	return c.attrs | ||||
| } | ||||
| 
 | ||||
| // ObserveOption applies options to an addition measurement. See | ||||
| // [MeasurementOption] for other options that can be used as a ObserveOption. | ||||
| type ObserveOption interface { | ||||
| 	applyObserve(ObserveConfig) ObserveConfig | ||||
| } | ||||
| 
 | ||||
| // ObserveConfig contains options for an observed measurement. | ||||
| type ObserveConfig struct { | ||||
| 	attrs attribute.Set | ||||
| } | ||||
| 
 | ||||
| // NewObserveConfig returns a new [ObserveConfig] with all opts applied. | ||||
| func NewObserveConfig(opts []ObserveOption) ObserveConfig { | ||||
| 	config := ObserveConfig{attrs: *attribute.EmptySet()} | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyObserve(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Attributes returns the configured attribute set. | ||||
| func (c ObserveConfig) Attributes() attribute.Set { | ||||
| 	return c.attrs | ||||
| } | ||||
| 
 | ||||
| // MeasurementOption applies options to all instrument measurement. | ||||
| type MeasurementOption interface { | ||||
| 	AddOption | ||||
| 	RecordOption | ||||
| 	ObserveOption | ||||
| } | ||||
| 
 | ||||
| type attrOpt struct { | ||||
| 	set attribute.Set | ||||
| } | ||||
| 
 | ||||
| // mergeSets returns the union of keys between a and b. Any duplicate keys will | ||||
| // use the value associated with b. | ||||
| func mergeSets(a, b attribute.Set) attribute.Set { | ||||
| 	// NewMergeIterator uses the first value for any duplicates. | ||||
| 	iter := attribute.NewMergeIterator(&b, &a) | ||||
| 	merged := make([]attribute.KeyValue, 0, a.Len()+b.Len()) | ||||
| 	for iter.Next() { | ||||
| 		merged = append(merged, iter.Attribute()) | ||||
| 	} | ||||
| 	return attribute.NewSet(merged...) | ||||
| } | ||||
| 
 | ||||
| func (o attrOpt) applyAdd(c AddConfig) AddConfig { | ||||
| 	switch { | ||||
| 	case o.set.Len() == 0: | ||||
| 	case c.attrs.Len() == 0: | ||||
| 		c.attrs = o.set | ||||
| 	default: | ||||
| 		c.attrs = mergeSets(c.attrs, o.set) | ||||
| 	} | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o attrOpt) applyRecord(c RecordConfig) RecordConfig { | ||||
| 	switch { | ||||
| 	case o.set.Len() == 0: | ||||
| 	case c.attrs.Len() == 0: | ||||
| 		c.attrs = o.set | ||||
| 	default: | ||||
| 		c.attrs = mergeSets(c.attrs, o.set) | ||||
| 	} | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o attrOpt) applyObserve(c ObserveConfig) ObserveConfig { | ||||
| 	switch { | ||||
| 	case o.set.Len() == 0: | ||||
| 	case c.attrs.Len() == 0: | ||||
| 		c.attrs = o.set | ||||
| 	default: | ||||
| 		c.attrs = mergeSets(c.attrs, o.set) | ||||
| 	} | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // WithAttributeSet sets the attribute Set associated with a measurement is | ||||
| // made with. | ||||
| // | ||||
| // If multiple WithAttributeSet or WithAttributes options are passed the | ||||
| // attributes will be merged together in the order they are passed. Attributes | ||||
| // with duplicate keys will use the last value passed. | ||||
| func WithAttributeSet(attributes attribute.Set) MeasurementOption { | ||||
| 	return attrOpt{set: attributes} | ||||
| } | ||||
| 
 | ||||
| // WithAttributes converts attributes into an attribute Set and sets the Set to | ||||
| // be associated with a measurement. This is shorthand for: | ||||
| // | ||||
| //	cp := make([]attribute.KeyValue, len(attributes)) | ||||
| //	copy(cp, attributes) | ||||
| //	WithAttributes(attribute.NewSet(cp...)) | ||||
| // | ||||
| // [attribute.NewSet] may modify the passed attributes so this will make a copy | ||||
| // of attributes before creating a set in order to ensure this function is | ||||
| // concurrent safe. This makes this option function less optimized in | ||||
| // comparison to [WithAttributeSet]. Therefore, [WithAttributeSet] should be | ||||
| // preferred for performance sensitive code. | ||||
| // | ||||
| // See [WithAttributeSet] for information about how multiple WithAttributes are | ||||
| // merged. | ||||
| func WithAttributes(attributes ...attribute.KeyValue) MeasurementOption { | ||||
| 	cp := make([]attribute.KeyValue, len(attributes)) | ||||
| 	copy(cp, attributes) | ||||
| 	return attrOpt{set: attribute.NewSet(cp...)} | ||||
| } | ||||
							
								
								
									
										130
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,130 @@ | |||
| // 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 instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| ) | ||||
| 
 | ||||
| // Float64Observable describes a set of instruments used asynchronously to | ||||
| // record float64 measurements once per collection cycle. Observations of | ||||
| // these instruments are only made within a callback. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64Observable interface { | ||||
| 	Asynchronous | ||||
| 
 | ||||
| 	float64Observable() | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableCounter is an instrument used to asynchronously record | ||||
| // increasing float64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. The value observed is | ||||
| // assumed the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64ObservableCounter interface{ Float64Observable } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounter is an instrument used to asynchronously | ||||
| // record float64 measurements once per collection cycle. Observations are only | ||||
| // made within a callback for this instrument. The value observed is assumed | ||||
| // the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64ObservableUpDownCounter interface{ Float64Observable } | ||||
| 
 | ||||
| // Float64ObservableGauge is an instrument used to asynchronously record | ||||
| // instantaneous float64 measurements once per collection cycle. Observations | ||||
| // are only made within a callback for this instrument. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64ObservableGauge interface{ Float64Observable } | ||||
| 
 | ||||
| // Float64Observer is a recorder of float64 measurements. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64Observer interface { | ||||
| 	Observe(value float64, attributes ...attribute.KeyValue) | ||||
| } | ||||
| 
 | ||||
| // Float64Callback is a function registered with a Meter that makes | ||||
| // observations for a Float64Observerable instrument it is registered with. | ||||
| // Calls to the Float64Observer record measurement values for the | ||||
| // Float64Observable. | ||||
| // | ||||
| // The function needs to complete in a finite amount of time and the deadline | ||||
| // of the passed context is expected to be honored. | ||||
| // | ||||
| // The function needs to make unique observations across all registered | ||||
| // Float64Callbacks. Meaning, it should not report measurements with the same | ||||
| // attributes as another Float64Callbacks also registered for the same | ||||
| // instrument. | ||||
| // | ||||
| // The function needs to be concurrent safe. | ||||
| type Float64Callback func(context.Context, Float64Observer) error | ||||
| 
 | ||||
| // Float64ObserverConfig contains options for Asynchronous instruments that | ||||
| // observe float64 values. | ||||
| type Float64ObserverConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Float64Callback | ||||
| } | ||||
| 
 | ||||
| // NewFloat64ObserverConfig returns a new Float64ObserverConfig with all opts | ||||
| // applied. | ||||
| func NewFloat64ObserverConfig(opts ...Float64ObserverOption) Float64ObserverConfig { | ||||
| 	var config Float64ObserverConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64Observer(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the Config description. | ||||
| func (c Float64ObserverConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the Config unit. | ||||
| func (c Float64ObserverConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the Config callbacks. | ||||
| func (c Float64ObserverConfig) Callbacks() []Float64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Float64ObserverOption applies options to float64 Observer instruments. | ||||
| type Float64ObserverOption interface { | ||||
| 	applyFloat64Observer(Float64ObserverConfig) Float64ObserverConfig | ||||
| } | ||||
| 
 | ||||
| type float64ObserverOptionFunc func(Float64ObserverConfig) Float64ObserverConfig | ||||
| 
 | ||||
| func (fn float64ObserverOptionFunc) applyFloat64Observer(cfg Float64ObserverConfig) Float64ObserverConfig { | ||||
| 	return fn(cfg) | ||||
| } | ||||
| 
 | ||||
| // WithFloat64Callback adds callback to be called for an instrument. | ||||
| func WithFloat64Callback(callback Float64Callback) Float64ObserverOption { | ||||
| 	return float64ObserverOptionFunc(func(cfg Float64ObserverConfig) Float64ObserverConfig { | ||||
| 		cfg.callbacks = append(cfg.callbacks, callback) | ||||
| 		return cfg | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										130
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										130
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,130 @@ | |||
| // 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 instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| ) | ||||
| 
 | ||||
| // Int64Observable describes a set of instruments used asynchronously to record | ||||
| // int64 measurements once per collection cycle. Observations of these | ||||
| // instruments are only made within a callback. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64Observable interface { | ||||
| 	Asynchronous | ||||
| 
 | ||||
| 	int64Observable() | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableCounter is an instrument used to asynchronously record | ||||
| // increasing int64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. The value observed is | ||||
| // assumed the to be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64ObservableCounter interface{ Int64Observable } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounter is an instrument used to asynchronously record | ||||
| // int64 measurements once per collection cycle. Observations are only made | ||||
| // within a callback for this instrument. The value observed is assumed the to | ||||
| // be the cumulative sum of the count. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64ObservableUpDownCounter interface{ Int64Observable } | ||||
| 
 | ||||
| // Int64ObservableGauge is an instrument used to asynchronously record | ||||
| // instantaneous int64 measurements once per collection cycle. Observations are | ||||
| // only made within a callback for this instrument. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64ObservableGauge interface{ Int64Observable } | ||||
| 
 | ||||
| // Int64Observer is a recorder of int64 measurements. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64Observer interface { | ||||
| 	Observe(value int64, attributes ...attribute.KeyValue) | ||||
| } | ||||
| 
 | ||||
| // Int64Callback is a function registered with a Meter that makes | ||||
| // observations for a Int64Observerable instrument it is registered with. | ||||
| // Calls to the Int64Observer record measurement values for the | ||||
| // Int64Observable. | ||||
| // | ||||
| // The function needs to complete in a finite amount of time and the deadline | ||||
| // of the passed context is expected to be honored. | ||||
| // | ||||
| // The function needs to make unique observations across all registered | ||||
| // Int64Callback. Meaning, it should not report measurements with the same | ||||
| // attributes as another Int64Callbacks also registered for the same | ||||
| // instrument. | ||||
| // | ||||
| // The function needs to be concurrent safe. | ||||
| type Int64Callback func(context.Context, Int64Observer) error | ||||
| 
 | ||||
| // Int64ObserverConfig contains options for Asynchronous instruments that | ||||
| // observe int64 values. | ||||
| type Int64ObserverConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| 	callbacks   []Int64Callback | ||||
| } | ||||
| 
 | ||||
| // NewInt64ObserverConfig returns a new Int64ObserverConfig with all opts | ||||
| // applied. | ||||
| func NewInt64ObserverConfig(opts ...Int64ObserverOption) Int64ObserverConfig { | ||||
| 	var config Int64ObserverConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64Observer(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the Config description. | ||||
| func (c Int64ObserverConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the Config unit. | ||||
| func (c Int64ObserverConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Callbacks returns the Config callbacks. | ||||
| func (c Int64ObserverConfig) Callbacks() []Int64Callback { | ||||
| 	return c.callbacks | ||||
| } | ||||
| 
 | ||||
| // Int64ObserverOption applies options to int64 Observer instruments. | ||||
| type Int64ObserverOption interface { | ||||
| 	applyInt64Observer(Int64ObserverConfig) Int64ObserverConfig | ||||
| } | ||||
| 
 | ||||
| type int64ObserverOptionFunc func(Int64ObserverConfig) Int64ObserverConfig | ||||
| 
 | ||||
| func (fn int64ObserverOptionFunc) applyInt64Observer(cfg Int64ObserverConfig) Int64ObserverConfig { | ||||
| 	return fn(cfg) | ||||
| } | ||||
| 
 | ||||
| // WithInt64Callback adds callback to be called for an instrument. | ||||
| func WithInt64Callback(callback Int64Callback) Int64ObserverOption { | ||||
| 	return int64ObserverOptionFunc(func(cfg Int64ObserverConfig) Int64ObserverConfig { | ||||
| 		cfg.callbacks = append(cfg.callbacks, callback) | ||||
| 		return cfg | ||||
| 	}) | ||||
| } | ||||
							
								
								
									
										452
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/deprecation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										452
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/deprecation.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,452 +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 instrument provides the OpenTelemetry API instruments used to make | ||||
| // measurements. | ||||
| // | ||||
| // Deprecated: Use go.opentelemetry.io/otel/metric instead. | ||||
| package instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| import ( | ||||
| 	"go.opentelemetry.io/otel/metric" | ||||
| ) | ||||
| 
 | ||||
| // Float64Observable is an alias for [metric.Float64Observable]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64Observable] instead. | ||||
| type Float64Observable metric.Float64Observable | ||||
| 
 | ||||
| // Float64ObservableCounter is an alias for [metric.Float64ObservableCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableCounter] instead. | ||||
| type Float64ObservableCounter metric.Float64ObservableCounter | ||||
| 
 | ||||
| // Float64ObservableCounterConfig is an alias for | ||||
| // [metric.Float64ObservableCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableCounterConfig] instead. | ||||
| type Float64ObservableCounterConfig metric.Float64ObservableCounterConfig | ||||
| 
 | ||||
| // NewFloat64ObservableCounterConfig wraps | ||||
| // [metric.NewFloat64ObservableCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64ObservableCounterConfig] instead. | ||||
| func NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig { | ||||
| 	o := make([]metric.Float64ObservableCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64ObservableCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64ObservableCounterConfig(o...) | ||||
| 	return Float64ObservableCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableCounterOption is an alias for | ||||
| // [metric.Float64ObservableCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableCounterOption] instead. | ||||
| type Float64ObservableCounterOption metric.Float64ObservableCounterOption | ||||
| 
 | ||||
| // Float64ObservableUpDownCounter is an alias for | ||||
| // [metric.Float64ObservableUpDownCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableUpDownCounter] instead. | ||||
| type Float64ObservableUpDownCounter metric.Float64ObservableUpDownCounter | ||||
| 
 | ||||
| // Float64ObservableUpDownCounterConfig is an alias for | ||||
| // [metric.Float64ObservableUpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableUpDownCounterConfig] instead. | ||||
| type Float64ObservableUpDownCounterConfig metric.Float64ObservableUpDownCounterConfig | ||||
| 
 | ||||
| // NewFloat64ObservableUpDownCounterConfig wraps | ||||
| // [metric.NewFloat64ObservableUpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64ObservableUpDownCounterConfig] instead. | ||||
| func NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig { | ||||
| 	o := make([]metric.Float64ObservableUpDownCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64ObservableUpDownCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64ObservableUpDownCounterConfig(o...) | ||||
| 	return Float64ObservableUpDownCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableUpDownCounterOption is an alias for | ||||
| // [metric.Float64ObservableUpDownCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableUpDownCounterOption] instead. | ||||
| type Float64ObservableUpDownCounterOption metric.Float64ObservableUpDownCounterOption | ||||
| 
 | ||||
| // Float64ObservableGauge is an alias for [metric.Float64ObservableGauge]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableGauge] instead. | ||||
| type Float64ObservableGauge metric.Float64ObservableGauge | ||||
| 
 | ||||
| // Float64ObservableGaugeConfig is an alias for | ||||
| // [metric.Float64ObservableGaugeConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableGaugeConfig] instead. | ||||
| type Float64ObservableGaugeConfig metric.Float64ObservableGaugeConfig | ||||
| 
 | ||||
| // NewFloat64ObservableGaugeConfig wraps | ||||
| // [metric.NewFloat64ObservableGaugeConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64ObservableGaugeConfig] instead. | ||||
| func NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig { | ||||
| 	o := make([]metric.Float64ObservableGaugeOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64ObservableGaugeOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64ObservableGaugeConfig(o...) | ||||
| 	return Float64ObservableGaugeConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64ObservableGaugeOption is an alias for | ||||
| // [metric.Float64ObservableGaugeOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableGaugeOption] instead. | ||||
| type Float64ObservableGaugeOption metric.Float64ObservableGaugeOption | ||||
| 
 | ||||
| // Float64Observer is an alias for [metric.Float64Observer]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64Observer] instead. | ||||
| type Float64Observer metric.Float64Observer | ||||
| 
 | ||||
| // Float64Callback is an alias for [metric.Float64Callback]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64Callback] instead. | ||||
| type Float64Callback metric.Float64Callback | ||||
| 
 | ||||
| // Float64ObservableOption is an alias for [metric.Float64ObservableOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64ObservableOption] instead. | ||||
| type Float64ObservableOption metric.Float64ObservableOption | ||||
| 
 | ||||
| // WithFloat64Callback wraps [metric.WithFloat64Callback]. | ||||
| // | ||||
| // Deprecated: Use [metric.WithFloat64Callback] instead. | ||||
| func WithFloat64Callback(callback Float64Callback) Float64ObservableOption { | ||||
| 	cback := metric.Float64Callback(callback) | ||||
| 	opt := metric.WithFloat64Callback(cback) | ||||
| 	return Float64ObservableOption(opt) | ||||
| } | ||||
| 
 | ||||
| // Int64Observable is an alias for [metric.Int64Observable]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64Observable] instead. | ||||
| type Int64Observable metric.Int64Observable | ||||
| 
 | ||||
| // Int64ObservableCounter is an alias for [metric.Int64ObservableCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableCounter] instead. | ||||
| type Int64ObservableCounter metric.Int64ObservableCounter | ||||
| 
 | ||||
| // Int64ObservableCounterConfig is an alias for | ||||
| // [metric.Int64ObservableCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableCounterConfig] instead. | ||||
| type Int64ObservableCounterConfig metric.Int64ObservableCounterConfig | ||||
| 
 | ||||
| // NewInt64ObservableCounterConfig wraps | ||||
| // [metric.NewInt64ObservableCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64ObservableCounterConfig] instead. | ||||
| func NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig { | ||||
| 	o := make([]metric.Int64ObservableCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64ObservableCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64ObservableCounterConfig(o...) | ||||
| 	return Int64ObservableCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableCounterOption is an alias for | ||||
| // [metric.Int64ObservableCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableCounterOption] instead. | ||||
| type Int64ObservableCounterOption metric.Int64ObservableCounterOption | ||||
| 
 | ||||
| // Int64ObservableUpDownCounter is an alias for | ||||
| // [metric.Int64ObservableUpDownCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableUpDownCounter] instead. | ||||
| type Int64ObservableUpDownCounter metric.Int64ObservableUpDownCounter | ||||
| 
 | ||||
| // Int64ObservableUpDownCounterConfig is an alias for | ||||
| // [metric.Int64ObservableUpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableUpDownCounterConfig] instead. | ||||
| type Int64ObservableUpDownCounterConfig metric.Int64ObservableUpDownCounterConfig | ||||
| 
 | ||||
| // NewInt64ObservableUpDownCounterConfig wraps | ||||
| // [metric.NewInt64ObservableUpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64ObservableUpDownCounterConfig] instead. | ||||
| func NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig { | ||||
| 	o := make([]metric.Int64ObservableUpDownCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64ObservableUpDownCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64ObservableUpDownCounterConfig(o...) | ||||
| 	return Int64ObservableUpDownCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableUpDownCounterOption is an alias for | ||||
| // [metric.Int64ObservableUpDownCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableUpDownCounterOption] instead. | ||||
| type Int64ObservableUpDownCounterOption metric.Int64ObservableUpDownCounterOption | ||||
| 
 | ||||
| // Int64ObservableGauge is an alias for [metric.Int64ObservableGauge]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableGauge] instead. | ||||
| type Int64ObservableGauge metric.Int64ObservableGauge | ||||
| 
 | ||||
| // Int64ObservableGaugeConfig is an alias for | ||||
| // [metric.Int64ObservableGaugeConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableGaugeConfig] instead. | ||||
| type Int64ObservableGaugeConfig metric.Int64ObservableGaugeConfig | ||||
| 
 | ||||
| // NewInt64ObservableGaugeConfig wraps [metric.NewInt64ObservableGaugeConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64ObservableGaugeConfig] instead. | ||||
| func NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig { | ||||
| 	o := make([]metric.Int64ObservableGaugeOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64ObservableGaugeOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64ObservableGaugeConfig(o...) | ||||
| 	return Int64ObservableGaugeConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64ObservableGaugeOption is an alias for | ||||
| // [metric.Int64ObservableGaugeOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableGaugeOption] instead. | ||||
| type Int64ObservableGaugeOption metric.Int64ObservableGaugeOption | ||||
| 
 | ||||
| // Int64Observer is an alias for [metric.Int64Observer]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64Observer] instead. | ||||
| type Int64Observer metric.Int64Observer | ||||
| 
 | ||||
| // Int64Callback is an alias for [metric.Int64Callback]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64Callback] instead. | ||||
| type Int64Callback metric.Int64Callback | ||||
| 
 | ||||
| // Int64ObservableOption is an alias for [metric.Int64ObservableOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64ObservableOption] instead. | ||||
| type Int64ObservableOption metric.Int64ObservableOption | ||||
| 
 | ||||
| // WithInt64Callback wraps [metric.WithInt64Callback]. | ||||
| // | ||||
| // Deprecated: Use [metric.WithInt64Callback] instead. | ||||
| func WithInt64Callback(callback Int64Callback) Int64ObservableOption { | ||||
| 	cback := metric.Int64Callback(callback) | ||||
| 	opt := metric.WithInt64Callback(cback) | ||||
| 	return Int64ObservableOption(opt) | ||||
| } | ||||
| 
 | ||||
| // Float64Counter is an alias for [metric.Float64Counter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64Counter] instead. | ||||
| type Float64Counter metric.Float64Counter | ||||
| 
 | ||||
| // Float64CounterConfig is an alias for [metric.Float64CounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64CounterConfig] instead. | ||||
| type Float64CounterConfig metric.Float64CounterConfig | ||||
| 
 | ||||
| // NewFloat64CounterConfig wraps [metric.NewFloat64CounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64CounterConfig] instead. | ||||
| func NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig { | ||||
| 	o := make([]metric.Float64CounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64CounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64CounterConfig(o...) | ||||
| 	return Float64CounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64CounterOption is an alias for [metric.Float64CounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64CounterOption] instead. | ||||
| type Float64CounterOption metric.Float64CounterOption | ||||
| 
 | ||||
| // Float64UpDownCounter is an alias for [metric.Float64UpDownCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64UpDownCounter] instead. | ||||
| type Float64UpDownCounter metric.Float64UpDownCounter | ||||
| 
 | ||||
| // Float64UpDownCounterConfig is an alias for | ||||
| // [metric.Float64UpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64UpDownCounterConfig] instead. | ||||
| type Float64UpDownCounterConfig metric.Float64UpDownCounterConfig | ||||
| 
 | ||||
| // NewFloat64UpDownCounterConfig wraps [metric.NewFloat64UpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64UpDownCounterConfig] instead. | ||||
| func NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig { | ||||
| 	o := make([]metric.Float64UpDownCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64UpDownCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64UpDownCounterConfig(o...) | ||||
| 	return Float64UpDownCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64UpDownCounterOption is an alias for | ||||
| // [metric.Float64UpDownCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64UpDownCounterOption] instead. | ||||
| type Float64UpDownCounterOption metric.Float64UpDownCounterOption | ||||
| 
 | ||||
| // Float64Histogram is an alias for [metric.Float64Histogram]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64Histogram] instead. | ||||
| type Float64Histogram metric.Float64Histogram | ||||
| 
 | ||||
| // Float64HistogramConfig is an alias for [metric.Float64HistogramConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64HistogramConfig] instead. | ||||
| type Float64HistogramConfig metric.Float64HistogramConfig | ||||
| 
 | ||||
| // NewFloat64HistogramConfig wraps [metric.NewFloat64HistogramConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewFloat64HistogramConfig] instead. | ||||
| func NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig { | ||||
| 	o := make([]metric.Float64HistogramOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Float64HistogramOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewFloat64HistogramConfig(o...) | ||||
| 	return Float64HistogramConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Float64HistogramOption is an alias for [metric.Float64HistogramOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Float64HistogramOption] instead. | ||||
| type Float64HistogramOption metric.Float64HistogramOption | ||||
| 
 | ||||
| // Int64Counter is an alias for [metric.Int64Counter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64Counter] instead. | ||||
| type Int64Counter metric.Int64Counter | ||||
| 
 | ||||
| // Int64CounterConfig is an alias for [metric.Int64CounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64CounterConfig] instead. | ||||
| type Int64CounterConfig metric.Int64CounterConfig | ||||
| 
 | ||||
| // NewInt64CounterConfig wraps [metric.NewInt64CounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64CounterConfig] instead. | ||||
| func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig { | ||||
| 	o := make([]metric.Int64CounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64CounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64CounterConfig(o...) | ||||
| 	return Int64CounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64CounterOption is an alias for [metric.Int64CounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64CounterOption] instead. | ||||
| type Int64CounterOption metric.Int64CounterOption | ||||
| 
 | ||||
| // Int64UpDownCounter is an alias for [metric.Int64UpDownCounter]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64UpDownCounter] instead. | ||||
| type Int64UpDownCounter metric.Int64UpDownCounter | ||||
| 
 | ||||
| // Int64UpDownCounterConfig is an alias for [metric.Int64UpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64UpDownCounterConfig] instead. | ||||
| type Int64UpDownCounterConfig metric.Int64UpDownCounterConfig | ||||
| 
 | ||||
| // NewInt64UpDownCounterConfig wraps [metric.NewInt64UpDownCounterConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64UpDownCounterConfig] instead. | ||||
| func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig { | ||||
| 	o := make([]metric.Int64UpDownCounterOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64UpDownCounterOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64UpDownCounterConfig(o...) | ||||
| 	return Int64UpDownCounterConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64UpDownCounterOption is an alias for [metric.Int64UpDownCounterOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64UpDownCounterOption] instead. | ||||
| type Int64UpDownCounterOption metric.Int64UpDownCounterOption | ||||
| 
 | ||||
| // Int64Histogram is an alias for [metric.Int64Histogram]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64Histogram] instead. | ||||
| type Int64Histogram metric.Int64Histogram | ||||
| 
 | ||||
| // Int64HistogramConfig is an alias for [metric.Int64HistogramConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64HistogramConfig] instead. | ||||
| type Int64HistogramConfig metric.Int64HistogramConfig | ||||
| 
 | ||||
| // NewInt64HistogramConfig wraps [metric.NewInt64HistogramConfig]. | ||||
| // | ||||
| // Deprecated: Use [metric.NewInt64HistogramConfig] instead. | ||||
| func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig { | ||||
| 	o := make([]metric.Int64HistogramOption, len(opts)) | ||||
| 	for i := range opts { | ||||
| 		o[i] = metric.Int64HistogramOption(opts[i]) | ||||
| 	} | ||||
| 	c := metric.NewInt64HistogramConfig(o...) | ||||
| 	return Int64HistogramConfig(c) | ||||
| } | ||||
| 
 | ||||
| // Int64HistogramOption is an alias for [metric.Int64HistogramOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.Int64HistogramOption] instead. | ||||
| type Int64HistogramOption metric.Int64HistogramOption | ||||
| 
 | ||||
| // Observable is an alias for [metric.Observable]. | ||||
| // | ||||
| // Deprecated: Use [metric.Observable] instead. | ||||
| type Observable metric.Observable | ||||
| 
 | ||||
| // Option is an alias for [metric.InstrumentOption]. | ||||
| // | ||||
| // Deprecated: Use [metric.InstrumentOption] instead. | ||||
| type Option metric.InstrumentOption | ||||
| 
 | ||||
| // WithDescription is an alias for [metric.WithDescription]. | ||||
| // | ||||
| // Deprecated: Use [metric.WithDescription] instead. | ||||
| func WithDescription(desc string) Option { | ||||
| 	o := metric.WithDescription(desc) | ||||
| 	return Option(o) | ||||
| } | ||||
| 
 | ||||
| // WithUnit is an alias for [metric.WithUnit]. | ||||
| // | ||||
| // Deprecated: Use [metric.WithUnit] instead. | ||||
| func WithUnit(u string) Option { | ||||
| 	o := metric.WithUnit(u) | ||||
| 	return Option(o) | ||||
| } | ||||
							
								
								
									
										88
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/instrument.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/instrument.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,88 @@ | |||
| // 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 instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| // Asynchronous instruments are instruments that are updated within a Callback. | ||||
| // If an instrument is observed outside of it's callback it should be an error. | ||||
| // | ||||
| // This interface is used as a grouping mechanism. | ||||
| type Asynchronous interface { | ||||
| 	asynchronous() | ||||
| } | ||||
| 
 | ||||
| // Synchronous instruments are updated in line with application code. | ||||
| // | ||||
| // This interface is used as a grouping mechanism. | ||||
| type Synchronous interface { | ||||
| 	synchronous() | ||||
| } | ||||
| 
 | ||||
| // Option applies options to all instruments. | ||||
| type Option interface { | ||||
| 	Float64ObserverOption | ||||
| 	Int64ObserverOption | ||||
| 	Float64Option | ||||
| 	Int64Option | ||||
| } | ||||
| 
 | ||||
| type descOpt string | ||||
| 
 | ||||
| func (o descOpt) applyFloat64(c Float64Config) Float64Config { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64(c Int64Config) Int64Config { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyFloat64Observer(c Float64ObserverConfig) Float64ObserverConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o descOpt) applyInt64Observer(c Int64ObserverConfig) Int64ObserverConfig { | ||||
| 	c.description = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // WithDescription sets the instrument description. | ||||
| func WithDescription(desc string) Option { return descOpt(desc) } | ||||
| 
 | ||||
| type unitOpt string | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64(c Float64Config) Float64Config { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64(c Int64Config) Int64Config { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyFloat64Observer(c Float64ObserverConfig) Float64ObserverConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| func (o unitOpt) applyInt64Observer(c Int64ObserverConfig) Int64ObserverConfig { | ||||
| 	c.unit = string(o) | ||||
| 	return c | ||||
| } | ||||
| 
 | ||||
| // WithUnit sets the instrument unit. | ||||
| func WithUnit(u string) Option { return unitOpt(u) } | ||||
							
								
								
									
										85
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,85 @@ | |||
| // 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 instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| ) | ||||
| 
 | ||||
| // Float64Counter is an instrument that records increasing float64 values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64Counter interface { | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Float64UpDownCounter is an instrument that records increasing or decreasing | ||||
| // float64 values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64UpDownCounter interface { | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Float64Histogram is an instrument that records a distribution of float64 | ||||
| // values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Float64Histogram interface { | ||||
| 	// Record adds an additional value to the distribution. | ||||
| 	Record(ctx context.Context, incr float64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Float64Config contains options for Asynchronous instruments that | ||||
| // observe float64 values. | ||||
| type Float64Config struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // Float64Config contains options for Synchronous instruments that record | ||||
| // float64 values. | ||||
| func NewFloat64Config(opts ...Float64Option) Float64Config { | ||||
| 	var config Float64Config | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the Config description. | ||||
| func (c Float64Config) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the Config unit. | ||||
| func (c Float64Config) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Float64Option applies options to synchronous float64 instruments. | ||||
| type Float64Option interface { | ||||
| 	applyFloat64(Float64Config) Float64Config | ||||
| } | ||||
							
								
								
									
										85
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,85 @@ | |||
| // 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 instrument // import "go.opentelemetry.io/otel/metric/instrument" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| ) | ||||
| 
 | ||||
| // Int64Counter is an instrument that records increasing int64 values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64Counter interface { | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr int64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Int64UpDownCounter is an instrument that records increasing or decreasing | ||||
| // int64 values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64UpDownCounter interface { | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr int64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Int64Histogram is an instrument that records a distribution of int64 | ||||
| // values. | ||||
| // | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Int64Histogram interface { | ||||
| 	// Record adds an additional value to the distribution. | ||||
| 	Record(ctx context.Context, incr int64, attrs ...attribute.KeyValue) | ||||
| 
 | ||||
| 	Synchronous | ||||
| } | ||||
| 
 | ||||
| // Int64Config contains options for Synchronous instruments that record int64 | ||||
| // values. | ||||
| type Int64Config struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewInt64Config returns a new Int64Config with all opts | ||||
| // applied. | ||||
| func NewInt64Config(opts ...Int64Option) Int64Config { | ||||
| 	var config Int64Config | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the Config description. | ||||
| func (c Int64Config) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the Config unit. | ||||
| func (c Int64Config) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Int64Option applies options to synchronous int64 instruments. | ||||
| type Int64Option interface { | ||||
| 	applyInt64(Int64Config) Int64Config | ||||
| } | ||||
							
								
								
									
										167
									
								
								vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										167
									
								
								vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,27 +19,27 @@ import ( | |||
| 	"sync/atomic" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/metric" | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| ) | ||||
| 
 | ||||
| // unwrapper unwraps to return the underlying instrument implementation. | ||||
| type unwrapper interface { | ||||
| 	Unwrap() metric.Observable | ||||
| 	Unwrap() instrument.Asynchronous | ||||
| } | ||||
| 
 | ||||
| type afCounter struct { | ||||
| 	embedded.Float64ObservableCounter | ||||
| 	metric.Float64Observable | ||||
| 	instrument.Float64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64ObservableCounterOption | ||||
| 	opts []instrument.Float64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64ObservableCounter | ||||
| 	delegate atomic.Value //instrument.Float64ObservableCounter | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*afCounter)(nil) | ||||
| var _ metric.Float64ObservableCounter = (*afCounter)(nil) | ||||
| var _ instrument.Float64ObservableCounter = (*afCounter)(nil) | ||||
| 
 | ||||
| func (i *afCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64ObservableCounter(i.name, i.opts...) | ||||
|  | @ -50,25 +50,24 @@ func (i *afCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *afCounter) Unwrap() metric.Observable { | ||||
| func (i *afCounter) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Float64ObservableCounter) | ||||
| 		return ctr.(instrument.Float64ObservableCounter) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| type afUpDownCounter struct { | ||||
| 	embedded.Float64ObservableUpDownCounter | ||||
| 	metric.Float64Observable | ||||
| 	instrument.Float64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64ObservableUpDownCounterOption | ||||
| 	opts []instrument.Float64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64ObservableUpDownCounter | ||||
| 	delegate atomic.Value //instrument.Float64ObservableUpDownCounter | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*afUpDownCounter)(nil) | ||||
| var _ metric.Float64ObservableUpDownCounter = (*afUpDownCounter)(nil) | ||||
| var _ instrument.Float64ObservableUpDownCounter = (*afUpDownCounter)(nil) | ||||
| 
 | ||||
| func (i *afUpDownCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64ObservableUpDownCounter(i.name, i.opts...) | ||||
|  | @ -79,25 +78,24 @@ func (i *afUpDownCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *afUpDownCounter) Unwrap() metric.Observable { | ||||
| func (i *afUpDownCounter) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Float64ObservableUpDownCounter) | ||||
| 		return ctr.(instrument.Float64ObservableUpDownCounter) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| type afGauge struct { | ||||
| 	embedded.Float64ObservableGauge | ||||
| 	metric.Float64Observable | ||||
| 	instrument.Float64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64ObservableGaugeOption | ||||
| 	opts []instrument.Float64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64ObservableGauge | ||||
| 	delegate atomic.Value //instrument.Float64ObservableGauge | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*afGauge)(nil) | ||||
| var _ metric.Float64ObservableGauge = (*afGauge)(nil) | ||||
| var _ instrument.Float64ObservableGauge = (*afGauge)(nil) | ||||
| 
 | ||||
| func (i *afGauge) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64ObservableGauge(i.name, i.opts...) | ||||
|  | @ -108,25 +106,24 @@ func (i *afGauge) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *afGauge) Unwrap() metric.Observable { | ||||
| func (i *afGauge) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Float64ObservableGauge) | ||||
| 		return ctr.(instrument.Float64ObservableGauge) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| type aiCounter struct { | ||||
| 	embedded.Int64ObservableCounter | ||||
| 	metric.Int64Observable | ||||
| 	instrument.Int64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64ObservableCounterOption | ||||
| 	opts []instrument.Int64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64ObservableCounter | ||||
| 	delegate atomic.Value //instrument.Int64ObservableCounter | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*aiCounter)(nil) | ||||
| var _ metric.Int64ObservableCounter = (*aiCounter)(nil) | ||||
| var _ instrument.Int64ObservableCounter = (*aiCounter)(nil) | ||||
| 
 | ||||
| func (i *aiCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64ObservableCounter(i.name, i.opts...) | ||||
|  | @ -137,25 +134,24 @@ func (i *aiCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *aiCounter) Unwrap() metric.Observable { | ||||
| func (i *aiCounter) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Int64ObservableCounter) | ||||
| 		return ctr.(instrument.Int64ObservableCounter) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| type aiUpDownCounter struct { | ||||
| 	embedded.Int64ObservableUpDownCounter | ||||
| 	metric.Int64Observable | ||||
| 	instrument.Int64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64ObservableUpDownCounterOption | ||||
| 	opts []instrument.Int64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64ObservableUpDownCounter | ||||
| 	delegate atomic.Value //instrument.Int64ObservableUpDownCounter | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*aiUpDownCounter)(nil) | ||||
| var _ metric.Int64ObservableUpDownCounter = (*aiUpDownCounter)(nil) | ||||
| var _ instrument.Int64ObservableUpDownCounter = (*aiUpDownCounter)(nil) | ||||
| 
 | ||||
| func (i *aiUpDownCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64ObservableUpDownCounter(i.name, i.opts...) | ||||
|  | @ -166,25 +162,24 @@ func (i *aiUpDownCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *aiUpDownCounter) Unwrap() metric.Observable { | ||||
| func (i *aiUpDownCounter) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Int64ObservableUpDownCounter) | ||||
| 		return ctr.(instrument.Int64ObservableUpDownCounter) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| type aiGauge struct { | ||||
| 	embedded.Int64ObservableGauge | ||||
| 	metric.Int64Observable | ||||
| 	instrument.Int64Observable | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64ObservableGaugeOption | ||||
| 	opts []instrument.Int64ObserverOption | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64ObservableGauge | ||||
| 	delegate atomic.Value //instrument.Int64ObservableGauge | ||||
| } | ||||
| 
 | ||||
| var _ unwrapper = (*aiGauge)(nil) | ||||
| var _ metric.Int64ObservableGauge = (*aiGauge)(nil) | ||||
| var _ instrument.Int64ObservableGauge = (*aiGauge)(nil) | ||||
| 
 | ||||
| func (i *aiGauge) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64ObservableGauge(i.name, i.opts...) | ||||
|  | @ -195,24 +190,24 @@ func (i *aiGauge) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *aiGauge) Unwrap() metric.Observable { | ||||
| func (i *aiGauge) Unwrap() instrument.Asynchronous { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		return ctr.(metric.Int64ObservableGauge) | ||||
| 		return ctr.(instrument.Int64ObservableGauge) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // Sync Instruments. | ||||
| type sfCounter struct { | ||||
| 	embedded.Float64Counter | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64CounterOption | ||||
| 	opts []instrument.Float64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64Counter | ||||
| 	delegate atomic.Value //instrument.Float64Counter | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Float64Counter = (*sfCounter)(nil) | ||||
| var _ instrument.Float64Counter = (*sfCounter)(nil) | ||||
| 
 | ||||
| func (i *sfCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64Counter(i.name, i.opts...) | ||||
|  | @ -223,22 +218,22 @@ func (i *sfCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *sfCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) { | ||||
| func (i *sfCounter) Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Float64Counter).Add(ctx, incr, opts...) | ||||
| 		ctr.(instrument.Float64Counter).Add(ctx, incr, attrs...) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type sfUpDownCounter struct { | ||||
| 	embedded.Float64UpDownCounter | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64UpDownCounterOption | ||||
| 	opts []instrument.Float64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64UpDownCounter | ||||
| 	delegate atomic.Value //instrument.Float64UpDownCounter | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Float64UpDownCounter = (*sfUpDownCounter)(nil) | ||||
| var _ instrument.Float64UpDownCounter = (*sfUpDownCounter)(nil) | ||||
| 
 | ||||
| func (i *sfUpDownCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64UpDownCounter(i.name, i.opts...) | ||||
|  | @ -249,22 +244,22 @@ func (i *sfUpDownCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *sfUpDownCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) { | ||||
| func (i *sfUpDownCounter) Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Float64UpDownCounter).Add(ctx, incr, opts...) | ||||
| 		ctr.(instrument.Float64UpDownCounter).Add(ctx, incr, attrs...) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type sfHistogram struct { | ||||
| 	embedded.Float64Histogram | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Float64HistogramOption | ||||
| 	opts []instrument.Float64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Float64Histogram | ||||
| 	delegate atomic.Value //instrument.Float64Histogram | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Float64Histogram = (*sfHistogram)(nil) | ||||
| var _ instrument.Float64Histogram = (*sfHistogram)(nil) | ||||
| 
 | ||||
| func (i *sfHistogram) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Float64Histogram(i.name, i.opts...) | ||||
|  | @ -275,22 +270,22 @@ func (i *sfHistogram) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *sfHistogram) Record(ctx context.Context, x float64, opts ...metric.RecordOption) { | ||||
| func (i *sfHistogram) Record(ctx context.Context, x float64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Float64Histogram).Record(ctx, x, opts...) | ||||
| 		ctr.(instrument.Float64Histogram).Record(ctx, x, attrs...) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type siCounter struct { | ||||
| 	embedded.Int64Counter | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64CounterOption | ||||
| 	opts []instrument.Int64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64Counter | ||||
| 	delegate atomic.Value //instrument.Int64Counter | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Int64Counter = (*siCounter)(nil) | ||||
| var _ instrument.Int64Counter = (*siCounter)(nil) | ||||
| 
 | ||||
| func (i *siCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64Counter(i.name, i.opts...) | ||||
|  | @ -301,22 +296,22 @@ func (i *siCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *siCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) { | ||||
| func (i *siCounter) Add(ctx context.Context, x int64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Int64Counter).Add(ctx, x, opts...) | ||||
| 		ctr.(instrument.Int64Counter).Add(ctx, x, attrs...) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type siUpDownCounter struct { | ||||
| 	embedded.Int64UpDownCounter | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64UpDownCounterOption | ||||
| 	opts []instrument.Int64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64UpDownCounter | ||||
| 	delegate atomic.Value //instrument.Int64UpDownCounter | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Int64UpDownCounter = (*siUpDownCounter)(nil) | ||||
| var _ instrument.Int64UpDownCounter = (*siUpDownCounter)(nil) | ||||
| 
 | ||||
| func (i *siUpDownCounter) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64UpDownCounter(i.name, i.opts...) | ||||
|  | @ -327,22 +322,22 @@ func (i *siUpDownCounter) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *siUpDownCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) { | ||||
| func (i *siUpDownCounter) Add(ctx context.Context, x int64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Int64UpDownCounter).Add(ctx, x, opts...) | ||||
| 		ctr.(instrument.Int64UpDownCounter).Add(ctx, x, attrs...) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| type siHistogram struct { | ||||
| 	embedded.Int64Histogram | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.Int64HistogramOption | ||||
| 	opts []instrument.Int64Option | ||||
| 
 | ||||
| 	delegate atomic.Value //metric.Int64Histogram | ||||
| 	delegate atomic.Value //instrument.Int64Histogram | ||||
| 
 | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var _ metric.Int64Histogram = (*siHistogram)(nil) | ||||
| var _ instrument.Int64Histogram = (*siHistogram)(nil) | ||||
| 
 | ||||
| func (i *siHistogram) setDelegate(m metric.Meter) { | ||||
| 	ctr, err := m.Int64Histogram(i.name, i.opts...) | ||||
|  | @ -353,8 +348,8 @@ func (i *siHistogram) setDelegate(m metric.Meter) { | |||
| 	i.delegate.Store(ctr) | ||||
| } | ||||
| 
 | ||||
| func (i *siHistogram) Record(ctx context.Context, x int64, opts ...metric.RecordOption) { | ||||
| func (i *siHistogram) Record(ctx context.Context, x int64, attrs ...attribute.KeyValue) { | ||||
| 	if ctr := i.delegate.Load(); ctr != nil { | ||||
| 		ctr.(metric.Int64Histogram).Record(ctx, x, opts...) | ||||
| 		ctr.(instrument.Int64Histogram).Record(ctx, x, attrs...) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										42
									
								
								vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -21,7 +21,7 @@ import ( | |||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/metric" | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| ) | ||||
| 
 | ||||
| // meterProvider is a placeholder for a configured SDK MeterProvider. | ||||
|  | @ -29,8 +29,6 @@ import ( | |||
| // All MeterProvider functionality is forwarded to a delegate once | ||||
| // configured. | ||||
| type meterProvider struct { | ||||
| 	embedded.MeterProvider | ||||
| 
 | ||||
| 	mtx    sync.Mutex | ||||
| 	meters map[il]*meter | ||||
| 
 | ||||
|  | @ -102,8 +100,6 @@ func (p *meterProvider) Meter(name string, opts ...metric.MeterOption) metric.Me | |||
| // All Meter functionality is forwarded to a delegate once configured. | ||||
| // Otherwise, all functionality is forwarded to a NoopMeter. | ||||
| type meter struct { | ||||
| 	embedded.Meter | ||||
| 
 | ||||
| 	name string | ||||
| 	opts []metric.MeterOption | ||||
| 
 | ||||
|  | @ -146,7 +142,7 @@ func (m *meter) setDelegate(provider metric.MeterProvider) { | |||
| 	m.registry.Init() | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64Counter(name string, options ...metric.Int64CounterOption) (metric.Int64Counter, error) { | ||||
| func (m *meter) Int64Counter(name string, options ...instrument.Int64Option) (instrument.Int64Counter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64Counter(name, options...) | ||||
| 	} | ||||
|  | @ -157,7 +153,7 @@ func (m *meter) Int64Counter(name string, options ...metric.Int64CounterOption) | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64UpDownCounter(name string, options ...metric.Int64UpDownCounterOption) (metric.Int64UpDownCounter, error) { | ||||
| func (m *meter) Int64UpDownCounter(name string, options ...instrument.Int64Option) (instrument.Int64UpDownCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64UpDownCounter(name, options...) | ||||
| 	} | ||||
|  | @ -168,7 +164,7 @@ func (m *meter) Int64UpDownCounter(name string, options ...metric.Int64UpDownCou | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOption) (metric.Int64Histogram, error) { | ||||
| func (m *meter) Int64Histogram(name string, options ...instrument.Int64Option) (instrument.Int64Histogram, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64Histogram(name, options...) | ||||
| 	} | ||||
|  | @ -179,7 +175,7 @@ func (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOpti | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) { | ||||
| func (m *meter) Int64ObservableCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64ObservableCounter(name, options...) | ||||
| 	} | ||||
|  | @ -190,7 +186,7 @@ func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64Obser | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64ObservableUpDownCounter(name string, options ...metric.Int64ObservableUpDownCounterOption) (metric.Int64ObservableUpDownCounter, error) { | ||||
| func (m *meter) Int64ObservableUpDownCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64ObservableUpDownCounter(name, options...) | ||||
| 	} | ||||
|  | @ -201,7 +197,7 @@ func (m *meter) Int64ObservableUpDownCounter(name string, options ...metric.Int6 | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Int64ObservableGauge(name string, options ...metric.Int64ObservableGaugeOption) (metric.Int64ObservableGauge, error) { | ||||
| func (m *meter) Int64ObservableGauge(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Int64ObservableGauge(name, options...) | ||||
| 	} | ||||
|  | @ -212,7 +208,7 @@ func (m *meter) Int64ObservableGauge(name string, options ...metric.Int64Observa | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64Counter(name string, options ...metric.Float64CounterOption) (metric.Float64Counter, error) { | ||||
| func (m *meter) Float64Counter(name string, options ...instrument.Float64Option) (instrument.Float64Counter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64Counter(name, options...) | ||||
| 	} | ||||
|  | @ -223,7 +219,7 @@ func (m *meter) Float64Counter(name string, options ...metric.Float64CounterOpti | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64UpDownCounter(name string, options ...metric.Float64UpDownCounterOption) (metric.Float64UpDownCounter, error) { | ||||
| func (m *meter) Float64UpDownCounter(name string, options ...instrument.Float64Option) (instrument.Float64UpDownCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64UpDownCounter(name, options...) | ||||
| 	} | ||||
|  | @ -234,7 +230,7 @@ func (m *meter) Float64UpDownCounter(name string, options ...metric.Float64UpDow | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64Histogram(name string, options ...metric.Float64HistogramOption) (metric.Float64Histogram, error) { | ||||
| func (m *meter) Float64Histogram(name string, options ...instrument.Float64Option) (instrument.Float64Histogram, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64Histogram(name, options...) | ||||
| 	} | ||||
|  | @ -245,7 +241,7 @@ func (m *meter) Float64Histogram(name string, options ...metric.Float64Histogram | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) { | ||||
| func (m *meter) Float64ObservableCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64ObservableCounter(name, options...) | ||||
| 	} | ||||
|  | @ -256,7 +252,7 @@ func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64O | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64ObservableUpDownCounter(name string, options ...metric.Float64ObservableUpDownCounterOption) (metric.Float64ObservableUpDownCounter, error) { | ||||
| func (m *meter) Float64ObservableUpDownCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64ObservableUpDownCounter(name, options...) | ||||
| 	} | ||||
|  | @ -267,7 +263,7 @@ func (m *meter) Float64ObservableUpDownCounter(name string, options ...metric.Fl | |||
| 	return i, nil | ||||
| } | ||||
| 
 | ||||
| func (m *meter) Float64ObservableGauge(name string, options ...metric.Float64ObservableGaugeOption) (metric.Float64ObservableGauge, error) { | ||||
| func (m *meter) Float64ObservableGauge(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		return del.Float64ObservableGauge(name, options...) | ||||
| 	} | ||||
|  | @ -279,7 +275,7 @@ func (m *meter) Float64ObservableGauge(name string, options ...metric.Float64Obs | |||
| } | ||||
| 
 | ||||
| // RegisterCallback captures the function that will be called during Collect. | ||||
| func (m *meter) RegisterCallback(f metric.Callback, insts ...metric.Observable) (metric.Registration, error) { | ||||
| func (m *meter) RegisterCallback(f metric.Callback, insts ...instrument.Asynchronous) (metric.Registration, error) { | ||||
| 	if del, ok := m.delegate.Load().(metric.Meter); ok { | ||||
| 		insts = unwrapInstruments(insts) | ||||
| 		return del.RegisterCallback(f, insts...) | ||||
|  | @ -300,11 +296,11 @@ func (m *meter) RegisterCallback(f metric.Callback, insts ...metric.Observable) | |||
| } | ||||
| 
 | ||||
| type wrapped interface { | ||||
| 	unwrap() metric.Observable | ||||
| 	unwrap() instrument.Asynchronous | ||||
| } | ||||
| 
 | ||||
| func unwrapInstruments(instruments []metric.Observable) []metric.Observable { | ||||
| 	out := make([]metric.Observable, 0, len(instruments)) | ||||
| func unwrapInstruments(instruments []instrument.Asynchronous) []instrument.Asynchronous { | ||||
| 	out := make([]instrument.Asynchronous, 0, len(instruments)) | ||||
| 
 | ||||
| 	for _, inst := range instruments { | ||||
| 		if in, ok := inst.(wrapped); ok { | ||||
|  | @ -318,9 +314,7 @@ func unwrapInstruments(instruments []metric.Observable) []metric.Observable { | |||
| } | ||||
| 
 | ||||
| type registration struct { | ||||
| 	embedded.Registration | ||||
| 
 | ||||
| 	instruments []metric.Observable | ||||
| 	instruments []instrument.Asynchronous | ||||
| 	function    metric.Callback | ||||
| 
 | ||||
| 	unreg   func() error | ||||
|  |  | |||
							
								
								
									
										79
									
								
								vendor/go.opentelemetry.io/otel/metric/meter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										79
									
								
								vendor/go.opentelemetry.io/otel/metric/meter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -17,91 +17,80 @@ package metric // import "go.opentelemetry.io/otel/metric" | |||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| ) | ||||
| 
 | ||||
| // MeterProvider provides access to named Meter instances, for instrumenting | ||||
| // an application or package. | ||||
| // an application or library. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // package documentation on API implementation for information on how to set | ||||
| // default behavior for unimplemented methods. | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type MeterProvider interface { | ||||
| 	embedded.MeterProvider | ||||
| 
 | ||||
| 	// Meter returns a new Meter with the provided name and configuration. | ||||
| 	// | ||||
| 	// A Meter should be scoped at most to a single package. The name needs to | ||||
| 	// be unique so it does not collide with other names used by | ||||
| 	// an application, nor other applications. To achieve this, the import path | ||||
| 	// of the instrumentation package is recommended to be used as name. | ||||
| 	// | ||||
| 	// If the name is empty, then an implementation defined default name will | ||||
| 	// be used instead. | ||||
| 	// Meter creates an instance of a `Meter` interface. The name must be the | ||||
| 	// name of the library providing instrumentation. This name may be the same | ||||
| 	// as the instrumented code only if that code provides built-in | ||||
| 	// instrumentation. If the name is empty, then a implementation defined | ||||
| 	// default name will be used instead. | ||||
| 	Meter(name string, opts ...MeterOption) Meter | ||||
| } | ||||
| 
 | ||||
| // Meter provides access to instrument instances for recording metrics. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // package documentation on API implementation for information on how to set | ||||
| // default behavior for unimplemented methods. | ||||
| // Warning: methods may be added to this interface in minor releases. | ||||
| type Meter interface { | ||||
| 	embedded.Meter | ||||
| 
 | ||||
| 	// Int64Counter returns a new instrument identified by name and configured | ||||
| 	// with options. The instrument is used to synchronously record increasing | ||||
| 	// int64 measurements during a computational operation. | ||||
| 	Int64Counter(name string, options ...Int64CounterOption) (Int64Counter, error) | ||||
| 	Int64Counter(name string, options ...instrument.Int64Option) (instrument.Int64Counter, error) | ||||
| 	// Int64UpDownCounter returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to synchronously record | ||||
| 	// int64 measurements during a computational operation. | ||||
| 	Int64UpDownCounter(name string, options ...Int64UpDownCounterOption) (Int64UpDownCounter, error) | ||||
| 	Int64UpDownCounter(name string, options ...instrument.Int64Option) (instrument.Int64UpDownCounter, error) | ||||
| 	// Int64Histogram returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to synchronously record | ||||
| 	// the distribution of int64 measurements during a computational operation. | ||||
| 	Int64Histogram(name string, options ...Int64HistogramOption) (Int64Histogram, error) | ||||
| 	Int64Histogram(name string, options ...instrument.Int64Option) (instrument.Int64Histogram, error) | ||||
| 	// Int64ObservableCounter returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to asynchronously record | ||||
| 	// increasing int64 measurements once per a measurement collection cycle. | ||||
| 	Int64ObservableCounter(name string, options ...Int64ObservableCounterOption) (Int64ObservableCounter, error) | ||||
| 	Int64ObservableCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error) | ||||
| 	// Int64ObservableUpDownCounter returns a new instrument identified by name | ||||
| 	// and configured with options. The instrument is used to asynchronously | ||||
| 	// record int64 measurements once per a measurement collection cycle. | ||||
| 	Int64ObservableUpDownCounter(name string, options ...Int64ObservableUpDownCounterOption) (Int64ObservableUpDownCounter, error) | ||||
| 	Int64ObservableUpDownCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error) | ||||
| 	// Int64ObservableGauge returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to asynchronously record | ||||
| 	// instantaneous int64 measurements once per a measurement collection | ||||
| 	// cycle. | ||||
| 	Int64ObservableGauge(name string, options ...Int64ObservableGaugeOption) (Int64ObservableGauge, error) | ||||
| 	Int64ObservableGauge(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error) | ||||
| 
 | ||||
| 	// Float64Counter returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to synchronously record | ||||
| 	// increasing float64 measurements during a computational operation. | ||||
| 	Float64Counter(name string, options ...Float64CounterOption) (Float64Counter, error) | ||||
| 	Float64Counter(name string, options ...instrument.Float64Option) (instrument.Float64Counter, error) | ||||
| 	// Float64UpDownCounter returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to synchronously record | ||||
| 	// float64 measurements during a computational operation. | ||||
| 	Float64UpDownCounter(name string, options ...Float64UpDownCounterOption) (Float64UpDownCounter, error) | ||||
| 	Float64UpDownCounter(name string, options ...instrument.Float64Option) (instrument.Float64UpDownCounter, error) | ||||
| 	// Float64Histogram returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to synchronously record | ||||
| 	// the distribution of float64 measurements during a computational | ||||
| 	// operation. | ||||
| 	Float64Histogram(name string, options ...Float64HistogramOption) (Float64Histogram, error) | ||||
| 	Float64Histogram(name string, options ...instrument.Float64Option) (instrument.Float64Histogram, error) | ||||
| 	// Float64ObservableCounter returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to asynchronously record | ||||
| 	// increasing float64 measurements once per a measurement collection cycle. | ||||
| 	Float64ObservableCounter(name string, options ...Float64ObservableCounterOption) (Float64ObservableCounter, error) | ||||
| 	Float64ObservableCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error) | ||||
| 	// Float64ObservableUpDownCounter returns a new instrument identified by | ||||
| 	// name and configured with options. The instrument is used to | ||||
| 	// asynchronously record float64 measurements once per a measurement | ||||
| 	// collection cycle. | ||||
| 	Float64ObservableUpDownCounter(name string, options ...Float64ObservableUpDownCounterOption) (Float64ObservableUpDownCounter, error) | ||||
| 	Float64ObservableUpDownCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error) | ||||
| 	// Float64ObservableGauge returns a new instrument identified by name and | ||||
| 	// configured with options. The instrument is used to asynchronously record | ||||
| 	// instantaneous float64 measurements once per a measurement collection | ||||
| 	// cycle. | ||||
| 	Float64ObservableGauge(name string, options ...Float64ObservableGaugeOption) (Float64ObservableGauge, error) | ||||
| 	Float64ObservableGauge(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error) | ||||
| 
 | ||||
| 	// RegisterCallback registers f to be called during the collection of a | ||||
| 	// measurement cycle. | ||||
|  | @ -114,12 +103,12 @@ type Meter interface { | |||
| 	// | ||||
| 	// If no instruments are passed, f should not be registered nor called | ||||
| 	// during collection. | ||||
| 	RegisterCallback(f Callback, instruments ...Observable) (Registration, error) | ||||
| 	RegisterCallback(f Callback, instruments ...instrument.Asynchronous) (Registration, error) | ||||
| } | ||||
| 
 | ||||
| // Callback is a function registered with a Meter that makes observations for | ||||
| // the set of instruments it is registered with. The Observer parameter is used | ||||
| // to record measurement observations for these instruments. | ||||
| // to record measurment observations for these instruments. | ||||
| // | ||||
| // The function needs to complete in a finite amount of time and the deadline | ||||
| // of the passed context is expected to be honored. | ||||
|  | @ -132,28 +121,16 @@ type Meter interface { | |||
| type Callback func(context.Context, Observer) error | ||||
| 
 | ||||
| // Observer records measurements for multiple instruments in a Callback. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // package documentation on API implementation for information on how to set | ||||
| // default behavior for unimplemented methods. | ||||
| type Observer interface { | ||||
| 	embedded.Observer | ||||
| 
 | ||||
| 	// ObserveFloat64 records the float64 value for obsrv. | ||||
| 	ObserveFloat64(obsrv Float64Observable, value float64, opts ...ObserveOption) | ||||
| 	// ObserveInt64 records the int64 value for obsrv. | ||||
| 	ObserveInt64(obsrv Int64Observable, value int64, opts ...ObserveOption) | ||||
| 	// ObserveFloat64 records the float64 value with attributes for obsrv. | ||||
| 	ObserveFloat64(obsrv instrument.Float64Observable, value float64, attributes ...attribute.KeyValue) | ||||
| 	// ObserveInt64 records the int64 value with attributes for obsrv. | ||||
| 	ObserveInt64(obsrv instrument.Int64Observable, value int64, attributes ...attribute.KeyValue) | ||||
| } | ||||
| 
 | ||||
| // Registration is an token representing the unique registration of a callback | ||||
| // for a set of instruments with a Meter. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // package documentation on API implementation for information on how to set | ||||
| // default behavior for unimplemented methods. | ||||
| type Registration interface { | ||||
| 	embedded.Registration | ||||
| 
 | ||||
| 	// Unregister removes the callback registration from a Meter. | ||||
| 	// | ||||
| 	// This method needs to be idempotent and concurrent safe. | ||||
|  |  | |||
							
								
								
									
										143
									
								
								vendor/go.opentelemetry.io/otel/metric/noop.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								vendor/go.opentelemetry.io/otel/metric/noop.go
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,143 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/metric/instrument" | ||||
| ) | ||||
| 
 | ||||
| // NewNoopMeterProvider creates a MeterProvider that does not record any metrics. | ||||
| func NewNoopMeterProvider() MeterProvider { | ||||
| 	return noopMeterProvider{} | ||||
| } | ||||
| 
 | ||||
| type noopMeterProvider struct{} | ||||
| 
 | ||||
| func (noopMeterProvider) Meter(string, ...MeterOption) Meter { | ||||
| 	return noopMeter{} | ||||
| } | ||||
| 
 | ||||
| // NewNoopMeter creates a Meter that does not record any metrics. | ||||
| func NewNoopMeter() Meter { | ||||
| 	return noopMeter{} | ||||
| } | ||||
| 
 | ||||
| type noopMeter struct{} | ||||
| 
 | ||||
| func (noopMeter) Int64Counter(string, ...instrument.Int64Option) (instrument.Int64Counter, error) { | ||||
| 	return nonrecordingSyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Int64UpDownCounter(string, ...instrument.Int64Option) (instrument.Int64UpDownCounter, error) { | ||||
| 	return nonrecordingSyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Int64Histogram(string, ...instrument.Int64Option) (instrument.Int64Histogram, error) { | ||||
| 	return nonrecordingSyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Int64ObservableCounter(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error) { | ||||
| 	return nonrecordingAsyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Int64ObservableUpDownCounter(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error) { | ||||
| 	return nonrecordingAsyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Int64ObservableGauge(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error) { | ||||
| 	return nonrecordingAsyncInt64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64Counter(string, ...instrument.Float64Option) (instrument.Float64Counter, error) { | ||||
| 	return nonrecordingSyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64UpDownCounter(string, ...instrument.Float64Option) (instrument.Float64UpDownCounter, error) { | ||||
| 	return nonrecordingSyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64Histogram(string, ...instrument.Float64Option) (instrument.Float64Histogram, error) { | ||||
| 	return nonrecordingSyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64ObservableCounter(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error) { | ||||
| 	return nonrecordingAsyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64ObservableUpDownCounter(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error) { | ||||
| 	return nonrecordingAsyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| func (noopMeter) Float64ObservableGauge(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error) { | ||||
| 	return nonrecordingAsyncFloat64Instrument{}, nil | ||||
| } | ||||
| 
 | ||||
| // RegisterCallback creates a register callback that does not record any metrics. | ||||
| func (noopMeter) RegisterCallback(Callback, ...instrument.Asynchronous) (Registration, error) { | ||||
| 	return noopReg{}, nil | ||||
| } | ||||
| 
 | ||||
| type noopReg struct{} | ||||
| 
 | ||||
| func (noopReg) Unregister() error { return nil } | ||||
| 
 | ||||
| type nonrecordingAsyncFloat64Instrument struct { | ||||
| 	instrument.Float64Observable | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	_ instrument.Float64ObservableCounter       = nonrecordingAsyncFloat64Instrument{} | ||||
| 	_ instrument.Float64ObservableUpDownCounter = nonrecordingAsyncFloat64Instrument{} | ||||
| 	_ instrument.Float64ObservableGauge         = nonrecordingAsyncFloat64Instrument{} | ||||
| ) | ||||
| 
 | ||||
| type nonrecordingAsyncInt64Instrument struct { | ||||
| 	instrument.Int64Observable | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	_ instrument.Int64ObservableCounter       = nonrecordingAsyncInt64Instrument{} | ||||
| 	_ instrument.Int64ObservableUpDownCounter = nonrecordingAsyncInt64Instrument{} | ||||
| 	_ instrument.Int64ObservableGauge         = nonrecordingAsyncInt64Instrument{} | ||||
| ) | ||||
| 
 | ||||
| type nonrecordingSyncFloat64Instrument struct { | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	_ instrument.Float64Counter       = nonrecordingSyncFloat64Instrument{} | ||||
| 	_ instrument.Float64UpDownCounter = nonrecordingSyncFloat64Instrument{} | ||||
| 	_ instrument.Float64Histogram     = nonrecordingSyncFloat64Instrument{} | ||||
| ) | ||||
| 
 | ||||
| func (nonrecordingSyncFloat64Instrument) Add(context.Context, float64, ...attribute.KeyValue)    {} | ||||
| func (nonrecordingSyncFloat64Instrument) Record(context.Context, float64, ...attribute.KeyValue) {} | ||||
| 
 | ||||
| type nonrecordingSyncInt64Instrument struct { | ||||
| 	instrument.Synchronous | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	_ instrument.Int64Counter       = nonrecordingSyncInt64Instrument{} | ||||
| 	_ instrument.Int64UpDownCounter = nonrecordingSyncInt64Instrument{} | ||||
| 	_ instrument.Int64Histogram     = nonrecordingSyncInt64Instrument{} | ||||
| ) | ||||
| 
 | ||||
| func (nonrecordingSyncInt64Instrument) Add(context.Context, int64, ...attribute.KeyValue)    {} | ||||
| func (nonrecordingSyncInt64Instrument) Record(context.Context, int64, ...attribute.KeyValue) {} | ||||
							
								
								
									
										162
									
								
								vendor/go.opentelemetry.io/otel/metric/syncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										162
									
								
								vendor/go.opentelemetry.io/otel/metric/syncfloat64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,162 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| ) | ||||
| 
 | ||||
| // Float64Counter is an instrument that records increasing float64 values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64Counter interface { | ||||
| 	embedded.Float64Counter | ||||
| 
 | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr float64, opts ...AddOption) | ||||
| } | ||||
| 
 | ||||
| // Float64CounterConfig contains options for synchronous counter instruments that | ||||
| // record int64 values. | ||||
| type Float64CounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewFloat64CounterConfig returns a new [Float64CounterConfig] with all opts | ||||
| // applied. | ||||
| func NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig { | ||||
| 	var config Float64CounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64Counter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64CounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64CounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Float64CounterOption applies options to a [Float64CounterConfig]. See | ||||
| // [Option] for other options that can be used as a Float64CounterOption. | ||||
| type Float64CounterOption interface { | ||||
| 	applyFloat64Counter(Float64CounterConfig) Float64CounterConfig | ||||
| } | ||||
| 
 | ||||
| // Float64UpDownCounter is an instrument that records increasing or decreasing | ||||
| // float64 values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64UpDownCounter interface { | ||||
| 	embedded.Float64UpDownCounter | ||||
| 
 | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr float64, opts ...AddOption) | ||||
| } | ||||
| 
 | ||||
| // Float64UpDownCounterConfig contains options for synchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Float64UpDownCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewFloat64UpDownCounterConfig returns a new [Float64UpDownCounterConfig] | ||||
| // with all opts applied. | ||||
| func NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig { | ||||
| 	var config Float64UpDownCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64UpDownCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64UpDownCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64UpDownCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Float64UpDownCounterOption applies options to a | ||||
| // [Float64UpDownCounterConfig]. See [Option] for other options that can be | ||||
| // used as a Float64UpDownCounterOption. | ||||
| type Float64UpDownCounterOption interface { | ||||
| 	applyFloat64UpDownCounter(Float64UpDownCounterConfig) Float64UpDownCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Float64Histogram is an instrument that records a distribution of float64 | ||||
| // values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Float64Histogram interface { | ||||
| 	embedded.Float64Histogram | ||||
| 
 | ||||
| 	// Record adds an additional value to the distribution. | ||||
| 	Record(ctx context.Context, incr float64, opts ...RecordOption) | ||||
| } | ||||
| 
 | ||||
| // Float64HistogramConfig contains options for synchronous counter instruments | ||||
| // that record int64 values. | ||||
| type Float64HistogramConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewFloat64HistogramConfig returns a new [Float64HistogramConfig] with all | ||||
| // opts applied. | ||||
| func NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig { | ||||
| 	var config Float64HistogramConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyFloat64Histogram(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Float64HistogramConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Float64HistogramConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Float64HistogramOption applies options to a [Float64HistogramConfig]. See | ||||
| // [Option] for other options that can be used as a Float64HistogramOption. | ||||
| type Float64HistogramOption interface { | ||||
| 	applyFloat64Histogram(Float64HistogramConfig) Float64HistogramConfig | ||||
| } | ||||
							
								
								
									
										162
									
								
								vendor/go.opentelemetry.io/otel/metric/syncint64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										162
									
								
								vendor/go.opentelemetry.io/otel/metric/syncint64.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,162 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| package metric // import "go.opentelemetry.io/otel/metric" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel/metric/embedded" | ||||
| ) | ||||
| 
 | ||||
| // Int64Counter is an instrument that records increasing int64 values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64Counter interface { | ||||
| 	embedded.Int64Counter | ||||
| 
 | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr int64, opts ...AddOption) | ||||
| } | ||||
| 
 | ||||
| // Int64CounterConfig contains options for synchronous counter instruments that | ||||
| // record int64 values. | ||||
| type Int64CounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewInt64CounterConfig returns a new [Int64CounterConfig] with all opts | ||||
| // applied. | ||||
| func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig { | ||||
| 	var config Int64CounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64Counter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64CounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64CounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Int64CounterOption applies options to a [Int64CounterConfig]. See [Option] | ||||
| // for other options that can be used as an Int64CounterOption. | ||||
| type Int64CounterOption interface { | ||||
| 	applyInt64Counter(Int64CounterConfig) Int64CounterConfig | ||||
| } | ||||
| 
 | ||||
| // Int64UpDownCounter is an instrument that records increasing or decreasing | ||||
| // int64 values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64UpDownCounter interface { | ||||
| 	embedded.Int64UpDownCounter | ||||
| 
 | ||||
| 	// Add records a change to the counter. | ||||
| 	Add(ctx context.Context, incr int64, opts ...AddOption) | ||||
| } | ||||
| 
 | ||||
| // Int64UpDownCounterConfig contains options for synchronous counter | ||||
| // instruments that record int64 values. | ||||
| type Int64UpDownCounterConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewInt64UpDownCounterConfig returns a new [Int64UpDownCounterConfig] with | ||||
| // all opts applied. | ||||
| func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig { | ||||
| 	var config Int64UpDownCounterConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64UpDownCounter(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64UpDownCounterConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64UpDownCounterConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Int64UpDownCounterOption applies options to a [Int64UpDownCounterConfig]. | ||||
| // See [Option] for other options that can be used as an | ||||
| // Int64UpDownCounterOption. | ||||
| type Int64UpDownCounterOption interface { | ||||
| 	applyInt64UpDownCounter(Int64UpDownCounterConfig) Int64UpDownCounterConfig | ||||
| } | ||||
| 
 | ||||
| // Int64Histogram is an instrument that records a distribution of int64 | ||||
| // values. | ||||
| // | ||||
| // Warning: Methods may be added to this interface in minor releases. See | ||||
| // [go.opentelemetry.io/otel/metric] package documentation on API | ||||
| // implementation for information on how to set default behavior for | ||||
| // unimplemented methods. | ||||
| type Int64Histogram interface { | ||||
| 	embedded.Int64Histogram | ||||
| 
 | ||||
| 	// Record adds an additional value to the distribution. | ||||
| 	Record(ctx context.Context, incr int64, opts ...RecordOption) | ||||
| } | ||||
| 
 | ||||
| // Int64HistogramConfig contains options for synchronous counter instruments | ||||
| // that record int64 values. | ||||
| type Int64HistogramConfig struct { | ||||
| 	description string | ||||
| 	unit        string | ||||
| } | ||||
| 
 | ||||
| // NewInt64HistogramConfig returns a new [Int64HistogramConfig] with all opts | ||||
| // applied. | ||||
| func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig { | ||||
| 	var config Int64HistogramConfig | ||||
| 	for _, o := range opts { | ||||
| 		config = o.applyInt64Histogram(config) | ||||
| 	} | ||||
| 	return config | ||||
| } | ||||
| 
 | ||||
| // Description returns the configured description. | ||||
| func (c Int64HistogramConfig) Description() string { | ||||
| 	return c.description | ||||
| } | ||||
| 
 | ||||
| // Unit returns the configured unit. | ||||
| func (c Int64HistogramConfig) Unit() string { | ||||
| 	return c.unit | ||||
| } | ||||
| 
 | ||||
| // Int64HistogramOption applies options to a [Int64HistogramConfig]. See | ||||
| // [Option] for other options that can be used as an Int64HistogramOption. | ||||
| type Int64HistogramOption interface { | ||||
| 	applyInt64Histogram(Int64HistogramConfig) Int64HistogramConfig | ||||
| } | ||||
							
								
								
									
										10
									
								
								vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -70,8 +70,8 @@ const ( | |||
| // returned. | ||||
| func firstInt(defaultValue int, keys ...string) int { | ||||
| 	for _, key := range keys { | ||||
| 		value := os.Getenv(key) | ||||
| 		if value == "" { | ||||
| 		value, ok := os.LookupEnv(key) | ||||
| 		if !ok { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
|  | @ -88,10 +88,10 @@ func firstInt(defaultValue int, keys ...string) int { | |||
| } | ||||
| 
 | ||||
| // IntEnvOr returns the int value of the environment variable with name key if | ||||
| // it exists, it is not empty, and the value is an int. Otherwise, defaultValue is returned. | ||||
| // it exists and the value is an int. Otherwise, defaultValue is returned. | ||||
| func IntEnvOr(key string, defaultValue int) int { | ||||
| 	value := os.Getenv(key) | ||||
| 	if value == "" { | ||||
| 	value, ok := os.LookupEnv(key) | ||||
| 	if !ok { | ||||
| 		return defaultValue | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										11
									
								
								vendor/go.opentelemetry.io/otel/sdk/internal/internal.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/go.opentelemetry.io/otel/sdk/internal/internal.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,16 @@ | |||
| 
 | ||||
| package internal // import "go.opentelemetry.io/otel/sdk/internal" | ||||
| 
 | ||||
| import "time" | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
| ) | ||||
| 
 | ||||
| // UserAgent is the user agent to be added to the outgoing | ||||
| // requests from the exporters. | ||||
| var UserAgent = fmt.Sprintf("opentelemetry-go/%s", otel.Version()) | ||||
| 
 | ||||
| // MonotonicEndTime returns the end time at present | ||||
| // but offset from start, monotonically. | ||||
|  |  | |||
							
								
								
									
										58
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										58
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/auto.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -18,7 +18,6 @@ import ( | |||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
|  | @ -46,65 +45,28 @@ type Detector interface { | |||
| // Detect calls all input detectors sequentially and merges each result with the previous one. | ||||
| // It returns the merged error too. | ||||
| func Detect(ctx context.Context, detectors ...Detector) (*Resource, error) { | ||||
| 	r := new(Resource) | ||||
| 	return r, detect(ctx, r, detectors) | ||||
| } | ||||
| 
 | ||||
| // detect runs all detectors using ctx and merges the result into res. This | ||||
| // assumes res is allocated and not nil, it will panic otherwise. | ||||
| func detect(ctx context.Context, res *Resource, detectors []Detector) error { | ||||
| 	var ( | ||||
| 		r    *Resource | ||||
| 		errs detectErrs | ||||
| 		err  error | ||||
| 	) | ||||
| 
 | ||||
| 	var autoDetectedRes *Resource | ||||
| 	var errInfo []string | ||||
| 	for _, detector := range detectors { | ||||
| 		if detector == nil { | ||||
| 			continue | ||||
| 		} | ||||
| 		r, err = detector.Detect(ctx) | ||||
| 		res, err := detector.Detect(ctx) | ||||
| 		if err != nil { | ||||
| 			errs = append(errs, err) | ||||
| 			errInfo = append(errInfo, err.Error()) | ||||
| 			if !errors.Is(err, ErrPartialResource) { | ||||
| 				continue | ||||
| 			} | ||||
| 		} | ||||
| 		r, err = Merge(res, r) | ||||
| 		autoDetectedRes, err = Merge(autoDetectedRes, res) | ||||
| 		if err != nil { | ||||
| 			errs = append(errs, err) | ||||
| 			errInfo = append(errInfo, err.Error()) | ||||
| 		} | ||||
| 		*res = *r | ||||
| 	} | ||||
| 
 | ||||
| 	if len(errs) == 0 { | ||||
| 		return nil | ||||
| 	var aggregatedError error | ||||
| 	if len(errInfo) > 0 { | ||||
| 		aggregatedError = fmt.Errorf("detecting resources: %s", errInfo) | ||||
| 	} | ||||
| 	return errs | ||||
| } | ||||
| 
 | ||||
| type detectErrs []error | ||||
| 
 | ||||
| func (e detectErrs) Error() string { | ||||
| 	errStr := make([]string, len(e)) | ||||
| 	for i, err := range e { | ||||
| 		errStr[i] = fmt.Sprintf("* %s", err) | ||||
| 	} | ||||
| 
 | ||||
| 	format := "%d errors occurred detecting resource:\n\t%s" | ||||
| 	return fmt.Sprintf(format, len(e), strings.Join(errStr, "\n\t")) | ||||
| } | ||||
| 
 | ||||
| func (e detectErrs) Unwrap() error { | ||||
| 	switch len(e) { | ||||
| 	case 0: | ||||
| 		return nil | ||||
| 	case 1: | ||||
| 		return e[0] | ||||
| 	} | ||||
| 	return e[1:] | ||||
| } | ||||
| 
 | ||||
| func (e detectErrs) Is(target error) bool { | ||||
| 	return len(e) != 0 && errors.Is(e[0], target) | ||||
| 	return autoDetectedRes, aggregatedError | ||||
| } | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -20,8 +20,8 @@ import ( | |||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/attribute" | ||||
| 	"go.opentelemetry.io/otel/sdk" | ||||
| 	semconv "go.opentelemetry.io/otel/semconv/v1.17.0" | ||||
| ) | ||||
| 
 | ||||
|  | @ -62,7 +62,7 @@ func (telemetrySDK) Detect(context.Context) (*Resource, error) { | |||
| 		semconv.SchemaURL, | ||||
| 		semconv.TelemetrySDKName("opentelemetry"), | ||||
| 		semconv.TelemetrySDKLanguageGo, | ||||
| 		semconv.TelemetrySDKVersion(sdk.Version()), | ||||
| 		semconv.TelemetrySDKVersion(otel.Version()), | ||||
| 	), nil | ||||
| } | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										5
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/config.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/config.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -71,11 +71,6 @@ func WithHost() Option { | |||
| 	return WithDetectors(host{}) | ||||
| } | ||||
| 
 | ||||
| // WithHostID adds host ID information to the configured resource. | ||||
| func WithHostID() Option { | ||||
| 	return WithDetectors(hostIDDetector{}) | ||||
| } | ||||
| 
 | ||||
| // WithTelemetrySDK adds TelemetrySDK version info to the configured resource. | ||||
| func WithTelemetrySDK() Option { | ||||
| 	return WithDetectors(telemetrySDK{}) | ||||
|  |  | |||
							
								
								
									
										120
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										120
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,120 +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 resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	semconv "go.opentelemetry.io/otel/semconv/v1.17.0" | ||||
| ) | ||||
| 
 | ||||
| type hostIDProvider func() (string, error) | ||||
| 
 | ||||
| var defaultHostIDProvider hostIDProvider = platformHostIDReader.read | ||||
| 
 | ||||
| var hostID = defaultHostIDProvider | ||||
| 
 | ||||
| type hostIDReader interface { | ||||
| 	read() (string, error) | ||||
| } | ||||
| 
 | ||||
| type fileReader func(string) (string, error) | ||||
| 
 | ||||
| type commandExecutor func(string, ...string) (string, error) | ||||
| 
 | ||||
| // hostIDReaderBSD implements hostIDReader. | ||||
| type hostIDReaderBSD struct { | ||||
| 	execCommand commandExecutor | ||||
| 	readFile    fileReader | ||||
| } | ||||
| 
 | ||||
| // read attempts to read the machine-id from /etc/hostid. If not found it will | ||||
| // execute `kenv -q smbios.system.uuid`. If neither location yields an id an | ||||
| // error will be returned. | ||||
| func (r *hostIDReaderBSD) read() (string, error) { | ||||
| 	if result, err := r.readFile("/etc/hostid"); err == nil { | ||||
| 		return strings.TrimSpace(result), nil | ||||
| 	} | ||||
| 
 | ||||
| 	if result, err := r.execCommand("kenv", "-q", "smbios.system.uuid"); err == nil { | ||||
| 		return strings.TrimSpace(result), nil | ||||
| 	} | ||||
| 
 | ||||
| 	return "", errors.New("host id not found in: /etc/hostid or kenv") | ||||
| } | ||||
| 
 | ||||
| // hostIDReaderDarwin implements hostIDReader. | ||||
| type hostIDReaderDarwin struct { | ||||
| 	execCommand commandExecutor | ||||
| } | ||||
| 
 | ||||
| // read executes `ioreg -rd1 -c "IOPlatformExpertDevice"` and parses host id | ||||
| // from the IOPlatformUUID line. If the command fails or the uuid cannot be | ||||
| // parsed an error will be returned. | ||||
| func (r *hostIDReaderDarwin) read() (string, error) { | ||||
| 	result, err := r.execCommand("ioreg", "-rd1", "-c", "IOPlatformExpertDevice") | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 
 | ||||
| 	lines := strings.Split(result, "\n") | ||||
| 	for _, line := range lines { | ||||
| 		if strings.Contains(line, "IOPlatformUUID") { | ||||
| 			parts := strings.Split(line, " = ") | ||||
| 			if len(parts) == 2 { | ||||
| 				return strings.Trim(parts[1], "\""), nil | ||||
| 			} | ||||
| 			break | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return "", errors.New("could not parse IOPlatformUUID") | ||||
| } | ||||
| 
 | ||||
| type hostIDReaderLinux struct { | ||||
| 	readFile fileReader | ||||
| } | ||||
| 
 | ||||
| // read attempts to read the machine-id from /etc/machine-id followed by | ||||
| // /var/lib/dbus/machine-id. If neither location yields an ID an error will | ||||
| // be returned. | ||||
| func (r *hostIDReaderLinux) read() (string, error) { | ||||
| 	if result, err := r.readFile("/etc/machine-id"); err == nil { | ||||
| 		return strings.TrimSpace(result), nil | ||||
| 	} | ||||
| 
 | ||||
| 	if result, err := r.readFile("/var/lib/dbus/machine-id"); err == nil { | ||||
| 		return strings.TrimSpace(result), nil | ||||
| 	} | ||||
| 
 | ||||
| 	return "", errors.New("host id not found in: /etc/machine-id or /var/lib/dbus/machine-id") | ||||
| } | ||||
| 
 | ||||
| type hostIDDetector struct{} | ||||
| 
 | ||||
| // Detect returns a *Resource containing the platform specific host id. | ||||
| func (hostIDDetector) Detect(ctx context.Context) (*Resource, error) { | ||||
| 	hostID, err := hostID() | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	return NewWithAttributes( | ||||
| 		semconv.SchemaURL, | ||||
| 		semconv.HostID(hostID), | ||||
| 	), nil | ||||
| } | ||||
							
								
								
									
										23
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_bsd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_bsd.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,23 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| //go:build dragonfly || freebsd || netbsd || openbsd || solaris | ||||
| // +build dragonfly freebsd netbsd openbsd solaris | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| var platformHostIDReader hostIDReader = &hostIDReaderBSD{ | ||||
| 	execCommand: execCommand, | ||||
| 	readFile:    readFile, | ||||
| } | ||||
							
								
								
									
										19
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,19 +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 resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| var platformHostIDReader hostIDReader = &hostIDReaderDarwin{ | ||||
| 	execCommand: execCommand, | ||||
| } | ||||
							
								
								
									
										29
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,29 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| //go:build bsd || darwin | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| import "os/exec" | ||||
| 
 | ||||
| func execCommand(name string, arg ...string) (string, error) { | ||||
| 	cmd := exec.Command(name, arg...) | ||||
| 	b, err := cmd.Output() | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 
 | ||||
| 	return string(b), nil | ||||
| } | ||||
							
								
								
									
										22
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,22 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| //go:build linux | ||||
| // +build linux | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| var platformHostIDReader hostIDReader = &hostIDReaderLinux{ | ||||
| 	readFile: readFile, | ||||
| } | ||||
							
								
								
									
										28
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,28 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| //go:build bsd || linux | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| import "os" | ||||
| 
 | ||||
| func readFile(filename string) (string, error) { | ||||
| 	b, err := os.ReadFile(filename) | ||||
| 	if err != nil { | ||||
| 		return "", nil | ||||
| 	} | ||||
| 
 | ||||
| 	return string(b), nil | ||||
| } | ||||
							
								
								
									
										36
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,36 +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. | ||||
| 
 | ||||
| // +build !darwin | ||||
| // +build !dragonfly | ||||
| // +build !freebsd | ||||
| // +build !linux | ||||
| // +build !netbsd | ||||
| // +build !openbsd | ||||
| // +build !solaris | ||||
| // +build !windows | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| // hostIDReaderUnsupported is a placeholder implementation for operating systems | ||||
| // for which this project currently doesn't support host.id | ||||
| // attribute detection. See build tags declaration early on this file | ||||
| // for a list of unsupported OSes. | ||||
| type hostIDReaderUnsupported struct{} | ||||
| 
 | ||||
| func (*hostIDReaderUnsupported) read() (string, error) { | ||||
| 	return "<unknown>", nil | ||||
| } | ||||
| 
 | ||||
| var platformHostIDReader hostIDReader = &hostIDReaderUnsupported{} | ||||
							
								
								
									
										48
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										48
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -1,48 +0,0 @@ | |||
| // Copyright The OpenTelemetry Authors | ||||
| // | ||||
| // Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| // you may not use this file except in compliance with the License. | ||||
| // You may obtain a copy of the License at | ||||
| // | ||||
| //     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| // | ||||
| // Unless required by applicable law or agreed to in writing, software | ||||
| // distributed under the License is distributed on an "AS IS" BASIS, | ||||
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| //go:build windows | ||||
| // +build windows | ||||
| 
 | ||||
| package resource // import "go.opentelemetry.io/otel/sdk/resource" | ||||
| 
 | ||||
| import ( | ||||
| 	"golang.org/x/sys/windows/registry" | ||||
| ) | ||||
| 
 | ||||
| // implements hostIDReader | ||||
| type hostIDReaderWindows struct{} | ||||
| 
 | ||||
| // read reads MachineGuid from the windows registry key: | ||||
| // SOFTWARE\Microsoft\Cryptography | ||||
| func (*hostIDReaderWindows) read() (string, error) { | ||||
| 	k, err := registry.OpenKey( | ||||
| 		registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Cryptography`, | ||||
| 		registry.QUERY_VALUE|registry.WOW64_64KEY, | ||||
| 	) | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 	defer k.Close() | ||||
| 
 | ||||
| 	guid, _, err := k.GetStringValue("MachineGuid") | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| 
 | ||||
| 	return guid, nil | ||||
| } | ||||
| 
 | ||||
| var platformHostIDReader hostIDReader = &hostIDReaderWindows{} | ||||
							
								
								
									
										14
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/resource.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								vendor/go.opentelemetry.io/otel/sdk/resource/resource.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -17,6 +17,7 @@ package resource // import "go.opentelemetry.io/otel/sdk/resource" | |||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"sync" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
|  | @ -50,8 +51,17 @@ func New(ctx context.Context, opts ...Option) (*Resource, error) { | |||
| 		cfg = opt.apply(cfg) | ||||
| 	} | ||||
| 
 | ||||
| 	r := &Resource{schemaURL: cfg.schemaURL} | ||||
| 	return r, detect(ctx, r, cfg.detectors) | ||||
| 	resource, err := Detect(ctx, cfg.detectors...) | ||||
| 
 | ||||
| 	var err2 error | ||||
| 	resource, err2 = Merge(resource, &Resource{schemaURL: cfg.schemaURL}) | ||||
| 	if err == nil { | ||||
| 		err = err2 | ||||
| 	} else if err2 != nil { | ||||
| 		err = fmt.Errorf("detecting resources: %s", []string{err.Error(), err2.Error()}) | ||||
| 	} | ||||
| 
 | ||||
| 	return resource, err | ||||
| } | ||||
| 
 | ||||
| // NewWithAttributes creates a resource from attrs and associates the resource with a | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -91,7 +91,7 @@ var _ SpanProcessor = (*batchSpanProcessor)(nil) | |||
| // NewBatchSpanProcessor creates a new SpanProcessor that will send completed | ||||
| // span batches to the exporter with the supplied options. | ||||
| // | ||||
| // If the exporter is nil, the span processor will perform no action. | ||||
| // If the exporter is nil, the span processor will preform no action. | ||||
| func NewBatchSpanProcessor(exporter SpanExporter, options ...BatchSpanProcessorOption) SpanProcessor { | ||||
| 	maxQueueSize := env.BatchSpanProcessorMaxQueueSize(DefaultMaxQueueSize) | ||||
| 	maxExportBatchSize := env.BatchSpanProcessorMaxExportBatchSize(DefaultMaxExportBatchSize) | ||||
|  |  | |||
							
								
								
									
										103
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/provider.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/provider.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -75,9 +75,8 @@ func (cfg tracerProviderConfig) MarshalLog() interface{} { | |||
| type TracerProvider struct { | ||||
| 	mu             sync.Mutex | ||||
| 	namedTracer    map[instrumentation.Scope]*tracer | ||||
| 	spanProcessors atomic.Pointer[spanProcessorStates] | ||||
| 
 | ||||
| 	isShutdown atomic.Bool | ||||
| 	spanProcessors atomic.Value | ||||
| 	isShutdown     bool | ||||
| 
 | ||||
| 	// These fields are not protected by the lock mu. They are assumed to be | ||||
| 	// immutable after creation of the TracerProvider. | ||||
|  | @ -120,11 +119,11 @@ func NewTracerProvider(opts ...TracerProviderOption) *TracerProvider { | |||
| 	} | ||||
| 	global.Info("TracerProvider created", "config", o) | ||||
| 
 | ||||
| 	spss := make(spanProcessorStates, 0, len(o.processors)) | ||||
| 	spss := spanProcessorStates{} | ||||
| 	for _, sp := range o.processors { | ||||
| 		spss = append(spss, newSpanProcessorState(sp)) | ||||
| 	} | ||||
| 	tp.spanProcessors.Store(&spss) | ||||
| 	tp.spanProcessors.Store(spss) | ||||
| 
 | ||||
| 	return tp | ||||
| } | ||||
|  | @ -137,11 +136,10 @@ func NewTracerProvider(opts ...TracerProviderOption) *TracerProvider { | |||
| // | ||||
| // This method is safe to be called concurrently. | ||||
| func (p *TracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer { | ||||
| 	// This check happens before the mutex is acquired to avoid deadlocking if Tracer() is called from within Shutdown(). | ||||
| 	if p.isShutdown.Load() { | ||||
| 		return trace.NewNoopTracerProvider().Tracer(name, opts...) | ||||
| 	} | ||||
| 	c := trace.NewTracerConfig(opts...) | ||||
| 
 | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	if name == "" { | ||||
| 		name = defaultTracerName | ||||
| 	} | ||||
|  | @ -150,74 +148,44 @@ func (p *TracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.T | |||
| 		Version:   c.InstrumentationVersion(), | ||||
| 		SchemaURL: c.SchemaURL(), | ||||
| 	} | ||||
| 
 | ||||
| 	t, ok := func() (trace.Tracer, bool) { | ||||
| 		p.mu.Lock() | ||||
| 		defer p.mu.Unlock() | ||||
| 		// Must check the flag after acquiring the mutex to avoid returning a valid tracer if Shutdown() ran | ||||
| 		// after the first check above but before we acquired the mutex. | ||||
| 		if p.isShutdown.Load() { | ||||
| 			return trace.NewNoopTracerProvider().Tracer(name, opts...), true | ||||
| 		} | ||||
| 		t, ok := p.namedTracer[is] | ||||
| 		if !ok { | ||||
| 			t = &tracer{ | ||||
| 				provider:             p, | ||||
| 				instrumentationScope: is, | ||||
| 			} | ||||
| 			p.namedTracer[is] = t | ||||
| 		} | ||||
| 		return t, ok | ||||
| 	}() | ||||
| 	t, ok := p.namedTracer[is] | ||||
| 	if !ok { | ||||
| 		// This code is outside the mutex to not hold the lock while calling third party logging code: | ||||
| 		// - That code may do slow things like I/O, which would prolong the duration the lock is held, | ||||
| 		//   slowing down all tracing consumers. | ||||
| 		// - Logging code may be instrumented with tracing and deadlock because it could try | ||||
| 		//   acquiring the same non-reentrant mutex. | ||||
| 		global.Info("Tracer created", "name", name, "version", is.Version, "schemaURL", is.SchemaURL) | ||||
| 		t = &tracer{ | ||||
| 			provider:             p, | ||||
| 			instrumentationScope: is, | ||||
| 		} | ||||
| 		p.namedTracer[is] = t | ||||
| 		global.Info("Tracer created", "name", name, "version", c.InstrumentationVersion(), "schemaURL", c.SchemaURL()) | ||||
| 	} | ||||
| 	return t | ||||
| } | ||||
| 
 | ||||
| // RegisterSpanProcessor adds the given SpanProcessor to the list of SpanProcessors. | ||||
| func (p *TracerProvider) RegisterSpanProcessor(sp SpanProcessor) { | ||||
| 	// This check prevents calls during a shutdown. | ||||
| 	if p.isShutdown.Load() { | ||||
| 		return | ||||
| 	} | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	// This check prevents calls after a shutdown. | ||||
| 	if p.isShutdown.Load() { | ||||
| 	if p.isShutdown { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	current := p.getSpanProcessors() | ||||
| 	newSPS := make(spanProcessorStates, 0, len(current)+1) | ||||
| 	newSPS = append(newSPS, current...) | ||||
| 	newSPS := spanProcessorStates{} | ||||
| 	newSPS = append(newSPS, p.spanProcessors.Load().(spanProcessorStates)...) | ||||
| 	newSPS = append(newSPS, newSpanProcessorState(sp)) | ||||
| 	p.spanProcessors.Store(&newSPS) | ||||
| 	p.spanProcessors.Store(newSPS) | ||||
| } | ||||
| 
 | ||||
| // UnregisterSpanProcessor removes the given SpanProcessor from the list of SpanProcessors. | ||||
| func (p *TracerProvider) UnregisterSpanProcessor(sp SpanProcessor) { | ||||
| 	// This check prevents calls during a shutdown. | ||||
| 	if p.isShutdown.Load() { | ||||
| 		return | ||||
| 	} | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	// This check prevents calls after a shutdown. | ||||
| 	if p.isShutdown.Load() { | ||||
| 	if p.isShutdown { | ||||
| 		return | ||||
| 	} | ||||
| 	old := p.getSpanProcessors() | ||||
| 	old := p.spanProcessors.Load().(spanProcessorStates) | ||||
| 	if len(old) == 0 { | ||||
| 		return | ||||
| 	} | ||||
| 	spss := make(spanProcessorStates, len(old)) | ||||
| 	copy(spss, old) | ||||
| 	spss := spanProcessorStates{} | ||||
| 	spss = append(spss, old...) | ||||
| 
 | ||||
| 	// stop the span processor if it is started and remove it from the list | ||||
| 	var stopOnce *spanProcessorState | ||||
|  | @ -241,13 +209,13 @@ func (p *TracerProvider) UnregisterSpanProcessor(sp SpanProcessor) { | |||
| 	spss[len(spss)-1] = nil | ||||
| 	spss = spss[:len(spss)-1] | ||||
| 
 | ||||
| 	p.spanProcessors.Store(&spss) | ||||
| 	p.spanProcessors.Store(spss) | ||||
| } | ||||
| 
 | ||||
| // ForceFlush immediately exports all spans that have not yet been exported for | ||||
| // all the registered span processors. | ||||
| func (p *TracerProvider) ForceFlush(ctx context.Context) error { | ||||
| 	spss := p.getSpanProcessors() | ||||
| 	spss := p.spanProcessors.Load().(spanProcessorStates) | ||||
| 	if len(spss) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
|  | @ -268,21 +236,18 @@ func (p *TracerProvider) ForceFlush(ctx context.Context) error { | |||
| 
 | ||||
| // Shutdown shuts down TracerProvider. All registered span processors are shut down | ||||
| // in the order they were registered and any held computational resources are released. | ||||
| // After Shutdown is called, all methods are no-ops. | ||||
| func (p *TracerProvider) Shutdown(ctx context.Context) error { | ||||
| 	// This check prevents deadlocks in case of recursive shutdown. | ||||
| 	if p.isShutdown.Load() { | ||||
| 		return nil | ||||
| 	} | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	// This check prevents calls after a shutdown has already been done concurrently. | ||||
| 	if !p.isShutdown.CompareAndSwap(false, true) { // did toggle? | ||||
| 	spss := p.spanProcessors.Load().(spanProcessorStates) | ||||
| 	if len(spss) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	p.mu.Lock() | ||||
| 	defer p.mu.Unlock() | ||||
| 	p.isShutdown = true | ||||
| 
 | ||||
| 	var retErr error | ||||
| 	for _, sps := range p.getSpanProcessors() { | ||||
| 	for _, sps := range spss { | ||||
| 		select { | ||||
| 		case <-ctx.Done(): | ||||
| 			return ctx.Err() | ||||
|  | @ -302,14 +267,10 @@ func (p *TracerProvider) Shutdown(ctx context.Context) error { | |||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	p.spanProcessors.Store(&spanProcessorStates{}) | ||||
| 	p.spanProcessors.Store(spanProcessorStates{}) | ||||
| 	return retErr | ||||
| } | ||||
| 
 | ||||
| func (p *TracerProvider) getSpanProcessors() spanProcessorStates { | ||||
| 	return *(p.spanProcessors.Load()) | ||||
| } | ||||
| 
 | ||||
| // TracerProviderOption configures a TracerProvider. | ||||
| type TracerProviderOption interface { | ||||
| 	apply(tracerProviderConfig) tracerProviderConfig | ||||
|  |  | |||
							
								
								
									
										9
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -19,13 +19,12 @@ import ( | |||
| 	"sync" | ||||
| 
 | ||||
| 	"go.opentelemetry.io/otel" | ||||
| 	"go.opentelemetry.io/otel/internal/global" | ||||
| ) | ||||
| 
 | ||||
| // simpleSpanProcessor is a SpanProcessor that synchronously sends all | ||||
| // completed Spans to a trace.Exporter immediately. | ||||
| type simpleSpanProcessor struct { | ||||
| 	exporterMu sync.Mutex | ||||
| 	exporterMu sync.RWMutex | ||||
| 	exporter   SpanExporter | ||||
| 	stopOnce   sync.Once | ||||
| } | ||||
|  | @ -44,8 +43,6 @@ func NewSimpleSpanProcessor(exporter SpanExporter) SpanProcessor { | |||
| 	ssp := &simpleSpanProcessor{ | ||||
| 		exporter: exporter, | ||||
| 	} | ||||
| 	global.Warn("SimpleSpanProcessor is not recommended for production use, consider using BatchSpanProcessor instead.") | ||||
| 
 | ||||
| 	return ssp | ||||
| } | ||||
| 
 | ||||
|  | @ -54,8 +51,8 @@ func (ssp *simpleSpanProcessor) OnStart(context.Context, ReadWriteSpan) {} | |||
| 
 | ||||
| // OnEnd immediately exports a ReadOnlySpan. | ||||
| func (ssp *simpleSpanProcessor) OnEnd(s ReadOnlySpan) { | ||||
| 	ssp.exporterMu.Lock() | ||||
| 	defer ssp.exporterMu.Unlock() | ||||
| 	ssp.exporterMu.RLock() | ||||
| 	defer ssp.exporterMu.RUnlock() | ||||
| 
 | ||||
| 	if ssp.exporter != nil && s.SpanContext().TraceFlags().IsSampled() { | ||||
| 		if err := ssp.exporter.ExportSpans(context.Background(), []ReadOnlySpan{s}); err != nil { | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -302,7 +302,7 @@ func (s *recordingSpan) addOverCapAttrs(limit int, attrs []attribute.KeyValue) { | |||
| // most a length of limit. Each string slice value is truncated in this fashion | ||||
| // (the slice length itself is unaffected). | ||||
| // | ||||
| // No truncation is performed for a negative limit. | ||||
| // No truncation is perfromed for a negative limit. | ||||
| func truncateAttr(limit int, attr attribute.KeyValue) attribute.KeyValue { | ||||
| 	if limit < 0 { | ||||
| 		return attr | ||||
|  | @ -410,7 +410,7 @@ func (s *recordingSpan) End(options ...trace.SpanEndOption) { | |||
| 	} | ||||
| 	s.mu.Unlock() | ||||
| 
 | ||||
| 	sps := s.tracer.provider.getSpanProcessors() | ||||
| 	sps := s.tracer.provider.spanProcessors.Load().(spanProcessorStates) | ||||
| 	if len(sps) == 0 { | ||||
| 		return | ||||
| 	} | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -38,7 +38,7 @@ type SpanExporter interface { | |||
| 	// must never be done outside of a new major release. | ||||
| 
 | ||||
| 	// Shutdown notifies the exporter of a pending halt to operations. The | ||||
| 	// exporter is expected to perform any cleanup or synchronization it | ||||
| 	// exporter is expected to preform any cleanup or synchronization it | ||||
| 	// requires while honoring all timeouts and cancellations contained in | ||||
| 	// the passed context. | ||||
| 	Shutdown(ctx context.Context) error | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -62,11 +62,11 @@ type SpanProcessor interface { | |||
| 
 | ||||
| type spanProcessorState struct { | ||||
| 	sp    SpanProcessor | ||||
| 	state sync.Once | ||||
| 	state *sync.Once | ||||
| } | ||||
| 
 | ||||
| func newSpanProcessorState(sp SpanProcessor) *spanProcessorState { | ||||
| 	return &spanProcessorState{sp: sp} | ||||
| 	return &spanProcessorState{sp: sp, state: &sync.Once{}} | ||||
| } | ||||
| 
 | ||||
| type spanProcessorStates []*spanProcessorState | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -51,7 +51,7 @@ func (tr *tracer) Start(ctx context.Context, name string, options ...trace.SpanS | |||
| 
 | ||||
| 	s := tr.newSpan(ctx, name, &config) | ||||
| 	if rw, ok := s.(ReadWriteSpan); ok && s.IsRecording() { | ||||
| 		sps := tr.provider.getSpanProcessors() | ||||
| 		sps := tr.provider.spanProcessors.Load().(spanProcessorStates) | ||||
| 		for _, sp := range sps { | ||||
| 			sp.sp.OnStart(ctx, rw) | ||||
| 		} | ||||
|  |  | |||
							
								
								
									
										20
									
								
								vendor/go.opentelemetry.io/otel/sdk/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/go.opentelemetry.io/otel/sdk/version.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 sdk // import "go.opentelemetry.io/otel/sdk" | ||||
| 
 | ||||
| // Version is the current release version of the OpenTelemetry SDK in use. | ||||
| func Version() string { | ||||
| 	return "1.15.1" | ||||
| } | ||||
							
								
								
									
										18
									
								
								vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -12,8 +12,8 @@ | |||
| // See the License for the specific language governing permissions and | ||||
| // limitations under the License. | ||||
| 
 | ||||
| // Package httpconv provides OpenTelemetry HTTP semantic conventions for | ||||
| // tracing telemetry. | ||||
| // Package httpconv provides OpenTelemetry semantic convetions for the net/http | ||||
| // package from the standard library. | ||||
| package httpconv // import "go.opentelemetry.io/otel/semconv/v1.17.0/httpconv" | ||||
| 
 | ||||
| import ( | ||||
|  | @ -58,10 +58,9 @@ var ( | |||
| 	} | ||||
| ) | ||||
| 
 | ||||
| // ClientResponse returns trace attributes for an HTTP response received by a | ||||
| // client from a server. It will return the following attributes if the related | ||||
| // values are defined in resp: "http.status.code", | ||||
| // "http.response_content_length". | ||||
| // ClientResponse returns attributes for an HTTP response received by a client | ||||
| // from a server. It will return the following attributes if the related values | ||||
| // are defined in resp: "http.status.code", "http.response_content_length". | ||||
| // | ||||
| // This does not add all OpenTelemetry required attributes for an HTTP event, | ||||
| // it assumes ClientRequest was used to create the span with a complete set of | ||||
|  | @ -73,8 +72,8 @@ func ClientResponse(resp *http.Response) []attribute.KeyValue { | |||
| 	return hc.ClientResponse(resp) | ||||
| } | ||||
| 
 | ||||
| // ClientRequest returns trace attributes for an HTTP request made by a client. | ||||
| // The following attributes are always returned: "http.url", "http.flavor", | ||||
| // ClientRequest returns attributes for an HTTP request made by a client. The | ||||
| // following attributes are always returned: "http.url", "http.flavor", | ||||
| // "http.method", "net.peer.name". The following attributes are returned if the | ||||
| // related values are defined in req: "net.peer.port", "http.user_agent", | ||||
| // "http.request_content_length", "enduser.id". | ||||
|  | @ -88,8 +87,7 @@ func ClientStatus(code int) (codes.Code, string) { | |||
| 	return hc.ClientStatus(code) | ||||
| } | ||||
| 
 | ||||
| // ServerRequest returns trace attributes for an HTTP request received by a | ||||
| // server. | ||||
| // ServerRequest returns attributes for an HTTP request received by a server. | ||||
| // | ||||
| // The server must be the primary server name if it is known. For example this | ||||
| // would be the ServerName directive | ||||
|  |  | |||
							
								
								
									
										4
									
								
								vendor/go.opentelemetry.io/otel/trace/noop.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/go.opentelemetry.io/otel/trace/noop.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -37,7 +37,7 @@ func (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer { | |||
| 	return noopTracer{} | ||||
| } | ||||
| 
 | ||||
| // noopTracer is an implementation of Tracer that performs no operations. | ||||
| // noopTracer is an implementation of Tracer that preforms no operations. | ||||
| type noopTracer struct{} | ||||
| 
 | ||||
| var _ Tracer = noopTracer{} | ||||
|  | @ -53,7 +53,7 @@ func (t noopTracer) Start(ctx context.Context, name string, _ ...SpanStartOption | |||
| 	return ContextWithSpan(ctx, span), span | ||||
| } | ||||
| 
 | ||||
| // noopSpan is an implementation of Span that performs no operations. | ||||
| // noopSpan is an implementation of Span that preforms no operations. | ||||
| type noopSpan struct{} | ||||
| 
 | ||||
| var _ Span = noopSpan{} | ||||
|  |  | |||
							
								
								
									
										2
									
								
								vendor/go.opentelemetry.io/otel/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/go.opentelemetry.io/otel/version.go
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -16,5 +16,5 @@ package otel // import "go.opentelemetry.io/otel" | |||
| 
 | ||||
| // Version is the current release version of OpenTelemetry in use. | ||||
| func Version() string { | ||||
| 	return "1.15.1" | ||||
| 	return "1.14.0" | ||||
| } | ||||
|  |  | |||
							
								
								
									
										10
									
								
								vendor/go.opentelemetry.io/otel/versions.yaml
									
										
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/go.opentelemetry.io/otel/versions.yaml
									
										
									
										generated
									
									
										vendored
									
									
								
							|  | @ -14,7 +14,7 @@ | |||
| 
 | ||||
| module-sets: | ||||
|   stable-v1: | ||||
|     version: v1.15.1 | ||||
|     version: v1.14.0 | ||||
|     modules: | ||||
|       - go.opentelemetry.io/otel | ||||
|       - go.opentelemetry.io/otel/bridge/opentracing | ||||
|  | @ -26,16 +26,16 @@ module-sets: | |||
|       - go.opentelemetry.io/otel/example/passthrough | ||||
|       - go.opentelemetry.io/otel/example/zipkin | ||||
|       - go.opentelemetry.io/otel/exporters/jaeger | ||||
|       - go.opentelemetry.io/otel/exporters/otlp/internal/retry | ||||
|       - go.opentelemetry.io/otel/exporters/zipkin | ||||
|       - go.opentelemetry.io/otel/exporters/otlp/otlptrace | ||||
|       - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc | ||||
|       - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp | ||||
|       - go.opentelemetry.io/otel/exporters/otlp/internal/retry | ||||
|       - go.opentelemetry.io/otel/exporters/stdout/stdouttrace | ||||
|       - go.opentelemetry.io/otel/exporters/zipkin | ||||
|       - go.opentelemetry.io/otel/sdk | ||||
|       - go.opentelemetry.io/otel/trace | ||||
|       - go.opentelemetry.io/otel/sdk | ||||
|   experimental-metrics: | ||||
|     version: v0.38.1 | ||||
|     version: v0.37.0 | ||||
|     modules: | ||||
|       - go.opentelemetry.io/otel/example/opencensus | ||||
|       - go.opentelemetry.io/otel/example/prometheus | ||||
|  |  | |||
							
								
								
									
										39
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										39
									
								
								vendor/modules.txt
									
										
									
									
										vendored
									
									
								
							|  | @ -731,10 +731,10 @@ github.com/uptrace/bun/dialect/pgdialect | |||
| # github.com/uptrace/bun/dialect/sqlitedialect v1.1.13 | ||||
| ## explicit; go 1.18 | ||||
| github.com/uptrace/bun/dialect/sqlitedialect | ||||
| # github.com/uptrace/bun/extra/bunotel v1.1.13 | ||||
| # github.com/uptrace/bun/extra/bunotel v1.1.12 | ||||
| ## explicit; go 1.18 | ||||
| github.com/uptrace/bun/extra/bunotel | ||||
| # github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.0 | ||||
| # github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.21 | ||||
| ## explicit; go 1.18 | ||||
| github.com/uptrace/opentelemetry-go-extra/otelsql | ||||
| # github.com/vmihailenco/msgpack/v5 v5.3.5 | ||||
|  | @ -760,8 +760,8 @@ github.com/yuin/goldmark/renderer | |||
| github.com/yuin/goldmark/renderer/html | ||||
| github.com/yuin/goldmark/text | ||||
| github.com/yuin/goldmark/util | ||||
| # go.opentelemetry.io/otel v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel | ||||
| go.opentelemetry.io/otel/attribute | ||||
| go.opentelemetry.io/otel/baggage | ||||
|  | @ -779,42 +779,39 @@ go.opentelemetry.io/otel/semconv/v1.10.0 | |||
| go.opentelemetry.io/otel/semconv/v1.12.0 | ||||
| go.opentelemetry.io/otel/semconv/v1.17.0 | ||||
| go.opentelemetry.io/otel/semconv/v1.17.0/httpconv | ||||
| # go.opentelemetry.io/otel/exporters/jaeger v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/exporters/jaeger v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/exporters/jaeger | ||||
| go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/agent | ||||
| go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/jaeger | ||||
| go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/zipkincore | ||||
| go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift | ||||
| # go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry | ||||
| # go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform | ||||
| # go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc | ||||
| # go.opentelemetry.io/otel/metric v0.38.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/metric v0.37.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/metric | ||||
| go.opentelemetry.io/otel/metric/embedded | ||||
| go.opentelemetry.io/otel/metric/global | ||||
| go.opentelemetry.io/otel/metric/instrument | ||||
| go.opentelemetry.io/otel/metric/internal/global | ||||
| # go.opentelemetry.io/otel/sdk v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| go.opentelemetry.io/otel/sdk | ||||
| # go.opentelemetry.io/otel/sdk v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/sdk/instrumentation | ||||
| go.opentelemetry.io/otel/sdk/internal | ||||
| go.opentelemetry.io/otel/sdk/internal/env | ||||
| go.opentelemetry.io/otel/sdk/resource | ||||
| go.opentelemetry.io/otel/sdk/trace | ||||
| # go.opentelemetry.io/otel/trace v1.15.1 | ||||
| ## explicit; go 1.19 | ||||
| # go.opentelemetry.io/otel/trace v1.14.0 | ||||
| ## explicit; go 1.18 | ||||
| go.opentelemetry.io/otel/trace | ||||
| # go.opentelemetry.io/proto/otlp v0.19.0 | ||||
| ## explicit; go 1.14 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue