Add per-CF range read request latency metrics

patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for
CASSANDRA-7338
This commit is contained in:
Sam Tunnicliffe 2014-06-04 17:56:50 +03:00 committed by Aleksey Yeschenko
parent 500e7b7eaf
commit 05ffa8ff1e
3 changed files with 14 additions and 1 deletions

View File

@ -1,4 +1,5 @@
2.0.9
* Add per-CF range read request latency metrics (CASSANDRA-7338)
* Fix NPE in StreamTransferTask.createMessageForRetry() (CASSANDRA-7323)
* Add conditional CREATE/DROP USER support (CASSANDRA-7264)
* Swap local and global default read repair chances (CASSANDRA-7320)

View File

@ -1703,7 +1703,15 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
public List<Row> getRangeSlice(ExtendedFilter filter)
{
return filter(getSequentialIterator(filter.dataRange, filter.timestamp), filter);
long start = System.nanoTime();
try
{
return filter(getSequentialIterator(filter.dataRange, filter.timestamp), filter);
}
finally
{
metric.rangeLatency.addNano(System.nanoTime() - start);
}
}
@VisibleForTesting

View File

@ -52,6 +52,8 @@ public class ColumnFamilyMetrics
public final Histogram sstablesPerReadHistogram;
/** (Local) read metrics */
public final LatencyMetrics readLatency;
/** (Local) range slice metrics */
public final LatencyMetrics rangeLatency;
/** (Local) write metrics */
public final LatencyMetrics writeLatency;
/** Estimated number of tasks pending for this column family */
@ -177,6 +179,7 @@ public class ColumnFamilyMetrics
});
readLatency = new LatencyMetrics(factory, "Read");
writeLatency = new LatencyMetrics(factory, "Write");
rangeLatency = new LatencyMetrics(factory, "Range");
pendingCompactions = Metrics.newGauge(factory.createMetricName("PendingCompactions"), new Gauge<Integer>()
{
public Integer value()
@ -343,6 +346,7 @@ public class ColumnFamilyMetrics
{
readLatency.release();
writeLatency.release();
rangeLatency.release();
Metrics.defaultRegistry().removeMetric(factory.createMetricName("AllMemtablesDataSize"));
Metrics.defaultRegistry().removeMetric(factory.createMetricName("MemtableColumnsCount"));
Metrics.defaultRegistry().removeMetric(factory.createMetricName("MemtableDataSize"));