Skip to content

Commit

Permalink
Merge pull request #3331 from DataDog/fd/PROF-4688-move-profiling-config
Browse files Browse the repository at this point in the history
[PROF-4688] Move profiling config out of config defaults
  • Loading branch information
Florian David committed Jan 24, 2022
2 parents c6847b4 + 716435d commit d7fde2a
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
package com.datadog.profiling.uploader;

import static datadog.common.socket.SocketUtils.discoverApmSocket;
import static datadog.trace.api.config.ProfilingConfig.DEFAULT_PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED_DEFAULT;
import static datadog.trace.util.AgentThreadFactory.AgentThread.PROFILER_HTTP_DISPATCHER;

import com.datadog.profiling.controller.RecordingData;
Expand Down Expand Up @@ -169,7 +169,7 @@ public ProfileUploader(final Config config, final ConfigProvider configProvider)
agentless = config.isProfilingAgentless();
useV2_4Format =
configProvider.getBoolean(
PROFILING_FORMAT_V2_4_ENABLED, DEFAULT_PROFILING_FORMAT_V2_4_ENABLED);
PROFILING_FORMAT_V2_4_ENABLED, PROFILING_FORMAT_V2_4_ENABLED_DEFAULT);
if (useV2_4Format) {
log.info("Profiling: use V2.4 format for HTTP request");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/
package com.datadog.profiling.uploader;

import static datadog.trace.api.config.ProfilingConfig.DEFAULT_PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED_DEFAULT;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand Down Expand Up @@ -153,7 +153,7 @@ public void setup() throws IOException {
when(config.getMergedProfilingTags()).thenReturn(TAGS);
when(config.getProfilingUploadTimeout()).thenReturn((int) REQUEST_TIMEOUT.getSeconds());
when(configProvider.getBoolean(
eq(PROFILING_FORMAT_V2_4_ENABLED), eq(DEFAULT_PROFILING_FORMAT_V2_4_ENABLED)))
eq(PROFILING_FORMAT_V2_4_ENABLED), eq(PROFILING_FORMAT_V2_4_ENABLED_DEFAULT)))
.thenReturn(false);

uploader =
Expand All @@ -180,7 +180,7 @@ public void testV2_4Format() throws Exception {
// Given
when(config.getProfilingUploadTimeout()).thenReturn(500000);
when(configProvider.getBoolean(
eq(PROFILING_FORMAT_V2_4_ENABLED), eq(DEFAULT_PROFILING_FORMAT_V2_4_ENABLED)))
eq(PROFILING_FORMAT_V2_4_ENABLED), eq(PROFILING_FORMAT_V2_4_ENABLED_DEFAULT)))
.thenReturn(true);

