GoogleCloudPlatform / GoogleCloudPlatform/k8s-stackdriver
[P1] event-exporter: reduce cache footprint with informer transform or minimal store
- Dominant language
- Go
- Stars
- 409
- Forks
- 236
- Avg merge
- 2h 34m
- Merged PRs (30d)
- 9
Description
## Problem
Current watcher storage (`DeltaFIFO`/`TTL`) retains full event objects and fires handler callbacks for every add/update. Under heavy churn, this increases memory pressure and CPU overhead, especially when the sink only needs a subset of fields.
## Proposed optimization
Use a `SharedInformer` with `WithTransform` to drop unused fields before objects are cached/processed, or implement a minimal store that retains only the fields needed for log entry creation. This reduces object size and avoids holding large event payloads in memory.
## Notes / references
- SharedInformer `WithTransform`: https://pkg.go.dev/k8s.io/client-go/informers#WithTransform
- cache store implementations: https://pkg.go.dev/k8s.io/client-go/tools/cache
## Acceptance criteria
- Event objects stored/queued contain only required fields for log entry creation.
- Memory usage under high event volume decreases vs. current storage.
- Functional behavior (log payloads) remains unchanged.
Contributor guide
Assessment
This issue has not been assessed yet.