GoogleCloudPlatform / GoogleCloudPlatform/k8s-stackdriver

[P1] event-exporter: reduce cache footprint with informer transform or minimal store

Open
#1,030 0 comments 0 reactions 0 assignees View on GitHub
area/event-exporter enhancement go kind/feature priority/important-soon
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.