Use metrics predifined names instead of plain Strings
This commit is contained in:
parent
d0d918682b
commit
942782fe3c
|
@ -1,11 +1,10 @@
|
|||
package eu.eudat.logic.managers;
|
||||
|
||||
import eu.eudat.types.MetricNames;
|
||||
import eu.eudat.data.dao.criteria.*;
|
||||
import eu.eudat.data.entities.Dataset;
|
||||
import eu.eudat.data.entities.DatasetProfile;
|
||||
import eu.eudat.logic.services.ApiContext;
|
||||
import eu.eudat.logic.utilities.helpers.StreamDistinctBy;
|
||||
import eu.eudat.types.MetricNames;
|
||||
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
||||
import io.prometheus.client.Gauge;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -20,7 +19,10 @@ import javax.transaction.Transactional;
|
|||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -77,20 +79,20 @@ public class MetricsManager {
|
|||
this.environment = environment;
|
||||
registry.clear();
|
||||
this.gauges = Stream.of( new Object[][]{
|
||||
{MetricNames.DMP, Gauge.build().name("argos_managed_dmps").help("Number of managed DMPs").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.DMP, Gauge.build().name(MetricNames.DMP).help("Number of managed DMPs").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.FUNDERS, Gauge.build().name("argos_funders").help("Number of registered Funders").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.GRANTS, Gauge.build().name("argos_grants").help("Number of registered Grants").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.PROJECT, Gauge.build().name("argos_projects").help("Number of registered Projects").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.RESEARCHER, Gauge.build().name("argos_researchers").help("Number of Colaborators/Researchers").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.FUNDERS, Gauge.build().name(MetricNames.FUNDERS).help("Number of registered Funders").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.GRANTS, Gauge.build().name(MetricNames.GRANTS).help("Number of registered Grants").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.PROJECT, Gauge.build().name(MetricNames.PROJECT).help("Number of registered Projects").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.RESEARCHER, Gauge.build().name(MetricNames.RESEARCHER).help("Number of Colaborators/Researchers").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.DATASET, Gauge.build().name("argos_managed_dataset_descriptions").help("Number of managed Dataset Descriptions").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.DATASET, Gauge.build().name(MetricNames.DATASET).help("Number of managed Dataset Descriptions").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.DATASET_TEMPLATE, Gauge.build().name("argos_dataset_templates").help("Number of dataset Templates").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.DATASET_TEMPLATE, Gauge.build().name(MetricNames.DATASET_TEMPLATE).help("Number of dataset Templates").labelNames("status").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.USERS, Gauge.build().name("argos_users").help("Number of users").labelNames("type").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.USERS, Gauge.build().name(MetricNames.USERS).help("Number of users").labelNames("type").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.LANGUAGES, Gauge.build().name("argos_languages").help("Number of Languages").register(registry.getPrometheusRegistry())},
|
||||
{MetricNames.LANGUAGES, Gauge.build().name(MetricNames.LANGUAGES).help("Number of Languages").register(registry.getPrometheusRegistry())},
|
||||
|
||||
}).collect(Collectors.toMap(data -> (String)data[0], data -> (Gauge) data[1]));
|
||||
|
||||
|
@ -101,30 +103,30 @@ public class MetricsManager {
|
|||
@Scheduled(initialDelay = 1000 * 60 * 60, fixedDelay = 1000 * 60 * 60)
|
||||
public void init() throws IOException {
|
||||
logger.info("Start calculating Metrics");
|
||||
calculateValue("argos_managed_dmps", (int) countAllDraftDMPs(), "draft");
|
||||
calculateValue("argos_managed_dmps", (int) countAllFinalizedDMPs(), "finalized");
|
||||
calculateValue("argos_managed_dmps", (int) countAllPublishedDMPs(), "published");
|
||||
calculateValue("argos_managed_dmps", (int) countAllDoiedDMPs(), "doied");
|
||||
calculateValue(MetricNames.DMP, (int) countAllDraftDMPs(), MetricNames.DRAFT);
|
||||
calculateValue(MetricNames.DMP, (int) countAllFinalizedDMPs(), MetricNames.FINALIZED);
|
||||
calculateValue(MetricNames.DMP, (int) countAllPublishedDMPs(), MetricNames.PUBLISHED);
|
||||
calculateValue(MetricNames.DMP, (int) countAllDoiedDMPs(), MetricNames.DOIED);
|
||||
|
||||
calculateValue("argos_funders", (int) countAllFunders(), null);
|
||||
calculateValue("argos_grants", (int) countAllGrants(), null);
|
||||
calculateValue("argos_projects", (int) countAllProjects(), null);
|
||||
calculateValue("argos_researchers", (int) countAllResearchers(), null);
|
||||
calculateValue(MetricNames.FUNDERS, (int) countAllFunders(), null);
|
||||
calculateValue(MetricNames.GRANTS, (int) countAllGrants(), null);
|
||||
calculateValue(MetricNames.PROJECT, (int) countAllProjects(), null);
|
||||
calculateValue(MetricNames.RESEARCHER, (int) countAllResearchers(), null);
|
||||
|
||||
calculateValue("argos_managed_dataset_descriptions", (int) countAllDraftDatasets(), "draft");
|
||||
calculateValue("argos_managed_dataset_descriptions", (int) countAllFinalizedDatasets(), "finalized");
|
||||
calculateValue("argos_managed_dataset_descriptions", (int) countAllPublicDatasets(), "published");
|
||||
calculateValue("argos_managed_dataset_descriptions", (int) countAllDatasetsWithDoi(), "doied");
|
||||
calculateValue(MetricNames.DATASET, (int) countAllDraftDatasets(), MetricNames.DRAFT);
|
||||
calculateValue(MetricNames.DATASET, (int) countAllFinalizedDatasets(), MetricNames.FINALIZED);
|
||||
calculateValue(MetricNames.DATASET, (int) countAllPublicDatasets(), MetricNames.PUBLISHED);
|
||||
calculateValue(MetricNames.DATASET, (int) countAllDatasetsWithDoi(), MetricNames.DOIED);
|
||||
|
||||
calculateValue("argos_dataset_templates", (int) countAllDraftTemplates(), "draft");
|
||||
calculateValue("argos_dataset_templates", (int) countAllFinalizedTemplates(), "active");
|
||||
calculateValue("argos_dataset_templates", (int) countAllUsedTemplates(), "used");
|
||||
calculateValue(MetricNames.DATASET_TEMPLATE, (int) countAllDraftTemplates(), MetricNames.DRAFT);
|
||||
calculateValue(MetricNames.DATASET_TEMPLATE, (int) countAllFinalizedTemplates(), MetricNames.ACTIVE);
|
||||
calculateValue(MetricNames.DATASET_TEMPLATE, (int) countAllUsedTemplates(), MetricNames.USED);
|
||||
|
||||
calculateValue("argos_users", (int) userManager.countActiveUsers().intValue(), "loggedin");
|
||||
calculateValue("argos_users", (int) userManager.countAllUsers().intValue(), "total");
|
||||
calculateValue(MetricNames.USERS, (int) userManager.countActiveUsers().intValue(), MetricNames.LOGGEDIN);
|
||||
calculateValue(MetricNames.USERS, (int) userManager.countAllUsers().intValue(), MetricNames.TOTAL);
|
||||
|
||||
long files = Files.list(Paths.get(this.environment.getProperty("userguide.path"))).count();
|
||||
calculateValue("argos_languages", (int) files, null);
|
||||
calculateValue(MetricNames.LANGUAGES, (int) files, null);
|
||||
|
||||
logger.info("Metrics calculation Completed");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue