You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by is...@apache.org on 2023/02/01 03:02:23 UTC
[airavata] branch develop updated: print 5, 10, 15 avgs
This is an automated email from the ASF dual-hosted git repository.
isjarana pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push:
new 0ed42bc1f2 print 5, 10, 15 avgs
new 6a573ad947 Merge pull request #375 from isururanawaka/metaschedular
0ed42bc1f2 is described below
commit 0ed42bc1f2e4e64c38afcf5e4f0d5b06d7fdffe2
Author: Isuru Ranawaka <ir...@gmail.com>
AuthorDate: Tue Jan 31 22:00:14 2023 -0500
print 5, 10, 15 avgs
---
.../metadata/analyzer/impl/DataAnalyzerImpl.java | 47 +++++++++++++++++++++-
1 file changed, 45 insertions(+), 2 deletions(-)
diff --git a/modules/airavata-metascheduler/metadata-analyzer/src/main/java/org/apache/airavata/metascheduler/metadata/analyzer/impl/DataAnalyzerImpl.java b/modules/airavata-metascheduler/metadata-analyzer/src/main/java/org/apache/airavata/metascheduler/metadata/analyzer/impl/DataAnalyzerImpl.java
index e305c28924..5ae78bb5b4 100644
--- a/modules/airavata-metascheduler/metadata-analyzer/src/main/java/org/apache/airavata/metascheduler/metadata/analyzer/impl/DataAnalyzerImpl.java
+++ b/modules/airavata-metascheduler/metadata-analyzer/src/main/java/org/apache/airavata/metascheduler/metadata/analyzer/impl/DataAnalyzerImpl.java
@@ -1,14 +1,17 @@
package org.apache.airavata.metascheduler.metadata.analyzer.impl;
+import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.common.utils.ThriftClientPool;
import org.apache.airavata.metascheduler.core.engine.DataAnalyzer;
import org.apache.airavata.metascheduler.core.utils.Utils;
+import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.registry.api.RegistryService;
+import org.apache.airavata.registry.api.RegistryService.Client;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.airavata.registry.api.RegistryService;
-import org.apache.airavata.registry.api.RegistryService.Client;
public class DataAnalyzerImpl implements DataAnalyzer {
@@ -21,6 +24,46 @@ public class DataAnalyzerImpl implements DataAnalyzer {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
RegistryService.Client client = null;
+ try {
+ LOGGER.debug("Executing Data Analyzer ....... ");
+ client = this.registryClientPool.getResource();
+
+ //TODO: handle multiple gateways
+ String gateway = ServerSettings.getDataAnalyzingEnabledGateways();
+
+ JobState state = JobState.SUBMITTED;
+ JobStatus jobStatus = new JobStatus();
+ jobStatus.setJobState(state);
+ double time = ServerSettings.getDataAnalyzerTimeStep();
+
+ int fiveMinuteCount = client.getJobCount(jobStatus, gateway, 5);
+
+ int tenMinuteCount = client.getJobCount(jobStatus, gateway, 10);
+
+ int fifteenMinuteCount = client.getJobCount(jobStatus, gateway, 15);
+
+
+ double fiveMinuteAverage = fiveMinuteCount * time / (5 * 60);
+
+ double tenMinuteAverage = tenMinuteCount * time / (10 * 60);
+
+ double fifteenMinuteAverage = fifteenMinuteCount * time / (10 * 60);
+
+ LOGGER.info("service rate: 5 min avg" + fiveMinuteAverage + " 10 min avg "
+ + tenMinuteAverage + " 15 min avg " + fifteenMinuteAverage);
+
+ } catch (Exception ex) {
+ String msg = "Error occurred while executing data analyzer" + ex.getMessage();
+ LOGGER.error(msg, ex);
+ if (client != null) {
+ this.registryClientPool.returnBrokenResource(client);
+ }
+ client = null;
+ } finally {
+ if (client != null) {
+ this.registryClientPool.returnResource(client);
+ }
+ }
}