Add prometheus metric for the number of grants used based on DMP status (ref #6462)
This commit is contained in:
parent
35c4ec821e
commit
e66362ec38
|
@ -94,6 +94,8 @@ public class MetricsManager {
|
|||
|
||||
{MetricNames.LANGUAGES, Gauge.build().name(MetricNames.LANGUAGES).help("Number of Languages").register(registry.getPrometheusRegistry())},
|
||||
|
||||
{MetricNames.DMP_WITH_GRANT, Gauge.build().name(MetricNames.DMP_WITH_GRANT).help("Number of Grants based on the status of the DMP that is using them").labelNames("status").register(registry.getPrometheusRegistry())}
|
||||
|
||||
}).collect(Collectors.toMap(data -> (String)data[0], data -> (Gauge) data[1]));
|
||||
|
||||
}
|
||||
|
@ -108,6 +110,11 @@ public class MetricsManager {
|
|||
calculateValue(MetricNames.DMP, (int) countAllPublishedDMPs(), MetricNames.PUBLISHED);
|
||||
calculateValue(MetricNames.DMP, (int) countAllDoiedDMPs(), MetricNames.DOIED);
|
||||
|
||||
calculateValue(MetricNames.DMP_WITH_GRANT, (int) countAllDraftDMPsWithGrantId(), MetricNames.DRAFT);
|
||||
calculateValue(MetricNames.DMP_WITH_GRANT, (int) countAllFinalizedDMPsWithGrantId(), MetricNames.FINALIZED);
|
||||
calculateValue(MetricNames.DMP_WITH_GRANT, (int) countAllPublishedDMPsWithGrantId(), MetricNames.PUBLISHED);
|
||||
calculateValue(MetricNames.DMP_WITH_GRANT, (int) countAllDoiedDMPsWithGrantId(), MetricNames.DOIED);
|
||||
|
||||
calculateValue(MetricNames.FUNDERS, (int) countAllFunders(), null);
|
||||
calculateValue(MetricNames.GRANTS, (int) countAllGrants(), null);
|
||||
calculateValue(MetricNames.PROJECT, (int) countAllProjects(), null);
|
||||
|
@ -156,6 +163,31 @@ public class MetricsManager {
|
|||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).count();
|
||||
}
|
||||
|
||||
private long countAllDraftDMPsWithGrantId() {
|
||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||
criteria.setStatus(0);
|
||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||
}
|
||||
|
||||
private long countAllFinalizedDMPsWithGrantId() {
|
||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||
criteria.setStatus(1);
|
||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||
}
|
||||
|
||||
private long countAllPublishedDMPsWithGrantId() {
|
||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||
criteria.setIsPublic(true);
|
||||
criteria.setOnlyPublic(true);
|
||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||
}
|
||||
|
||||
private long countAllDoiedDMPsWithGrantId() {
|
||||
DataManagementPlanCriteria criteria = new DataManagementPlanCriteria();
|
||||
criteria.setHasDoi(true);
|
||||
return apiContext.getOperationsContext().getDatabaseRepository().getDmpDao().getWithCriteria(criteria).groupBy((builder, root) -> root.get("grant")).count();
|
||||
}
|
||||
|
||||
private long countAllResearchers() {
|
||||
ResearcherCriteria criteria = new ResearcherCriteria();
|
||||
return apiContext.getOperationsContext().getDatabaseRepository().getResearcherDao().getWithCriteria(criteria).count();
|
||||
|
|
|
@ -10,6 +10,7 @@ public class MetricNames {
|
|||
public static final String FUNDERS = "argos_funders";
|
||||
public static final String GRANTS = "argos_grants";
|
||||
public static final String LANGUAGES = "argos_languages";
|
||||
public static final String DMP_WITH_GRANT = "argos_managed_dmps_with_grantid";
|
||||
public static final String DRAFT = "draft";
|
||||
public static final String FINALIZED = "finalized";
|
||||
public static final String PUBLISHED = "published";
|
||||
|
|
Loading…
Reference in New Issue