|
|
|
@ -16,17 +16,6 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.boot.actuate.autoconfigure;
|
|
|
|
|
|
|
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
|
import static org.mockito.BDDMockito.willAnswer;
|
|
|
|
|
import static org.mockito.Matchers.anyDouble;
|
|
|
|
|
import static org.mockito.Matchers.eq;
|
|
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
|
|
import static org.mockito.Mockito.times;
|
|
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.Filter;
|
|
|
|
|
import javax.servlet.FilterChain;
|
|
|
|
|
|
|
|
|
@ -49,6 +38,17 @@ import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
|
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
|
import static org.mockito.BDDMockito.willAnswer;
|
|
|
|
|
import static org.mockito.Matchers.anyDouble;
|
|
|
|
|
import static org.mockito.Matchers.eq;
|
|
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
|
|
import static org.mockito.Mockito.times;
|
|
|
|
|
import static org.mockito.Mockito.verify;
|
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Tests for {@link MetricFilterAutoConfiguration}.
|
|
|
|
|
*
|
|
|
|
@ -56,7 +56,6 @@ import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
*/
|
|
|
|
|
public class MetricFilterAutoConfigurationTests {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void recordsHttpInteractions() throws Exception {
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
|
|
|
|
@ -85,28 +84,31 @@ public class MetricFilterAutoConfigurationTests {
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
|
|
|
|
|
Config.class, MetricFilterAutoConfiguration.class);
|
|
|
|
|
Filter filter = context.getBean(Filter.class);
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController()).addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/templateVarTest/foo"))
|
|
|
|
|
.andExpect(status().isOk());
|
|
|
|
|
|
|
|
|
|
verify(context.getBean(CounterService.class)).increment("status.200.templateVarTest.-someVariable-");
|
|
|
|
|
verify(context.getBean(GaugeService.class)).submit(eq("response.templateVarTest.-someVariable-"),
|
|
|
|
|
anyDouble());
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController())
|
|
|
|
|
.addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/templateVarTest/foo")).andExpect(status().isOk());
|
|
|
|
|
|
|
|
|
|
verify(context.getBean(CounterService.class)).increment(
|
|
|
|
|
"status.200.templateVarTest.-someVariable-");
|
|
|
|
|
verify(context.getBean(GaugeService.class)).submit(
|
|
|
|
|
eq("response.templateVarTest.-someVariable-"), anyDouble());
|
|
|
|
|
context.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void recordsKnown404HttpInteractionsAsSingleMetricWithPathAndTemplateVariable() throws Exception {
|
|
|
|
|
public void recordsKnown404HttpInteractionsAsSingleMetricWithPathAndTemplateVariable()
|
|
|
|
|
throws Exception {
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
|
|
|
|
|
Config.class, MetricFilterAutoConfiguration.class);
|
|
|
|
|
Filter filter = context.getBean(Filter.class);
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController()).addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/knownPath/foo"))
|
|
|
|
|
.andExpect(status().isNotFound());
|
|
|
|
|
|
|
|
|
|
verify(context.getBean(CounterService.class)).increment("status.404.knownPath.-someVariable-");
|
|
|
|
|
verify(context.getBean(GaugeService.class)).submit(eq("response.knownPath.-someVariable-"),
|
|
|
|
|
anyDouble());
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController())
|
|
|
|
|
.addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/knownPath/foo")).andExpect(status().isNotFound());
|
|
|
|
|
|
|
|
|
|
verify(context.getBean(CounterService.class)).increment(
|
|
|
|
|
"status.404.knownPath.-someVariable-");
|
|
|
|
|
verify(context.getBean(GaugeService.class)).submit(
|
|
|
|
|
eq("response.knownPath.-someVariable-"), anyDouble());
|
|
|
|
|
context.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -115,16 +117,16 @@ public class MetricFilterAutoConfigurationTests {
|
|
|
|
|
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(
|
|
|
|
|
Config.class, MetricFilterAutoConfiguration.class);
|
|
|
|
|
Filter filter = context.getBean(Filter.class);
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController()).addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/unknownPath/1"))
|
|
|
|
|
.andExpect(status().isNotFound());
|
|
|
|
|
MockMvc mvc = MockMvcBuilders.standaloneSetup(new MetricFilterTestController())
|
|
|
|
|
.addFilter(filter).build();
|
|
|
|
|
mvc.perform(get("/unknownPath/1")).andExpect(status().isNotFound());
|
|
|
|
|
|
|
|
|
|
mvc.perform(get("/unknownPath/2"))
|
|
|
|
|
.andExpect(status().isNotFound());
|
|
|
|
|
mvc.perform(get("/unknownPath/2")).andExpect(status().isNotFound());
|
|
|
|
|
|
|
|
|
|
verify(context.getBean(CounterService.class), times(2)).increment("status.404.unknownPath");
|
|
|
|
|
verify(context.getBean(GaugeService.class), times(2)).submit(eq("response.unknownPath"),
|
|
|
|
|
anyDouble());
|
|
|
|
|
verify(context.getBean(CounterService.class), times(2)).increment(
|
|
|
|
|
"status.404.unmapped");
|
|
|
|
|
verify(context.getBean(GaugeService.class), times(2)).submit(
|
|
|
|
|
eq("response.unmapped"), anyDouble());
|
|
|
|
|
context.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -153,22 +155,18 @@ public class MetricFilterAutoConfigurationTests {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@RestController
|
|
|
|
|
class MetricFilterTestController
|
|
|
|
|
{
|
|
|
|
|
class MetricFilterTestController {
|
|
|
|
|
|
|
|
|
|
@RequestMapping("templateVarTest/{someVariable}")
|
|
|
|
|
public String testTemplateVariableResolution(@PathVariable String someVariable)
|
|
|
|
|
{
|
|
|
|
|
public String testTemplateVariableResolution(@PathVariable String someVariable) {
|
|
|
|
|
return someVariable;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@RequestMapping("knownPath/{someVariable}")
|
|
|
|
|
@ResponseStatus(HttpStatus.NOT_FOUND)
|
|
|
|
|
@ResponseBody
|
|
|
|
|
public String testKnownPathWith404Response(@PathVariable String someVariable)
|
|
|
|
|
{
|
|
|
|
|
public String testKnownPathWith404Response(@PathVariable String someVariable) {
|
|
|
|
|
return someVariable;
|
|
|
|
|
}
|
|
|
|
|
}
|