|
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