Skip to content

Commit 2d9a1b8

Browse files
authored
add k8s svc resolver for loadbalancer (#15)
refs:open-telemetry#22776 Signed-off-by: Jared Tan <[email protected]>
1 parent f8cbfa2 commit 2d9a1b8

File tree

14 files changed

+709
-19
lines changed

14 files changed

+709
-19
lines changed

cmd/configschema/go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,8 @@ require (
669669
k8s.io/klog/v2 v2.90.1 // indirect
670670
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
671671
k8s.io/kubelet v0.27.3 // indirect
672-
k8s.io/utils v0.0.0-20230308161112-d77c459e9343 // indirect
672+
k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect
673+
sigs.k8s.io/controller-runtime v0.15.0 // indirect
673674
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
674675
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
675676
sigs.k8s.io/yaml v1.3.0 // indirect

cmd/configschema/go.sum

+9-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/otelcontribcol/go.mod

+2-1
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,8 @@ require (
686686
k8s.io/klog/v2 v2.90.1 // indirect
687687
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
688688
k8s.io/kubelet v0.27.3 // indirect
689-
k8s.io/utils v0.0.0-20230308161112-d77c459e9343 // indirect
689+
k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect
690+
sigs.k8s.io/controller-runtime v0.15.0 // indirect
690691
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
691692
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
692693
sigs.k8s.io/yaml v1.3.0 // indirect

cmd/otelcontribcol/go.sum

+9-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/loadbalancingexporter/config.go

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type Protocol struct {
3232
type ResolverSettings struct {
3333
Static *StaticResolver `mapstructure:"static"`
3434
DNS *DNSResolver `mapstructure:"dns"`
35+
K8sSvc *K8sSvcResolver `mapstructure:"k8s"`
3536
}
3637

3738
// StaticResolver defines the configuration for the resolver providing a fixed list of backends
@@ -46,3 +47,9 @@ type DNSResolver struct {
4647
Interval time.Duration `mapstructure:"interval"`
4748
Timeout time.Duration `mapstructure:"timeout"`
4849
}
50+
51+
// K8sSvcResolver defines the configuration for the DNS resolver
52+
type K8sSvcResolver struct {
53+
Service string `mapstructure:"service"`
54+
Ports []int32 `mapstructure:"ports"`
55+
}

exporter/loadbalancingexporter/go.mod

+29
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ require (
1616
go.opentelemetry.io/collector/semconv v0.81.0
1717
go.uber.org/multierr v1.11.0
1818
go.uber.org/zap v1.24.0
19+
k8s.io/api v0.27.3
20+
k8s.io/apimachinery v0.27.3
21+
k8s.io/client-go v0.27.3
22+
k8s.io/utils v0.0.0-20230505201702-9f6742963106
23+
sigs.k8s.io/controller-runtime v0.15.0
1924
)
2025

2126
require (
@@ -24,30 +29,44 @@ require (
2429
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
2530
github.com/cespare/xxhash/v2 v2.2.0 // indirect
2631
github.com/davecgh/go-spew v1.1.1 // indirect
32+
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
33+
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
34+
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
2735
github.com/fsnotify/fsnotify v1.6.0 // indirect
2836
github.com/go-kit/log v0.2.1 // indirect
2937
github.com/go-logfmt/logfmt v0.5.1 // indirect
3038
github.com/go-logr/logr v1.2.4 // indirect
3139
github.com/go-logr/stdr v1.2.2 // indirect
3240
github.com/go-ole/go-ole v1.2.6 // indirect
41+
github.com/go-openapi/jsonpointer v0.19.6 // indirect
42+
github.com/go-openapi/jsonreference v0.20.1 // indirect
43+
github.com/go-openapi/swag v0.22.3 // indirect
3344
github.com/gogo/protobuf v1.3.2 // indirect
3445
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
3546
github.com/golang/protobuf v1.5.3 // indirect
3647
github.com/golang/snappy v0.0.4 // indirect
48+
github.com/google/gnostic v0.5.7-v3refs // indirect
49+
github.com/google/go-cmp v0.5.9 // indirect
50+
github.com/google/gofuzz v1.1.0 // indirect
3751
github.com/google/uuid v1.3.0 // indirect
52+
github.com/imdario/mergo v0.3.6 // indirect
3853
github.com/inconshreveable/mousetrap v1.1.0 // indirect
54+
github.com/josharian/intern v1.0.0 // indirect
3955
github.com/json-iterator/go v1.1.12 // indirect
4056
github.com/klauspost/compress v1.16.7 // indirect
4157
github.com/knadh/koanf v1.5.0 // indirect
4258
github.com/knadh/koanf/v2 v2.0.1 // indirect
4359
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
60+
github.com/mailru/easyjson v0.7.7 // indirect
4461
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
4562
github.com/mitchellh/copystructure v1.2.0 // indirect
4663
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4 // indirect
4764
github.com/mitchellh/reflectwalk v1.0.2 // indirect
4865
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4966
github.com/modern-go/reflect2 v1.0.2 // indirect
5067
github.com/mostynb/go-grpc-compression v1.2.0 // indirect
68+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
69+
github.com/pkg/errors v0.9.1 // indirect
5170
github.com/pmezard/go-difflib v1.0.0 // indirect
5271
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
5372
github.com/prometheus/client_golang v1.16.0 // indirect
@@ -87,14 +106,24 @@ require (
87106
go.opentelemetry.io/otel/trace v1.16.0 // indirect
88107
go.uber.org/atomic v1.10.0 // indirect
89108
golang.org/x/net v0.11.0 // indirect
109+
golang.org/x/oauth2 v0.8.0 // indirect
90110
golang.org/x/sys v0.9.0 // indirect
111+
golang.org/x/term v0.9.0 // indirect
91112
golang.org/x/text v0.10.0 // indirect
113+
golang.org/x/time v0.3.0 // indirect
92114
gonum.org/v1/gonum v0.13.0 // indirect
115+
google.golang.org/appengine v1.6.7 // indirect
93116
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
94117
google.golang.org/grpc v1.56.1 // indirect
95118
google.golang.org/protobuf v1.31.0 // indirect
119+
gopkg.in/inf.v0 v0.9.1 // indirect
96120
gopkg.in/yaml.v2 v2.4.0 // indirect
97121
gopkg.in/yaml.v3 v3.0.1 // indirect
122+
k8s.io/klog/v2 v2.90.1 // indirect
123+
k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
124+
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
125+
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
126+
sigs.k8s.io/yaml v1.3.0 // indirect
98127
)
99128

100129
replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal => ../../pkg/batchpersignal

0 commit comments

Comments
 (0)