Repository: cassandra Updated Branches: refs/heads/trunk fe3cfe3d7 -> 176f2a444
Add started & completed repair metrics patch by Cameron Zemek; reviewed by Stefan Podkowinski for CASSANDRA-13598 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/176f2a44 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/176f2a44 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/176f2a44 Branch: refs/heads/trunk Commit: 176f2a444cd2a6ed7c3be6ac126b6ca2c4f255cf Parents: fe3cfe3 Author: Cameron Zemek <came...@instaclustr.com> Authored: Wed Jun 14 14:06:53 2017 +1000 Committer: Stefan Podkowinski <stefan.podkowin...@1und1.de> Committed: Fri Jun 30 11:28:13 2017 +0200 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../apache/cassandra/metrics/KeyspaceMetrics.java | 18 ++++++++++++++++++ .../apache/cassandra/metrics/TableMetrics.java | 7 +++++++ .../org/apache/cassandra/repair/RepairJob.java | 6 ++++++ 4 files changed, 32 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/176f2a44/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index e56eb78..866c6fd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Added started & completed repair metrics (CASSANDRA-13598) * Improve secondary index (re)build failure and concurrency handling (CASSANDRA-10130) * Improve calculation of available disk space for compaction (CASSANDRA-13068) * Change the accessibility of RowCacheSerializer for third party row cache plugins (CASSANDRA-13579) http://git-wip-us.apache.org/repos/asf/cassandra/blob/176f2a44/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java index affb372..9e8d542 100644 --- a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java +++ b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java @@ -102,6 +102,10 @@ public class KeyspaceMetrics public final Counter speculativeFailedRetries; /** Needed to speculate, but didn't have enough replicas **/ public final Counter speculativeInsufficientReplicas; + /** Number of started repairs as coordinator on this keyspace */ + public final Counter repairsStarted; + /** Number of completed repairs as coordinator on this keyspace */ + public final Counter repairsCompleted; /** total time spent as a repair coordinator */ public final Timer repairTime; /** total time spent preparing for repair */ @@ -285,6 +289,20 @@ public class KeyspaceMetrics return metric.speculativeInsufficientReplicas.getCount(); } }); + repairsStarted = createKeyspaceCounter("RepairJobsStarted", new MetricValue() + { + public Long getValue(TableMetrics metric) + { + return metric.repairsStarted.getCount(); + } + }); + repairsCompleted = createKeyspaceCounter("RepairJobsCompleted", new MetricValue() + { + public Long getValue(TableMetrics metric) + { + return metric.repairsCompleted.getCount(); + } + }); repairTime = Metrics.timer(factory.createMetricName("RepairTime")); repairPrepareTime = Metrics.timer(factory.createMetricName("RepairPrepareTime")); anticompactionTime = Metrics.timer(factory.createMetricName("AntiCompactionTime")); http://git-wip-us.apache.org/repos/asf/cassandra/blob/176f2a44/src/java/org/apache/cassandra/metrics/TableMetrics.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/metrics/TableMetrics.java b/src/java/org/apache/cassandra/metrics/TableMetrics.java index 40a927f..98fd1e9 100644 --- a/src/java/org/apache/cassandra/metrics/TableMetrics.java +++ b/src/java/org/apache/cassandra/metrics/TableMetrics.java @@ -146,6 +146,10 @@ public class TableMetrics public final LatencyMetrics casCommit; /** percent of the data that is repaired */ public final Gauge<Double> percentRepaired; + /** Number of started repairs as coordinator on this table */ + public final Counter repairsStarted; + /** Number of completed repairs as coordinator on this table */ + public final Counter repairsCompleted; /** time spent anticompacting data before participating in a consistent repair */ public final TableTimer anticompactionTime; /** time spent creating merkle trees */ @@ -723,6 +727,9 @@ public class TableMetrics casPropose = new LatencyMetrics(factory, "CasPropose", cfs.keyspace.metric.casPropose); casCommit = new LatencyMetrics(factory, "CasCommit", cfs.keyspace.metric.casCommit); + repairsStarted = createTableCounter("RepairJobsStarted"); + repairsCompleted = createTableCounter("RepairJobsCompleted"); + anticompactionTime = createTableTimer("AnticompactionTime", cfs.keyspace.metric.anticompactionTime); validationTime = createTableTimer("ValidationTime", cfs.keyspace.metric.validationTime); syncTime = createTableTimer("SyncTime", cfs.keyspace.metric.repairSyncTime); http://git-wip-us.apache.org/repos/asf/cassandra/blob/176f2a44/src/java/org/apache/cassandra/repair/RepairJob.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/repair/RepairJob.java b/src/java/org/apache/cassandra/repair/RepairJob.java index d6c1176..58a369e 100644 --- a/src/java/org/apache/cassandra/repair/RepairJob.java +++ b/src/java/org/apache/cassandra/repair/RepairJob.java @@ -25,6 +25,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.Keyspace; import org.apache.cassandra.streaming.PreviewKind; import org.apache.cassandra.tracing.Tracing; @@ -69,6 +70,9 @@ public class RepairJob extends AbstractFuture<RepairResult> implements Runnable */ public void run() { + Keyspace ks = Keyspace.open(desc.keyspace); + ColumnFamilyStore cfs = ks.getColumnFamilyStore(desc.columnFamily); + cfs.metric.repairsStarted.inc(); List<InetAddress> allEndpoints = new ArrayList<>(session.endpoints); allEndpoints.add(FBUtilities.getBroadcastAddress()); @@ -158,6 +162,7 @@ public class RepairJob extends AbstractFuture<RepairResult> implements Runnable logger.info("{} {} is fully synced", previewKind.logPrefix(session.getId()), desc.columnFamily); SystemDistributedKeyspace.successfulRepairJob(session.getId(), desc.keyspace, desc.columnFamily); } + cfs.metric.repairsCompleted.inc(); set(new RepairResult(desc, stats)); } @@ -171,6 +176,7 @@ public class RepairJob extends AbstractFuture<RepairResult> implements Runnable logger.warn("{} {} sync failed", previewKind.logPrefix(session.getId()), desc.columnFamily); SystemDistributedKeyspace.failedRepairJob(session.getId(), desc.keyspace, desc.columnFamily, t); } + cfs.metric.repairsCompleted.inc(); setException(t); } }, taskExecutor); --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org