Skip to content

Commit 6d007ec

Browse files
slfan1989HarshitGupta11
authored andcommitted
YARN-11029. Refactor AMRMProxy Service code and Added Some Metrics. (apache#4650)
1 parent ff96a2b commit 6d007ec

File tree

4 files changed

+305
-170
lines changed

4 files changed

+305
-170
lines changed

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyMetrics.java

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)