Skip to content

Commit 1cd2376

Browse files
authored
Throttle warning log when resolving probe (#9675)
in a loop can generate a log of logs
1 parent 6d95fc2 commit 1cd2376

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/ConfigurationUpdater.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import datadog.trace.bootstrap.debugger.ProbeId;
2020
import datadog.trace.bootstrap.debugger.ProbeImplementation;
2121
import datadog.trace.bootstrap.debugger.ProbeRateLimiter;
22+
import datadog.trace.relocate.api.RatelimitedLogger;
2223
import datadog.trace.util.TagsHelper;
2324
import java.lang.instrument.Instrumentation;
2425
import java.util.Collection;
@@ -27,6 +28,7 @@
2728
import java.util.List;
2829
import java.util.Map;
2930
import java.util.concurrent.ConcurrentHashMap;
31+
import java.util.concurrent.TimeUnit;
3032
import java.util.concurrent.locks.Lock;
3133
import java.util.concurrent.locks.ReentrantLock;
3234
import java.util.function.Supplier;
@@ -49,6 +51,7 @@ DebuggerTransformer supply(
4951
}
5052

5153
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigurationUpdater.class);
54+
private static final int MINUTES_BETWEEN_ERROR_LOG = 5;
5255

5356
private final Instrumentation instrumentation;
5457
private final TransformerSupplier transformerSupplier;
@@ -63,6 +66,8 @@ DebuggerTransformer supply(
6366
private final String serviceName;
6467
private final Map<String, InstrumentationResult> instrumentationResults =
6568
new ConcurrentHashMap<>();
69+
private final RatelimitedLogger ratelimitedLogger =
70+
new RatelimitedLogger(LOGGER, MINUTES_BETWEEN_ERROR_LOG, TimeUnit.MINUTES);
6671

6772
public ConfigurationUpdater(
6873
Instrumentation instrumentation,
@@ -238,7 +243,7 @@ private void storeDebuggerDefinitions(ConfigurationComparer changes) {
238243
public ProbeImplementation resolve(String encodedProbeId) {
239244
ProbeDefinition definition = appliedDefinitions.get(encodedProbeId);
240245
if (definition == null) {
241-
LOGGER.warn(SEND_TELEMETRY, "Cannot resolve probe id={}", encodedProbeId);
246+
ratelimitedLogger.warn(SEND_TELEMETRY, "Cannot resolve probe id={}", encodedProbeId);
242247
}
243248
return definition;
244249
}

0 commit comments

Comments
 (0)