Skip to content

Commit c32e5af

Browse files
driftxmichaelsembwever
authored andcommitted
CNDB-16179: CNDB 13496: Add coordinator CAS read/write latencies (#1658)
Adds coordinator CAS read/write latencies
1 parent 5d94ed4 commit c32e5af

File tree

4 files changed

+17
-0
lines changed

4 files changed

+17
-0
lines changed

src/java/org/apache/cassandra/db/virtual/TableMetricTables.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,11 @@ public static Collection<VirtualTable> getAll(String name)
7171
new LatencyTableMetric(name, "local_read_latency", t -> t.readLatency.tableOrKeyspaceMetric().latency),
7272
new LatencyTableMetric(name, "local_scan_latency", t -> t.rangeLatency.tableOrKeyspaceMetric().latency),
7373
new LatencyTableMetric(name, "coordinator_read_latency", t -> t.coordinatorReadLatency.tableOrKeyspaceTimer()),
74+
new LatencyTableMetric(name, "coordinator_cas_read_latency", t -> t.coordinatorCasReadLatency.tableOrKeyspaceTimer()),
7475
new LatencyTableMetric(name, "coordinator_scan_latency", t -> t.coordinatorScanLatency.tableOrKeyspaceTimer()),
7576
new LatencyTableMetric(name, "local_write_latency", t -> t.writeLatency.tableOrKeyspaceMetric().latency),
7677
new LatencyTableMetric(name, "coordinator_write_latency", t -> t.coordinatorWriteLatency.tableOrKeyspaceTimer()),
78+
new LatencyTableMetric(name, "coordinator_cas_write_latency", t -> t.coordinatorCasWriteLatency.tableOrKeyspaceTimer()),
7779
new HistogramTableMetric(name, "tombstones_per_read", t -> t.tombstoneScannedHistogram.tableOrKeyspaceHistogram()),
7880
new HistogramTableMetric(name, "rows_per_read", t -> t.liveScannedHistogram.tableOrKeyspaceHistogram()),
7981
new StorageTableMetric(name, "disk_usage", (TableMetrics t) -> t.totalDiskSpaceUsed),

src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,14 @@ public class KeyspaceMetrics
154154
public final Counter outOfRangeTokenPaxosRequests;
155155
/** Coordinator read metrics */
156156
public final Timer coordinatorReadLatency;
157+
/** Coordinator CAS read metrics */
158+
public final Timer coordinatorCasReadLatency;
157159
/** Coordinator range metrics */
158160
public final Timer coordinatorScanLatency;
159161
/** Coordinator write metrics */
160162
public final Timer coordinatorWriteLatency;
163+
/** Coordinator CAS write metrics */
164+
public final Timer coordinatorCasWriteLatency;
161165
/** Time spent waiting for free memtable space, either on- or off-heap */
162166
public final Histogram waitingOnFreeMemtableSpace;
163167

@@ -297,8 +301,10 @@ public KeyspaceMetrics(final Keyspace ks)
297301
bytesValidated = createKeyspaceHistogram("BytesValidated", false);
298302

299303
coordinatorReadLatency = createKeyspaceTimer("CoordinatorReadLatency");
304+
coordinatorCasReadLatency = createKeyspaceTimer("CoordinatorCasReadLatency");
300305
coordinatorScanLatency = createKeyspaceTimer("CoordinatorScanLatency");
301306
coordinatorWriteLatency = createKeyspaceTimer("CoordinatorWriteLatency");
307+
coordinatorCasWriteLatency = createKeyspaceTimer("CoordinatorCasWriteLatency");
302308
waitingOnFreeMemtableSpace = createKeyspaceHistogram("WaitingOnFreeMemtableSpace", false);
303309

304310
confirmedRepairedInconsistencies = createKeyspaceMeter("RepairedDataInconsistenciesConfirmed");

src/java/org/apache/cassandra/metrics/TableMetrics.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,9 +334,14 @@ public String asCQLString()
334334
public final Gauge<Double> mutatedAnticompactionGauge;
335335

336336
public final TableTimer<SnapshottingTimer> coordinatorReadLatency;
337+
public final TableTimer coordinatorCasReadLatency;
337338
public final TableTimer coordinatorScanLatency;
339+
public final TableTimer coordinatorCasWriteLatency;
338340
public final TableTimer<SnapshottingTimer> coordinatorWriteLatency;
339341

342+
/** Time spent waiting for free memtable space, either on- or off-heap */
343+
public final TableHistogram waitingOnFreeMemtableSpace;
344+
340345
private final MetricNameFactory factory;
341346
private final MetricNameFactory aliasFactory;
342347

@@ -1030,8 +1035,11 @@ public Long getValue()
10301035
liveScannedHistogram = createTableHistogram("LiveScannedHistogram", cfs.getKeyspaceMetrics().liveScannedHistogram, false);
10311036
colUpdateTimeDeltaHistogram = createTableHistogram("ColUpdateTimeDeltaHistogram", cfs.getKeyspaceMetrics().colUpdateTimeDeltaHistogram, false);
10321037
coordinatorReadLatency = createTableTimer("CoordinatorReadLatency", cfs.getKeyspaceMetrics().coordinatorReadLatency);
1038+
coordinatorCasReadLatency = createTableTimer("CoordinatorCasReadLatency", cfs.getKeyspaceMetrics().coordinatorCasReadLatency);
10331039
coordinatorScanLatency = createTableTimer("CoordinatorScanLatency", cfs.getKeyspaceMetrics().coordinatorScanLatency);
10341040
coordinatorWriteLatency = createTableTimer("CoordinatorWriteLatency", cfs.getKeyspaceMetrics().coordinatorWriteLatency);
1041+
coordinatorCasWriteLatency = createTableTimer("CoordinatorCasWriteLatency", cfs.getKeyspaceMetrics().coordinatorCasWriteLatency);
1042+
waitingOnFreeMemtableSpace = createTableHistogram("WaitingOnFreeMemtableSpace", cfs.getKeyspaceMetrics().waitingOnFreeMemtableSpace, false);
10351043

10361044
// We do not want to capture view mutation specific metrics for a view
10371045
// They only makes sense to capture on the base table

src/java/org/apache/cassandra/service/StorageProxy.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -671,6 +671,7 @@ public static RowIterator legacyCas(String keyspaceName,
671671
metrics.casWriteMetrics.serviceTimeMetrics.addNano(latency);
672672
metrics.writeMetricsForLevel(consistencyForPaxos).executionTimeMetrics.addNano(latency);
673673
metrics.writeMetricsForLevel(consistencyForPaxos).serviceTimeMetrics.addNano(latency);
674+
Keyspace.openAndGetStore(metadata).metric.coordinatorCasWriteLatency.update(latency, NANOSECONDS);
674675
}
675676
}
676677

0 commit comments

Comments
 (0)