metrics fixes

This commit is contained in:
Efstratios Giannopoulos 2024-05-13 16:14:21 +03:00
parent 4408e7afda
commit 6b6fb88d75
3 changed files with 217 additions and 52 deletions

View File

@ -58,61 +58,233 @@ public class MetricsServiceImpl implements MetricsService {
try { try {
this.entityManager.disableTenantFilters(); this.entityManager.disableTenantFilters();
this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDraftDmps(false), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.DMP, this.calculateFinalizedDmps(false), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDraftDmps(false), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.DMP, this.calculatePublishedDmps(false), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDoiedDmps(false), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP, this.calculateFinalizedDmps(false), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP, this.calculatePublishedDmps(false), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDoiedDmps(false), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDraftDmps(true), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateFinalizedDmps(true), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDraftDmps(true), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculatePublishedDmps(true), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDoiedDmps(true), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateFinalizedDmps(true), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculatePublishedDmps(true), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDoiedDmps(true), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(false), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateFinalizedDmpsWithGrant(false), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(false), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculatePublishedDmpsWithGrant(false), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(false), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateFinalizedDmpsWithGrant(false), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculatePublishedDmpsWithGrant(false), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(false), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(true), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateFinalizedDmpsWithGrant(true), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(true), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculatePublishedDmpsWithGrant(true), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(true), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateFinalizedDmpsWithGrant(true), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculatePublishedDmpsWithGrant(true), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(true), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.FUNDERS, this.calculateAllFunders(false), null); try {
this.setGaugeValue(gauges, MetricNames.GRANTS, this.calculateAllGrants(false), null); this.setGaugeValue(gauges, MetricNames.FUNDERS, this.calculateAllFunders(false), null);
this.setGaugeValue(gauges, MetricNames.PROJECTS, this.calculateAllProjects(false), null); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.RESEARCHERS, this.calculateAllResearchers(false), null); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.GRANTS, this.calculateAllGrants(false), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.PROJECTS, this.calculateAllProjects(false), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.RESEARCHERS, this.calculateAllResearchers(false), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.FUNDERS, this.calculateAllFunders(true), null); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.GRANTS, this.calculateAllGrants(true), null); this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.FUNDERS, this.calculateAllFunders(true), null);
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.PROJECTS, this.calculateAllProjects(true), null); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.RESEARCHERS, this.calculateAllResearchers(true), null); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.GRANTS, this.calculateAllGrants(true), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.PROJECTS, this.calculateAllProjects(true), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.RESEARCHERS, this.calculateAllResearchers(true), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDraftDatasets(false), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateFinalizedDatasets(false), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDraftDatasets(false), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculatePublishedDatasets(false), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDoiedDatasets(false), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateFinalizedDatasets(false), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculatePublishedDatasets(false), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDoiedDatasets(false), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDraftDatasets(true), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateFinalizedDatasets(true), MetricLabels.FINALIZED); this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDraftDatasets(true), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculatePublishedDatasets(true), MetricLabels.PUBLISHED); } catch (Exception e) {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDoiedDatasets(true), MetricLabels.DOIED); logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateFinalizedDatasets(true), MetricLabels.FINALIZED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculatePublishedDatasets(true), MetricLabels.PUBLISHED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDoiedDatasets(true), MetricLabels.DOIED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(false), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(false), MetricLabels.ACTIVE); this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(false), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(false), MetricLabels.USED); } catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(false), MetricLabels.ACTIVE);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(false), MetricLabels.USED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(true), MetricLabels.DRAFT); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(true), MetricLabels.ACTIVE); this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(true), MetricLabels.DRAFT);
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(true), MetricLabels.USED); } catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(true), MetricLabels.ACTIVE);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(true), MetricLabels.USED);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.LANGUAGES, this.calculateLanguages(), null); try {
this.setGaugeValue(gauges, MetricNames.LANGUAGES, this.calculateLanguages(), null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.INSTALLATIONS, 1d, null); try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.INSTALLATIONS, 1d, null); this.setGaugeValue(gauges, MetricNames.INSTALLATIONS, 1d, null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.INSTALLATIONS, 1d, null);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
this.setGaugeValue(gauges, MetricNames.USERS, this.calculateActiveUsers(), MetricLabels.LOGGEDIN); try {
this.setGaugeValue(gauges, MetricNames.USERS, this.calculateAllUsers(), MetricLabels.TOTAL); this.setGaugeValue(gauges, MetricNames.USERS, this.calculateActiveUsers(), MetricLabels.LOGGEDIN);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
try {
this.setGaugeValue(gauges, MetricNames.USERS, this.calculateAllUsers(), MetricLabels.TOTAL);
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} finally { } finally {
@ -317,13 +489,7 @@ public class MetricsServiceImpl implements MetricsService {
} }
private double calculateActiveUsers() { private double calculateActiveUsers() {
double result = -1; return this.keycloakAdminRestApi.users().getUserSessionsCountByClientId(this._config.getUsersLoginClient());
try {
result = this.keycloakAdminRestApi.users().getUserSessionsCountByClientId(this._config.getUsersLoginClient());
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
return result;
} }
private double calculateAllUsers() { private double calculateAllUsers() {

View File

@ -3,7 +3,6 @@ metrics:
enable: true enable: true
intervalSeconds: 600 intervalSeconds: 600
nexusDate: "2021-01-01T00:00:00.00Z" nexusDate: "2021-01-01T00:00:00.00Z"
usersLoginClient: ${IDP_APIKEY_CLIENT_ID_UUID:}
referenceTypes: referenceTypes:
funderIds: ["538928bb-c7c6-452e-b66d-08e539f5f082"] funderIds: ["538928bb-c7c6-452e-b66d-08e539f5f082"]
grantIds: ["5b9c284f-f041-4995-96cc-fad7ad13289c"] grantIds: ["5b9c284f-f041-4995-96cc-fad7ad13289c"]

View File

@ -3,7 +3,7 @@ metrics:
enable: false enable: false
intervalSeconds: null intervalSeconds: null
nexusDate: null nexusDate: null
usersLoginClient: null usersLoginClient: ${IDP_APIKEY_CLIENT_ID_UUID}
referenceTypes: referenceTypes:
funderIds: [] funderIds: []
grantIds: [] grantIds: []