Skip to content

Commit 560c75c

Browse files
authored
Implement repository fields and support for filtered caller tracking (#79)
* Add repository fields to BuildInfo metric Fixes AM-41 * Add system to track only Autometricized parents The parent tracking is span-based (using `(TraceID, SpanId)` as keys) It falls back to the previous method (`runtime.Callers()` analysis) if the function id for a given span is missing from the global state. To prevent the global state from ballooning memory usage, the entries in the span-to-functionIDs table are deleted as part of the cleanup code in `Instrument` (that is why some goroutines outliving their callers with weird scheduling might miss the function id in the global state.) This solution deals well with functions spawning multiple goroutines, but the caller info will be "enhanced" (i.e. with Autometrics annotated functions in the parent field) only if the context created by autometrics.PreInstrument is properly passed to callees, which is a task followed in #78 Fixes: AM-42 * Split context generation from defer statement This allow library users to reuse the context augmented with Autometrics, so the tracing and caller information can be a lot more precise Fixes: #78 * Better, shorter error messages * Accept more function signatures in instrument Instead of erroring out when some arguments cannot be inspected for context inspection, we log the information. * Add more build information in binaries This will fix the builds that are downloaded, but not the ones from go install * Fix context replacement for http.Request The context of a HTTP request is not assignable, so we need to read from the existing context and create a new one * Add autometrics.version to build_info metric
1 parent 71cd848 commit 560c75c

File tree

28 files changed

+1431
-636
lines changed

28 files changed

+1431
-636
lines changed

Diff for: .github/workflows/release.yml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
with:
3434
# We need all tags
3535
fetch-depth: 0
36+
fetch-tags: true
3637
- name: Set up Go
3738
uses: actions/setup-go@v4
3839
with:

Diff for: CHANGELOG.md

+30
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,48 @@ versioning](https://go.dev/doc/modules/version-numbers).
88

99
## [Unreleased](https://github.com/autometrics-dev/autometrics-go/compare/v0.8.2...main)
1010

11+
The main goal of this release is to reach compatibility with 1.0.0 version of Autometrics
12+
specification.
13+
1114
### Added
1215

16+
- [All] `autometrics` now also optionnally adds the repository where the code comes from
17+
in the `build_info` metric. `repository.url` and `repository.provider` can be either
18+
set in the `BuildInformation` structure when calling `autometrics.Init`, or by setting
19+
environment variables `AUTOMETRICS_REPOSITORY_URL` and `AUTOMETRICS_REPOSITORY_PROVIDER`,
20+
respectively.
21+
1322
### Changed
1423

24+
- [All] `autometrics` now inserts 2 statements in each function it instruments. The context
25+
created to track the function execution is now put in a variable, so that callees in the
26+
function body can optionnally use the context to help with better trace/span/call graph
27+
tracking. If `autometrics` detects a `context.Context` it can use, it will shadow the
28+
context with the autometrics augmented one to reduce the changes to make in the code.
29+
Currently, `autometrics` can detect arguments of specific types in the function signatures
30+
to read from and replace contexts:
31+
+ `context.Context` (read and replace)
32+
+ `http.Request` (read only)
33+
+ `buffalo.Request` (read and replace)
34+
+ `gin.Context` (read only; _very_ experimental)
35+
- [Generator] The generator now tries to keep going with instrumentation even if some instrumentation
36+
fails. On error, still _No file will be modified_, and the generator will exit with an error code
37+
and output all the collected errors instead of only the first one.
38+
1539
### Deprecated
1640

1741
### Removed
1842

1943
### Fixed
2044

45+
- [Generator] Fix a few generator crashes when instrumented functions have specific argument types.
46+
2147
### Security
2248

49+
- Update all dependencies to reduce dependabot alerts in
50+
+ `google.golang.org/grpc`
51+
+ `golang.org/x/net`
52+
2353
## [0.8.2](https://github.com/autometrics-dev/autometrics-go/releases/tag/v0.8.2) 2023-10-20
2454

2555
### Added

Diff for: cmd/autometrics/main.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ type args struct {
3131
func (args) Version() string {
3232
var buf strings.Builder
3333

34-
fmt.Fprintf(&buf, "Autometrics %s", build.Version)
34+
fmt.Fprintf(&buf, "Autometrics %s (built by %s on %s)",
35+
build.Version,
36+
build.User,
37+
build.Time,
38+
)
3539

3640
return buf.String()
3741
}

Diff for: examples/otel/cmd/main.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,14 @@ func main() {
9898
//
9999
//autometrics:doc --slo "API" --latency-target 99 --latency-ms 5
100100
func indexHandler(w http.ResponseWriter, r *http.Request) error {
101-
defer autometrics.Instrument(autometrics.PreInstrument(autometrics.NewContext(
101+
amCtx := autometrics.PreInstrument(autometrics.NewContext(
102102
r.Context(),
103103
autometrics.WithConcurrentCalls(true),
104104
autometrics.WithCallerName(true),
105105
autometrics.WithSloName("API"),
106106
autometrics.WithAlertLatency(5000000*time.Nanosecond, 99),
107-
)), nil) //autometrics:defer
107+
)) //autometrics:shadow-ctx
108+
defer autometrics.Instrument(amCtx, nil) //autometrics:defer
108109

109110
msSleep := rand.Intn(200)
110111
time.Sleep(time.Duration(msSleep) * time.Millisecond)
@@ -148,13 +149,14 @@ var handlerError = errors.New("failed to handle request")
148149
//
149150
//autometrics:doc --slo "API" --success-target 90
150151
func randomErrorHandler(w http.ResponseWriter, r *http.Request) (err error) {
151-
defer autometrics.Instrument(autometrics.PreInstrument(autometrics.NewContext(
152+
amCtx := autometrics.PreInstrument(autometrics.NewContext(
152153
r.Context(),
153154
autometrics.WithConcurrentCalls(true),
154155
autometrics.WithCallerName(true),
155156
autometrics.WithSloName("API"),
156157
autometrics.WithAlertSuccess(90),
157-
)), &err) //autometrics:defer
158+
)) //autometrics:shadow-ctx
159+
defer autometrics.Instrument(amCtx, &err) //autometrics:defer
158160

159161
isOk := rand.Intn(10) == 0
160162

Diff for: examples/otel/go.mod

+22-22
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,38 @@ go 1.20
44

55
require (
66
github.com/autometrics-dev/autometrics-go v0.0.0-20230222105517-4997cc8aa1e4
7-
github.com/prometheus/client_golang v1.16.0
7+
github.com/prometheus/client_golang v1.17.0
88
)
99

1010
require (
1111
github.com/beorn7/perks v1.0.1 // indirect
1212
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
1313
github.com/cespare/xxhash/v2 v2.2.0 // indirect
14-
github.com/go-logr/logr v1.2.4 // indirect
14+
github.com/go-logr/logr v1.3.0 // indirect
1515
github.com/go-logr/stdr v1.2.2 // indirect
1616
github.com/golang/protobuf v1.5.3 // indirect
17-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
18-
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
17+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
18+
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
1919
github.com/oklog/ulid/v2 v2.1.0 // indirect
20-
github.com/prometheus/client_model v0.4.0 // indirect
21-
github.com/prometheus/common v0.44.0 // indirect
22-
github.com/prometheus/procfs v0.11.1 // indirect
23-
go.opentelemetry.io/otel v1.17.0 // indirect
24-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0 // indirect
25-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0 // indirect
26-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0 // indirect
27-
go.opentelemetry.io/otel/exporters/prometheus v0.40.0 // indirect
28-
go.opentelemetry.io/otel/metric v1.17.0 // indirect
29-
go.opentelemetry.io/otel/sdk v1.17.0 // indirect
30-
go.opentelemetry.io/otel/sdk/metric v0.40.0 // indirect
31-
go.opentelemetry.io/otel/trace v1.17.0 // indirect
20+
github.com/prometheus/client_model v0.5.0 // indirect
21+
github.com/prometheus/common v0.45.0 // indirect
22+
github.com/prometheus/procfs v0.12.0 // indirect
23+
go.opentelemetry.io/otel v1.19.0 // indirect
24+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 // indirect
25+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 // indirect
26+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 // indirect
27+
go.opentelemetry.io/otel/exporters/prometheus v0.42.0 // indirect
28+
go.opentelemetry.io/otel/metric v1.19.0 // indirect
29+
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
30+
go.opentelemetry.io/otel/sdk/metric v1.19.0 // indirect
31+
go.opentelemetry.io/otel/trace v1.19.0 // indirect
3232
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
33-
golang.org/x/net v0.10.0 // indirect
34-
golang.org/x/sys v0.12.0 // indirect
35-
golang.org/x/text v0.9.0 // indirect
36-
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
37-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
38-
google.golang.org/grpc v1.57.0 // indirect
33+
golang.org/x/net v0.17.0 // indirect
34+
golang.org/x/sys v0.13.0 // indirect
35+
golang.org/x/text v0.13.0 // indirect
36+
google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405 // indirect
37+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 // indirect
38+
google.golang.org/grpc v1.59.0 // indirect
3939
google.golang.org/protobuf v1.31.0 // indirect
4040
)
4141

Diff for: examples/otel/go.sum

+46-48
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,67 @@ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj
66
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
77
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
88
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
9-
github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
10-
github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
9+
github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
10+
github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
1111
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
1212
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
13-
github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
14-
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
13+
github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
1514
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
1615
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
1716
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
1817
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1918
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
20-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
21-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
22-
github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
23-
github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
19+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk=
20+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk=
21+
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
22+
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
2423
github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU=
2524
github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
2625
github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
2726
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
28-
github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
29-
github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
30-
github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
31-
github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
32-
github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
33-
github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
34-
github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI=
35-
github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY=
27+
github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q=
28+
github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY=
29+
github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
30+
github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
31+
github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
32+
github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
33+
github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
34+
github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
3635
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
37-
go.opentelemetry.io/otel v1.17.0 h1:MW+phZ6WZ5/uk2nd93ANk/6yJ+dVrvNWUjGhnnFU5jM=
38-
go.opentelemetry.io/otel v1.17.0/go.mod h1:I2vmBGtFaODIVMBSTPVDlJSzBDNf93k60E6Ft0nyjo0=
39-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0 h1:MZbjiZeMmn5wFMORhozpouGKDxj9POHTuU5UA8msBQk=
40-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.40.0/go.mod h1:C7tOYVCJmrDTCwxNny0MuUtnDIR3032vFHYke0F2ZrU=
41-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0 h1:q3FNPi8FLQVjLlmV+WWHQfH9ZCCtQIS0O/+dn1+4cJ4=
42-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.40.0/go.mod h1:rmx4n0uSIAkKBeQYkygcv9dENAlL2/tv3OSq68h1JAo=
43-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0 h1:SZaSbubADNhH2Gxm+1GaZ/cFsGiYefZoodMMX79AOd4=
44-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.40.0/go.mod h1:N65FzQDfQH7NY7umgb0U+7ypGKVYKwwE24L6KXT4OA8=
45-
go.opentelemetry.io/otel/exporters/prometheus v0.40.0 h1:9h6lCssr1j5aYVvWT6oc+ERB6R034zmsHjBRLyxrAR8=
46-
go.opentelemetry.io/otel/exporters/prometheus v0.40.0/go.mod h1:5USWZ0ovyQB5CIM3IO3bGRSoDPMXiT3t+15gu8Zo9HQ=
47-
go.opentelemetry.io/otel/metric v1.17.0 h1:iG6LGVz5Gh+IuO0jmgvpTB6YVrCGngi8QGm+pMd8Pdc=
48-
go.opentelemetry.io/otel/metric v1.17.0/go.mod h1:h4skoxdZI17AxwITdmdZjjYJQH5nzijUUjm+wtPph5o=
49-
go.opentelemetry.io/otel/sdk v1.17.0 h1:FLN2X66Ke/k5Sg3V623Q7h7nt3cHXaW1FOvKKrW0IpE=
50-
go.opentelemetry.io/otel/sdk v1.17.0/go.mod h1:U87sE0f5vQB7hwUoW98pW5Rz4ZDuCFBZFNUBlSgmDFQ=
51-
go.opentelemetry.io/otel/sdk/metric v0.40.0 h1:qOM29YaGcxipWjL5FzpyZDpCYrDREvX0mVlmXdOjCHU=
52-
go.opentelemetry.io/otel/sdk/metric v0.40.0/go.mod h1:dWxHtdzdJvg+ciJUKLTKwrMe5P6Dv3FyDbh8UkfgkVs=
53-
go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYOdSKWQ=
54-
go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY=
36+
go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
37+
go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
38+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0 h1:ZtfnDL+tUrs1F0Pzfwbg2d59Gru9NCH3bgSHBM6LDwU=
39+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.42.0/go.mod h1:hG4Fj/y8TR/tlEDREo8tWstl9fO9gcFkn4xrx0Io8xU=
40+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0 h1:NmnYCiR0qNufkldjVvyQfZTHSdzeHoZ41zggMsdMcLM=
41+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.42.0/go.mod h1:UVAO61+umUsHLtYb8KXXRoHtxUkdOPkYidzW3gipRLQ=
42+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0 h1:wNMDy/LVGLj2h3p6zg4d0gypKfWKSWI14E1C4smOgl8=
43+
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.42.0/go.mod h1:YfbDdXAAkemWJK3H/DshvlrxqFB2rtW4rY6ky/3x/H0=
44+
go.opentelemetry.io/otel/exporters/prometheus v0.42.0 h1:jwV9iQdvp38fxXi8ZC+lNpxjK16MRcZlpDYvbuO1FiA=
45+
go.opentelemetry.io/otel/exporters/prometheus v0.42.0/go.mod h1:f3bYiqNqhoPxkvI2LrXqQVC546K7BuRDL/kKuxkujhA=
46+
go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
47+
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
48+
go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
49+
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
50+
go.opentelemetry.io/otel/sdk/metric v1.19.0 h1:EJoTO5qysMsYCa+w4UghwFV/ptQgqSL/8Ni+hx+8i1k=
51+
go.opentelemetry.io/otel/sdk/metric v1.19.0/go.mod h1:XjG0jQyFJrv2PbMvwND7LwCEhsJzCzV5210euduKcKY=
52+
go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
53+
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
5554
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
5655
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
57-
golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
58-
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
59-
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
60-
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=
61-
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
62-
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
63-
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
56+
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
57+
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
58+
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
59+
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
60+
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
61+
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
6462
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
65-
google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e h1:Ao9GzfUMPH3zjVfzXG5rlWlk+Q8MXWKwWpwVQE1MXfw=
66-
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc h1:kVKPf/IiYSBWEWtkIn6wZXwWGCnLKcC8oWfZvXjsGnM=
67-
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
68-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc h1:XSJ8Vk1SWuNr8S18z1NZSziL0CPIXLCCMDOEFtHBOFc=
69-
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
70-
google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
71-
google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
63+
google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b h1:+YaDE2r2OG8t/z5qmsh7Y+XXwCbvadxxZ0YY6mTdrVA=
64+
google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405 h1:HJMDndgxest5n2y77fnErkM62iUsptE/H8p0dC2Huo4=
65+
google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg=
66+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405 h1:AB/lmRny7e2pLhFEYIbl5qkDAUt2h0ZRO4wGPhZf+ik=
67+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE=
68+
google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk=
69+
google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98=
7270
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
7371
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
7472
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=

0 commit comments

Comments
 (0)