use of io.micrometer.core.instrument.search.RequiredSearch in project cxf by apache.
the class SpringJaxwsTest method testJaxwsSuccessMetric.
@Test
public void testJaxwsSuccessMetric() throws MalformedURLException {
// given in setUp
// when
String actual = sendSoapRequest(DUMMY_REQUEST_BODY, HELLO_SERVICE_NAME_V1);
// then
assertThat(actual).isEqualTo("<ns2:sayHelloResponse xmlns:ns2=\"http://service.ws.sample/\">" + "<return>Hello, Elan</return>" + "</ns2:sayHelloResponse>");
await().atMost(Duration.ofSeconds(1)).ignoreException(MeterNotFoundException.class).until(() -> registry.get("cxf.server.requests").timers(), not(empty()));
RequiredSearch serverRequestMetrics = registry.get("cxf.server.requests");
Map<Object, Object> serverTags = serverRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(serverTags).containsOnly(entry("exception", "None"), entry("faultCode", "None"), entry("method", "POST"), entry("operation", "sayHello"), entry("uri", "/Service/" + HELLO_SERVICE_NAME_V1), entry("outcome", "SUCCESS"), entry("status", "200"));
RequiredSearch clientRequestMetrics = registry.get("cxf.client.requests");
Map<Object, Object> clientTags = clientRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(clientTags).containsOnly(entry("exception", "None"), entry("faultCode", "None"), entry("method", "POST"), entry("operation", "Invoke"), entry("uri", "http://localhost:" + port + "/Service/" + HELLO_SERVICE_NAME_V1), entry("outcome", "SUCCESS"), entry("status", "200"));
}
use of io.micrometer.core.instrument.search.RequiredSearch in project cxf by apache.
the class SpringJaxrsApplicationTest method testJaxrsProxyClientExceptionMetric.
@Test
public void testJaxrsProxyClientExceptionMetric() {
final int fakePort = SocketUtils.findAvailableTcpPort();
final LibraryApi api = createApi(fakePort);
assertThatThrownBy(() -> api.deleteBooks()).isInstanceOf(ProcessingException.class).hasMessageContaining("Connection refused");
// no server meters
assertThat(registry.getMeters()).noneMatch(m -> "cxf.server.requests".equals(m.getId().getName()));
RequiredSearch clientRequestMetrics = registry.get("cxf.client.requests");
Map<Object, Object> clientTags = clientRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(clientTags).containsOnly(entry("exception", "None"), entry("method", "DELETE"), entry("operation", "deleteBooks"), entry("uri", "http://localhost:" + fakePort + "/api/app/library"), entry("outcome", "UNKNOWN"), entry("status", "UNKNOWN"));
}
use of io.micrometer.core.instrument.search.RequiredSearch in project cxf by apache.
the class SpringJaxrsApplicationTest method testJaxrsClientExceptionMetric.
@Test
public void testJaxrsClientExceptionMetric() {
final int fakePort = SocketUtils.findAvailableTcpPort();
final WebTarget target = ClientBuilder.newClient().register(new MetricsFeature(metricsProvider)).target("http://localhost:" + fakePort + "/api/library");
assertThatThrownBy(() -> target.request().delete(String.class)).isInstanceOf(ProcessingException.class).hasMessageContaining("Connection refused");
// no server meters
assertThat(registry.getMeters()).noneMatch(m -> "cxf.server.requests".equals(m.getId().getName()));
RequiredSearch clientRequestMetrics = registry.get("cxf.client.requests");
Map<Object, Object> clientTags = clientRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(clientTags).containsOnly(entry("exception", "None"), entry("method", "DELETE"), entry("operation", "UNKNOWN"), entry("uri", "http://localhost:" + fakePort + "/api/library"), entry("outcome", "UNKNOWN"), entry("status", "UNKNOWN"));
}
use of io.micrometer.core.instrument.search.RequiredSearch in project cxf by apache.
the class SpringJaxrsApplicationTest method testJaxrsProxyFailedMetric.
@Test
public void testJaxrsProxyFailedMetric() {
final LibraryApi api = createApi(port);
try (Response r = api.getBook("100")) {
assertThat(r.getStatus()).isEqualTo(404);
}
await().atMost(Duration.ofSeconds(1)).ignoreException(MeterNotFoundException.class).until(() -> registry.get("cxf.server.requests").timers(), not(empty()));
RequiredSearch serverRequestMetrics = registry.get("cxf.server.requests");
Map<Object, Object> serverTags = serverRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(serverTags).containsOnly(entry("exception", "None"), entry("method", "GET"), entry("operation", "getBook"), entry("uri", "/api/app/library/{id}"), entry("outcome", "CLIENT_ERROR"), entry("status", "404"));
RequiredSearch clientRequestMetrics = registry.get("cxf.client.requests");
Map<Object, Object> clientTags = clientRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(clientTags).containsOnly(entry("exception", "None"), entry("method", "GET"), entry("operation", "getBook"), entry("uri", "http://localhost:" + port + "/api/app/library/100"), entry("outcome", "CLIENT_ERROR"), entry("status", "404"));
}
use of io.micrometer.core.instrument.search.RequiredSearch in project cxf by apache.
the class SpringJaxrsApplicationTest method testJaxrsSubresourceSuccessMetric.
@Test
public void testJaxrsSubresourceSuccessMetric() {
final WebTarget target = createWebTarget().path("catalog").path("cxf");
try (Response r = target.request().get()) {
assertThat(r.getStatus()).isEqualTo(200);
}
await().atMost(Duration.ofSeconds(1)).ignoreException(MeterNotFoundException.class).until(() -> registry.get("cxf.server.requests").timers(), not(empty()));
RequiredSearch serverRequestMetrics = registry.get("cxf.server.requests");
Map<Object, Object> serverTags = serverRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(serverTags).containsOnly(entry("exception", "None"), entry("method", "GET"), entry("operation", "catalog"), entry("uri", "/api/app/library/catalog/{catalog}"), entry("outcome", "SUCCESS"), entry("status", "200"));
RequiredSearch clientRequestMetrics = registry.get("cxf.client.requests");
Map<Object, Object> clientTags = clientRequestMetrics.timer().getId().getTags().stream().collect(toMap(Tag::getKey, Tag::getValue));
assertThat(clientTags).containsOnly(entry("exception", "None"), entry("method", "GET"), entry("operation", "UNKNOWN"), entry("uri", "http://localhost:" + port + "/api/app/library/catalog/cxf"), entry("outcome", "SUCCESS"), entry("status", "200"));
}
Aggregations