// When
Expand Down
16 changes: 0 additions & 16 deletions dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,22 +61,6 @@ public final class ConfigDefaults {

static final boolean DEFAULT_LOGS_INJECTION_ENABLED = true;

static final boolean DEFAULT_PROFILING_ENABLED = false;
static final boolean DEFAULT_PROFILING_ALLOCATION_ENABLED = false;
static final boolean DEFAULT_PROFILING_HEAP_ENABLED = false;
static final int DEFAULT_PROFILING_START_DELAY = 10;
static final boolean DEFAULT_PROFILING_START_FORCE_FIRST = false;
static final int DEFAULT_PROFILING_UPLOAD_PERIOD = 60; // 1 min
static final int DEFAULT_PROFILING_UPLOAD_TIMEOUT = 30; // seconds
static final String DEFAULT_PROFILING_UPLOAD_COMPRESSION = "on";
static final int DEFAULT_PROFILING_PROXY_PORT = 8080;
static final int DEFAULT_PROFILING_EXCEPTION_SAMPLE_LIMIT = 10_000;
static final int DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS = 50;
static final int DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE = 10000;
static final boolean DEFAULT_PROFILING_AGENTLESS = false;
static final boolean DEFAULT_PROFILING_LEGACY_TRACING_INTEGRATION = true;
static final boolean DEFAULT_PROFILING_UPLOAD_SUMMARY_ON_413 = false;

static final boolean DEFAULT_APPSEC_ENABLED = false;
static final boolean DEFAULT_APPSEC_REPORTING_INBAND = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*/
public final class ProfilingConfig {
public static final String PROFILING_ENABLED = "profiling.enabled";
public static final boolean PROFILING_ENABLED_DEFAULT = false;
public static final String PROFILING_ALLOCATION_ENABLED = "profiling.allocation.enabled";
public static final boolean PROFILING_ALLOCATION_ENABLED_DEFAULT = false;
public static final String PROFILING_HEAP_ENABLED = "profiling.heap.enabled";
Expand All @@ -26,6 +27,7 @@ public final class ProfilingConfig {
public static final String PROFILING_TEMPLATE_DEFAULT = "default";
public static final String PROFILING_TAGS = "profiling.tags";
public static final String PROFILING_START_DELAY = "profiling.start-delay";
public static final int PROFILING_START_DELAY_DEFAULT = 10;
// DANGEROUS! May lead on sigsegv on JVMs before 14
// Not intended for production use
public static final String PROFILING_START_FORCE_FIRST =
Expand All @@ -41,6 +43,7 @@ public final class ProfilingConfig {
public static final String PROFILING_UPLOAD_COMPRESSION_DEFAULT = "on";
public static final String PROFILING_PROXY_HOST = "profiling.proxy.host";
public static final String PROFILING_PROXY_PORT = "profiling.proxy.port";
public static final int PROFILING_PROXY_PORT_DEFAULT = 8080;
public static final String PROFILING_PROXY_USERNAME = "profiling.proxy.username";
public static final String PROFILING_PROXY_PASSWORD = "profiling.proxy.password";
public static final String PROFILING_EXCEPTION_SAMPLE_LIMIT = "profiling.exception.sample.limit";
Expand Down Expand Up @@ -97,13 +100,14 @@ public final class ProfilingConfig {
public static final int PROFILING_JFR_REPOSITORY_MAXSIZE_DEFAULT =
64 * 1024 * 1024; // 64MB default

// Not intended for production use
public static final String PROFILING_AGENTLESS = "profiling.agentless";

public static final String PROFILING_UPLOAD_SUMMARY_ON_413 = "profiling.upload.summary-on-413";
public static final boolean PROFILING_UPLOAD_SUMMARY_ON_413_DEFAULT = false;
public static final String PROFILING_FORMAT_V2_4_ENABLED = "profiling.format.v4.enabled";
public static final boolean PROFILING_FORMAT_V2_4_ENABLED_DEFAULT = false;

public static final boolean DEFAULT_PROFILING_FORMAT_V2_4_ENABLED = false;
// Not intended for production use
public static final String PROFILING_AGENTLESS = "profiling.agentless";
public static final boolean PROFILING_AGENTLESS_DEFAULT = false;

private ProfilingConfig() {}
}
64 changes: 32 additions & 32 deletions internal-api/src/main/java/datadog/trace/api/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,21 +28,6 @@
import static datadog.trace.api.ConfigDefaults.DEFAULT_PERF_METRICS_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PRIORITY_SAMPLING_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PRIORITY_SAMPLING_FORCE;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_AGENTLESS;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_ALLOCATION_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_EXCEPTION_SAMPLE_LIMIT;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_HEAP_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_LEGACY_TRACING_INTEGRATION;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_PROXY_PORT;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_START_DELAY;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_START_FORCE_FIRST;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_UPLOAD_COMPRESSION;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_UPLOAD_PERIOD;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_UPLOAD_SUMMARY_ON_413;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROFILING_UPLOAD_TIMEOUT;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROPAGATION_EXTRACT_LOG_HEADER_NAMES_ENABLED;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROPAGATION_STYLE_EXTRACT;
import static datadog.trace.api.ConfigDefaults.DEFAULT_PROPAGATION_STYLE_INJECT;
Expand Down Expand Up @@ -120,34 +105,49 @@
import static datadog.trace.api.config.JmxFetchConfig.JMX_FETCH_STATSD_HOST;
import static datadog.trace.api.config.JmxFetchConfig.JMX_FETCH_STATSD_PORT;
import static datadog.trace.api.config.JmxFetchConfig.JMX_TAGS;
import static datadog.trace.api.config.ProfilingConfig.DEFAULT_PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_AGENTLESS;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_AGENTLESS_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_ALLOCATION_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_ALLOCATION_ENABLED_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_API_KEY_FILE_OLD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_API_KEY_FILE_VERY_OLD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_API_KEY_OLD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_API_KEY_VERY_OLD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_ENABLED_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_SAMPLE_LIMIT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCEPTION_SAMPLE_LIMIT_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_EXCLUDE_AGENT_THREADS;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_FORMAT_V2_4_ENABLED_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_HEAP_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_HEAP_ENABLED_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_HOTSPOTS_ENABLED;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_LEGACY_TRACING_INTEGRATION;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_LEGACY_TRACING_INTEGRATION_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_PROXY_HOST;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_PROXY_PASSWORD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_PROXY_PORT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_PROXY_PORT_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_PROXY_USERNAME;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_START_DELAY;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_START_DELAY_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_START_FORCE_FIRST;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_START_FORCE_FIRST_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_TAGS;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_TEMPLATE_OVERRIDE_FILE;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_COMPRESSION;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_COMPRESSION_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_PERIOD;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_PERIOD_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_SUMMARY_ON_413;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_SUMMARY_ON_413_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_TIMEOUT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_UPLOAD_TIMEOUT_DEFAULT;
import static datadog.trace.api.config.ProfilingConfig.PROFILING_URL;
import static datadog.trace.api.config.TraceInstrumentationConfig.DB_CLIENT_HOST_SPLIT_BY_INSTANCE;
import static datadog.trace.api.config.TraceInstrumentationConfig.DB_CLIENT_HOST_SPLIT_BY_INSTANCE_TYPE_SUFFIX;
Expand Down Expand Up @@ -794,17 +794,17 @@ && isJavaVersionAtLeast(8)
traceSampleRate = configProvider.getDouble(TRACE_SAMPLE_RATE);
traceRateLimit = configProvider.getInteger(TRACE_RATE_LIMIT, DEFAULT_TRACE_RATE_LIMIT);

profilingEnabled = configProvider.getBoolean(PROFILING_ENABLED, DEFAULT_PROFILING_ENABLED);
profilingEnabled = configProvider.getBoolean(PROFILING_ENABLED, PROFILING_ENABLED_DEFAULT);
profilingAllocationEnabled =
configProvider.getBoolean(
PROFILING_ALLOCATION_ENABLED, DEFAULT_PROFILING_ALLOCATION_ENABLED);
PROFILING_ALLOCATION_ENABLED, PROFILING_ALLOCATION_ENABLED_DEFAULT);
profilingHeapEnabled =
configProvider.getBoolean(PROFILING_HEAP_ENABLED, DEFAULT_PROFILING_HEAP_ENABLED);
configProvider.getBoolean(PROFILING_HEAP_ENABLED, PROFILING_HEAP_ENABLED_DEFAULT);
profilingAgentless =
configProvider.getBoolean(PROFILING_AGENTLESS, DEFAULT_PROFILING_AGENTLESS);
configProvider.getBoolean(PROFILING_AGENTLESS, PROFILING_AGENTLESS_DEFAULT);
profilingLegacyTracingIntegrationEnabled =
configProvider.getBoolean(
PROFILING_LEGACY_TRACING_INTEGRATION, DEFAULT_PROFILING_LEGACY_TRACING_INTEGRATION);
PROFILING_LEGACY_TRACING_INTEGRATION, PROFILING_LEGACY_TRACING_INTEGRATION_DEFAULT);
profilingUrl = configProvider.getString(PROFILING_URL);

if (tmpApiKey == null) {
Expand Down Expand Up @@ -840,34 +840,34 @@ && isJavaVersionAtLeast(8)

profilingTags = configProvider.getMergedMap(PROFILING_TAGS);
profilingStartDelay =
configProvider.getInteger(PROFILING_START_DELAY, DEFAULT_PROFILING_START_DELAY);
configProvider.getInteger(PROFILING_START_DELAY, PROFILING_START_DELAY_DEFAULT);
profilingStartForceFirst =
configProvider.getBoolean(PROFILING_START_FORCE_FIRST, DEFAULT_PROFILING_START_FORCE_FIRST);
configProvider.getBoolean(PROFILING_START_FORCE_FIRST, PROFILING_START_FORCE_FIRST_DEFAULT);
profilingUploadPeriod =
configProvider.getInteger(PROFILING_UPLOAD_PERIOD, DEFAULT_PROFILING_UPLOAD_PERIOD);
configProvider.getInteger(PROFILING_UPLOAD_PERIOD, PROFILING_UPLOAD_PERIOD_DEFAULT);
profilingTemplateOverrideFile = configProvider.getString(PROFILING_TEMPLATE_OVERRIDE_FILE);
profilingUploadTimeout =
configProvider.getInteger(PROFILING_UPLOAD_TIMEOUT, DEFAULT_PROFILING_UPLOAD_TIMEOUT);
configProvider.getInteger(PROFILING_UPLOAD_TIMEOUT, PROFILING_UPLOAD_TIMEOUT_DEFAULT);
profilingUploadCompression =
configProvider.getString(
PROFILING_UPLOAD_COMPRESSION, DEFAULT_PROFILING_UPLOAD_COMPRESSION);
PROFILING_UPLOAD_COMPRESSION, PROFILING_UPLOAD_COMPRESSION_DEFAULT);
profilingProxyHost = configProvider.getString(PROFILING_PROXY_HOST);
profilingProxyPort =
configProvider.getInteger(PROFILING_PROXY_PORT, DEFAULT_PROFILING_PROXY_PORT);
configProvider.getInteger(PROFILING_PROXY_PORT, PROFILING_PROXY_PORT_DEFAULT);
profilingProxyUsername = configProvider.getString(PROFILING_PROXY_USERNAME);
profilingProxyPassword = configProvider.getString(PROFILING_PROXY_PASSWORD);

profilingExceptionSampleLimit =
configProvider.getInteger(
PROFILING_EXCEPTION_SAMPLE_LIMIT, DEFAULT_PROFILING_EXCEPTION_SAMPLE_LIMIT);
PROFILING_EXCEPTION_SAMPLE_LIMIT, PROFILING_EXCEPTION_SAMPLE_LIMIT_DEFAULT);
profilingExceptionHistogramTopItems =
configProvider.getInteger(
PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS,
DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS);
PROFILING_EXCEPTION_HISTOGRAM_TOP_ITEMS_DEFAULT);
profilingExceptionHistogramMaxCollectionSize =
configProvider.getInteger(
PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE,
DEFAULT_PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE);
PROFILING_EXCEPTION_HISTOGRAM_MAX_COLLECTION_SIZE_DEFAULT);

