|
49 | 49 | import datadog.trace.api.metrics.SpanMetricRegistry;
|
50 | 50 | import datadog.trace.api.naming.SpanNaming;
|
51 | 51 | import datadog.trace.api.remoteconfig.ServiceNameCollector;
|
| 52 | +import datadog.trace.api.rum.RumInjector; |
52 | 53 | import datadog.trace.api.sampling.PrioritySampling;
|
53 | 54 | import datadog.trace.api.scopemanager.ScopeListener;
|
54 | 55 | import datadog.trace.api.time.SystemTimeSource;
|
|
83 | 84 | import datadog.trace.core.datastreams.DefaultDataStreamsMonitoring;
|
84 | 85 | import datadog.trace.core.flare.TracerFlarePoller;
|
85 | 86 | import datadog.trace.core.histogram.Histograms;
|
| 87 | +import datadog.trace.core.monitor.DefaultRumInjectorHealthMetrics; |
86 | 88 | import datadog.trace.core.monitor.HealthMetrics;
|
87 | 89 | import datadog.trace.core.monitor.MonitoringImpl;
|
| 90 | +import datadog.trace.core.monitor.RumInjectorHealthMetrics; |
88 | 91 | import datadog.trace.core.monitor.TracerHealthMetrics;
|
89 | 92 | import datadog.trace.core.propagation.ExtractedContext;
|
90 | 93 | import datadog.trace.core.propagation.HttpCodec;
|
@@ -204,6 +207,7 @@ public static CoreTracerBuilder builder() {
|
204 | 207 | private final Monitoring performanceMonitoring;
|
205 | 208 |
|
206 | 209 | private final HealthMetrics healthMetrics;
|
| 210 | + private final RumInjectorHealthMetrics rumInjectorHealthMetrics; |
207 | 211 | private final Recording traceWriteTimer;
|
208 | 212 | private final IdGenerationStrategy idGenerationStrategy;
|
209 | 213 | private final TraceCollector.Factory traceCollectorFactory;
|
@@ -702,6 +706,15 @@ private CoreTracer(
|
702 | 706 | ? new TracerHealthMetrics(this.statsDClient)
|
703 | 707 | : HealthMetrics.NO_OP;
|
704 | 708 | healthMetrics.start();
|
| 709 | + |
| 710 | + rumInjectorHealthMetrics = |
| 711 | + config.isHealthMetricsEnabled() && config.isRumEnabled() |
| 712 | + ? new DefaultRumInjectorHealthMetrics(this.statsDClient) |
| 713 | + : RumInjectorHealthMetrics.NO_OP; |
| 714 | + rumInjectorHealthMetrics.start(); |
| 715 | + // Register health metrics telemetry collector with RumInjector |
| 716 | + RumInjector.setTelemetryCollector((DefaultRumInjectorHealthMetrics) rumInjectorHealthMetrics); |
| 717 | + |
705 | 718 | performanceMonitoring =
|
706 | 719 | config.isPerfMetricsEnabled()
|
707 | 720 | ? new MonitoringImpl(this.statsDClient, 10, SECONDS)
|
@@ -1247,6 +1260,7 @@ public void close() {
|
1247 | 1260 | tracingConfigPoller.stop();
|
1248 | 1261 | pendingTraceBuffer.close();
|
1249 | 1262 | writer.close();
|
| 1263 | + rumInjectorHealthMetrics.close(); |
1250 | 1264 | statsDClient.close();
|
1251 | 1265 | metricsAggregator.close();
|
1252 | 1266 | dataStreamsMonitoring.close();
|
|
0 commit comments