-
Notifications
You must be signed in to change notification settings - Fork 97
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add telemetry/test pkg This package is used to verify the encode/decode of the telemetry pkg is compliant with pdata (i.e. OTLP). * Update versions.yaml * Apply suggestions from code review Co-authored-by: Robert Pająk <[email protected]> * Test Span flags The collector issue blocking this was resolved. --------- Co-authored-by: Robert Pająk <[email protected]>
- Loading branch information
Showing
6 changed files
with
369 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,245 @@ | ||
// Copyright The OpenTelemetry Authors | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
package test | ||
|
||
import ( | ||
"bytes" | ||
"encoding/json" | ||
"testing" | ||
"time" | ||
|
||
"github.com/stretchr/testify/assert" | ||
"github.com/stretchr/testify/require" | ||
"go.opentelemetry.io/collector/pdata/pcommon" | ||
"go.opentelemetry.io/collector/pdata/ptrace" | ||
|
||
"go.opentelemetry.io/auto/sdk/telemetry" | ||
) | ||
|
||
var ( | ||
y2k = time.Unix(0, time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC).UnixNano()) // No location. | ||
|
||
attrsA = []telemetry.Attr{ | ||
telemetry.String("user", "Alice"), | ||
telemetry.Bool("admin", true), | ||
telemetry.Int64("floor", -2), | ||
telemetry.Float64("impact", 0.21362), | ||
telemetry.Slice( | ||
"reports", | ||
telemetry.StringValue("Bob"), | ||
telemetry.StringValue("Dave"), | ||
), | ||
telemetry.Map( | ||
"favorites", | ||
telemetry.String("food", "hot dog"), | ||
telemetry.Int("number", 13), | ||
), | ||
telemetry.Bytes( | ||
"secret", | ||
[]byte("NUI4RUZGRjc5ODAzODEwM0QyNjlCNjMzODEzRkM2MEM="), | ||
), | ||
} | ||
pAttrsA = func() pcommon.Map { | ||
m := pcommon.NewMap() | ||
m.PutStr("user", "Alice") | ||
m.PutBool("admin", true) | ||
m.PutInt("floor", -2) | ||
m.PutDouble("impact", 0.21362) | ||
|
||
s := m.PutEmptySlice("reports") | ||
s.AppendEmpty().SetStr("Bob") | ||
s.AppendEmpty().SetStr("Dave") | ||
|
||
fav := m.PutEmptyMap("favorites") | ||
fav.PutStr("food", "hot dog") | ||
fav.PutInt("number", 13) | ||
|
||
sec := m.PutEmptyBytes("secret") | ||
sec.FromRaw([]byte("NUI4RUZGRjc5ODAzODEwM0QyNjlCNjMzODEzRkM2MEM=")) | ||
|
||
return m | ||
}() | ||
|
||
link = &telemetry.SpanLink{ | ||
TraceID: telemetry.TraceID{0x2}, | ||
SpanID: telemetry.SpanID{0x1}, | ||
TraceState: "test=green", | ||
Attrs: []telemetry.Attr{telemetry.Int("queue", 17)}, | ||
DroppedAttrs: 8, | ||
// https://github.com/open-telemetry/opentelemetry-go-instrumentation/pull/1196 | ||
// Flags: 1, | ||
} | ||
pLink = func() ptrace.SpanLink { | ||
l := ptrace.NewSpanLink() | ||
l.SetTraceID(pcommon.TraceID{0x2}) | ||
l.SetSpanID(pcommon.SpanID{0x1}) | ||
l.TraceState().FromRaw("test=green") | ||
l.Attributes().PutInt("queue", 17) | ||
l.SetDroppedAttributesCount(8) | ||
// https://github.com/open-telemetry/opentelemetry-go-instrumentation/pull/1196 | ||
// l.SetFlags(1) | ||
return l | ||
}() | ||
|
||
event = &telemetry.SpanEvent{ | ||
Time: y2k.Add(10 * time.Microsecond), | ||
Name: "span.event", | ||
Attrs: []telemetry.Attr{telemetry.Float64("impact", 0.4372)}, | ||
DroppedAttrs: 2, | ||
} | ||
prevent = func() ptrace.SpanEvent { | ||
e := ptrace.NewSpanEvent() | ||
e.SetTimestamp(pcommon.NewTimestampFromTime(y2k.Add(10 * time.Microsecond))) | ||
e.SetName("span.event") | ||
e.Attributes().PutDouble("impact", 0.4372) | ||
e.SetDroppedAttributesCount(2) | ||
return e | ||
}() | ||
|
||
spanA = &telemetry.Span{ | ||
TraceID: [16]byte{0x1}, | ||
SpanID: [8]byte{0x2}, | ||
TraceState: "test=a", | ||
ParentSpanID: [8]byte{0x1}, | ||
Flags: 1, | ||
Name: "span.a", | ||
Kind: telemetry.SpanKindClient, | ||
StartTime: y2k, | ||
EndTime: y2k.Add(time.Second), | ||
Attrs: attrsA, | ||
DroppedAttrs: 2, | ||
Events: []*telemetry.SpanEvent{event}, | ||
DroppedEvents: 3, | ||
Links: []*telemetry.SpanLink{link}, | ||
DroppedLinks: 4, | ||
Status: &telemetry.Status{ | ||
Message: "okay", | ||
Code: telemetry.StatusCodeOK, | ||
}, | ||
} | ||
pSpanA = func() ptrace.Span { | ||
s := ptrace.NewSpan() | ||
s.SetTraceID(pcommon.TraceID([16]byte{0x1})) | ||
s.SetSpanID(pcommon.SpanID([8]byte{0x2})) | ||
|
||
ts := s.TraceState() | ||
ts.FromRaw("test=a") | ||
|
||
s.SetParentSpanID(pcommon.SpanID([8]byte{0x1})) | ||
s.SetFlags(1) | ||
s.SetName("span.a") | ||
s.SetKind(ptrace.SpanKindClient) | ||
s.SetStartTimestamp(pcommon.NewTimestampFromTime(y2k)) | ||
s.SetEndTimestamp(pcommon.NewTimestampFromTime(y2k.Add(time.Second))) | ||
pAttrsA.CopyTo(s.Attributes()) | ||
s.SetDroppedAttributesCount(2) | ||
prevent.CopyTo(s.Events().AppendEmpty()) | ||
s.SetDroppedEventsCount(3) | ||
pLink.CopyTo(s.Links().AppendEmpty()) | ||
s.SetDroppedLinksCount(4) | ||
|
||
stat := s.Status() | ||
stat.SetMessage("okay") | ||
stat.SetCode(ptrace.StatusCodeOk) | ||
|
||
return s | ||
}() | ||
schema100 = "http://go.opentelemetry.io/schema/v1.0.0" | ||
|
||
scope = &telemetry.Scope{ | ||
Name: "go.opentelemetry.io/auto/sdk/telemetry/test", | ||
Version: "v0.0.1", | ||
Attrs: []telemetry.Attr{telemetry.String("department", "ops")}, | ||
DroppedAttrs: 1, | ||
} | ||
pScope = func() pcommon.InstrumentationScope { | ||
s := pcommon.NewInstrumentationScope() | ||
s.SetName("go.opentelemetry.io/auto/sdk/telemetry/test") | ||
s.SetVersion("v0.0.1") | ||
s.Attributes().PutStr("department", "ops") | ||
s.SetDroppedAttributesCount(1) | ||
return s | ||
}() | ||
|
||
scopeSpans = &telemetry.ScopeSpans{ | ||
Scope: scope, | ||
Spans: []*telemetry.Span{spanA}, | ||
SchemaURL: schema100, | ||
} | ||
pScopeSpans = func() ptrace.ScopeSpans { | ||
s := ptrace.NewScopeSpans() | ||
pSpanA.CopyTo(s.Spans().AppendEmpty()) | ||
pScope.CopyTo(s.Scope()) | ||
s.SetSchemaUrl(schema100) | ||
return s | ||
}() | ||
|
||
res = telemetry.Resource{ | ||
Attrs: []telemetry.Attr{ | ||
telemetry.String("host", "hal"), | ||
telemetry.Int("id", 42), | ||
}, | ||
DroppedAttrs: 100, | ||
} | ||
press = func() pcommon.Resource { | ||
r := pcommon.NewResource() | ||
r.Attributes().PutStr("host", "hal") | ||
r.Attributes().PutInt("id", 42) | ||
r.SetDroppedAttributesCount(100) | ||
return r | ||
}() | ||
|
||
resSpans = &telemetry.ResourceSpans{ | ||
Resource: res, | ||
SchemaURL: schema100, | ||
ScopeSpans: []*telemetry.ScopeSpans{scopeSpans}, | ||
} | ||
pResSpans = func() ptrace.ResourceSpans { | ||
rs := ptrace.NewResourceSpans() | ||
press.CopyTo(rs.Resource()) | ||
pScopeSpans.CopyTo(rs.ScopeSpans().AppendEmpty()) | ||
rs.SetSchemaUrl(schema100) | ||
return rs | ||
}() | ||
|
||
traces = telemetry.Traces{ | ||
ResourceSpans: []*telemetry.ResourceSpans{ | ||
resSpans, | ||
}, | ||
} | ||
pTraces = func() ptrace.Traces { | ||
traces := ptrace.NewTraces() | ||
pResSpans.CopyTo(traces.ResourceSpans().AppendEmpty()) | ||
return traces | ||
}() | ||
) | ||
|
||
func TestDecode(t *testing.T) { | ||
var enc ptrace.JSONMarshaler | ||
b, err := enc.MarshalTraces(pTraces) | ||
require.NoError(t, err) | ||
|
||
t.Log(string(b)) // This helps when test fails to understand what is being decoded. | ||
|
||
var got telemetry.Traces | ||
dec := json.NewDecoder(bytes.NewReader(b)) | ||
require.NoError(t, dec.Decode(&got)) | ||
|
||
assert.Equal(t, traces, got) | ||
} | ||
|
||
func TestEncode(t *testing.T) { | ||
var buf bytes.Buffer | ||
enc := json.NewEncoder(&buf) | ||
require.NoError(t, enc.Encode(traces)) | ||
|
||
data := buf.Bytes() | ||
t.Log(string(data)) // This helps when test fails to understand what how the data has been encoded. | ||
|
||
var dec ptrace.JSONUnmarshaler | ||
got, err := dec.UnmarshalTraces(data) | ||
require.NoError(t, err) | ||
|
||
assert.Equal(t, pTraces, got) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// Copyright The OpenTelemetry Authors | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
// Package test provides isolated testing for | ||
// go.opentelemetry.io/auto/sdk/telemetry. It exists to ensure that package is | ||
// tested without importing any OTLP or pdata dependencies. | ||
package test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
module go.opentelemetry.io/auto/sdk/telemetry/test | ||
|
||
go 1.22.0 | ||
|
||
require ( | ||
github.com/stretchr/testify v1.9.0 | ||
go.opentelemetry.io/auto/sdk v0.0.0-00010101000000-000000000000 | ||
go.opentelemetry.io/collector/pdata v1.17.0 | ||
) | ||
|
||
require ( | ||
github.com/davecgh/go-spew v1.1.1 // indirect | ||
github.com/gogo/protobuf v1.3.2 // indirect | ||
github.com/json-iterator/go v1.1.12 // indirect | ||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | ||
github.com/modern-go/reflect2 v1.0.2 // indirect | ||
github.com/pmezard/go-difflib v1.0.0 // indirect | ||
go.uber.org/multierr v1.11.0 // indirect | ||
golang.org/x/net v0.28.0 // indirect | ||
golang.org/x/sys v0.24.0 // indirect | ||
golang.org/x/text v0.17.0 // indirect | ||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect | ||
google.golang.org/grpc v1.67.1 // indirect | ||
google.golang.org/protobuf v1.34.2 // indirect | ||
gopkg.in/yaml.v3 v3.0.1 // indirect | ||
) | ||
|
||
replace go.opentelemetry.io/auto/sdk => ../.. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= | ||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= | ||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= | ||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= | ||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= | ||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= | ||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= | ||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= | ||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | ||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= | ||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= | ||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= | ||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= | ||
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= | ||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= | ||
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= | ||
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= | ||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= | ||
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= | ||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= | ||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= | ||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= | ||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||
go.opentelemetry.io/collector/pdata v1.17.0 h1:z8cjjT2FThAehWu5fbF48OnZyK5q8xd1UhC4XszDo0w= | ||
go.opentelemetry.io/collector/pdata v1.17.0/go.mod h1:yZaQ9KZAm/qie96LTygRKxOXMq0/54h8OW7330ycuvQ= | ||
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= | ||
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= | ||
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= | ||
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= | ||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= | ||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= | ||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= | ||
golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= | ||
golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= | ||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= | ||
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= | ||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= | ||
golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= | ||
golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= | ||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= | ||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= | ||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= | ||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= | ||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= | ||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= | ||
google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= | ||
google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= | ||
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= | ||
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= | ||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= | ||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= | ||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= | ||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters