Back to all use cases
Software / Digital PlatformsRemediationCloud / Kubernetes

When the monitoring agent becomes the performance problem

DC
Digital Commerce Platform

Overview

A commerce platform saw p99 latency climb and container memory grow steadily after an agent upgrade. AceMQ remediated the agent configuration and JVM interaction — the customer's side of the boundary, which vendor support does not tune.

Challenge

Transaction naming was falling back to a per-URL scheme because the framework instrumentation did not recognize a custom router, so every distinct path produced a separate transaction. That drove metric grouping issues and a large in-agent name cache that grew with traffic. Separately, distributed tracing had been enabled at full sampling on a very high-throughput service, adding measurable per-request overhead and steady allocation pressure that showed up as longer garbage collection pauses.

Environment

Java services on Kubernetes with a custom routing framework, high request throughput, memory-limited containers.

Approach

We separated agent-attributable overhead from application behavior by running controlled comparisons with the agent enabled and disabled under identical load. Once agent cost was quantified, we corrected transaction naming so the agent stopped generating unbounded names, and set sampling to a level appropriate for the service's throughput.

Solution

  • Controlled load comparison with agent enabled and disabled to quantify actual overhead instead of estimating it
  • Transaction naming corrected through explicit API calls so the custom router produces bounded, meaningful names
  • Metric grouping issues resolved, eliminating the unbounded in-agent name cache driving memory growth
  • Distributed tracing sampling reduced on the highest-throughput service while retained fully on error paths
  • JVM heap and container memory limits realigned to account for real agent footprint rather than pre-agent sizing
  • Agent version upgrade path tested in staging under production-like load before rollout

Outcome

The memory growth stopped and p99 latency returned to its pre-upgrade level. Transaction data became usable again because it groups by meaningful endpoint rather than by every distinct URL.

Technologies

New RelicJavaKubernetesLinux

Ready to Get Started?

Whether you need architecture advisory, 24/7 support, or full managed services, AceMQ has the expertise to help.

Contact Us