|
17 | 17 | package org.springframework.boot.actuate.autoconfigure.metrics.export.newrelic; |
18 | 18 |
|
19 | 19 | import io.micrometer.core.instrument.Clock; |
| 20 | +import io.micrometer.core.ipc.http.HttpUrlConnectionSender; |
| 21 | +import io.micrometer.newrelic.ClientProviderType; |
20 | 22 | import io.micrometer.newrelic.NewRelicClientProvider; |
21 | 23 | import io.micrometer.newrelic.NewRelicConfig; |
| 24 | +import io.micrometer.newrelic.NewRelicInsightsAgentClientProvider; |
| 25 | +import io.micrometer.newrelic.NewRelicInsightsApiClientProvider; |
22 | 26 | import io.micrometer.newrelic.NewRelicMeterRegistry; |
23 | | -import io.micrometer.newrelic.NewRelicMeterRegistry.Builder; |
24 | 27 |
|
25 | | -import org.springframework.beans.factory.ObjectProvider; |
26 | 28 | import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration; |
27 | 29 | import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; |
28 | 30 | import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; |
@@ -67,13 +69,23 @@ public NewRelicConfig newRelicConfig() { |
67 | 69 | return new NewRelicPropertiesConfigAdapter(this.properties); |
68 | 70 | } |
69 | 71 |
|
| 72 | + @Bean |
| 73 | + @ConditionalOnMissingBean |
| 74 | + public NewRelicClientProvider newRelicClientProvider(NewRelicConfig newRelicConfig) { |
| 75 | + if (newRelicConfig.clientProviderType() == ClientProviderType.INSIGHTS_AGENT) { |
| 76 | + return new NewRelicInsightsAgentClientProvider(newRelicConfig); |
| 77 | + } |
| 78 | + return new NewRelicInsightsApiClientProvider(newRelicConfig, |
| 79 | + new HttpUrlConnectionSender(this.properties.getConnectTimeout(), this.properties.getReadTimeout())); |
| 80 | + |
| 81 | + } |
| 82 | + |
70 | 83 | @Bean |
71 | 84 | @ConditionalOnMissingBean |
72 | 85 | public NewRelicMeterRegistry newRelicMeterRegistry(NewRelicConfig newRelicConfig, Clock clock, |
73 | | - ObjectProvider<NewRelicClientProvider> newRelicClientProvider) { |
74 | | - Builder builder = NewRelicMeterRegistry.builder(newRelicConfig).clock(clock); |
75 | | - newRelicClientProvider.ifUnique(builder::clientProvider); |
76 | | - return builder.build(); |
| 86 | + NewRelicClientProvider newRelicClientProvider) { |
| 87 | + return NewRelicMeterRegistry.builder(newRelicConfig).clock(clock).clientProvider(newRelicClientProvider) |
| 88 | + .build(); |
77 | 89 | } |
78 | 90 |
|
79 | 91 | } |
0 commit comments