You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by el...@apache.org on 2014/12/04 18:40:02 UTC
accumulo git commit: Keep a reference to the MutableMetric and update
it via that instead of the metricsregistry
Repository: accumulo
Updated Branches:
refs/heads/metrics2-backwardscompat 6bc63eb0b -> a056b1ca0
Keep a reference to the MutableMetric and update it via that instead of the metricsregistry
MetricsRegistry.add only lets you update MutableStat and will fail on anything else. Helpful.
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/a056b1ca
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/a056b1ca
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/a056b1ca
Branch: refs/heads/metrics2-backwardscompat
Commit: a056b1ca0534aee85c57e4c484093979a424adde
Parents: 6bc63eb
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 4 12:39:14 2014 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 4 12:39:14 2014 -0500
----------------------------------------------------------------------
.../metrics/Metrics2TabletServerMetrics.java | 62 +++++++++++---------
1 file changed, 34 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/a056b1ca/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/Metrics2TabletServerMetrics.java
----------------------------------------------------------------------
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/Metrics2TabletServerMetrics.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/Metrics2TabletServerMetrics.java
index c21632b..70f2a2e 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/Metrics2TabletServerMetrics.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/Metrics2TabletServerMetrics.java
@@ -25,6 +25,8 @@ import org.apache.hadoop.metrics2.MetricsSource;
import org.apache.hadoop.metrics2.MetricsSystem;
import org.apache.hadoop.metrics2.lib.Interns;
import org.apache.hadoop.metrics2.lib.MetricsRegistry;
+import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
+import org.apache.hadoop.metrics2.lib.MutableStat;
/**
*
@@ -38,25 +40,27 @@ public class Metrics2TabletServerMetrics implements Metrics, MetricsSource {
private final MetricsSystem system;
private final MetricsRegistry registry;
+ private final MutableStat entries, entriesInMemory, filesPerTablet;
+ private final MutableGaugeLong activeMajcs, queuedMajcs, activeMincs, queuedMincs, onlineTablets, openingTablets, unopenedTablets, queries, totalMincs;
+
Metrics2TabletServerMetrics(TabletServer tserver, MetricsSystem system) {
this.tserver = tserver;
this.system = system;
this.registry = new MetricsRegistry(Interns.info("TabletServerMetrics", "General TabletServer Metrics"));
- registry.newStat(ENTRIES, "Number of entries", "Ops", "Count");
- registry.newStat(ENTRIES_IN_MEM, "Number of entries in memory", "Ops", "Count");
- registry.newStat(FILES_PER_TABLET, "Number of files per tablet", "Ops", "Files", true);
-
- registry.newGauge(Interns.info(ACTIVE_MAJCS, "Number of active major compactions"), 0l);
- registry.newGauge(Interns.info("queuedMajCs", "Number of queued major compactions"), 0l);
- registry.newGauge(Interns.info("activeMinCs", "Number of active minor compactions"), 0l);
- registry.newGauge(Interns.info("queuedMinCs", "Number of queued minor compactions"), 0l);
- registry.newGauge(Interns.info("onlineTablets", "Number of online tablets"), 0l);
- registry.newGauge(Interns.info("openingTablets", "Number of opening tablets"), 0l);
- registry.newGauge(Interns.info("unopenedTablets", "Number of unopened tablets"), 0l);
- registry.newGauge(Interns.info("queries", "Number of queries"), 0l);
- registry.newGauge(Interns.info("totalMinCs", "Total number of minor compactions performed"), 0l);
+ entries = registry.newStat(ENTRIES, "Number of entries", "Ops", "Count");
+ entriesInMemory = registry.newStat(ENTRIES_IN_MEM, "Number of entries in memory", "Ops", "Count");
+ filesPerTablet = registry.newStat(FILES_PER_TABLET, "Number of files per tablet", "Ops", "Files", true);
+ activeMajcs = registry.newGauge(Interns.info(ACTIVE_MAJCS, "Number of active major compactions"), 0l);
+ queuedMajcs = registry.newGauge(Interns.info(QUEUED_MAJCS, "Number of queued major compactions"), 0l);
+ activeMincs = registry.newGauge(Interns.info(ACTIVE_MINCS, "Number of active minor compactions"), 0l);
+ queuedMincs = registry.newGauge(Interns.info(QUEUED_MINCS, "Number of queued minor compactions"), 0l);
+ onlineTablets = registry.newGauge(Interns.info(ONLINE_TABLETS, "Number of online tablets"), 0l);
+ openingTablets = registry.newGauge(Interns.info(OPENING_TABLETS, "Number of opening tablets"), 0l);
+ unopenedTablets = registry.newGauge(Interns.info(UNOPENED_TABLETS, "Number of unopened tablets"), 0l);
+ queries = registry.newGauge(Interns.info(QUERIES, "Number of queries"), 0l);
+ totalMincs = registry.newGauge(Interns.info(TOTAL_MINCS, "Total number of minor compactions performed"), 0l);
}
@Override
@@ -75,31 +79,33 @@ public class Metrics2TabletServerMetrics implements Metrics, MetricsSource {
}
protected void snapshot() {
- registry.add(ENTRIES, getEntries());
- registry.add(ENTRIES_IN_MEM, getEntriesInMemory());
- registry.add(FILES_PER_TABLET, (long) this.getAverageFilesPerTablet());
+ entries.add(getEntries());
+ entriesInMemory.add(getEntriesInMemory());
+ filesPerTablet.add((long) getAverageFilesPerTablet());
- registry.add(ACTIVE_MAJCS, getMajorCompactions());
- registry.add(QUEUED_MAJCS, getMajorCompactionsQueued());
- registry.add(ACTIVE_MINCS, getMinorCompactions());
- registry.add(QUEUED_MINCS, getMinorCompactionsQueued());
- registry.add(ONLINE_TABLETS, getOnlineCount());
- registry.add(OPENING_TABLETS, getOpeningCount());
- registry.add(UNOPENED_TABLETS, getUnopenedCount());
- registry.add(QUERIES, getQueries());
- registry.add(TOTAL_MINCS, getTotalMinorCompactions());
+ activeMajcs.set(getMajorCompactions());
+ queuedMajcs.set(getMajorCompactionsQueued());
+ activeMincs.set(getMinorCompactions());
+ queuedMincs.set(getMinorCompactionsQueued());
+ onlineTablets.set(getOnlineCount());
+ openingTablets.set(getOpeningCount());
+ unopenedTablets.set(getUnopenedCount());
+ queries.set(getQueries());
+ totalMincs.set(getTotalMinorCompactions());
}
@Override
public void getMetrics(MetricsCollector collector, boolean all) {
MetricsRecordBuilder builder = collector.addRecord("Accumulo").setContext("tserver");
+ // Update each MutableMetric with the new value
snapshot();
- // TODO Some day, MetricsRegistry will also support the MetricsGaugeDouble
- builder.addGauge(Interns.info(HOLD_TIME, "Time commits held"), getHoldTime());
-
+ // Add then all to the builder
registry.snapshot(builder, all);
+
+ // TODO Some day, MetricsRegistry will also support the MetricsGaugeDouble or allow us to instantiate it directly
+ builder.addGauge(Interns.info(HOLD_TIME, "Time commits held"), getHoldTime());
}
public long getEntries() {