Skip to content

Commit 552c788

Browse files
committed
Add new config for debugger upload interval
Add dynamic.instrumentation.upoad.interval.seconds config parameter that takes float in seconds
1 parent c4e17f1 commit 552c788

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/sink/DebuggerSink.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public void start() {
7373
} else {
7474
currentLowRateFlushInterval = uploadFlushInterval;
7575
}
76+
LOGGER.debug("Scheduling low rate debugger sink flush to {}ms", currentLowRateFlushInterval);
7677
lowRateScheduled =
7778
lowRateScheduler.scheduleAtFixedRate(
7879
this::lowRateFlush, this, 0, currentLowRateFlushInterval, TimeUnit.MILLISECONDS);

dd-trace-api/src/main/java/datadog/trace/api/config/DebuggerConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public final class DebuggerConfig {
1010
"dynamic.instrumentation.upload.timeout";
1111
public static final String DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL =
1212
"dynamic.instrumentation.upload.flush.interval";
13+
public static final String DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS =
14+
"dynamic.instrumentation.upload.interval.seconds";
1315
public static final String DYNAMIC_INSTRUMENTATION_UPLOAD_BATCH_SIZE =
1416
"dynamic.instrumentation.upload.batch.size";
1517
public static final String DYNAMIC_INSTRUMENTATION_MAX_PAYLOAD_SIZE =

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,10 +1673,19 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
16731673
dynamicInstrumentationUploadTimeout =
16741674
configProvider.getInteger(
16751675
DYNAMIC_INSTRUMENTATION_UPLOAD_TIMEOUT, DEFAULT_DYNAMIC_INSTRUMENTATION_UPLOAD_TIMEOUT);
1676-
dynamicInstrumentationUploadFlushInterval =
1677-
configProvider.getInteger(
1678-
DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL,
1679-
DEFAULT_DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL);
1676+
if (configProvider.isSet(DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS)) {
1677+
dynamicInstrumentationUploadFlushInterval =
1678+
(int)
1679+
(configProvider.getFloat(
1680+
DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS,
1681+
DEFAULT_DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL)
1682+
* 1000);
1683+
} else {
1684+
dynamicInstrumentationUploadFlushInterval =
1685+
configProvider.getInteger(
1686+
DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL,
1687+
DEFAULT_DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL);
1688+
}
16801689
dynamicInstrumentationClassFileDumpEnabled =
16811690
configProvider.getBoolean(
16821691
DYNAMIC_INSTRUMENTATION_CLASSFILE_DUMP_ENABLED,

internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_PR
4040
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_SNAPSHOT_URL
4141
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_UPLOAD_BATCH_SIZE
4242
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL
43+
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS
4344
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_UPLOAD_TIMEOUT
4445
import static datadog.trace.api.config.DebuggerConfig.DYNAMIC_INSTRUMENTATION_VERIFY_BYTECODE
4546
import static datadog.trace.api.config.DebuggerConfig.EXCEPTION_REPLAY_ENABLED
@@ -253,7 +254,7 @@ class ConfigTest extends DDSpecification {
253254
prop.setProperty(DYNAMIC_INSTRUMENTATION_ENABLED, "true")
254255
prop.setProperty(DYNAMIC_INSTRUMENTATION_PROBE_FILE, "file location")
255256
prop.setProperty(DYNAMIC_INSTRUMENTATION_UPLOAD_TIMEOUT, "10")
256-
prop.setProperty(DYNAMIC_INSTRUMENTATION_UPLOAD_FLUSH_INTERVAL, "1000")
257+
prop.setProperty(DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS, "0.234")
257258
prop.setProperty(DYNAMIC_INSTRUMENTATION_UPLOAD_BATCH_SIZE, "200")
258259
prop.setProperty(DYNAMIC_INSTRUMENTATION_METRICS_ENABLED, "false")
259260
prop.setProperty(DYNAMIC_INSTRUMENTATION_CLASSFILE_DUMP_ENABLED, "true")
@@ -349,7 +350,7 @@ class ConfigTest extends DDSpecification {
349350
config.getFinalDebuggerSnapshotUrl() == "http://somehost:123/debugger/v1/input"
350351
config.dynamicInstrumentationProbeFile == "file location"
351352
config.dynamicInstrumentationUploadTimeout == 10
352-
config.dynamicInstrumentationUploadFlushInterval == 1000
353+
config.dynamicInstrumentationUploadFlushInterval == 234
353354
config.dynamicInstrumentationUploadBatchSize == 200
354355
config.dynamicInstrumentationMetricsEnabled == false
355356
config.dynamicInstrumentationClassFileDumpEnabled == true

0 commit comments

Comments
 (0)