diff --git a/backend/core/src/main/java/org/opencdmp/service/metrics/MetricsServiceImpl.java b/backend/core/src/main/java/org/opencdmp/service/metrics/MetricsServiceImpl.java index 602b95fbd..0dcc91475 100644 --- a/backend/core/src/main/java/org/opencdmp/service/metrics/MetricsServiceImpl.java +++ b/backend/core/src/main/java/org/opencdmp/service/metrics/MetricsServiceImpl.java @@ -58,61 +58,233 @@ public class MetricsServiceImpl implements MetricsService { try { this.entityManager.disableTenantFilters(); - this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDraftDmps(false), MetricLabels.DRAFT); - this.setGaugeValue(gauges, MetricNames.DMP, this.calculateFinalizedDmps(false), MetricLabels.FINALIZED); - this.setGaugeValue(gauges, MetricNames.DMP, this.calculatePublishedDmps(false), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDoiedDmps(false), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.DMP, this.calculateDraftDmps(false), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateFinalizedDmps(true), MetricLabels.FINALIZED); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculatePublishedDmps(true), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDoiedDmps(true), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP, this.calculateDraftDmps(true), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateFinalizedDmpsWithGrant(false), MetricLabels.FINALIZED); - this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculatePublishedDmpsWithGrant(false), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(false), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(false), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - 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.calculatePublishedDmpsWithGrant(true), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDoiedDmpsWithGrant(true), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DMP_WITH_GRANT, this.calculateDraftDmpsWithGrant(true), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.GRANTS, this.calculateAllGrants(false), null); - this.setGaugeValue(gauges, MetricNames.PROJECTS, this.calculateAllProjects(false), null); - this.setGaugeValue(gauges, MetricNames.RESEARCHERS, this.calculateAllResearchers(false), null); + try { + this.setGaugeValue(gauges, MetricNames.FUNDERS, this.calculateAllFunders(false), null); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.GRANTS, this.calculateAllGrants(true), null); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.PROJECTS, this.calculateAllProjects(true), null); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.RESEARCHERS, this.calculateAllResearchers(true), null); + try { + this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.FUNDERS, this.calculateAllFunders(true), null); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateFinalizedDatasets(false), MetricLabels.FINALIZED); - this.setGaugeValue(gauges, MetricNames.DATASET, this.calculatePublishedDatasets(false), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDoiedDatasets(false), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.DATASET, this.calculateDraftDatasets(false), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateFinalizedDatasets(true), MetricLabels.FINALIZED); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculatePublishedDatasets(true), MetricLabels.PUBLISHED); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDoiedDatasets(true), MetricLabels.DOIED); + try { + this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET, this.calculateDraftDatasets(true), MetricLabels.DRAFT); + } catch (Exception e) { + 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); - this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(false), MetricLabels.ACTIVE); - this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(false), MetricLabels.USED); + try { + this.setGaugeValue(gauges, MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(false), MetricLabels.DRAFT); + } 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); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateFinalizedTemplates(true), MetricLabels.ACTIVE); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateUsedTemplates(true), MetricLabels.USED); + try { + this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.DATASET_TEMPLATE, this.calculateDraftTemplates(true), MetricLabels.DRAFT); + } 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); - this.setGaugeValue(gauges, MetricNames.NEXUS_PREFIX + MetricNames.INSTALLATIONS, 1d, null); + try { + 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); - this.setGaugeValue(gauges, MetricNames.USERS, this.calculateAllUsers(), MetricLabels.TOTAL); + try { + 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) { logger.error(e.getMessage(), e); } finally { @@ -317,13 +489,7 @@ public class MetricsServiceImpl implements MetricsService { } private double calculateActiveUsers() { - double result = -1; - try { - result = this.keycloakAdminRestApi.users().getUserSessionsCountByClientId(this._config.getUsersLoginClient()); - } catch (Exception e) { - logger.error(e.getMessage(), e); - } - return result; + return this.keycloakAdminRestApi.users().getUserSessionsCountByClientId(this._config.getUsersLoginClient()); } private double calculateAllUsers() { diff --git a/backend/web/src/main/resources/config/metrics-devel.yml b/backend/web/src/main/resources/config/metrics-devel.yml index 5e9147e8f..7a3b0b44b 100644 --- a/backend/web/src/main/resources/config/metrics-devel.yml +++ b/backend/web/src/main/resources/config/metrics-devel.yml @@ -3,7 +3,6 @@ metrics: enable: true intervalSeconds: 600 nexusDate: "2021-01-01T00:00:00.00Z" - usersLoginClient: ${IDP_APIKEY_CLIENT_ID_UUID:} referenceTypes: funderIds: ["538928bb-c7c6-452e-b66d-08e539f5f082"] grantIds: ["5b9c284f-f041-4995-96cc-fad7ad13289c"] diff --git a/backend/web/src/main/resources/config/metrics.yml b/backend/web/src/main/resources/config/metrics.yml index 0f6163011..f504a96fe 100644 --- a/backend/web/src/main/resources/config/metrics.yml +++ b/backend/web/src/main/resources/config/metrics.yml @@ -3,7 +3,7 @@ metrics: enable: false intervalSeconds: null nexusDate: null - usersLoginClient: null + usersLoginClient: ${IDP_APIKEY_CLIENT_ID_UUID} referenceTypes: funderIds: [] grantIds: []