From 6a21722fccfa7b848f7d06fec32188298717b06e Mon Sep 17 00:00:00 2001 From: Viktor Seifert Date: Thu, 11 Aug 2022 15:06:08 +0200 Subject: [PATCH] RED-4928: Added timing of report generation when on debug level --- .../server/service/LicenseReportService.java | 50 ++++++++++++++----- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java index abd567702..6610d1c86 100644 --- a/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java +++ b/persistence-service-v1/persistence-service-server-v1/src/main/java/com/iqser/red/service/peristence/v1/server/service/LicenseReportService.java @@ -1,5 +1,19 @@ package com.iqser.red.service.peristence.v1.server.service; +import static java.util.stream.Collectors.toList; + +import java.time.Duration; +import java.time.Instant; +import java.util.Comparator; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.LoadingCache; import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierEntity; @@ -7,24 +21,15 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Inter import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport; import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest; import com.iqser.red.service.persistence.service.v1.api.model.license.ReportData; + import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Value; -import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; - -import java.time.Instant; -import java.util.Comparator; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; - -import static java.util.stream.Collectors.toList; +import lombok.extern.slf4j.Slf4j; @Service @RequiredArgsConstructor +@Slf4j public class LicenseReportService { private final FileStatusService fileStatusService; @@ -38,6 +43,13 @@ public class LicenseReportService { public LicenseReport getLicenseReport(LicenseReportRequest licenseReportRequest, int offset, int limit) { + log.info("Generating licence-report"); + + Instant start = null; + if (log.isDebugEnabled()) { + start = Instant.now(); + } + if (StringUtils.isEmpty(licenseReportRequest.getRequestId())) { licenseReportRequest.setRequestId(UUID.randomUUID().toString()); } @@ -60,12 +72,22 @@ public class LicenseReportService { licenseReport.setEndDate(cachedReportData.getEndDate()); licenseReport.setRequestId(licenseReportRequest.getRequestId()); + if (start != null) { + log.debug("getLicenceReport took {} to process", Duration.between(start, Instant.now()).toString()); + } + return licenseReport; } private CachedReportData loadReport(LicenseReportRequest licenseReportRequest) { + log.debug("No licence-report found in cache, generating new report"); + Instant start = null; + if (log.isDebugEnabled()) { + start = Instant.now(); + } + List dossierIds = licenseReportRequest.getDossierIds(); if (CollectionUtils.isEmpty(licenseReportRequest.getDossierIds())) { dossierIds = dossierService.getAllDossiers().stream().map(DossierEntity::getId).collect(toList()); @@ -98,6 +120,10 @@ public class LicenseReportService { .sorted(Comparator.comparing(ReportData::getFileName)) .collect(toList()); + if (start != null) { + log.debug("loadReport took {} to process", Duration.between(start, Instant.now()).toString()); + } + return new CachedReportData(data, dossierIds.size(), totalNumberOfAnalyses.get(),