Disable servo by default. (#3041)
This commit is contained in:
@@ -2582,6 +2582,8 @@ Spectator and Servo are Netflix's metrics collection libraries. Atlas is a Netfl
|
||||
|
||||
Servo served Netflix for several years and is still usable, but is gradually being phased out in favor of Spectator, which is only designed to work with Java 8. Spring Cloud Netflix provides support for both, but Java 8 based applications are encouraged to use Spectator.
|
||||
|
||||
To enable Servo you must set `spring.metrics.servo.enabled` to `true`.
|
||||
|
||||
=== Dimensional vs. Hierarchical Metrics
|
||||
|
||||
Spring Boot Actuator metrics are hierarchical and metrics are separated only by name. These names often follow a naming convention that embeds key/value attribute pairs (dimensions) into the name separated by periods. Consider the following metrics for two endpoints, root and star-star:
|
||||
|
||||
@@ -19,6 +19,7 @@ import java.util.Map;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.actuate.metrics.export.Exporter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.cloud.netflix.metrics.servo.ServoMetricsAutoConfiguration;
|
||||
@@ -69,6 +70,7 @@ public class AtlasConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
@ConditionalOnBean(MonitorRegistry.class)
|
||||
public Exporter exporter(AtlasMetricObserver observer, MonitorRegistry monitorRegistry) {
|
||||
return new AtlasExporter(observer, new MonitorRegistryMetricPoller(monitorRegistry));
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ import com.netflix.servo.monitor.Monitors;
|
||||
@ConditionalOnMissingClass("com.netflix.spectator.api.Registry")
|
||||
@AutoConfigureBefore(MetricRepositoryAutoConfiguration.class)
|
||||
@Import(MetricsInterceptorConfiguration.class)
|
||||
@ConditionalOnProperty(name = "spring.metrics.servo.enabled", matchIfMissing = true)
|
||||
@ConditionalOnProperty(name = "spring.metrics.servo.enabled", havingValue = "true")
|
||||
public class ServoMetricsAutoConfiguration {
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
|
||||
@@ -51,7 +51,7 @@ import com.netflix.servo.monitor.MonitorConfig;
|
||||
@ContextConfiguration(classes = { MetricsRestTemplateRestTemplateConfig.class,
|
||||
MetricsRestTemplateTestConfig.class })
|
||||
@TestPropertySource(properties = { "netflix.metrics.restClient.metricName=metricName",
|
||||
"spring.aop.proxy-target-class=true" })
|
||||
"spring.aop.proxy-target-class=true", "spring.metrics.servo.enabled:true" })
|
||||
public class MetricsClientHttpRequestInterceptorTests {
|
||||
@Autowired
|
||||
MonitorRegistry registry;
|
||||
|
||||
@@ -59,7 +59,7 @@ import com.netflix.servo.monitor.MonitorConfig;
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = MetricsTestConfig.class)
|
||||
@WebAppConfiguration
|
||||
@TestPropertySource(properties = "netflix.metrics.rest.metricName=metricName")
|
||||
@TestPropertySource(properties = {"netflix.metrics.rest.metricName=metricName", "spring.metrics.servo.enabled:true"})
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
public class MetricsHandlerInterceptorIntegrationTests {
|
||||
@Autowired
|
||||
|
||||
@@ -42,7 +42,7 @@ import org.springframework.test.util.ReflectionTestUtils;
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@SpringBootTest(classes = MetricsRestTemplateTests.App.class, webEnvironment = WebEnvironment.RANDOM_PORT, value = {
|
||||
"spring.application.name=ribbonclienttest", "spring.jmx.enabled=false",
|
||||
"ribbon.http.client.enabled=true" })
|
||||
"ribbon.http.client.enabled=true", "spring.metrics.servo.enabled:true" })
|
||||
@DirtiesContext
|
||||
public class MetricsRestTemplateTests extends RibbonClientHttpRequestFactoryTests {
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ import com.netflix.servo.monitor.DynamicCounter;
|
||||
/**
|
||||
* @author Jon Schneider
|
||||
*/
|
||||
@SpringBootTest(classes = AtlasExporterConfiguration.class)
|
||||
@SpringBootTest(classes = AtlasExporterConfiguration.class, properties = {"spring.metrics.servo.enabled:true"})
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class AtlasExporterTests {
|
||||
@Autowired
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
/**
|
||||
* @author Dave Syer
|
||||
*/
|
||||
@SpringBootTest
|
||||
@SpringBootTest(properties = {"spring.metrics.servo.enabled:true"})
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class ServoMetricsAutoConfigurationTests {
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ import com.netflix.servo.monitor.MonitorConfig;
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ContextConfiguration(classes = SpectatorMetricsTestConfig.class)
|
||||
@WebAppConfiguration
|
||||
@TestPropertySource(properties = "netflix.metrics.rest.metricName=metricName")
|
||||
@TestPropertySource(properties = {"netflix.metrics.rest.metricName=metricName", "spring.metrics.servo.enabled:true"})
|
||||
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
|
||||
public class SpectatorMetricsHandlerInterceptorIntegrationTests {
|
||||
@Autowired
|
||||
|
||||
Reference in New Issue
Block a user