@@ -45,6 +45,16 @@ public final class AMRMProxyMetrics {
4545 private MutableGaugeLong failedAllocateRequests ;
4646 @ Metric ("# of failed application recoveries" )
4747 private MutableGaugeLong failedAppRecoveryCount ;
48+ @ Metric ("# of failed application stop" )
49+ private MutableGaugeLong failedAppStopRequests ;
50+ @ Metric ("# of failed update token" )
51+ private MutableGaugeLong failedUpdateAMRMTokenRequests ;
52+ @ Metric ("# all allocate requests count" )
53+ private MutableGaugeLong allocateCount ;
54+ @ Metric ("# all requests count" )
55+ private MutableGaugeLong requestCount ;
56+
57+
4858 // Aggregate metrics are shared, and don't have to be looked up per call
4959 @ Metric ("Application start request latency(ms)" )
5060 private MutableRate totalSucceededAppStartRequests ;
@@ -54,11 +64,22 @@ public final class AMRMProxyMetrics {
5464 private MutableRate totalSucceededFinishAMRequests ;
5565 @ Metric ("Allocate latency(ms)" )
5666 private MutableRate totalSucceededAllocateRequests ;
67+ @ Metric ("Application stop request latency(ms)" )
68+ private MutableRate totalSucceededAppStopRequests ;
69+ @ Metric ("Recover latency(ms)" )
70+ private MutableRate totalSucceededRecoverRequests ;
71+ @ Metric ("UpdateAMRMToken latency(ms)" )
72+ private MutableRate totalSucceededUpdateAMRMTokenRequests ;
73+
5774 // Quantile latency in ms - this is needed for SLA (95%, 99%, etc)
5875 private MutableQuantiles applicationStartLatency ;
5976 private MutableQuantiles registerAMLatency ;
6077 private MutableQuantiles finishAMLatency ;
6178 private MutableQuantiles allocateLatency ;
79+ private MutableQuantiles recoverLatency ;
80+ private MutableQuantiles applicationStopLatency ;
81+ private MutableQuantiles updateAMRMTokenLatency ;
82+
6283 private static volatile AMRMProxyMetrics instance = null ;
6384 private MetricsRegistry registry ;
6485
@@ -78,6 +99,15 @@ private AMRMProxyMetrics() {
7899 allocateLatency = registry
79100 .newQuantiles ("allocateLatency" , "latency of allocate" , "ops" ,
80101 "latency" , 10 );
102+ applicationStopLatency = registry
103+ .newQuantiles ("applicationStopLatency" , "latency of app stop" , "ops" ,
104+ "latency" , 10 );
105+ recoverLatency = registry
106+ .newQuantiles ("recoverLatency" , "latency of recover" , "ops" ,
107+ "latency" , 10 );
108+ updateAMRMTokenLatency = registry
109+ .newQuantiles ("updateAMRMTokenLatency" , "latency of update amrm token" , "ops" ,
110+ "latency" , 10 );
81111 }
82112
83113 /**
@@ -146,16 +176,57 @@ long getNumSucceededAllocateRequests() {
146176 return totalSucceededAllocateRequests .lastStat ().numSamples ();
147177 }
148178
179+ @ VisibleForTesting
180+ long getNumSucceededAppStopRequests () {
181+ return totalSucceededAppStopRequests .lastStat ().numSamples ();
182+ }
183+
184+ @ VisibleForTesting
185+ long getNumSucceededRecoverRequests () {
186+ return totalSucceededRecoverRequests .lastStat ().numSamples ();
187+ }
188+
189+ @ VisibleForTesting
190+ long getNumSucceededUpdateAMRMTokenRequests () {
191+ return totalSucceededUpdateAMRMTokenRequests .lastStat ().numSamples ();
192+ }
193+
194+
149195 @ VisibleForTesting
150196 double getLatencySucceededAllocateRequests () {
151197 return totalSucceededAllocateRequests .lastStat ().mean ();
152198 }
153199
200+ @ VisibleForTesting
201+ double getLatencySucceededAppStopRequests () {
202+ return totalSucceededAppStopRequests .lastStat ().mean ();
203+ }
204+
205+ @ VisibleForTesting
206+ double getLatencySucceededRecoverRequests () {
207+ return totalSucceededRecoverRequests .lastStat ().mean ();
208+ }
209+
154210 public void succeededAllocateRequests (long duration ) {
155211 totalSucceededAllocateRequests .add (duration );
156212 allocateLatency .add (duration );
157213 }
158214
215+ public void succeededAppStopRequests (long duration ) {
216+ totalSucceededAppStopRequests .add (duration );
217+ applicationStopLatency .add (duration );
218+ }
219+
220+ public void succeededRecoverRequests (long duration ) {
221+ totalSucceededRecoverRequests .add (duration );
222+ recoverLatency .add (duration );
223+ }
224+
225+ public void succeededUpdateTokenRequests (long duration ) {
226+ totalSucceededUpdateAMRMTokenRequests .add (duration );
227+ updateAMRMTokenLatency .add (duration );
228+ }
229+
159230 long getFailedAppStartRequests () {
160231 return failedAppStartRequests .value ();
161232 }
@@ -195,4 +266,36 @@ long getFailedAppRecoveryCount() {
195266 public void incrFailedAppRecoveryCount () {
196267 failedAppRecoveryCount .incr ();
197268 }
269+
270+ long getFailedAppStopRequests () {
271+ return failedAppStopRequests .value ();
272+ }
273+
274+ public void incrFailedAppStopRequests () {
275+ failedAppStopRequests .incr ();
276+ }
277+
278+ long getFailedUpdateAMRMTokenRequests () {
279+ return failedUpdateAMRMTokenRequests .value ();
280+ }
281+
282+ public void incrFailedUpdateAMRMTokenRequests () {
283+ failedUpdateAMRMTokenRequests .incr ();
284+ }
285+
286+ public void incrAllocateCount () {
287+ allocateCount .incr ();
288+ }
289+
290+ public void incrRequestCount () {
291+ requestCount .incr ();
292+ }
293+
294+ long getAllocateCount () {
295+ return allocateCount .value ();
296+ }
297+
298+ long getRequestCount () {
299+ return requestCount .value ();
300+ }
198301}
0 commit comments