Skip to content

Commit 0ad8d4b

Browse files
receiver/k8sobjects: inline getStorageClient to remove pkg/stanza dependency
Co-authored-by: Dhruv Shah <dhruv.shah@sumologic.com>
1 parent a15da3a commit 0ad8d4b

3 files changed

Lines changed: 24 additions & 30 deletions

File tree

receiver/k8sobjectsreceiver/go.mod

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ require (
1111
github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sleaderelectortest v0.149.0
1212
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.149.0
1313
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.149.0
14-
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza v0.149.0
1514
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.149.0
1615
github.com/stretchr/testify v1.11.1
1716
go.opentelemetry.io/collector/component v1.55.1-0.20260409104450-d686cf9058ce
@@ -35,17 +34,14 @@ require (
3534

3635
require (
3736
github.com/Microsoft/go-winio v0.6.2 // indirect
38-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
3937
github.com/cespare/xxhash/v2 v2.3.0 // indirect
4038
github.com/containerd/errdefs v1.0.0 // indirect
4139
github.com/containerd/errdefs/pkg v0.3.0 // indirect
4240
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
4341
github.com/distribution/reference v0.6.0 // indirect
4442
github.com/docker/go-connections v0.6.0 // indirect
4543
github.com/docker/go-units v0.5.0 // indirect
46-
github.com/elastic/lunes v0.2.0 // indirect
4744
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
48-
github.com/expr-lang/expr v1.17.8 // indirect
4945
github.com/felixge/httpsnoop v1.0.4 // indirect
5046
github.com/foxboron/go-tpm-keyfiles v0.0.0-20251226215517-609e4778396f // indirect
5147
github.com/fsnotify/fsnotify v1.9.0 // indirect
@@ -68,7 +64,6 @@ require (
6864
github.com/go-openapi/swag/yamlutils v0.25.5 // indirect
6965
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
7066
github.com/gobwas/glob v0.2.3 // indirect
71-
github.com/goccy/go-json v0.10.6 // indirect
7267
github.com/gogo/protobuf v1.3.2 // indirect
7368
github.com/golang/snappy v1.0.0 // indirect
7469
github.com/google/gnostic-models v0.7.1 // indirect
@@ -80,9 +75,6 @@ require (
8075
github.com/knadh/koanf/maps v0.1.2 // indirect
8176
github.com/knadh/koanf/providers/confmap v1.0.0 // indirect
8277
github.com/knadh/koanf/v2 v2.3.4 // indirect
83-
github.com/leodido/go-syslog/v4 v4.3.0 // indirect
84-
github.com/leodido/ragel-machinery v0.0.0-20190525184631-5f46317e436b // indirect
85-
github.com/magefile/mage v1.15.0 // indirect
8678
github.com/mitchellh/copystructure v1.2.0 // indirect
8779
github.com/mitchellh/reflectwalk v1.0.2 // indirect
8880
github.com/moby/docker-image-spec v1.3.1 // indirect
@@ -92,7 +84,6 @@ require (
9284
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
9385
github.com/mostynb/go-grpc-compression v1.2.3 // indirect
9486
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
95-
github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.149.0 // indirect
9687
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.149.0 // indirect
9788
github.com/opencontainers/go-digest v1.0.0 // indirect
9889
github.com/opencontainers/image-spec v1.1.1 // indirect
@@ -102,7 +93,6 @@ require (
10293
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
10394
github.com/rs/cors v1.11.1 // indirect
10495
github.com/spf13/pflag v1.0.10 // indirect
105-
github.com/valyala/fastjson v1.6.10 // indirect
10696
github.com/x448/float16 v0.8.4 // indirect
10797
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
10898
go.opentelemetry.io/collector v0.149.1-0.20260409104450-d686cf9058ce // indirect
@@ -147,7 +137,6 @@ require (
147137
golang.org/x/term v0.42.0 // indirect
148138
golang.org/x/text v0.36.0 // indirect
149139
golang.org/x/time v0.15.0 // indirect
150-
gonum.org/v1/gonum v0.17.0 // indirect
151140
google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect
152141
google.golang.org/grpc v1.80.0 // indirect
153142
google.golang.org/protobuf v1.36.11 // indirect

receiver/k8sobjectsreceiver/go.sum

Lines changed: 0 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

receiver/k8sobjectsreceiver/receiver.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"errors"
99
"fmt"
1010
"regexp"
11+
"strings"
1112
"sync"
1213
"time"
1314

@@ -27,7 +28,6 @@ import (
2728
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory"
2829
pullobserver "github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory/pull"
2930
watchobserver "github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory/watch"
30-
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/adapter"
3131
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sobjectsreceiver/internal/metadata"
3232
)
3333

@@ -153,7 +153,7 @@ func (kr *k8sobjectsreceiver) Start(ctx context.Context, host component.Host) er
153153

154154
// Initialize storage client for resource version persistence if storage is configured
155155
if kr.config.Storage != nil {
156-
storageClient, storageErr := adapter.GetStorageClient(ctx, host, kr.config.Storage, kr.setting.ID)
156+
storageClient, storageErr := getStorageClient(ctx, host, kr.config.Storage, kr.setting.ID)
157157
if storageErr != nil {
158158
return fmt.Errorf("failed to get storage client: %w", storageErr)
159159
}
@@ -342,3 +342,25 @@ func (kr *k8sobjectsreceiver) handleError(err error, msg string) error {
342342
return fmt.Errorf("invalid error_mode %q: %w", kr.config.ErrorMode, err)
343343
}
344344
}
345+
346+
func getStorageClient(ctx context.Context, host component.Host, storageID *component.ID, componentID component.ID) (storage.Client, error) {
347+
if storageID == nil {
348+
return storage.NewNopClient(), nil
349+
}
350+
351+
extension, ok := host.GetExtensions()[*storageID]
352+
if !ok {
353+
return nil, fmt.Errorf("storage extension '%s' not found", storageID)
354+
}
355+
356+
storageExtension, ok := extension.(storage.Extension)
357+
if !ok {
358+
return nil, fmt.Errorf("non-storage extension '%s' found", storageID)
359+
}
360+
361+
// Make storage immune to component renames that add underscores to the component type.
362+
// This is a workaround for https://github.com/open-telemetry/opentelemetry-collector/issues/14988.
363+
normalizedComponentType := strings.ReplaceAll(componentID.Type().String(), "_", "")
364+
normalizedComponentID := component.MustNewIDWithName(normalizedComponentType, componentID.Name())
365+
return storageExtension.GetClient(ctx, component.KindReceiver, normalizedComponentID, "")
366+
}

0 commit comments

Comments
 (0)