1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.chukwa.datacollection.sender.metrics;
19
20 import org.apache.hadoop.metrics.MetricsContext;
21 import org.apache.hadoop.metrics.MetricsRecord;
22 import org.apache.hadoop.metrics.MetricsUtil;
23 import org.apache.hadoop.metrics.Updater;
24 import org.apache.hadoop.metrics.util.MetricsBase;
25 import org.apache.hadoop.metrics.util.MetricsRegistry;
26 import org.apache.hadoop.metrics.util.MetricsTimeVaryingInt;
27
28 public class HttpSenderMetrics implements Updater {
29
30 public MetricsRegistry registry = new MetricsRegistry();
31 private MetricsRecord metricsRecord;
32 private HttpSenderActivityMBean mbean;
33
34
35 public MetricsTimeVaryingInt collectorRollover =
36 new MetricsTimeVaryingInt("collectorRollover", registry,"number of collector rollovert");
37
38 public MetricsTimeVaryingInt httpPost =
39 new MetricsTimeVaryingInt("httpPost", registry,"number of HTTP post");
40
41 public MetricsTimeVaryingInt httpException =
42 new MetricsTimeVaryingInt("httpException", registry,"number of HTTP Exception");
43
44 public MetricsTimeVaryingInt httpThrowable =
45 new MetricsTimeVaryingInt("httpThrowable", registry,"number of HTTP Throwable exception");
46
47 public MetricsTimeVaryingInt httpTimeOutException =
48 new MetricsTimeVaryingInt("httpTimeOutException", registry,"number of HTTP TimeOutException");
49
50
51 public HttpSenderMetrics(String processName, String recordName) {
52 MetricsContext context = MetricsUtil.getContext(processName);
53 metricsRecord = MetricsUtil.createRecord(context, recordName);
54 metricsRecord.setTag("process", processName);
55 mbean = new HttpSenderActivityMBean(registry, recordName);
56 context.registerUpdater(this);
57 }
58
59
60
61
62
63
64 public void doUpdates(MetricsContext unused) {
65 synchronized (this) {
66 for (MetricsBase m : registry.getMetricsList()) {
67 m.pushMetric(metricsRecord);
68 }
69 }
70 metricsRecord.update();
71 }
72
73 public void shutdown() {
74 if (mbean != null)
75 mbean.shutdown();
76 }
77
78 }