feat(perf): resolve the destination server without copying the cluster
The Issue & Context
The application filter and metrics collector repeatedly resolved the entire destination cluster object for each Application event and Prometheus scrape, causing high CPU time, memory allocations, and inefficient processing especially with large numbers of apps.
Root Cause Analysis
The filter and metrics code used a costly index lookup and deep copy of the full cluster object just to read simple fields like the server URL and annotations, resulting in excessive allocations and slow processing.
Solution Strategy & Architectural Pattern
Refactored the code to avoid copying the entire cluster object by resolving only the necessary destination server information directly, reducing allocations and CPU time significantly during filtering and metrics collection.
Key Takeaway for Contributors
Avoid deep copying large objects when only a small subset of data is needed; targeted data access can drastically improve performance in event-driven and metrics-heavy code paths.