File tree Expand file tree Collapse file tree 3 files changed +19
-14
lines changed
internal-api/src/main/java/datadog/trace/api
utils/config-utils/src/main/java/datadog/trace/api/telemetry Expand file tree Collapse file tree 3 files changed +19
-14
lines changed Original file line number Diff line number Diff line change 8080import static datadog .trace .util .CollectionUtils .tryMakeImmutableSet ;
8181
8282import datadog .trace .api .profiling .ProfilingEnablement ;
83+ import datadog .trace .api .telemetry .ConfigInversionMetricCollectorImpl ;
84+ import datadog .trace .api .telemetry .ConfigInversionMetricCollectorProvider ;
8385import datadog .trace .api .telemetry .OtelEnvMetricCollectorImpl ;
8486import datadog .trace .api .telemetry .OtelEnvMetricCollectorProvider ;
8587import datadog .trace .bootstrap .config .provider .ConfigProvider ;
107109 * @see Config for other configurations
108110 */
109111public class InstrumenterConfig {
112+ static {
113+ if (!Platform .isNativeImageBuilder ()) {
114+ // Bind telemetry collector to config module before initializing ConfigProvider
115+ ConfigInversionMetricCollectorProvider .register (
116+ ConfigInversionMetricCollectorImpl .getInstance ());
117+ }
118+ }
119+
110120 private final ConfigProvider configProvider ;
111121
112122 private final boolean triageEnabled ;
Original file line number Diff line number Diff line change 11package datadog .trace .api .telemetry ;
22
3- import org .slf4j .Logger ;
4- import org .slf4j .LoggerFactory ;
5-
63public final class ConfigInversionMetricCollectorProvider {
7- private static final Logger log =
8- LoggerFactory .getLogger (ConfigInversionMetricCollectorProvider .class );
9- private static ConfigInversionMetricCollector INSTANCE = null ;
4+ private static ConfigInversionMetricCollector INSTANCE =
5+ NoOpConfigInversionMetricCollector .getInstance ();
106
117 private ConfigInversionMetricCollectorProvider () {}
128
139 public static ConfigInversionMetricCollector get () {
14- if (INSTANCE == null ) {
15- log .debug (
16- "ConfigInversionMetricCollector has not been registered. Defaulting to NoOp implementation." );
17- // Return NoOp implementation for build tasks like instrumentJava that run before
18- // implementation is registered
19- return NoOpConfigInversionMetricCollector .getInstance ();
20- }
2110 return INSTANCE ;
2211 }
2312
Original file line number Diff line number Diff line change 11package datadog .trace .api .telemetry ;
22
3+ import org .slf4j .Logger ;
4+ import org .slf4j .LoggerFactory ;
5+
36/**
47 * NOOP implementation of ConfigInversionMetricCollector. Used as a default when the real collector
58 * is not registered during build tasks like instrumentJava.
@@ -8,6 +11,9 @@ public final class NoOpConfigInversionMetricCollector implements ConfigInversion
811 private static final NoOpConfigInversionMetricCollector INSTANCE =
912 new NoOpConfigInversionMetricCollector ();
1013
14+ private static final Logger log =
15+ LoggerFactory .getLogger (NoOpConfigInversionMetricCollector .class );
16+
1117 private NoOpConfigInversionMetricCollector () {}
1218
1319 public static NoOpConfigInversionMetricCollector getInstance () {
@@ -16,6 +22,6 @@ public static NoOpConfigInversionMetricCollector getInstance() {
1622
1723 @ Override
1824 public void setUndocumentedEnvVarMetric (String configName ) {
19- // NOOP - do nothing
25+ log . debug ( "Environment variable {} is undocumented" , configName );
2026 }
2127}
You can’t perform that action at this time.
0 commit comments