Repository: incubator-slider
Updated Branches:
  refs/heads/develop 548d2939e -> 77c720879


SLIDER-1197 Provide information on pending allocations, and last allocation time


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/77c72087
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/77c72087
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/77c72087

Branch: refs/heads/develop
Commit: 77c720879a5a3ac3a2d7cc59d8e112afa0b7a4da
Parents: 548d293
Author: Gour Saha <gourks...@apache.org>
Authored: Tue Feb 14 14:10:55 2017 -0800
Committer: Gour Saha <gourks...@apache.org>
Committed: Tue Feb 14 14:10:55 2017 -0800

----------------------------------------------------------------------
 .../slider/api/types/ApplicationLivenessInformation.java      | 5 +++++
 .../apache/slider/providers/agent/AgentProviderService.java   | 2 ++
 .../org/apache/slider/server/appmaster/state/AppState.java    | 4 ++++
 .../slider/server/appmaster/state/ProviderAppState.java       | 6 ++++++
 .../server/appmaster/state/StateAccessForProviders.java       | 7 +++++++
 5 files changed, 24 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/77c72087/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java
 
b/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java
index 9879d05..e72bf58 100644
--- 
a/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java
+++ 
b/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java
@@ -39,12 +39,17 @@ public class ApplicationLivenessInformation {
   /** number of requests submitted to YARN */
   public int activeRequests;
 
+  /** stores the allocation time of the most recently created container */
+  public long lastAllocationTime;
+
   @Override
   public String toString() {
     final StringBuilder sb =
         new StringBuilder("ApplicationLivenessInformation{");
     sb.append("allRequestsSatisfied=").append(allRequestsSatisfied);
     sb.append(", requestsOutstanding=").append(requestsOutstanding);
+    sb.append(", activeRequests=").append(activeRequests);
+    sb.append(", lastAllocationTime=").append(lastAllocationTime);
     sb.append('}');
     return sb.toString();
   }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/77c72087/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
index 4439aac..59b200d 100644
--- 
a/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
+++ 
b/slider-core/src/main/java/org/apache/slider/providers/agent/AgentProviderService.java
@@ -1048,6 +1048,8 @@ public class AgentProviderService extends 
AbstractProviderService implements
         if (currentAppVersion == null
             || currentAppVersion.equals(APP_VERSION_UNKNOWN)) {
           amState.getOwnedContainer(containerId).appVersion = appVersion;
+          amState.getApplicationDiagnostics()
+              .getContainer(containerId).appVersion = appVersion;
         }
       }
     } catch (NoSuchNodeException e) {

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/77c72087/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
index 5d588a5..186344d 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
@@ -302,6 +302,8 @@ public class AppState {
   private Resource minResource;
   private Resource maxResource;
 
+  private long lastAllocationTime;
+
   /**
    * Create an instance
    * @param recordFactory factory for YARN records
@@ -1499,6 +1501,7 @@ public class AppState {
                                      instance);
     }
     instance.startTime = now();
+    this.lastAllocationTime = instance.startTime;
     RoleInstance starting = getStartingContainers().remove(containerId);
     if (null == starting) {
       throw new YarnRuntimeException(
@@ -1925,6 +1928,7 @@ public class AppState {
     li.requestsOutstanding = outstanding;
     li.allRequestsSatisfied = outstanding <= 0;
     li.activeRequests = (int)stats.requested;
+    li.lastAllocationTime = this.lastAllocationTime;
     return li;
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/77c72087/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
index 37e9a7f..5cebdea 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/ProviderAppState.java
@@ -23,6 +23,7 @@ import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
 import org.apache.slider.api.ClusterDescription;
 import org.apache.slider.api.ClusterNode;
+import org.apache.slider.api.types.ApplicationDiagnostics;
 import org.apache.slider.api.types.ApplicationLivenessInformation;
 import org.apache.slider.api.types.ComponentInformation;
 import org.apache.slider.api.types.NodeInformation;
@@ -304,4 +305,9 @@ public class ProviderAppState implements 
StateAccessForProviders {
   public RoleStatistics getRoleStatistics() {
     return appState.getRoleStatistics();
   }
+
+  @Override
+  public ApplicationDiagnostics getApplicationDiagnostics() {
+    return appState.getApplicationDiagnostics();
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/77c72087/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
----------------------------------------------------------------------
diff --git 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
index ad91183..1764d63 100644
--- 
a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
+++ 
b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/StateAccessForProviders.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.yarn.exceptions.YarnRuntimeException;
 import org.apache.slider.api.ClusterDescription;
 import org.apache.slider.api.ClusterNode;
 import org.apache.slider.api.StatusKeys;
+import org.apache.slider.api.types.ApplicationDiagnostics;
 import org.apache.slider.api.types.ApplicationLivenessInformation;
 import org.apache.slider.api.types.ComponentInformation;
 import org.apache.slider.api.types.NodeInformation;
@@ -310,4 +311,10 @@ public interface StateAccessForProviders {
    * @return role statistics
    */
   RoleStatistics getRoleStatistics();
+
+  /**
+   * Get application diagnostics for all containers.
+   * @return application diagnostics
+   */
+  ApplicationDiagnostics getApplicationDiagnostics();
 }

Reply via email to