RED-6264: Implemented metric to show analyze time correlated with pages
This commit is contained in:
parent
8ce093090e
commit
c6837d41af
@ -8,6 +8,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.kie.api.runtime.KieContainer;
|
import org.kie.api.runtime.KieContainer;
|
||||||
@ -52,15 +53,16 @@ import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettin
|
|||||||
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
|
||||||
|
|
||||||
import io.micrometer.core.annotation.Timed;
|
import io.micrometer.core.annotation.Timed;
|
||||||
|
import io.micrometer.core.instrument.FunctionTimer;
|
||||||
|
import io.micrometer.core.instrument.MeterRegistry;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.Getter;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.experimental.FieldDefaults;
|
import lombok.experimental.FieldDefaults;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
|
||||||
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
|
||||||
public class AnalyzeService {
|
public class AnalyzeService {
|
||||||
|
|
||||||
@ -78,6 +80,48 @@ public class AnalyzeService {
|
|||||||
ImageService imageService;
|
ImageService imageService;
|
||||||
ImportedRedactionService importedRedactionService;
|
ImportedRedactionService importedRedactionService;
|
||||||
SectionFinder sectionFinder;
|
SectionFinder sectionFinder;
|
||||||
|
PagewiseCounter analyzeCounter = new PagewiseCounter();
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
|
||||||
|
public AnalyzeService(DictionaryService dictionaryService,
|
||||||
|
DroolsExecutionService droolsExecutionService,
|
||||||
|
EntityRedactionService entityRedactionService,
|
||||||
|
RedactionLogCreatorService redactionLogCreatorService,
|
||||||
|
RedactionStorageService redactionStorageService,
|
||||||
|
PdfSegmentationService pdfSegmentationService,
|
||||||
|
RedactionChangeLogService redactionChangeLogService,
|
||||||
|
LegalBasisClient legalBasisClient,
|
||||||
|
RedactionServiceSettings redactionServiceSettings,
|
||||||
|
SectionTextBuilderService sectionTextBuilderService,
|
||||||
|
SectionGridCreatorService sectionGridCreatorService,
|
||||||
|
ImageService imageService,
|
||||||
|
ImportedRedactionService importedRedactionService,
|
||||||
|
SectionFinder sectionFinder,
|
||||||
|
MeterRegistry meterRegistry) {
|
||||||
|
|
||||||
|
this.dictionaryService = dictionaryService;
|
||||||
|
this.droolsExecutionService = droolsExecutionService;
|
||||||
|
this.entityRedactionService = entityRedactionService;
|
||||||
|
this.redactionLogCreatorService = redactionLogCreatorService;
|
||||||
|
this.redactionStorageService = redactionStorageService;
|
||||||
|
this.pdfSegmentationService = pdfSegmentationService;
|
||||||
|
this.redactionChangeLogService = redactionChangeLogService;
|
||||||
|
this.legalBasisClient = legalBasisClient;
|
||||||
|
this.redactionServiceSettings = redactionServiceSettings;
|
||||||
|
this.sectionTextBuilderService = sectionTextBuilderService;
|
||||||
|
this.sectionGridCreatorService = sectionGridCreatorService;
|
||||||
|
this.imageService = imageService;
|
||||||
|
this.importedRedactionService = importedRedactionService;
|
||||||
|
this.sectionFinder = sectionFinder;
|
||||||
|
|
||||||
|
FunctionTimer.builder("redactmanager_reanalyze.pagewise", //
|
||||||
|
analyzeCounter, //
|
||||||
|
PagewiseCounter::getTotalPageCount, //
|
||||||
|
PagewiseCounter::getTotalTimeMillis, //
|
||||||
|
TimeUnit.MILLISECONDS) //
|
||||||
|
.register(meterRegistry);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Timed("redactmanager_analyzeDocumentStructure")
|
@Timed("redactmanager_analyzeDocumentStructure")
|
||||||
@ -250,6 +294,8 @@ public class AnalyzeService {
|
|||||||
|
|
||||||
long duration = System.currentTimeMillis() - startTime;
|
long duration = System.currentTimeMillis() - startTime;
|
||||||
|
|
||||||
|
analyzeCounter.increase(text.getNumberOfPages(), duration);
|
||||||
|
|
||||||
return AnalyzeResult.builder()
|
return AnalyzeResult.builder()
|
||||||
.dossierId(analyzeRequest.getDossierId())
|
.dossierId(analyzeRequest.getDossierId())
|
||||||
.fileId(analyzeRequest.getFileId())
|
.fileId(analyzeRequest.getFileId())
|
||||||
@ -299,4 +345,21 @@ public class AnalyzeService {
|
|||||||
return SimplifiedText.builder().numberOfPages(numberOfPages).sectionTexts(sectionTexts).build();
|
return SimplifiedText.builder().numberOfPages(numberOfPages).sectionTexts(sectionTexts).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@FieldDefaults(level = AccessLevel.PRIVATE)
|
||||||
|
@Getter
|
||||||
|
private static final class PagewiseCounter {
|
||||||
|
|
||||||
|
long totalPageCount;
|
||||||
|
long totalTimeMillis;
|
||||||
|
|
||||||
|
|
||||||
|
public void increase(long pageCount, long durationMillis) {
|
||||||
|
|
||||||
|
totalPageCount += pageCount;
|
||||||
|
totalTimeMillis += durationMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user