|
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; |
|
84 | 85 | import datadog.trace.core.datastreams.DefaultDataStreamsMonitoring; |
85 | 86 | import datadog.trace.core.flare.TracerFlarePoller; |
86 | 87 | import datadog.trace.core.histogram.Histograms; |
| 88 | +import datadog.trace.core.monitor.DefaultRumInjectorHealthMetrics; |
87 | 89 | import datadog.trace.core.monitor.HealthMetrics; |
88 | 90 | import datadog.trace.core.monitor.MonitoringImpl; |
| 91 | +import datadog.trace.core.monitor.RumInjectorHealthMetrics; |
89 | 92 | import datadog.trace.core.monitor.TracerHealthMetrics; |
90 | 93 | import datadog.trace.core.propagation.ExtractedContext; |
91 | 94 | import datadog.trace.core.propagation.HttpCodec; |
@@ -205,6 +208,7 @@ public static CoreTracerBuilder builder() { |
205 | 208 | private final Monitoring performanceMonitoring; |
206 | 209 |
|
207 | 210 | private final HealthMetrics healthMetrics; |
| 211 | + private final RumInjectorHealthMetrics rumInjectorHealthMetrics; |
208 | 212 | private final Recording traceWriteTimer; |
209 | 213 | private final IdGenerationStrategy idGenerationStrategy; |
210 | 214 | private final TraceCollector.Factory traceCollectorFactory; |
@@ -703,6 +707,15 @@ private CoreTracer( |
703 | 707 | ? new TracerHealthMetrics(this.statsDClient) |
704 | 708 | : HealthMetrics.NO_OP; |
705 | 709 | healthMetrics.start(); |
| 710 | + |
| 711 | + rumInjectorHealthMetrics = |
| 712 | + config.isHealthMetricsEnabled() && config.isRumEnabled() |
| 713 | + ? new DefaultRumInjectorHealthMetrics(this.statsDClient) |
| 714 | + : RumInjectorHealthMetrics.NO_OP; |
| 715 | + rumInjectorHealthMetrics.start(); |
| 716 | + // Register health metrics telemetry collector with RumInjector |
| 717 | + RumInjector.setTelemetryCollector((DefaultRumInjectorHealthMetrics) rumInjectorHealthMetrics); |
| 718 | + |
706 | 719 | performanceMonitoring = |
707 | 720 | config.isPerfMetricsEnabled() |
708 | 721 | ? new MonitoringImpl(this.statsDClient, 10, SECONDS) |
@@ -1248,6 +1261,7 @@ public void close() { |
1248 | 1261 | tracingConfigPoller.stop(); |
1249 | 1262 | pendingTraceBuffer.close(); |
1250 | 1263 | writer.close(); |
| 1264 | + rumInjectorHealthMetrics.close(); |
1251 | 1265 | statsDClient.close(); |
1252 | 1266 | metricsAggregator.close(); |
1253 | 1267 | dataStreamsMonitoring.close(); |
|
0 commit comments