Skip to content

Commit ae0ed76

Browse files
authored
Merge pull request #7210 from DataDog/jb/track_generations
Add configuration parameter for GC generation count tracking
2 parents 872f005 + 7466278 commit ae0ed76

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/DatadogProfiler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.isMemoryLeakProfilingEnabled;
1919
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.isResourceNameContextAttributeEnabled;
2020
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.isSpanNameContextAttributeEnabled;
21+
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.isTrackingGenerations;
2122
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.isWallClockProfilerEnabled;
2223
import static com.datadog.profiling.ddprof.DatadogProfilerConfig.omitLineNumbers;
2324
import static com.datadog.profiling.utils.ProfilingMode.ALLOCATION;
@@ -240,6 +241,7 @@ String cmdStartProfiling(Path file) throws IllegalStateException {
240241
cmd.append(",cstack=").append(getCStack(configProvider));
241242
cmd.append(",safemode=").append(getSafeMode(configProvider));
242243
cmd.append(",attributes=").append(String.join(";", orderedContextAttributes));
244+
cmd.append(",generations=").append(isTrackingGenerations(configProvider));
243245
if (omitLineNumbers(configProvider)) {
244246
cmd.append(",linenumbers=f");
245247
}

dd-java-agent/agent-profiling/profiling-ddprof/src/main/java/com/datadog/profiling/ddprof/DatadogProfilerConfig.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
import static datadog.trace.api.config.ProfilingConfig.PROFILING_DATADOG_PROFILER_WALL_ENABLED;
4242
import static datadog.trace.api.config.ProfilingConfig.PROFILING_DATADOG_PROFILER_WALL_INTERVAL;
4343
import static datadog.trace.api.config.ProfilingConfig.PROFILING_DATADOG_PROFILER_WALL_INTERVAL_DEFAULT;
44+
import static datadog.trace.api.config.ProfilingConfig.PROFILING_HEAP_TRACK_GENERATIONS;
45+
import static datadog.trace.api.config.ProfilingConfig.PROFILING_HEAP_TRACK_GENERATIONS_DEFAULT;
4446
import static datadog.trace.api.config.ProfilingConfig.PROFILING_QUEUEING_TIME_ENABLED;
4547
import static datadog.trace.api.config.ProfilingConfig.PROFILING_QUEUEING_TIME_ENABLED_DEFAULT;
4648
import static datadog.trace.api.config.ProfilingConfig.PROFILING_STACKDEPTH;
@@ -355,6 +357,11 @@ public static boolean isResourceNameContextAttributeEnabled(ConfigProvider confi
355357
return configProvider.getBoolean(PROFILING_CONTEXT_ATTRIBUTES_RESOURCE_NAME_ENABLED, false);
356358
}
357359

360+
public static boolean isTrackingGenerations(ConfigProvider configProvider) {
361+
return getBoolean(
362+
configProvider, PROFILING_HEAP_TRACK_GENERATIONS, PROFILING_HEAP_TRACK_GENERATIONS_DEFAULT);
363+
}
364+
358365
public static String getString(ConfigProvider configProvider, String key, String defaultValue) {
359366
return configProvider.getString(key, configProvider.getString(normalizeKey(key), defaultValue));
360367
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,9 @@ public final class ProfilingConfig {
211211
public static final String PROFILING_HEAP_HISTOGRAM_MODE = "profiling.heap.histogram.mode";
212212
public static final String PROFILING_HEAP_HISTOGRAM_MODE_DEFAULT = "aftergc";
213213

214+
public static final String PROFILING_HEAP_TRACK_GENERATIONS = "profiling.heap.track.generations";
215+
public static final boolean PROFILING_HEAP_TRACK_GENERATIONS_DEFAULT = false;
216+
214217
public static final String PROFILING_TIMELINE_EVENTS_ENABLED =
215218
"profiling.timeline.events.enabled";
216219
public static final boolean PROFILING_TIMELINE_EVENTS_ENABLED_DEFAULT = false;

gradle/dependencies.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ final class CachedData {
3333
testcontainers: '1.19.3',
3434
jmc : "8.1.0",
3535
autoservice : "1.0-rc7",
36-
ddprof : "1.7.0",
36+
ddprof : "1.8.0",
3737
asm : "9.7",
3838
cafe_crypto : "0.1.0",
3939
lz4 : "1.7.1"

0 commit comments

Comments
 (0)