Skip to content

Commit dc31f09

Browse files
authored
Merge branch 'main' into optimize_dropres
2 parents 34ee3de + 1440987 commit dc31f09

34 files changed

Lines changed: 486 additions & 137 deletions

File tree

.github/workflows/benchmark.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
check-latest: true
4141
cache-dependency-path: "**/go.sum"
4242
- name: Run the benchmarks
43-
uses: CodSpeedHQ/action@658a901452bb54c799643e060733b7afe9121b8d # v4.14.0
43+
uses: CodSpeedHQ/action@c381be0bfd20e844fb45594f6aa182ffcd94545c # v4.15.0
4444
with:
4545
mode: walltime
4646
allow-empty: true

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
1111
### Added
1212

1313
- Add `ByteSlice` and `ByteSliceValue` functions for new `BYTESLICE` attribute type in `go.opentelemetry.io/otel/attribute`. (#7948)
14+
- Apply attribute value limit to the `KindBytes` attribute type in `go.opentelemetry.io/otel/sdk/log`. (#7990)
15+
- Apply attribute value limit to the `BYTESLICE` attribute type in `go.opentelemetry.io/otel/sdk/trace`. (#7990)
1416
- Support `BYTESLICE` attributes in `go.opentelemetry.io/otel/trace`. (#8153)
1517
- Support `BYTESLICE` attributes in `go.opentelemetry.io/otel/exporters/otlp/otlptrace`. (#8153)
1618
- Support `BYTESLICE` attributes in `go.opentelemetry.io/otel/exporters/otlp/otlplog`. (#8153)
@@ -76,6 +78,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
7678
- Fix a concurrent `Collect` data race and potential panic in `go.opentelemetry.io/otel/exporters/prometheus` when `WithResourceAsConstantLabels` option is used. (#8227)
7779
- Fix race condition in `FixedSizeReservoir` in `go.opentelemetry.io/otel/sdk/metric/exemplar` by reverting #7447. (#8249)
7880
- Fix counting of spans and logs in self-observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`, `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`, `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`, and `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#8254)
81+
- Drop conflicting scope attributes named `name`, `version`, or `schema_url` from metric labels in `go.opentelemetry.io/otel/exporters/prometheus`, preserving the dedicated `otel_scope_name`, `otel_scope_version`, and `otel_scope_schema_url` labels. (#8264)
7982

8083
<!-- Released section -->
8184
<!-- Don't change this section unless doing release -->

attribute/hash_test.go

Lines changed: 82 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -15,59 +15,73 @@ import (
1515
"go.opentelemetry.io/otel/attribute/internal/xxhash"
1616
)
1717

18+
type keyVal struct {
19+
name string
20+
kv func(string) KeyValue
21+
}
22+
1823
// keyVals is all the KeyValue generators that are used for testing. This is
1924
// not []KeyValue so different keys can be used with the test Values.
20-
var keyVals = []func(string) KeyValue{
21-
func(k string) KeyValue { return Bool(k, true) },
22-
func(k string) KeyValue { return Bool(k, false) },
23-
func(k string) KeyValue { return BoolSlice(k, []bool{false, true}) },
24-
func(k string) KeyValue { return BoolSlice(k, []bool{true, true, false}) },
25-
func(k string) KeyValue { return Int(k, -1278) },
26-
func(k string) KeyValue { return Int(k, 0) }, // Should be different than false above.
27-
func(k string) KeyValue { return IntSlice(k, []int{3, 23, 21, -8, 0}) },
28-
func(k string) KeyValue { return IntSlice(k, []int{1}) },
29-
func(k string) KeyValue { return Int64(k, 1) }, // Should be different from true and []int{1}.
30-
func(k string) KeyValue { return Int64(k, 29369) },
31-
func(k string) KeyValue { return Int64Slice(k, []int64{3826, -38, -29, -1}) },
32-
func(k string) KeyValue { return Int64Slice(k, []int64{8, -328, 29, 0}) },
33-
func(k string) KeyValue { return Float64(k, -0.3812381) },
34-
func(k string) KeyValue { return Float64(k, 1e32) },
35-
func(k string) KeyValue { return Float64Slice(k, []float64{0.1, -3.8, -29., 0.3321}) },
36-
func(k string) KeyValue { return Float64Slice(k, []float64{-13e8, -32.8, 4., 1e28}) },
37-
func(k string) KeyValue { return String(k, "foo") },
38-
func(k string) KeyValue { return String(k, "bar") },
39-
func(k string) KeyValue { return StringSlice(k, []string{"foo", "bar", "baz"}) },
40-
func(k string) KeyValue { return StringSlice(k, []string{"[]i1"}) },
41-
func(k string) KeyValue { return ByteSlice(k, []byte("foo")) },
42-
func(k string) KeyValue { return ByteSlice(k, []byte("[]i1")) },
43-
func(k string) KeyValue { return Slice(k) },
44-
func(k string) KeyValue { return Slice(k, BoolValue(true)) },
45-
func(k string) KeyValue { return Slice(k, BoolValue(true), IntValue(42)) },
46-
func(k string) KeyValue {
25+
var keyVals = []keyVal{
26+
{name: "BoolTrue", kv: func(k string) KeyValue { return Bool(k, true) }},
27+
{name: "BoolFalse", kv: func(k string) KeyValue { return Bool(k, false) }},
28+
{name: "BoolSliceLen2", kv: func(k string) KeyValue { return BoolSlice(k, []bool{false, true}) }},
29+
{name: "BoolSliceLen3", kv: func(k string) KeyValue { return BoolSlice(k, []bool{true, true, false}) }},
30+
{name: "IntNegative", kv: func(k string) KeyValue { return Int(k, -1278) }},
31+
{name: "IntZero", kv: func(k string) KeyValue { return Int(k, 0) }}, // Should be different than false above.
32+
{name: "IntSliceLen5", kv: func(k string) KeyValue { return IntSlice(k, []int{3, 23, 21, -8, 0}) }},
33+
{name: "IntSliceLen1", kv: func(k string) KeyValue { return IntSlice(k, []int{1}) }},
34+
{
35+
name: "Int64One",
36+
kv: func(k string) KeyValue { return Int64(k, 1) },
37+
}, // Should be different from true and []int{1}.
38+
{name: "Int64", kv: func(k string) KeyValue { return Int64(k, 29369) }},
39+
{name: "Int64SliceLen4", kv: func(k string) KeyValue { return Int64Slice(k, []int64{3826, -38, -29, -1}) }},
40+
{name: "Int64SliceWithZero", kv: func(k string) KeyValue { return Int64Slice(k, []int64{8, -328, 29, 0}) }},
41+
{name: "Float64", kv: func(k string) KeyValue { return Float64(k, -0.3812381) }},
42+
{name: "Float64Large", kv: func(k string) KeyValue { return Float64(k, 1e32) }},
43+
{
44+
name: "Float64SliceLen4",
45+
kv: func(k string) KeyValue { return Float64Slice(k, []float64{0.1, -3.8, -29., 0.3321}) },
46+
},
47+
{
48+
name: "Float64SliceLarge",
49+
kv: func(k string) KeyValue { return Float64Slice(k, []float64{-13e8, -32.8, 4., 1e28}) },
50+
},
51+
{name: "StringFoo", kv: func(k string) KeyValue { return String(k, "foo") }},
52+
{name: "StringBar", kv: func(k string) KeyValue { return String(k, "bar") }},
53+
{name: "StringSliceLen3", kv: func(k string) KeyValue { return StringSlice(k, []string{"foo", "bar", "baz"}) }},
54+
{name: "StringSliceLooksLikeIntSlice", kv: func(k string) KeyValue { return StringSlice(k, []string{"[]i1"}) }},
55+
{name: "ByteSliceFoo", kv: func(k string) KeyValue { return ByteSlice(k, []byte("foo")) }},
56+
{name: "ByteSliceLooksLikeIntSlice", kv: func(k string) KeyValue { return ByteSlice(k, []byte("[]i1")) }},
57+
{name: "SliceLen0", kv: func(k string) KeyValue { return Slice(k) }},
58+
{name: "SliceLen1", kv: func(k string) KeyValue { return Slice(k, BoolValue(true)) }},
59+
{name: "SliceLen2", kv: func(k string) KeyValue { return Slice(k, BoolValue(true), IntValue(42)) }},
60+
{name: "SliceLen3", kv: func(k string) KeyValue {
4761
return Slice(k,
4862
StringValue("triad"),
4963
IntValue(3),
5064
BoolValue(false),
5165
)
52-
},
53-
func(k string) KeyValue {
66+
}},
67+
{name: "SliceLen4", kv: func(k string) KeyValue {
5468
return Slice(k,
5569
StringValue("quad"),
5670
IntValue(4),
5771
BoolValue(false),
5872
Float64Value(4.25),
5973
)
60-
},
61-
func(k string) KeyValue {
74+
}},
75+
{name: "SliceLen5", kv: func(k string) KeyValue {
6276
return Slice(k,
6377
StringValue("penta"),
6478
IntValue(5),
6579
BoolValue(true),
6680
Float64Value(5.5),
6781
ByteSliceValue([]byte("five")),
6882
)
69-
},
70-
func(k string) KeyValue {
83+
}},
84+
{name: "SliceNested", kv: func(k string) KeyValue {
7185
return Slice(k,
7286
StringValue("nested"),
7387
SliceValue(Float64Value(math.Inf(1)), ByteSliceValue([]byte("bin"))),
@@ -76,8 +90,8 @@ var keyVals = []func(string) KeyValue{
7690
StringValue("tail"),
7791
StringSliceValue([]string{"fallback"}),
7892
)
79-
},
80-
func(k string) KeyValue { return KeyValue{Key: Key(k)} }, // Empty value.
93+
}},
94+
{name: "EmptyValue", kv: func(k string) KeyValue { return KeyValue{Key: Key(k)} }},
8195
}
8296

8397
func TestHashKVs(t *testing.T) {
@@ -112,21 +126,21 @@ func TestHashKVs(t *testing.T) {
112126
// Test all combinations of 1, 2, and 3 attributes with different keys and values.
113127
for _, key := range keys {
114128
for i := range keyVals {
115-
kvs := []KeyValue{keyVals[i](key)}
129+
kvs := []KeyValue{keyVals[i].kv(key)}
116130
assertUniqueHash(kvs)
117131

118132
for j := range keyVals {
119133
kvs := []KeyValue{
120-
keyVals[i](key),
121-
keyVals[j](key),
134+
keyVals[i].kv(key),
135+
keyVals[j].kv(key),
122136
}
123137
assertUniqueHash(kvs)
124138

125139
for k := range keyVals {
126140
kvs := []KeyValue{
127-
keyVals[i](key),
128-
keyVals[j](key),
129-
keyVals[k](key),
141+
keyVals[i].kv(key),
142+
keyVals[j].kv(key),
143+
keyVals[k].kv(key),
130144
}
131145
assertUniqueHash(kvs)
132146
}
@@ -158,13 +172,35 @@ func slice(kvs []KeyValue) string {
158172
func BenchmarkHashKVs(b *testing.B) {
159173
attrs := make([]KeyValue, len(keyVals))
160174
for i := range keyVals {
161-
attrs[i] = keyVals[i]("k")
175+
attrs[i] = keyVals[i].kv("k")
176+
}
177+
178+
benches := []struct {
179+
name string
180+
kvs []KeyValue
181+
}{
182+
{
183+
name: "All",
184+
kvs: attrs,
185+
},
186+
}
187+
for _, gen := range keyVals {
188+
benches = append(benches, struct {
189+
name string
190+
kvs []KeyValue
191+
}{
192+
name: gen.name,
193+
kvs: []KeyValue{gen.kv("k")},
194+
})
162195
}
163196

164-
b.ResetTimer()
165-
b.ReportAllocs()
166-
for b.Loop() {
167-
hashKVs(attrs)
197+
for _, bench := range benches {
198+
b.Run(bench.name, func(b *testing.B) {
199+
b.ReportAllocs()
200+
for b.Loop() {
201+
hashKVs(bench.kvs)
202+
}
203+
})
168204
}
169205
}
170206

bridge/opentracing/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ require (
2828
golang.org/x/net v0.53.0 // indirect
2929
golang.org/x/sys v0.43.0 // indirect
3030
golang.org/x/text v0.36.0 // indirect
31-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 // indirect
31+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 // indirect
3232
google.golang.org/protobuf v1.36.11 // indirect
3333
gopkg.in/yaml.v3 v3.0.1 // indirect
3434
)

bridge/opentracing/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
4646
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
4747
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
4848
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
49-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 h1:XF8+t6QQiS0o9ArVan/HW8Q7cycNPGsJf6GA2nXxYAg=
50-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
49+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 h1:tEkOQcXgF6dH1G+MVKZrfpYvozGrzb91k6ha7jireSM=
50+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
5151
google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
5252
google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
5353
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=

exporters/otlp/otlplog/otlploggrpc/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
go.opentelemetry.io/otel/sdk/metric v1.43.0
1919
go.opentelemetry.io/otel/trace v1.43.0
2020
go.opentelemetry.io/proto/otlp v1.10.0
21-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529
21+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4
2222
google.golang.org/grpc v1.80.0
2323
google.golang.org/protobuf v1.36.11
2424
)
@@ -35,7 +35,7 @@ require (
3535
golang.org/x/net v0.53.0 // indirect
3636
golang.org/x/sys v0.43.0 // indirect
3737
golang.org/x/text v0.36.0 // indirect
38-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529 // indirect
38+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 // indirect
3939
gopkg.in/yaml.v3 v3.0.1 // indirect
4040
)
4141

exporters/otlp/otlplog/otlploggrpc/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
3939
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
4040
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
4141
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
42-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529 h1:zUWMZsvo/IJcD1t6MNCPO/azZTwz0TvwCBqr5aifoVY=
43-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529/go.mod h1:a5OGAgyRr4lqco7AG9hQM9Fwh0N2ZV4grR0eXFEsXQg=
44-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 h1:XF8+t6QQiS0o9ArVan/HW8Q7cycNPGsJf6GA2nXxYAg=
45-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
42+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 h1:yOzSCGPx+cp5VO7IxvZ9SBFF7j1tZVcNtlHR2iYKtVo=
43+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:Q9HWtNeE7tM9npdIsEvqXj1QJIvVoeAV3rtXtS715Cw=
44+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 h1:tEkOQcXgF6dH1G+MVKZrfpYvozGrzb91k6ha7jireSM=
45+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
4646
google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
4747
google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
4848
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=

exporters/otlp/otlplog/otlploghttp/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ require (
3333
golang.org/x/net v0.53.0 // indirect
3434
golang.org/x/sys v0.43.0 // indirect
3535
golang.org/x/text v0.36.0 // indirect
36-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529 // indirect
37-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 // indirect
36+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 // indirect
37+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 // indirect
3838
google.golang.org/grpc v1.80.0 // indirect
3939
gopkg.in/yaml.v3 v3.0.1 // indirect
4040
)

exporters/otlp/otlplog/otlploghttp/go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
3939
golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
4040
gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4=
4141
gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E=
42-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529 h1:zUWMZsvo/IJcD1t6MNCPO/azZTwz0TvwCBqr5aifoVY=
43-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529/go.mod h1:a5OGAgyRr4lqco7AG9hQM9Fwh0N2ZV4grR0eXFEsXQg=
44-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529 h1:XF8+t6QQiS0o9ArVan/HW8Q7cycNPGsJf6GA2nXxYAg=
45-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
42+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 h1:yOzSCGPx+cp5VO7IxvZ9SBFF7j1tZVcNtlHR2iYKtVo=
43+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:Q9HWtNeE7tM9npdIsEvqXj1QJIvVoeAV3rtXtS715Cw=
44+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 h1:tEkOQcXgF6dH1G+MVKZrfpYvozGrzb91k6ha7jireSM=
45+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
4646
google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM=
4747
google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4=
4848
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=

exporters/otlp/otlpmetric/otlpmetricgrpc/go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
go.opentelemetry.io/otel/sdk v1.43.0
1313
go.opentelemetry.io/otel/sdk/metric v1.43.0
1414
go.opentelemetry.io/proto/otlp v1.10.0
15-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260420184626-e10c466a9529
15+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4
1616
google.golang.org/grpc v1.80.0
1717
google.golang.org/protobuf v1.36.11
1818
)
@@ -31,7 +31,7 @@ require (
3131
golang.org/x/net v0.53.0 // indirect
3232
golang.org/x/sys v0.43.0 // indirect
3333
golang.org/x/text v0.36.0 // indirect
34-
google.golang.org/genproto/googleapis/api v0.0.0-20260420184626-e10c466a9529 // indirect
34+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 // indirect
3535
gopkg.in/yaml.v3 v3.0.1 // indirect
3636
)
3737

0 commit comments

Comments
 (0)