profilingExcludeAgentThreads = configProvider.getBoolean(PROFILING_EXCLUDE_AGENT_THREADS, true);

Expand All @@ -876,7 +876,7 @@ && isJavaVersionAtLeast(8)

profilingUploadSummaryOn413Enabled =
configProvider.getBoolean(
PROFILING_UPLOAD_SUMMARY_ON_413, DEFAULT_PROFILING_UPLOAD_SUMMARY_ON_413);
PROFILING_UPLOAD_SUMMARY_ON_413, PROFILING_UPLOAD_SUMMARY_ON_413_DEFAULT);

appSecEnabled = configProvider.getBoolean(APPSEC_ENABLED, DEFAULT_APPSEC_ENABLED);
appSecReportingInband =
Expand Down Expand Up @@ -1799,7 +1799,7 @@ public String getFinalProfilingUrl() {
} else if (profilingAgentless) {
// when agentless profiling is turned on we send directly to our intake
if (configProvider.getBoolean(
PROFILING_FORMAT_V2_4_ENABLED, DEFAULT_PROFILING_FORMAT_V2_4_ENABLED)) {
PROFILING_FORMAT_V2_4_ENABLED, PROFILING_FORMAT_V2_4_ENABLED_DEFAULT)) {
return "https://intake.profile." + site + "/api/v2/profile";
}
return "https://intake.profile." + site + "/v1/input";
Expand Down

0 comments on commit d7fde2a

Please sign in to comment.