|
86 | 86 | import static datadog.trace.api.ConfigDefaults.DEFAULT_ELASTICSEARCH_BODY_ENABLED; |
87 | 87 | import static datadog.trace.api.ConfigDefaults.DEFAULT_ELASTICSEARCH_PARAMS_ENABLED; |
88 | 88 | import static datadog.trace.api.ConfigDefaults.DEFAULT_EXPERIMENTATAL_JEE_SPLIT_BY_DEPLOYMENT; |
| 89 | +import static datadog.trace.api.ConfigDefaults.DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE; |
| 90 | +import static datadog.trace.api.ConfigDefaults.DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE_POLL_INTERVAL_SECONDS; |
| 91 | +import static datadog.trace.api.ConfigDefaults.DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE_REQUEST_TIMEOUT_SECONDS; |
89 | 92 | import static datadog.trace.api.ConfigDefaults.DEFAULT_GRPC_CLIENT_ERROR_STATUSES; |
90 | 93 | import static datadog.trace.api.ConfigDefaults.DEFAULT_GRPC_SERVER_ERROR_STATUSES; |
91 | 94 | import static datadog.trace.api.ConfigDefaults.DEFAULT_HEALTH_METRICS_ENABLED; |
|
361 | 364 | import static datadog.trace.api.config.DebuggerConfig.THIRD_PARTY_EXCLUDES; |
362 | 365 | import static datadog.trace.api.config.DebuggerConfig.THIRD_PARTY_INCLUDES; |
363 | 366 | import static datadog.trace.api.config.DebuggerConfig.THIRD_PARTY_SHADING_IDENTIFIERS; |
| 367 | +import static datadog.trace.api.config.FeatureFlaggingConfig.FEATURE_FLAGS_CONFIGURATION_SOURCE; |
| 368 | +import static datadog.trace.api.config.FeatureFlaggingConfig.FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_BASE_URL; |
| 369 | +import static datadog.trace.api.config.FeatureFlaggingConfig.FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_POLL_INTERVAL_SECONDS; |
| 370 | +import static datadog.trace.api.config.FeatureFlaggingConfig.FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_REQUEST_TIMEOUT_SECONDS; |
364 | 371 | import static datadog.trace.api.config.GeneralConfig.AGENTLESS_LOG_SUBMISSION_LEVEL; |
365 | 372 | import static datadog.trace.api.config.GeneralConfig.AGENTLESS_LOG_SUBMISSION_QUEUE_SIZE; |
366 | 373 | import static datadog.trace.api.config.GeneralConfig.AGENTLESS_LOG_SUBMISSION_URL; |
@@ -1213,6 +1220,11 @@ public static String getHostName() { |
1213 | 1220 |
|
1214 | 1221 | private final int remoteConfigMaxExtraServices; |
1215 | 1222 |
|
| 1223 | + private final String featureFlaggingConfigurationSource; |
| 1224 | + private final String featureFlaggingConfigurationSourceAgentlessBaseUrl; |
| 1225 | + private final int featureFlaggingConfigurationSourcePollIntervalSeconds; |
| 1226 | + private final int featureFlaggingConfigurationSourceRequestTimeoutSeconds; |
| 1227 | + |
1216 | 1228 | private final boolean dbmInjectSqlBaseHash; |
1217 | 1229 | private final String dbmPropagationMode; |
1218 | 1230 | private final boolean dbmTracePreparedStatements; |
@@ -2835,6 +2847,22 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment()) |
2835 | 2847 | configProvider.getInteger( |
2836 | 2848 | REMOTE_CONFIG_MAX_EXTRA_SERVICES, DEFAULT_REMOTE_CONFIG_MAX_EXTRA_SERVICES); |
2837 | 2849 |
|
| 2850 | + featureFlaggingConfigurationSource = |
| 2851 | + normalizeFeatureFlaggingConfigurationSource( |
| 2852 | + configProvider.getString( |
| 2853 | + FEATURE_FLAGS_CONFIGURATION_SOURCE, DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE)); |
| 2854 | + featureFlaggingConfigurationSourceAgentlessBaseUrl = |
| 2855 | + configProvider.getStringNotEmpty( |
| 2856 | + FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_BASE_URL, null); |
| 2857 | + featureFlaggingConfigurationSourcePollIntervalSeconds = |
| 2858 | + configProvider.getInteger( |
| 2859 | + FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_POLL_INTERVAL_SECONDS, |
| 2860 | + DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE_POLL_INTERVAL_SECONDS); |
| 2861 | + featureFlaggingConfigurationSourceRequestTimeoutSeconds = |
| 2862 | + configProvider.getInteger( |
| 2863 | + FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_REQUEST_TIMEOUT_SECONDS, |
| 2864 | + DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE_REQUEST_TIMEOUT_SECONDS); |
| 2865 | + |
2838 | 2866 | dynamicInstrumentationEnabled = |
2839 | 2867 | configProvider.getBoolean( |
2840 | 2868 | DYNAMIC_INSTRUMENTATION_ENABLED, DEFAULT_DYNAMIC_INSTRUMENTATION_ENABLED); |
@@ -3747,6 +3775,14 @@ public boolean isInferredProxyPropagationEnabled() { |
3747 | 3775 | return traceInferredProxyEnabled; |
3748 | 3776 | } |
3749 | 3777 |
|
| 3778 | + private static String normalizeFeatureFlaggingConfigurationSource(final String source) { |
| 3779 | + if (source == null) { |
| 3780 | + return DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE; |
| 3781 | + } |
| 3782 | + final String normalized = source.trim().toLowerCase(Locale.ROOT); |
| 3783 | + return normalized.isEmpty() ? DEFAULT_FEATURE_FLAGGING_CONFIGURATION_SOURCE : normalized; |
| 3784 | + } |
| 3785 | + |
3750 | 3786 | public boolean isBaggageExtract() { |
3751 | 3787 | return tracePropagationStylesToExtract.contains(TracePropagationStyle.BAGGAGE); |
3752 | 3788 | } |
@@ -4654,6 +4690,22 @@ public int getRemoteConfigMaxExtraServices() { |
4654 | 4690 | return remoteConfigMaxExtraServices; |
4655 | 4691 | } |
4656 | 4692 |
|
| 4693 | + public String getFeatureFlaggingConfigurationSource() { |
| 4694 | + return featureFlaggingConfigurationSource; |
| 4695 | + } |
| 4696 | + |
| 4697 | + public String getFeatureFlaggingConfigurationSourceAgentlessBaseUrl() { |
| 4698 | + return featureFlaggingConfigurationSourceAgentlessBaseUrl; |
| 4699 | + } |
| 4700 | + |
| 4701 | + public int getFeatureFlaggingConfigurationSourcePollIntervalSeconds() { |
| 4702 | + return featureFlaggingConfigurationSourcePollIntervalSeconds; |
| 4703 | + } |
| 4704 | + |
| 4705 | + public int getFeatureFlaggingConfigurationSourceRequestTimeoutSeconds() { |
| 4706 | + return featureFlaggingConfigurationSourceRequestTimeoutSeconds; |
| 4707 | + } |
| 4708 | + |
4657 | 4709 | public boolean isDynamicInstrumentationEnabled() { |
4658 | 4710 | return dynamicInstrumentationEnabled; |
4659 | 4711 | } |
@@ -6486,6 +6538,14 @@ public String toString() { |
6486 | 6538 | + remoteConfigMaxPayloadSize |
6487 | 6539 | + ", remoteConfigIntegrityCheckEnabled=" |
6488 | 6540 | + remoteConfigIntegrityCheckEnabled |
| 6541 | + + ", featureFlaggingConfigurationSource=" |
| 6542 | + + featureFlaggingConfigurationSource |
| 6543 | + + ", featureFlaggingConfigurationSourceAgentlessBaseUrl=" |
| 6544 | + + featureFlaggingConfigurationSourceAgentlessBaseUrl |
| 6545 | + + ", featureFlaggingConfigurationSourcePollIntervalSeconds=" |
| 6546 | + + featureFlaggingConfigurationSourcePollIntervalSeconds |
| 6547 | + + ", featureFlaggingConfigurationSourceRequestTimeoutSeconds=" |
| 6548 | + + featureFlaggingConfigurationSourceRequestTimeoutSeconds |
6489 | 6549 | + ", debuggerEnabled=" |
6490 | 6550 | + dynamicInstrumentationEnabled |
6491 | 6551 | + ", debuggerUploadTimeout=" |
|
0 commit comments