The tracer component currently never drops anything from memory, which means it will run until it OOMs. This is suboptimal.
We want to implement some sort of (configurable) falling-off time window so that we can actually run the tracer in production without it OOMing. This will require a bit of care and testing to get right, I think. Essentially, I think the algorithm looks something like this:
Every n seconds:
Check to see what tracked objects have been deleted since the last GC run
Remove those objects from the trace, and from the index
Remove any pods that belonged to those objects from the pod owners index
Description
The tracer component currently never drops anything from memory, which means it will run until it OOMs. This is suboptimal.
We want to implement some sort of (configurable) falling-off time window so that we can actually run the tracer in production without it OOMing. This will require a bit of care and testing to get right, I think. Essentially, I think the algorithm looks something like this:
Every n seconds:
Related: #79