RED-4609 - adjusted some metrics, added tests for metrics
This commit is contained in:
parent
c1e2b8da29
commit
e23432096c
@ -37,7 +37,7 @@ public class ManualRedactionSurroundingTextService {
|
|||||||
private final SurroundingWordsService surroundingWordsService;
|
private final SurroundingWordsService surroundingWordsService;
|
||||||
|
|
||||||
|
|
||||||
@Timed("redactmanager_SurroundingTextAnalysis")
|
@Timed("redactmanager_surroundingTextAnalysis")
|
||||||
public AnalyzeResult addSurroundingText(String dossierId, String fileId, ManualRedactions manualRedactions) {
|
public AnalyzeResult addSurroundingText(String dossierId, String fileId, ManualRedactions manualRedactions) {
|
||||||
|
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public class SurroundingWordsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Timed("redactmanager_addSurroundingText_tables")
|
@Timed("redactmanager_addSurroundingTextTables")
|
||||||
public void addSurroundingText(Set<Entity> entities, SearchableText searchableText, Dictionary dictionary, List<Integer> cellstarts) {
|
public void addSurroundingText(Set<Entity> entities, SearchableText searchableText, Dictionary dictionary, List<Integer> cellstarts) {
|
||||||
|
|
||||||
if (entities.isEmpty()) {
|
if (entities.isEmpty()) {
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.do
|
|||||||
import com.iqser.red.service.redaction.v1.model.AnalyzeRequest;
|
import com.iqser.red.service.redaction.v1.model.AnalyzeRequest;
|
||||||
import com.iqser.red.service.redaction.v1.model.MessageType;
|
import com.iqser.red.service.redaction.v1.model.MessageType;
|
||||||
import com.iqser.red.service.redaction.v1.server.annotate.AnnotationService;
|
import com.iqser.red.service.redaction.v1.server.annotate.AnnotationService;
|
||||||
|
import com.iqser.red.service.redaction.v1.server.utils.MetricValidationUtils;
|
||||||
|
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -92,6 +93,16 @@ public class AnalyseFileRealDataIntegrationTest extends LiveDataIntegrationTest
|
|||||||
// IOUtils.write(annotated.getDocument(), new FileOutputStream(tempFile));
|
// IOUtils.write(annotated.getDocument(), new FileOutputStream(tempFile));
|
||||||
// log.warn("File saved to: {}",tempFile.getAbsolutePath());
|
// log.warn("File saved to: {}",tempFile.getAbsolutePath());
|
||||||
// Runtime.getRuntime().exec("open "+tempFile.getAbsolutePath());
|
// Runtime.getRuntime().exec("open "+tempFile.getAbsolutePath());
|
||||||
|
//
|
||||||
|
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_getDeepCopyDictionary", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_analyzeDocumentStructure", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_getRedactionLog", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_getText", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_reanalyze", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_analyze", 1, null);
|
||||||
|
MetricValidationUtils.validateMetric(prometheusMeterRegistry, "redactmanager_updateDictionary", 1, null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService
|
|||||||
import com.iqser.red.storage.commons.StorageAutoConfiguration;
|
import com.iqser.red.storage.commons.StorageAutoConfiguration;
|
||||||
import com.iqser.red.storage.commons.service.StorageService;
|
import com.iqser.red.storage.commons.service.StorageService;
|
||||||
|
|
||||||
|
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
@ -87,6 +88,9 @@ public class LiveDataIntegrationTest {
|
|||||||
@Autowired
|
@Autowired
|
||||||
protected RedactionServiceSettings redactionServiceSettings;
|
protected RedactionServiceSettings redactionServiceSettings;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected PrometheusMeterRegistry prometheusMeterRegistry;
|
||||||
|
|
||||||
private List<Type> types;
|
private List<Type> types;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
package com.iqser.red.service.redaction.v1.server.utils;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
|
||||||
|
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||||
|
import io.micrometer.prometheus.PrometheusTimer;
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
|
@UtilityClass
|
||||||
|
public class MetricValidationUtils {
|
||||||
|
|
||||||
|
public static void validateMetric(PrometheusMeterRegistry registry, String name, int invocationCount, Integer time) {
|
||||||
|
|
||||||
|
var metricOptional = registry.getMeters().stream().filter(m -> m.getId().getName().equalsIgnoreCase(name)).findAny();
|
||||||
|
assertThat(metricOptional.isPresent()).isTrue();
|
||||||
|
PrometheusTimer metric = (PrometheusTimer) metricOptional.get();
|
||||||
|
assertThat(metric.count()).isGreaterThanOrEqualTo(invocationCount);
|
||||||
|
if (time != null) {
|
||||||
|
// for actually timing the method ...
|
||||||
|
assertThat(metric.mean(TimeUnit.MILLISECONDS)).isGreaterThan(time);
|
||||||
|
} else {
|
||||||
|
// everything takes at least one nano-second - test the meter is correctly initialized
|
||||||
|
assertThat(metric.mean(TimeUnit.NANOSECONDS)).isGreaterThan(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -26,3 +26,11 @@ storage:
|
|||||||
region: 'us-east-1'
|
region: 'us-east-1'
|
||||||
endpoint: 'https://s3.amazonaws.com'
|
endpoint: 'https://s3.amazonaws.com'
|
||||||
backend: 's3'
|
backend: 's3'
|
||||||
|
|
||||||
|
management:
|
||||||
|
endpoint:
|
||||||
|
metrics.enabled: true
|
||||||
|
prometheus.enabled: true
|
||||||
|
health.enabled: true
|
||||||
|
endpoints.web.exposure.include: prometheus, health, metrics
|
||||||
|
metrics.export.prometheus.enabled: true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user