From d1f1f8d6e9a1bc2abd04af9a13a54465b7118ff8 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Thu, 2 Apr 2020 15:55:24 -0400 Subject: [PATCH 1/3] Add option to configure Datadog site used to send profiling information --- .../profiling/uploader/RecordingUploader.java | 4 ++- .../uploader/RecordingUploaderTest.java | 6 ++-- .../main/java/datadog/trace/api/Config.java | 34 +++++++++++++------ .../datadog/trace/api/ConfigTest.groovy | 33 +++++++++++++++++- 4 files changed, 62 insertions(+), 15 deletions(-) diff --git a/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/RecordingUploader.java b/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/RecordingUploader.java index e92afe9eda..5be5bf3974 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/RecordingUploader.java +++ b/dd-java-agent/agent-profiling/profiling-uploader/src/main/java/com/datadog/profiling/uploader/RecordingUploader.java @@ -53,6 +53,7 @@ import okhttp3.Response; /** The class for uploading recordings to the backend. */ @Slf4j public final class RecordingUploader { + private static final MediaType OCTET_STREAM = MediaType.parse("application/octet-stream"); static final String RECORDING_NAME_PARAM = "recording-name"; @@ -120,7 +121,7 @@ public final class RecordingUploader { private final Deque requestSizeHistory; public RecordingUploader(final Config config) { - url = config.getProfilingUrl(); + url = config.getFinalProfilingUrl(); apiKey = config.getProfilingApiKey(); /* @@ -233,6 +234,7 @@ public final class RecordingUploader { @FunctionalInterface private interface Compression { + RequestBody compress(InputStream is, int expectedSize) throws IOException; } diff --git a/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/RecordingUploaderTest.java b/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/RecordingUploaderTest.java index f550e267aa..77b492e395 100644 --- a/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/RecordingUploaderTest.java +++ b/dd-java-agent/agent-profiling/profiling-uploader/src/test/java/com/datadog/profiling/uploader/RecordingUploaderTest.java @@ -120,7 +120,7 @@ public class RecordingUploaderTest { server.start(); url = server.url(URL_PATH); - when(config.getProfilingUrl()).thenReturn(server.url(URL_PATH).toString()); + when(config.getFinalProfilingUrl()).thenReturn(server.url(URL_PATH).toString()); when(config.getProfilingApiKey()).thenReturn(APIKEY_VALUE); when(config.getMergedProfilingTags()).thenReturn(TAGS); when(config.getProfilingUploadTimeout()).thenReturn((int) REQUEST_TIMEOUT.getSeconds()); @@ -199,7 +199,7 @@ public class RecordingUploaderTest { public void testRequestWithProxy() throws IOException, InterruptedException { final String backendHost = "intake.profiling.datadoghq.com:1234"; final String backendUrl = "http://intake.profiling.datadoghq.com:1234" + URL_PATH; - when(config.getProfilingUrl()) + when(config.getFinalProfilingUrl()) .thenReturn("http://intake.profiling.datadoghq.com:1234" + URL_PATH); when(config.getProfilingProxyHost()).thenReturn(server.url("").host()); when(config.getProfilingProxyPort()).thenReturn(server.url("").port()); @@ -235,7 +235,7 @@ public class RecordingUploaderTest { @Test public void testRequestWithProxyDefaultPassword() throws IOException, InterruptedException { final String backendUrl = "http://intake.profiling.datadoghq.com:1234" + URL_PATH; - when(config.getProfilingUrl()) + when(config.getFinalProfilingUrl()) .thenReturn("http://intake.profiling.datadoghq.com:1234" + URL_PATH); when(config.getProfilingProxyHost()).thenReturn(server.url("").host()); when(config.getProfilingProxyPort()).thenReturn(server.url("").port()); diff --git a/dd-trace-api/src/main/java/datadog/trace/api/Config.java b/dd-trace-api/src/main/java/datadog/trace/api/Config.java index e9b6e9c816..b645cb5fa8 100644 --- a/dd-trace-api/src/main/java/datadog/trace/api/Config.java +++ b/dd-trace-api/src/main/java/datadog/trace/api/Config.java @@ -40,9 +40,12 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @ToString(includeFieldNames = true) public class Config { + /** Config keys below */ private static final String PREFIX = "dd."; + public static final String PROFILING_URL_TEMPLATE = "https://intake.profile.%s/v1/input"; + private static final Pattern ENV_REPLACEMENT = Pattern.compile("[^a-zA-Z0-9_]"); public static final String CONFIGURATION_FILE = "trace.config"; @@ -106,6 +109,7 @@ public class Config { public static final String LOGS_INJECTION_ENABLED = "logs.injection"; public static final String PROFILING_ENABLED = "profiling.enabled"; + public static final String PROFILING_SITE = "profiling.site"; public static final String PROFILING_URL = "profiling.url"; public static final String PROFILING_API_KEY = "profiling.api-key"; @@ -173,8 +177,7 @@ public class Config { public static final boolean DEFAULT_LOGS_INJECTION_ENABLED = false; public static final boolean DEFAULT_PROFILING_ENABLED = false; - public static final String DEFAULT_PROFILING_URL = - "https://intake.profile.datadoghq.com/v1/input"; + public static final String DEFAULT_PROFILING_SITE = "datadoghq.com"; public static final int DEFAULT_PROFILING_START_DELAY = 10; public static final boolean DEFAULT_PROFILING_START_FORCE_FIRST = false; public static final int DEFAULT_PROFILING_UPLOAD_PERIOD = 60; // 1 min @@ -269,7 +272,8 @@ public class Config { @Getter private final Double traceRateLimit; @Getter private final boolean profilingEnabled; - @Getter private final String profilingUrl; + @Getter private final String profilingSite; + private final String profilingUrl; @Getter private final String profilingApiKey; private final Map profilingTags; @Getter private final int profilingStartDelay; @@ -415,7 +419,8 @@ public class Config { profilingEnabled = getBooleanSettingFromEnvironment(PROFILING_ENABLED, DEFAULT_PROFILING_ENABLED); - profilingUrl = getSettingFromEnvironment(PROFILING_URL, DEFAULT_PROFILING_URL); + profilingSite = getSettingFromEnvironment(PROFILING_SITE, DEFAULT_PROFILING_SITE); + profilingUrl = getSettingFromEnvironment(PROFILING_URL, null); // Note: We do not want APiKey to be loaded from property for security reasons // Note: we do not use defined default here // FIXME: We should use better authentication mechanism @@ -609,6 +614,7 @@ public class Config { profilingEnabled = getPropertyBooleanValue(properties, PROFILING_ENABLED, parent.profilingEnabled); + profilingSite = properties.getProperty(PROFILING_SITE, parent.profilingSite); profilingUrl = properties.getProperty(PROFILING_URL, parent.profilingUrl); profilingApiKey = properties.getProperty(PROFILING_API_KEY, parent.profilingApiKey); profilingTags = getPropertyMapValue(properties, PROFILING_TAGS, parent.profilingTags); @@ -734,17 +740,25 @@ public class Config { return Collections.unmodifiableMap(result); } + public String getFinalProfilingUrl() { + if (profilingUrl == null) { + return String.format(PROFILING_URL_TEMPLATE, profilingSite); + } else { + return profilingUrl; + } + } + public boolean isIntegrationEnabled( final SortedSet integrationNames, final boolean defaultEnabled) { return integrationEnabled(integrationNames, defaultEnabled); } /** - * @deprecated This method should only be used internally. Use the instance getter instead {@link - * #isIntegrationEnabled(SortedSet, boolean)}. * @param integrationNames * @param defaultEnabled * @return + * @deprecated This method should only be used internally. Use the instance getter instead {@link + * #isIntegrationEnabled(SortedSet, boolean)}. */ public static boolean integrationEnabled( final SortedSet integrationNames, final boolean defaultEnabled) { @@ -774,11 +788,11 @@ public class Config { } /** - * @deprecated This method should only be used internally. Use the instance getter instead {@link - * #isJmxFetchIntegrationEnabled(SortedSet, boolean)}. * @param integrationNames * @param defaultEnabled * @return + * @deprecated This method should only be used internally. Use the instance getter instead {@link + * #isJmxFetchIntegrationEnabled(SortedSet, boolean)}. */ public static boolean jmxFetchIntegrationEnabled( final SortedSet integrationNames, final boolean defaultEnabled) { @@ -803,11 +817,11 @@ public class Config { } /** - * @deprecated This method should only be used internally. Use the instance getter instead {@link - * #isTraceAnalyticsIntegrationEnabled(SortedSet, boolean)}. * @param integrationNames * @param defaultEnabled * @return + * @deprecated This method should only be used internally. Use the instance getter instead {@link + * #isTraceAnalyticsIntegrationEnabled(SortedSet, boolean)}. */ public static boolean traceAnalyticsIntegrationEnabled( final SortedSet integrationNames, final boolean defaultEnabled) { diff --git a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy index db37f07a6a..7c44765790 100644 --- a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy +++ b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy @@ -40,6 +40,7 @@ import static datadog.trace.api.Config.PROFILING_PROXY_HOST import static datadog.trace.api.Config.PROFILING_PROXY_PASSWORD import static datadog.trace.api.Config.PROFILING_PROXY_PORT import static datadog.trace.api.Config.PROFILING_PROXY_USERNAME +import static datadog.trace.api.Config.PROFILING_SITE import static datadog.trace.api.Config.PROFILING_START_DELAY import static datadog.trace.api.Config.PROFILING_START_FORCE_FIRST import static datadog.trace.api.Config.PROFILING_TAGS @@ -133,7 +134,8 @@ class ConfigTest extends DDSpecification { config.healthMetricsStatsdPort == null config.profilingEnabled == false - config.profilingUrl == Config.DEFAULT_PROFILING_URL + config.profilingSite == Config.DEFAULT_PROFILING_SITE + config.profilingUrl == null config.profilingApiKey == null config.mergedProfilingTags == [(HOST_TAG): config.getHostName(), (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] config.profilingStartDelay == 10 @@ -198,6 +200,7 @@ class ConfigTest extends DDSpecification { prop.setProperty(TRACE_RATE_LIMIT, "200") prop.setProperty(PROFILING_ENABLED, "true") + prop.setProperty(PROFILING_SITE, "new site") prop.setProperty(PROFILING_URL, "new url") prop.setProperty(PROFILING_API_KEY, "new api key") prop.setProperty(PROFILING_TAGS, "f:6,host:test-host") @@ -254,6 +257,7 @@ class ConfigTest extends DDSpecification { config.traceRateLimit == 200 config.profilingEnabled == true + config.profilingSite == "new site" config.profilingUrl == "new url" config.profilingApiKey == "new api key" // we can still override via internal properties object config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] @@ -310,6 +314,7 @@ class ConfigTest extends DDSpecification { System.setProperty(PREFIX + TRACE_RATE_LIMIT, "200") System.setProperty(PREFIX + PROFILING_ENABLED, "true") + System.setProperty(PREFIX + PROFILING_SITE, "new site") System.setProperty(PREFIX + PROFILING_URL, "new url") System.setProperty(PREFIX + PROFILING_API_KEY, "new api key") System.setProperty(PREFIX + PROFILING_TAGS, "f:6,host:test-host") @@ -366,6 +371,7 @@ class ConfigTest extends DDSpecification { config.traceRateLimit == 200 config.profilingEnabled == true + config.profilingSite == "new site" config.profilingUrl == "new url" config.profilingApiKey == null // system properties cannot be used to provide a key config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] @@ -1105,4 +1111,29 @@ class ConfigTest extends DDSpecification { config.mergedProfilingTags == [a: "1", f: "6", (HOST_TAG): config.getHostName(), (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] } + + def "custom datadog site"() { + setup: + def prop = new Properties() + prop.setProperty(PROFILING_SITE, "some.new.site") + + when: + Config config = Config.get(prop) + + then: + config.getFinalProfilingUrl() == "https://intake.profile.some.new.site/v1/input" + } + + def "custom profiling url override"() { + setup: + def prop = new Properties() + prop.setProperty(PROFILING_SITE, "some.new.site") + prop.setProperty(PROFILING_URL, "https://some.new.url/goes/here") + + when: + Config config = Config.get(prop) + + then: + config.getFinalProfilingUrl() == "https://some.new.url/goes/here" + } } From e812d327fb0845c1add520f59d0d745eb8a362e0 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Thu, 2 Apr 2020 16:20:41 -0400 Subject: [PATCH 2/3] Rename DD_PROFILING_SITE to DD_SITE --- .../src/main/java/datadog/trace/api/Config.java | 17 +++++++++++------ .../groovy/datadog/trace/api/ConfigTest.groovy | 16 ++++++++-------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/dd-trace-api/src/main/java/datadog/trace/api/Config.java b/dd-trace-api/src/main/java/datadog/trace/api/Config.java index b645cb5fa8..7330ef78c6 100644 --- a/dd-trace-api/src/main/java/datadog/trace/api/Config.java +++ b/dd-trace-api/src/main/java/datadog/trace/api/Config.java @@ -49,6 +49,7 @@ public class Config { private static final Pattern ENV_REPLACEMENT = Pattern.compile("[^a-zA-Z0-9_]"); public static final String CONFIGURATION_FILE = "trace.config"; + public static final String SITE = "site"; public static final String SERVICE_NAME = "service.name"; public static final String TRACE_ENABLED = "trace.enabled"; public static final String INTEGRATIONS_ENABLED = "integrations.enabled"; @@ -109,7 +110,6 @@ public class Config { public static final String LOGS_INJECTION_ENABLED = "logs.injection"; public static final String PROFILING_ENABLED = "profiling.enabled"; - public static final String PROFILING_SITE = "profiling.site"; public static final String PROFILING_URL = "profiling.url"; public static final String PROFILING_API_KEY = "profiling.api-key"; @@ -138,6 +138,7 @@ public class Config { public static final String LANGUAGE_TAG_KEY = "language"; public static final String LANGUAGE_TAG_VALUE = "jvm"; + public static final String DEFAULT_SITE = "datadoghq.com"; public static final String DEFAULT_SERVICE_NAME = "unnamed-java-app"; private static final boolean DEFAULT_TRACE_ENABLED = true; @@ -177,7 +178,6 @@ public class Config { public static final boolean DEFAULT_LOGS_INJECTION_ENABLED = false; public static final boolean DEFAULT_PROFILING_ENABLED = false; - public static final String DEFAULT_PROFILING_SITE = "datadoghq.com"; public static final int DEFAULT_PROFILING_START_DELAY = 10; public static final boolean DEFAULT_PROFILING_START_FORCE_FIRST = false; public static final int DEFAULT_PROFILING_UPLOAD_PERIOD = 60; // 1 min @@ -211,6 +211,12 @@ public class Config { */ @Getter private final String runtimeId; + /** + * Note: this has effect only on profiling site. Traces are sent to Datadog agent and are not + * affected by this setting. + */ + @Getter private final String site; + @Getter private final String serviceName; @Getter private final boolean traceEnabled; @Getter private final boolean integrationsEnabled; @@ -272,7 +278,6 @@ public class Config { @Getter private final Double traceRateLimit; @Getter private final boolean profilingEnabled; - @Getter private final String profilingSite; private final String profilingUrl; @Getter private final String profilingApiKey; private final Map profilingTags; @@ -297,6 +302,7 @@ public class Config { runtimeId = UUID.randomUUID().toString(); + site = getSettingFromEnvironment(SITE, DEFAULT_SITE); serviceName = getSettingFromEnvironment(SERVICE_NAME, DEFAULT_SERVICE_NAME); traceEnabled = getBooleanSettingFromEnvironment(TRACE_ENABLED, DEFAULT_TRACE_ENABLED); @@ -419,7 +425,6 @@ public class Config { profilingEnabled = getBooleanSettingFromEnvironment(PROFILING_ENABLED, DEFAULT_PROFILING_ENABLED); - profilingSite = getSettingFromEnvironment(PROFILING_SITE, DEFAULT_PROFILING_SITE); profilingUrl = getSettingFromEnvironment(PROFILING_URL, null); // Note: We do not want APiKey to be loaded from property for security reasons // Note: we do not use defined default here @@ -483,6 +488,7 @@ public class Config { private Config(final Properties properties, final Config parent) { runtimeId = parent.runtimeId; + site = properties.getProperty(SITE, parent.site); serviceName = properties.getProperty(SERVICE_NAME, parent.serviceName); traceEnabled = getPropertyBooleanValue(properties, TRACE_ENABLED, parent.traceEnabled); @@ -614,7 +620,6 @@ public class Config { profilingEnabled = getPropertyBooleanValue(properties, PROFILING_ENABLED, parent.profilingEnabled); - profilingSite = properties.getProperty(PROFILING_SITE, parent.profilingSite); profilingUrl = properties.getProperty(PROFILING_URL, parent.profilingUrl); profilingApiKey = properties.getProperty(PROFILING_API_KEY, parent.profilingApiKey); profilingTags = getPropertyMapValue(properties, PROFILING_TAGS, parent.profilingTags); @@ -742,7 +747,7 @@ public class Config { public String getFinalProfilingUrl() { if (profilingUrl == null) { - return String.format(PROFILING_URL_TEMPLATE, profilingSite); + return String.format(PROFILING_URL_TEMPLATE, site); } else { return profilingUrl; } diff --git a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy index 7c44765790..9fc303ac30 100644 --- a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy +++ b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy @@ -40,7 +40,6 @@ import static datadog.trace.api.Config.PROFILING_PROXY_HOST import static datadog.trace.api.Config.PROFILING_PROXY_PASSWORD import static datadog.trace.api.Config.PROFILING_PROXY_PORT import static datadog.trace.api.Config.PROFILING_PROXY_USERNAME -import static datadog.trace.api.Config.PROFILING_SITE import static datadog.trace.api.Config.PROFILING_START_DELAY import static datadog.trace.api.Config.PROFILING_START_FORCE_FIRST import static datadog.trace.api.Config.PROFILING_TAGS @@ -56,6 +55,7 @@ import static datadog.trace.api.Config.RUNTIME_ID_TAG import static datadog.trace.api.Config.SERVICE_MAPPING import static datadog.trace.api.Config.SERVICE_NAME import static datadog.trace.api.Config.SERVICE_TAG +import static datadog.trace.api.Config.SITE import static datadog.trace.api.Config.SPAN_TAGS import static datadog.trace.api.Config.SPLIT_BY_TAGS import static datadog.trace.api.Config.TAGS @@ -134,7 +134,7 @@ class ConfigTest extends DDSpecification { config.healthMetricsStatsdPort == null config.profilingEnabled == false - config.profilingSite == Config.DEFAULT_PROFILING_SITE + config.site == Config.DEFAULT_SITE config.profilingUrl == null config.profilingApiKey == null config.mergedProfilingTags == [(HOST_TAG): config.getHostName(), (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] @@ -200,7 +200,7 @@ class ConfigTest extends DDSpecification { prop.setProperty(TRACE_RATE_LIMIT, "200") prop.setProperty(PROFILING_ENABLED, "true") - prop.setProperty(PROFILING_SITE, "new site") + prop.setProperty(SITE, "new site") prop.setProperty(PROFILING_URL, "new url") prop.setProperty(PROFILING_API_KEY, "new api key") prop.setProperty(PROFILING_TAGS, "f:6,host:test-host") @@ -257,7 +257,7 @@ class ConfigTest extends DDSpecification { config.traceRateLimit == 200 config.profilingEnabled == true - config.profilingSite == "new site" + config.site == "new site" config.profilingUrl == "new url" config.profilingApiKey == "new api key" // we can still override via internal properties object config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] @@ -314,7 +314,7 @@ class ConfigTest extends DDSpecification { System.setProperty(PREFIX + TRACE_RATE_LIMIT, "200") System.setProperty(PREFIX + PROFILING_ENABLED, "true") - System.setProperty(PREFIX + PROFILING_SITE, "new site") + System.setProperty(PREFIX + SITE, "new site") System.setProperty(PREFIX + PROFILING_URL, "new url") System.setProperty(PREFIX + PROFILING_API_KEY, "new api key") System.setProperty(PREFIX + PROFILING_TAGS, "f:6,host:test-host") @@ -371,7 +371,7 @@ class ConfigTest extends DDSpecification { config.traceRateLimit == 200 config.profilingEnabled == true - config.profilingSite == "new site" + config.site == "new site" config.profilingUrl == "new url" config.profilingApiKey == null // system properties cannot be used to provide a key config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE] @@ -1115,7 +1115,7 @@ class ConfigTest extends DDSpecification { def "custom datadog site"() { setup: def prop = new Properties() - prop.setProperty(PROFILING_SITE, "some.new.site") + prop.setProperty(SITE, "some.new.site") when: Config config = Config.get(prop) @@ -1127,7 +1127,7 @@ class ConfigTest extends DDSpecification { def "custom profiling url override"() { setup: def prop = new Properties() - prop.setProperty(PROFILING_SITE, "some.new.site") + prop.setProperty(SITE, "some.new.site") prop.setProperty(PROFILING_URL, "https://some.new.url/goes/here") when: From b429cf4c52de5a45a33fc147f1acec8f26f5917b Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 3 Apr 2020 07:52:26 -0400 Subject: [PATCH 3/3] Add some deprecation notes --- dd-trace-api/src/main/java/datadog/trace/api/Config.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dd-trace-api/src/main/java/datadog/trace/api/Config.java b/dd-trace-api/src/main/java/datadog/trace/api/Config.java index 7330ef78c6..bc5b95124b 100644 --- a/dd-trace-api/src/main/java/datadog/trace/api/Config.java +++ b/dd-trace-api/src/main/java/datadog/trace/api/Config.java @@ -97,7 +97,7 @@ public class Config { public static final String JMX_FETCH_ENABLED = "jmxfetch.enabled"; public static final String JMX_FETCH_CONFIG_DIR = "jmxfetch.config.dir"; public static final String JMX_FETCH_CONFIG = "jmxfetch.config"; - public static final String JMX_FETCH_METRICS_CONFIGS = "jmxfetch.metrics-configs"; + @Deprecated public static final String JMX_FETCH_METRICS_CONFIGS = "jmxfetch.metrics-configs"; public static final String JMX_FETCH_CHECK_PERIOD = "jmxfetch.check-period"; public static final String JMX_FETCH_REFRESH_BEANS_PERIOD = "jmxfetch.refresh-beans-period"; public static final String JMX_FETCH_STATSD_HOST = "jmxfetch.statsd.host"; @@ -110,8 +110,8 @@ public class Config { public static final String LOGS_INJECTION_ENABLED = "logs.injection"; public static final String PROFILING_ENABLED = "profiling.enabled"; + @Deprecated // Use dd.site instead public static final String PROFILING_URL = "profiling.url"; - public static final String PROFILING_API_KEY = "profiling.api-key"; public static final String PROFILING_API_KEY_FILE = "profiling.api-key-file"; public static final String PROFILING_API_KEY_OLD = "profiling.apikey"; @@ -278,7 +278,7 @@ public class Config { @Getter private final Double traceRateLimit; @Getter private final boolean profilingEnabled; - private final String profilingUrl; + @Deprecated private final String profilingUrl; @Getter private final String profilingApiKey; private final Map profilingTags; @Getter private final int profilingStartDelay;