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);
+            }
+        }
 
 
     }