1919import datadog .trace .bootstrap .debugger .ProbeId ;
2020import datadog .trace .bootstrap .debugger .ProbeImplementation ;
2121import datadog .trace .bootstrap .debugger .ProbeRateLimiter ;
22+ import datadog .trace .relocate .api .RatelimitedLogger ;
2223import datadog .trace .util .TagsHelper ;
2324import java .lang .instrument .Instrumentation ;
2425import java .util .Collection ;
2728import java .util .List ;
2829import java .util .Map ;
2930import java .util .concurrent .ConcurrentHashMap ;
31+ import java .util .concurrent .TimeUnit ;
3032import java .util .concurrent .locks .Lock ;
3133import java .util .concurrent .locks .ReentrantLock ;
3234import 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