diff --git a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java index d48fa76..005ac6a 100644 --- a/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java +++ b/src/main/java/ru/nbch/credit_tracker/service/signal/SignalRestService.java @@ -248,7 +248,8 @@ public class SignalRestService { HttpEntity> requestEntity = new HttpEntity<>(headers); - ResponseEntity response = restTemplate.exchange( + ResponseEntity response = exchangeWithTiming( + "onlinereport", url, HttpMethod.GET, requestEntity, @@ -283,12 +284,12 @@ public class SignalRestService { HttpEntity> requestEntity = new HttpEntity<>(headers); - ResponseEntity response = restTemplate.exchange( - url, - HttpMethod.GET, - requestEntity, - byte[].class - ); + ResponseEntity response = exchangeWithTiming( + "onlinedownload", + url, + HttpMethod.GET, + requestEntity, + byte[].class); Path targetFilePathWithExt = null; if (response.getHeaders().getContentType().equals(MEDIA_TYPE_GZIP)) { Path folder = Path.of(config.getLoadDir(), @@ -333,4 +334,21 @@ public class SignalRestService { return "unknown error"; return "%s: %s".formatted(response.getError().getName(), response.getError().getDescription()); } + + private ResponseEntity exchangeWithTiming( + String name, + String url, + HttpMethod method, + HttpEntity requestEntity, + Class responseType + ) { + long start = System.nanoTime(); + + try { + return restTemplate.exchange(url, method, requestEntity, responseType); + } finally { + long durationMs = (System.nanoTime() - start) / 1_000_000; + log.info("REST [{}] {} {} took {} ms", name, method, url, durationMs); + } + } }