Skip to content

Commit f1cefe6

Browse files
predic8brian-brazil
authored andcommitted
Added produces */* to endpoint in order to make it work (#267)
- Upgraded to Spring Boot 1.5.4.RELEASE from 1.3.3.RELEASE - Upgraded to Spring 4.3.9.RELEASE from 4.2.5.RELEASE
1 parent 26156b5 commit f1cefe6

File tree

6 files changed

+74
-44
lines changed

6 files changed

+74
-44
lines changed

simpleclient_spring_boot/pom.xml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,12 @@
6767
<dependency>
6868
<groupId>org.springframework.boot</groupId>
6969
<artifactId>spring-boot-actuator</artifactId>
70-
<version>1.3.3.RELEASE</version>
70+
<version>1.5.4.RELEASE</version>
7171
</dependency>
7272
<dependency>
7373
<groupId>org.springframework.boot</groupId>
7474
<artifactId>spring-boot-starter-aop</artifactId>
75-
<version>1.3.3.RELEASE</version>
75+
<version>1.5.4.RELEASE</version>
7676
</dependency>
7777
<dependency>
7878
<groupId>org.apache.commons</groupId>
@@ -96,14 +96,13 @@
9696
<dependency>
9797
<groupId>org.springframework.boot</groupId>
9898
<artifactId>spring-boot-starter-test</artifactId>
99-
<version>1.3.3.RELEASE</version>
99+
<version>1.5.4.RELEASE</version>
100100
<scope>test</scope>
101101
</dependency>
102102
<dependency>
103103
<groupId>org.springframework.boot</groupId>
104104
<artifactId>spring-boot-starter-web</artifactId>
105-
<version>1.3.3.RELEASE</version>
106-
<scope>test</scope>
105+
<version>1.5.4.RELEASE</version>
107106
</dependency>
108107
</dependencies>
109108
</project>

simpleclient_spring_boot/src/main/java/io/prometheus/client/spring/boot/PrometheusMvcEndpoint.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
@ConfigurationProperties("endpoints.prometheus")
1717
public class PrometheusMvcEndpoint extends EndpointMvcAdapter {
18+
1819
private final PrometheusEndpoint delgate;
1920

2021
public PrometheusMvcEndpoint(PrometheusEndpoint delegate) {
@@ -24,7 +25,7 @@ public PrometheusMvcEndpoint(PrometheusEndpoint delegate) {
2425

2526
@RequestMapping(
2627
method = {RequestMethod.GET},
27-
produces = {TextFormat.CONTENT_TYPE_004}
28+
produces = { "*/*" }
2829
)
2930
@ResponseBody
3031
public ResponseEntity value(

simpleclient_spring_boot/src/test/java/io/prometheus/client/spring/boot/PrometheusEndpointTest.java

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,37 @@
66
import org.apache.commons.lang3.StringUtils;
77
import org.junit.Test;
88
import org.junit.runner.RunWith;
9+
import org.springframework.beans.factory.annotation.Autowired;
910
import org.springframework.beans.factory.annotation.Value;
10-
import org.springframework.boot.test.SpringApplicationConfiguration;
11-
import org.springframework.boot.test.TestRestTemplate;
12-
import org.springframework.boot.test.WebIntegrationTest;
11+
import org.springframework.boot.test.context.SpringBootTest;
12+
import org.springframework.boot.test.web.client.TestRestTemplate;
13+
import org.springframework.http.HttpEntity;
14+
import org.springframework.http.HttpHeaders;
15+
import org.springframework.http.HttpMethod;
1316
import org.springframework.http.HttpStatus;
1417
import org.springframework.http.ResponseEntity;
15-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
16-
import org.springframework.web.client.RestTemplate;
18+
import org.springframework.test.context.TestPropertySource;
19+
import org.springframework.test.context.junit4.SpringRunner;
1720

1821
import java.util.Arrays;
1922
import java.util.List;
2023

2124
import static org.cthul.matchers.CthulMatchers.matchesPattern;
2225
import static org.hamcrest.MatcherAssert.assertThat;
2326
import static org.junit.Assert.assertEquals;
24-
import static org.junit.Assert.assertTrue;
27+
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
2528

26-
@RunWith(SpringJUnit4ClassRunner.class)
27-
@SpringApplicationConfiguration(DummyBootApplication.class)
28-
@WebIntegrationTest(randomPort = true)
29+
@RunWith(SpringRunner.class)
2930
@EnablePrometheusEndpoint
31+
@SpringBootTest(webEnvironment = RANDOM_PORT, classes = DummyBootApplication.class)
32+
@TestPropertySource(properties = "management.security.enabled=false")
3033
public class PrometheusEndpointTest {
3134

3235
@Value("${local.server.port}")
3336
int localServerPort;
3437

35-
RestTemplate template = new TestRestTemplate();
38+
@Autowired
39+
TestRestTemplate template;
3640

3741
@Test
3842
public void testMetricsExportedThroughPrometheusEndpoint() {
@@ -47,11 +51,15 @@ public void testMetricsExportedThroughPrometheusEndpoint() {
4751
// when:
4852
promCounter.labels("val1", "val2").inc(3);
4953
filteredCounter.labels("val1", "val2").inc(6);
50-
ResponseEntity<String> metricsResponse = template.getForEntity(getBaseUrl() + "/prometheus?name[]=foo_bar", String.class);
54+
55+
HttpHeaders headers = new HttpHeaders();
56+
headers.set("Accept", "text/plain");
57+
58+
ResponseEntity<String> metricsResponse = template.exchange(getBaseUrl() + "/prometheus?name[]=foo_bar", HttpMethod.GET, new HttpEntity(headers), String.class);
5159

5260
// then:
5361
assertEquals(HttpStatus.OK, metricsResponse.getStatusCode());
54-
assertTrue(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004).equals(metricsResponse.getHeaders().getContentType().toString()));
62+
assertEquals(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004), metricsResponse.getHeaders().getContentType().toString().toLowerCase());
5563

5664
List<String> responseLines = Arrays.asList(metricsResponse.getBody().split("\n"));
5765
assertThat(responseLines, CustomMatchers.<String>exactlyNItems(1,

simpleclient_spring_boot/src/test/java/io/prometheus/client/spring/boot/PrometheusMvcEndpointTest.java

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,59 @@
44
import org.apache.commons.lang3.StringUtils;
55
import org.junit.Test;
66
import org.junit.runner.RunWith;
7+
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.beans.factory.annotation.Value;
8-
import org.springframework.boot.test.SpringApplicationConfiguration;
9-
import org.springframework.boot.test.TestRestTemplate;
10-
import org.springframework.boot.test.WebIntegrationTest;
9+
import org.springframework.boot.test.context.SpringBootTest;
10+
import org.springframework.boot.test.web.client.TestRestTemplate;
1111
import org.springframework.http.HttpEntity;
1212
import org.springframework.http.HttpHeaders;
1313
import org.springframework.http.HttpMethod;
1414
import org.springframework.http.HttpStatus;
1515
import org.springframework.http.ResponseEntity;
16-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
17-
import org.springframework.web.client.RestTemplate;
16+
import org.springframework.test.context.TestPropertySource;
17+
import org.springframework.test.context.junit4.SpringRunner;
1818

1919
import static org.junit.Assert.assertEquals;
20-
import static org.junit.Assert.assertTrue;
20+
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
2121

22-
@RunWith(SpringJUnit4ClassRunner.class)
23-
@SpringApplicationConfiguration(DummyBootApplication.class)
24-
@WebIntegrationTest(randomPort = true)
22+
@RunWith(SpringRunner.class)
23+
@SpringBootTest(webEnvironment = RANDOM_PORT, classes = DummyBootApplication.class)
24+
@TestPropertySource(properties = "management.security.enabled=false")
2525
public class PrometheusMvcEndpointTest {
2626

2727
@Value("${local.server.port}")
2828
int localServerPort;
2929

30-
RestTemplate template = new TestRestTemplate();
30+
@Autowired
31+
TestRestTemplate template;
3132

3233
@Test
3334
public void testNameParamIsNull() throws Exception {
3435
ResponseEntity metricsResponse = template.exchange(getBaseUrl() + "/prometheus", HttpMethod.GET, getEntity(), String.class);
3536

3637
assertEquals(HttpStatus.OK, metricsResponse.getStatusCode());
37-
assertTrue(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004).equals(metricsResponse.getHeaders().getContentType().toString()));
38+
assertEquals(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004), metricsResponse.getHeaders().getContentType().toString().toLowerCase());
39+
40+
}
41+
42+
@Test
43+
public void testAcceptPlainText() throws Exception {
44+
45+
HttpHeaders headers = new HttpHeaders();
46+
headers.set("Accept", "text/plain");
47+
48+
ResponseEntity<String> metricsResponse = template.exchange(getBaseUrl() + "/prometheus", HttpMethod.GET, new HttpEntity(headers), String.class);
49+
50+
assertEquals(HttpStatus.OK, metricsResponse.getStatusCode());
3851
}
3952

4053
@Test
4154
public void testNameParamIsNotNull() {
4255
ResponseEntity metricsResponse = template.exchange(getBaseUrl() + "/prometheus?name[]=foo_bar", HttpMethod.GET, getEntity(), String.class);
4356

4457
assertEquals(HttpStatus.OK, metricsResponse.getStatusCode());
45-
assertTrue(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004).equals(metricsResponse.getHeaders().getContentType().toString()));
58+
assertEquals(StringUtils.deleteWhitespace(TextFormat.CONTENT_TYPE_004), metricsResponse.getHeaders().getContentType().toString().toLowerCase());
59+
4660
}
4761

4862
public HttpEntity getEntity() {

simpleclient_spring_boot/src/test/java/io/prometheus/client/spring/boot/SpringBootMetricsCollectorTest.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,21 @@
88
import org.springframework.boot.actuate.metrics.CounterService;
99
import org.springframework.boot.actuate.metrics.GaugeService;
1010
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
11-
import org.springframework.boot.test.SpringApplicationConfiguration;
11+
import org.springframework.boot.autoconfigure.SpringBootApplication;
12+
import org.springframework.boot.test.context.SpringBootTest;
1213
import org.springframework.context.annotation.Bean;
13-
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
14+
import org.springframework.test.context.junit4.SpringRunner;
1415

1516
import java.util.Collection;
1617

1718
import static org.hamcrest.Matchers.is;
1819
import static org.junit.Assert.assertThat;
1920

20-
@RunWith(SpringJUnit4ClassRunner.class)
21-
@SpringApplicationConfiguration(SpringBootMetricsCollectorTest.class)
21+
@RunWith(SpringRunner.class)
2222
@EnableAutoConfiguration
23+
@SpringBootTest(classes = MetricsBootApplication.class)
2324
public class SpringBootMetricsCollectorTest {
25+
2426
@Autowired
2527
private SpringBootMetricsCollector springBootMetricsCollector;
2628

@@ -30,13 +32,6 @@ public class SpringBootMetricsCollectorTest {
3032
@Autowired
3133
private GaugeService gaugeService;
3234

33-
@Bean
34-
public SpringBootMetricsCollector springBootMetricsCollector(Collection<PublicMetrics> publicMetrics) {
35-
SpringBootMetricsCollector springBootMetricsCollector = new SpringBootMetricsCollector(publicMetrics);
36-
springBootMetricsCollector.register();
37-
return springBootMetricsCollector;
38-
}
39-
4035
@Test
4136
public void collect() throws Exception {
4237
counterService.increment("foo");
@@ -47,3 +42,16 @@ public void collect() throws Exception {
4742
assertThat(defaultRegistry.getSampleValue("gauge_bar"), is(3.14));
4843
}
4944
}
45+
46+
47+
@SpringBootApplication
48+
class MetricsBootApplication {
49+
50+
@Bean
51+
public SpringBootMetricsCollector springBootMetricsCollector(Collection<PublicMetrics> publicMetrics) {
52+
SpringBootMetricsCollector springBootMetricsCollector = new SpringBootMetricsCollector(publicMetrics);
53+
springBootMetricsCollector.register();
54+
return springBootMetricsCollector;
55+
}
56+
57+
}

simpleclient_spring_web/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,17 @@
6161
<dependency>
6262
<groupId>org.springframework</groupId>
6363
<artifactId>spring-web</artifactId>
64-
<version>4.2.5.RELEASE</version>
64+
<version>4.3.9.RELEASE</version>
6565
</dependency>
6666
<dependency>
6767
<groupId>org.springframework</groupId>
6868
<artifactId>spring-aop</artifactId>
69-
<version>4.2.5.RELEASE</version>
69+
<version>4.3.9.RELEASE</version>
7070
</dependency>
7171
<dependency>
7272
<groupId>org.springframework</groupId>
7373
<artifactId>spring-context</artifactId>
74-
<version>4.2.5.RELEASE</version>
74+
<version>4.3.9.RELEASE</version>
7575
</dependency>
7676
<dependency>
7777
<groupId>org.aspectj</groupId>

0 commit comments

Comments
 (0)