Skip to content

Commit fd1f40f

Browse files
authored
Add configurable Dependency service resolution period (#8079)
1 parent 4573a38 commit fd1f40f

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

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

+2
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ public final class GeneralConfig {
8989
public static final String AGENTLESS_LOG_SUBMISSION_ENABLED = "agentless.log.submission.enabled";
9090
public static final String AGENTLESS_LOG_SUBMISSION_QUEUE_SIZE =
9191
"agentless.log.submission.queue.size";
92+
public static final String TELEMETRY_DEPENDENCY_RESOLUTION_PERIOD_MILLIS =
93+
"telemetry.dependency.resolution.period.millis";
9294
public static final String AGENTLESS_LOG_SUBMISSION_LEVEL = "agentless.log.submission.level";
9395
public static final String AGENTLESS_LOG_SUBMISSION_URL = "agentless.log.submission.url";
9496

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

+11
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ public static String getHostName() {
538538
private final int cloudPayloadTaggingMaxDepth;
539539
private final int cloudPayloadTaggingMaxTags;
540540

541+
private final long dependecyResolutionPeriodMillis;
542+
541543
// Read order: System Properties -> Env Variables, [-> properties file], [-> default value]
542544
private Config() {
543545
this(ConfigProvider.createDefault());
@@ -1802,6 +1804,11 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
18021804
this.cloudPayloadTaggingMaxTags =
18031805
configProvider.getInteger(TracerConfig.TRACE_CLOUD_PAYLOAD_TAGGING_MAX_TAGS, 758);
18041806

1807+
this.dependecyResolutionPeriodMillis =
1808+
configProvider.getLong(
1809+
GeneralConfig.TELEMETRY_DEPENDENCY_RESOLUTION_PERIOD_MILLIS,
1810+
1000); // 1 second by default
1811+
18051812
timelineEventsEnabled =
18061813
configProvider.getBoolean(
18071814
ProfilingConfig.PROFILING_TIMELINE_EVENTS_ENABLED,
@@ -3700,6 +3707,10 @@ public boolean isEnabled(
37003707
Collections.singletonList(settingName), "", settingSuffix, defaultEnabled);
37013708
}
37023709

3710+
public long getDependecyResolutionPeriodMillis() {
3711+
return dependecyResolutionPeriodMillis;
3712+
}
3713+
37033714
public boolean isDBMTracePreparedStatements() {
37043715
return DBMTracePreparedStatements;
37053716
}

telemetry/src/main/java/datadog/telemetry/dependency/DependencyService.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.telemetry.dependency;
22

3+
import datadog.trace.api.Config;
34
import datadog.trace.util.AgentTaskScheduler;
45
import java.lang.instrument.Instrumentation;
56
import java.net.URI;
@@ -31,7 +32,11 @@ public class DependencyService implements Runnable {
3132
public void schedulePeriodicResolution() {
3233
scheduledTask =
3334
AgentTaskScheduler.INSTANCE.scheduleAtFixedRate(
34-
AgentTaskScheduler.RunnableTask.INSTANCE, this, 0, 1000L, TimeUnit.MILLISECONDS);
35+
AgentTaskScheduler.RunnableTask.INSTANCE,
36+
this,
37+
0,
38+
Config.get().getDependecyResolutionPeriodMillis(),
39+
TimeUnit.MILLISECONDS);
3540
}
3641

3742
public void resolveOneDependency() {

0 commit comments

Comments
 (0)