Skip to content

Commit

Permalink
#9686 fix metrics service bean
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Nov 27, 2023
1 parent c588269 commit 0cbdb1c
Showing 1 changed file with 23 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -156,8 +156,6 @@ public JsonArray getDatasetsTimeSeries(UriInfo uriInfo, String dataLocation, Dat
* @param d
*/
public long datasetsToMonth(String yyyymm, String dataLocation, Dataverse d) {

System.out.print("datasets to month...");
String dataLocationLine = "(date_trunc('month', releasetime) <= to_date('" + yyyymm + "','YYYY-MM') and dvobject.harvestingclient_id IS NULL)\n";

if (!DATA_LOCATION_LOCAL.equals(dataLocation)) { // Default api state is DATA_LOCATION_LOCAL
Expand Down Expand Up @@ -208,17 +206,17 @@ public List<Object[]> datasetsBySubjectToMonth(String yyyymm, String dataLocatio
// A published local datasets may have more than one released version!
// So that's why we have to jump through some extra hoops below
// in order to select the latest one:
String originClause = "(datasetversion.dataset_id || ':' || datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber) in\n" +
"(\n" +
"select datasetversion.dataset_id || ':' || max(datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber))\n" +
" from datasetversion\n" +
" join dataset on dataset.id = datasetversion.dataset_id\n" +
" join dvobject on dataset.id = dvobject.id \n" +
" where versionstate='RELEASED'\n" +
" and dataset.harvestingclient_id is null\n" +
" and date_trunc('month', releasetime) <= to_date('" + yyyymm + "','YYYY-MM')\n" +
" group by dataset_id\n" +
"))\n";
String originClause = "(datasetversion.dataset_id || ':' || datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber) in\n"
+ "(\n"
+ "select datasetversion.dataset_id || ':' || max(datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber))\n"
+ " from datasetversion\n"
+ " join dataset on dataset.id = datasetversion.dataset_id\n"
+ " join dvobject on dataset.id = dvobject.id\n"
+ " where versionstate='RELEASED'\n"
+ " and dvobject.harvestingclient_id is null"
+ " and date_trunc('month', releasetime) <= to_date('" + yyyymm + "','YYYY-MM')\n"
+ " group by dataset_id\n"
+ "))\n";

if (!DATA_LOCATION_LOCAL.equals(dataLocation)) { // Default api state is DATA_LOCATION_LOCAL
//we have to use createtime for harvest as post dvn3 harvests do not have releasetime populated
Expand All @@ -227,8 +225,7 @@ public List<Object[]> datasetsBySubjectToMonth(String yyyymm, String dataLocatio
// so the query is simpler:
String harvestOriginClause = "(\n" +
" datasetversion.dataset_id = dataset.id\n" +
" dvobject.id = dataset.id \n" +
" AND dataset.harvestingclient_id IS NOT null \n" +
" AND dvobject.harvestingclient_id IS NOT null \n" +
" AND date_trunc('month', datasetversion.createtime) <= to_date('" + yyyymm + "','YYYY-MM')\n" +
")\n";

Expand All @@ -247,7 +244,7 @@ public List<Object[]> datasetsBySubjectToMonth(String yyyymm, String dataLocatio
+ "JOIN datasetfieldtype ON datasetfieldtype.id = controlledvocabularyvalue.datasetfieldtype_id\n"
+ "JOIN datasetversion ON datasetversion.id = datasetfield.datasetversion_id\n"
+ "JOIN dataset ON dataset.id = datasetversion.dataset_id\n"
+ ((d == null) ? "" : "JOIN dvobject ON dvobject.id = dataset.id\n")
+ "JOIN dvobject ON dvobject.id = dataset.id\n"
+ "WHERE\n"
+ originClause
+ "AND datasetfieldtype.name = 'subject'\n"
Expand All @@ -256,16 +253,16 @@ public List<Object[]> datasetsBySubjectToMonth(String yyyymm, String dataLocatio
+ "ORDER BY count(dataset.id) desc;"
);
logger.log(Level.FINE, "Metric query: {0}", query);
System.out.print("by sub to month: " + query);

return query.getResultList();
}

public long datasetsPastDays(int days, String dataLocation, Dataverse d) {
String dataLocationLine = "(releasetime > current_date - interval '" + days + "' day and dataset.harvestingclient_id IS NULL)\n";
String dataLocationLine = "(releasetime > current_date - interval '" + days + "' day and dvobject.harvestingclient_id IS NULL)\n";

if (!DATA_LOCATION_LOCAL.equals(dataLocation)) { // Default api state is DATA_LOCATION_LOCAL
//we have to use createtime for harvest as post dvn3 harvests do not have releasetime populated
String harvestBaseLine = "(createtime > current_date - interval '" + days + "' day and dataset.harvestingclient_id IS NOT NULL)\n";
String harvestBaseLine = "(createtime > current_date - interval '" + days + "' day and dvobject.harvestingclient_id IS NOT NULL)\n";
if (DATA_LOCATION_REMOTE.equals(dataLocation)) {
dataLocationLine = harvestBaseLine; // replace
} else if (DATA_LOCATION_ALL.equals(dataLocation)) {
Expand All @@ -279,7 +276,7 @@ public long datasetsPastDays(int days, String dataLocation, Dataverse d) {
+ "select datasetversion.dataset_id || ':' || max(datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber)) as max\n"
+ "from datasetversion\n"
+ "join dataset on dataset.id = datasetversion.dataset_id\n"
+ ((d == null) ? "" : "join dvobject on dvobject.id = dataset.id\n")
+ "join dvobject on dvobject.id = dataset.id\n"
+ "where versionstate='RELEASED' \n"
+ ((d == null) ? "" : "and dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + ")\n")
+ "and \n"
Expand Down Expand Up @@ -307,7 +304,7 @@ public JsonArray filesTimeSeries(Dataverse d) {
+ "where datasetversion.id=filemetadata.datasetversion_id\n"
+ "and versionstate='RELEASED' \n"
+ "and dataset_id in (select dataset.id from dataset, dvobject where dataset.id=dvobject.id\n"
+ "and dataset.harvestingclient_id IS NULL and publicationdate is not null\n "
+ "and dvobject.harvestingclient_id IS NULL and publicationdate is not null\n "
+ ((d == null) ? ")" : "and dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + "))\n ")
+ "group by filemetadata.id) as subq group by subq.date order by date;");
logger.log(Level.FINE, "Metric query: {0}", query);
Expand All @@ -330,11 +327,11 @@ public long filesToMonth(String yyyymm, Dataverse d) {
+ "select datasetversion.dataset_id || ':' || max(datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber)) as max \n"
+ "from datasetversion\n"
+ "join dataset on dataset.id = datasetversion.dataset_id\n"
+ ((d == null) ? "" : "join dvobject on dvobject.id = dataset.id\n")
+ "join dvobject on dvobject.id = dataset.id\n"
+ "where versionstate='RELEASED'\n"
+ ((d == null) ? "" : "and dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + ")\n")
+ "and date_trunc('month', releasetime) <= to_date('" + yyyymm + "','YYYY-MM')\n"
+ "and dataset.harvestingclient_id is null\n"
+ "and dvobject.harvestingclient_id is null\n"
+ "group by dataset_id \n"
+ ");"
);
Expand All @@ -353,11 +350,11 @@ public long filesPastDays(int days, Dataverse d) {
+ "select datasetversion.dataset_id || ':' || max(datasetversion.versionnumber + (.1 * datasetversion.minorversionnumber)) as max \n"
+ "from datasetversion\n"
+ "join dataset on dataset.id = datasetversion.dataset_id\n"
+ ((d == null) ? "" : "join dvobject on dvobject.id = dataset.id\n")
+ "join dvobject on dvobject.id = dataset.id\n"
+ "where versionstate='RELEASED'\n"
+ "and releasetime > current_date - interval '" + days + "' day\n"
+ ((d == null) ? "" : "AND dvobject.owner_id in (" + getCommaSeparatedIdStringForSubtree(d, "Dataverse") + ")\n")
+ "and dataset.harvestingclient_id is null\n"
+ "and dvobject.harvestingclient_id is null\n"
+ "group by dataset_id \n"
+ ");"
);
Expand Down Expand Up @@ -619,7 +616,7 @@ public String returnUnexpiredCacheDayBased(String metricName, String days, Strin

public String returnUnexpiredCacheMonthly(String metricName, String yyyymm, String dataLocation, Dataverse d) {
Metric queriedMetric = getMetric(metricName, dataLocation, yyyymm, d);
System.out.print("returnUnexpiredCacheMonthly: " + queriedMetric);

if (!doWeQueryAgainMonthly(queriedMetric)) {
return queriedMetric.getValueJson();
}
Expand Down

0 comments on commit 0cbdb1c

Please sign in to comment.