Switch to using HttpStatusCode in ResponseData. Fixes gh-1088.

This commit is contained in:
Olga Maciaszek-Sharma
2022-09-01 12:52:08 +02:00
parent 9eb3a08c14
commit cf69508a39
3 changed files with 12 additions and 13 deletions

View File

@@ -44,8 +44,7 @@ final class LoadBalancerTags {
ServiceInstance serviceInstance = completionContext.getLoadBalancerResponse().getServer();
Tags tags = Tags.of(buildServiceInstanceTags(serviceInstance));
Object clientResponse = completionContext.getClientResponse();
if (clientResponse instanceof ResponseData) {
ResponseData responseData = (ResponseData) clientResponse;
if (clientResponse instanceof ResponseData responseData) {
RequestData requestData = responseData.getRequestData();
if (requestData != null) {
tags = tags.and(valueOrUnknown("method", requestData.getHttpMethod()),
@@ -67,7 +66,7 @@ final class LoadBalancerTags {
// In keeping with the way null HttpStatus is handled in Actuator
private static int statusValue(ResponseData responseData) {
return responseData.getHttpStatus() != null ? responseData.getHttpStatus() : 200;
return responseData.getHttpStatus() != null ? responseData.getHttpStatus().value() : 200;
}
private static String getPath(RequestData requestData) {

View File

@@ -62,7 +62,7 @@ class MicrometerStatsLoadBalancerLifecycleTests {
Request<Object> lbRequest = new DefaultRequest<>(new RequestDataContext(requestData));
Response<ServiceInstance> lbResponse = new DefaultResponse(
new DefaultServiceInstance("test-1", "test", "test.org", 8080, false, new HashMap<>()));
ResponseData responseData = new ResponseData(HttpStatus.OK.value(), new HttpHeaders(),
ResponseData responseData = new ResponseData(HttpStatus.OK, new HttpHeaders(),
new MultiValueMapAdapter<>(new HashMap<>()), requestData);
statsLifecycle.onStartRequest(lbRequest, lbResponse);
assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1);
@@ -121,7 +121,7 @@ class MicrometerStatsLoadBalancerLifecycleTests {
Request<Object> lbRequest = new DefaultRequest<>(new StatsTestContext());
Response<ServiceInstance> lbResponse = new DefaultResponse(
new DefaultServiceInstance("test-1", "test", "test.org", 8080, false, new HashMap<>()));
ResponseData responseData = new ResponseData(HttpStatus.OK.value(), new HttpHeaders(),
ResponseData responseData = new ResponseData(HttpStatus.OK, new HttpHeaders(),
new MultiValueMapAdapter<>(new HashMap<>()), null);
statsLifecycle.onStartRequest(lbRequest, lbResponse);
assertThat(meterRegistry.get("loadbalancer.requests.active").gauge().value()).isEqualTo(1);