This is an automated email from the ASF dual-hosted git repository.

domgarguilo pushed a commit to branch 3.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/3.1 by this push:
     new 960cee8d45 Use getDescription for all micrometer instruments (#4886)
960cee8d45 is described below

commit 960cee8d4585985e61c8c3e1d177bbcae98385c6
Author: Dom G. <domgargu...@apache.org>
AuthorDate: Mon Sep 23 14:39:32 2024 -0400

    Use getDescription for all micrometer instruments (#4886)
    
    * Use getDescription for all micrometer instruments
    * fill in empty metrics descriptions and improve existing descriptions
    
    ---------
    
    Co-authored-by: Keith Turner <ktur...@apache.org>
---
 .../org/apache/accumulo/core/metrics/Metric.java   | 232 ++++++++++++---------
 .../server/compaction/PausedCompactionMetrics.java |   4 +-
 .../accumulo/server/metrics/ProcessMetrics.java    |   8 +-
 .../accumulo/server/metrics/ThriftMetrics.java     |   7 +-
 .../org/apache/accumulo/compactor/Compactor.java   |   8 +-
 .../org/apache/accumulo/gc/metrics/GcMetrics.java  |  30 ++-
 .../accumulo/manager/metrics/BalancerMetrics.java  |   2 +-
 .../apache/accumulo/tserver/BlockCacheMetrics.java |  18 +-
 .../apache/accumulo/tserver/ScanServerMetrics.java |  10 +-
 .../tserver/metrics/TabletServerMetrics.java       |  38 ++--
 .../tserver/metrics/TabletServerMinCMetrics.java   |   6 +-
 .../tserver/metrics/TabletServerScanMetrics.java   |  35 ++--
 .../tserver/metrics/TabletServerUpdateMetrics.java |  16 +-
 13 files changed, 219 insertions(+), 195 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/core/metrics/Metric.java 
b/core/src/main/java/org/apache/accumulo/core/metrics/Metric.java
index 9850d1a064..27b5e3bf00 100644
--- a/core/src/main/java/org/apache/accumulo/core/metrics/Metric.java
+++ b/core/src/main/java/org/apache/accumulo/core/metrics/Metric.java
@@ -27,180 +27,210 @@ public enum Metric {
       "Indicates if the server is idle or not. The value will be 1 when idle 
and 0 when not idle.",
       MetricCategory.GENERAL_SERVER),
   LOW_MEMORY("accumulo.detected.low.memory", MetricType.GAUGE,
-      "Reports 1 when process memory usage is above threshold, 0 when memory 
is okay.",
+      "Reports 1 when process memory usage is above the threshold, reports 0 
when memory is okay.",
       MetricCategory.GENERAL_SERVER),
 
   // Compactor Metrics
-  COMPACTOR_MAJC_STUCK("accumulo.compactor.majc.stuck", 
MetricType.LONG_TASK_TIMER, "",
-      MetricCategory.COMPACTOR),
+  COMPACTOR_MAJC_STUCK("accumulo.compactor.majc.stuck", 
MetricType.LONG_TASK_TIMER,
+      "Number and duration of stuck major compactions.", 
MetricCategory.COMPACTOR),
   COMPACTOR_ENTRIES_READ("accumulo.compactor.entries.read", 
MetricType.FUNCTION_COUNTER,
-      "Number of entries read by all threads performing compactions.", 
MetricCategory.COMPACTOR),
+      "Number of entries read by all compactions that have run on this 
compactor.",
+      MetricCategory.COMPACTOR),
   COMPACTOR_ENTRIES_WRITTEN("accumulo.compactor.entries.written", 
MetricType.FUNCTION_COUNTER,
-      "Number of entries written by all threads performing compactions.", 
MetricCategory.COMPACTOR),
+      "Number of entries written by all compactions that have run on this 
compactor.",
+      MetricCategory.COMPACTOR),
 
   // Fate Metrics
   FATE_TYPE_IN_PROGRESS("accumulo.fate.ops.in.progress.by.type", 
MetricType.GAUGE,
-      "Number of FATE operations in progress. The type is designated by the 
`op.type` tag.",
+      "Number of FATE operations in progress. The op type is designated by the 
`op.type` tag.",
       MetricCategory.FATE),
-  FATE_OPS("accumulo.fate.ops", MetricType.GAUGE, "Tracks all the current FATE 
ops in any state.",
+  FATE_OPS("accumulo.fate.ops", MetricType.GAUGE,
+      "Number of all the current FATE ops in any state.", MetricCategory.FATE),
+  FATE_OPS_ACTIVITY("accumulo.fate.ops.activity", MetricType.GAUGE,
+      "Count of the total number of times fate operations are added, updated, 
and removed.",
       MetricCategory.FATE),
-  FATE_OPS_ACTIVITY("accumulo.fate.ops.activity", MetricType.GAUGE, "", 
MetricCategory.FATE),
-  FATE_ERRORS("accumulo.fate.errors", MetricType.GAUGE, "", 
MetricCategory.FATE),
+  FATE_ERRORS("accumulo.fate.errors", MetricType.GAUGE,
+      "Count of errors that occurred when attempting to gather fate metrics.", 
MetricCategory.FATE),
   FATE_TX("accumulo.fate.tx", MetricType.GAUGE,
       "The state is now in a tag (e.g., state=new, state=in.progress, 
state=failed, etc.).",
       MetricCategory.FATE),
 
   // Garbage Collection Metrics
-  GC_STARTED("accumulo.gc.started", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_FINISHED("accumulo.gc.finished", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_CANDIDATES("accumulo.gc.candidates", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_IN_USE("accumulo.gc.in.use", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_DELETED("accumulo.gc.deleted", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_ERRORS("accumulo.gc.errors", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_STARTED("accumulo.gc.wal.started", MetricType.GAUGE, "",
+  GC_STARTED("accumulo.gc.started", MetricType.GAUGE, "Timestamp GC file 
collection cycle started.",
+      MetricCategory.GARBAGE_COLLECTION),
+  GC_FINISHED("accumulo.gc.finished", MetricType.GAUGE, "Timestamp GC file 
collect cycle finished.",
+      MetricCategory.GARBAGE_COLLECTION),
+  GC_CANDIDATES("accumulo.gc.candidates", MetricType.GAUGE,
+      "Number of files that are candidates for deletion.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_IN_USE("accumulo.gc.in.use", MetricType.GAUGE, "Number of candidate files 
still in use.",
       MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_FINISHED("accumulo.gc.wal.finished", MetricType.GAUGE, "",
+  GC_DELETED("accumulo.gc.deleted", MetricType.GAUGE, "Number of candidate 
files deleted.",
       MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_CANDIDATES("accumulo.gc.wal.candidates", MetricType.GAUGE, "",
+  GC_ERRORS("accumulo.gc.errors", MetricType.GAUGE, "Number of candidate 
deletion errors.",
       MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_IN_USE("accumulo.gc.wal.in.use", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_DELETED("accumulo.gc.wal.deleted", MetricType.GAUGE, "",
+  GC_WAL_STARTED("accumulo.gc.wal.started", MetricType.GAUGE,
+      "Timestamp GC WAL collection cycle started.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_WAL_FINISHED("accumulo.gc.wal.finished", MetricType.GAUGE,
+      "Timestamp GC WAL collect cycle finished.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_WAL_CANDIDATES("accumulo.gc.wal.candidates", MetricType.GAUGE,
+      "Number of files that are candidates for deletion.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_WAL_IN_USE("accumulo.gc.wal.in.use", MetricType.GAUGE,
+      "Number of wal file candidates that are still in use.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_WAL_DELETED("accumulo.gc.wal.deleted", MetricType.GAUGE,
+      "Number of candidate wal files deleted.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_WAL_ERRORS("accumulo.gc.wal.errors", MetricType.GAUGE,
+      "Number candidate wal file deletion errors.", 
MetricCategory.GARBAGE_COLLECTION),
+  GC_POST_OP_DURATION("accumulo.gc.post.op.duration", MetricType.GAUGE,
+      "GC metadata table post operation duration in milliseconds.",
       MetricCategory.GARBAGE_COLLECTION),
-  GC_WAL_ERRORS("accumulo.gc.wal.errors", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
-  GC_POST_OP_DURATION("accumulo.gc.post.op.duration", MetricType.GAUGE, "",
+  GC_RUN_CYCLE("accumulo.gc.run.cycle", MetricType.GAUGE,
+      "Count of gc cycle runs. Value is reset on process start.",
       MetricCategory.GARBAGE_COLLECTION),
-  GC_RUN_CYCLE("accumulo.gc.run.cycle", MetricType.GAUGE, "", 
MetricCategory.GARBAGE_COLLECTION),
 
   // Tablet Server Metrics
-  TSERVER_ENTRIES("accumulo.tserver.entries", MetricType.GAUGE, "", 
MetricCategory.TABLET_SERVER),
-  TSERVER_MEM_ENTRIES("accumulo.tserver.entries.mem", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MAJC_RUNNING("accumulo.tserver.majc.running", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MAJC_STUCK("accumulo.tserver.majc.stuck", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MAJC_QUEUED("accumulo.tserver.majc.queued", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MINC_QUEUED("accumulo.tserver.minc.queued", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MINC_RUNNING("accumulo.tserver.minc.running", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_MINC_TOTAL("accumulo.tserver.minc.total", MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_TABLETS_ONLINE("accumulo.tserver.tablets.online", MetricType.GAUGE, 
"",
+  TSERVER_ENTRIES("accumulo.tserver.entries", MetricType.GAUGE, "Number of 
entries.",
       MetricCategory.TABLET_SERVER),
+  TSERVER_MEM_ENTRIES("accumulo.tserver.entries.mem", MetricType.GAUGE,
+      "Number of entries in memory.", MetricCategory.TABLET_SERVER),
+  TSERVER_MAJC_RUNNING("accumulo.tserver.majc.running", MetricType.GAUGE,
+      "Number of active major compactions.", MetricCategory.TABLET_SERVER),
+  TSERVER_MAJC_STUCK("accumulo.tserver.majc.stuck", MetricType.GAUGE,
+      "Number and duration of stuck major compactions.", 
MetricCategory.TABLET_SERVER),
+  TSERVER_MAJC_QUEUED("accumulo.tserver.majc.queued", MetricType.GAUGE,
+      "Number of queued major compactions.", MetricCategory.TABLET_SERVER),
+  TSERVER_MINC_QUEUED("accumulo.tserver.minc.queued", MetricType.GAUGE,
+      "Number of queued minor compactions.", MetricCategory.TABLET_SERVER),
+  TSERVER_MINC_RUNNING("accumulo.tserver.minc.running", MetricType.GAUGE,
+      "Number of active minor compactions.", MetricCategory.TABLET_SERVER),
+  TSERVER_MINC_TOTAL("accumulo.tserver.minc.total", MetricType.GAUGE,
+      "Total number of minor compactions performed.", 
MetricCategory.TABLET_SERVER),
+  TSERVER_TABLETS_ONLINE("accumulo.tserver.tablets.online", MetricType.GAUGE,
+      "Number of online tablets.", MetricCategory.TABLET_SERVER),
   
TSERVER_TABLETS_LONG_ASSIGNMENTS("accumulo.tserver.tablets.assignments.warning",
 MetricType.GAUGE,
-      "", MetricCategory.TABLET_SERVER),
-  TSERVER_TABLETS_OPENING("accumulo.tserver.tablets.opening", 
MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_TABLETS_UNOPENED("accumulo.tserver.tablets.unopened", 
MetricType.GAUGE, "",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_TABLETS_FILES("accumulo.tserver.tablets.files", MetricType.GAUGE, "",
+      "Number of tablet assignments that are taking longer than the configured 
warning duration.",
       MetricCategory.TABLET_SERVER),
+  TSERVER_TABLETS_OPENING("accumulo.tserver.tablets.opening", MetricType.GAUGE,
+      "Number of opening tablets.", MetricCategory.TABLET_SERVER),
+  TSERVER_TABLETS_UNOPENED("accumulo.tserver.tablets.unopened", 
MetricType.GAUGE,
+      "Number of unopened tablets.", MetricCategory.TABLET_SERVER),
+  TSERVER_TABLETS_FILES("accumulo.tserver.tablets.files", MetricType.GAUGE,
+      "Number of files per tablet.", MetricCategory.TABLET_SERVER),
   TSERVER_INGEST_MUTATIONS("accumulo.tserver.ingest.mutations", 
MetricType.GAUGE,
-      "Prior to 2.1.0 this metric was reported as a rate, it is now the count 
and the rate can be derived.",
+      "Ingest mutation count. The rate can be derived from this metric.",
       MetricCategory.TABLET_SERVER),
   TSERVER_INGEST_BYTES("accumulo.tserver.ingest.bytes", MetricType.GAUGE,
-      "Prior to 2.1.0 this metric was reported as a rate, it is now the count 
and the rate can be derived.",
-      MetricCategory.TABLET_SERVER),
-  TSERVER_HOLD("accumulo.tserver.hold", MetricType.GAUGE, "", 
MetricCategory.TABLET_SERVER),
+      "Ingest byte count. The rate can be derived from this metric.", 
MetricCategory.TABLET_SERVER),
+  TSERVER_HOLD("accumulo.tserver.hold", MetricType.GAUGE,
+      "Duration for which commits have been held in milliseconds.", 
MetricCategory.TABLET_SERVER),
 
   // Scan Metrics
   SCAN_RESERVATION_TOTAL_TIMER("accumulo.scan.reservation.total.timer", 
MetricType.TIMER,
       "Time to reserve a tablet's files for scan.", 
MetricCategory.SCAN_SERVER),
   SCAN_RESERVATION_WRITEOUT_TIMER("accumulo.scan.reservation.writeout.timer", 
MetricType.TIMER,
-      "Time to write out a tablets file reservations for scan", 
MetricCategory.SCAN_SERVER),
+      "Time to write out a tablets file reservations for scan.", 
MetricCategory.SCAN_SERVER),
   
SCAN_RESERVATION_CONFLICT_COUNTER("accumulo.scan.reservation.conflict.count", 
MetricType.COUNTER,
-      "", MetricCategory.SCAN_SERVER),
+      "Count of instances where file reservation attempts for scans 
encountered conflicts.",
+      MetricCategory.SCAN_SERVER),
   SCAN_BUSY_TIMEOUT_COUNT("accumulo.scan.busy.timeout.count", 
MetricType.COUNTER,
       "Count of the scans where a busy timeout happened.", 
MetricCategory.SCAN_SERVER),
   SCAN_TABLET_METADATA_CACHE("accumulo.scan.tablet.metadata.cache", 
MetricType.CACHE,
       "Scan server tablet cache metrics.", MetricCategory.SCAN_SERVER),
-  SCAN_TIMES("accumulo.scan.times", MetricType.TIMER, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_OPEN_FILES("accumulo.scan.files.open", MetricType.GAUGE, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_RESULTS("accumulo.scan.result", MetricType.GAUGE, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_YIELDS("accumulo.scan.yields", MetricType.GAUGE, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_START("accumulo.scan.start", MetricType.COUNTER, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_CONTINUE("accumulo.scan.continue", MetricType.COUNTER, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_CLOSE("accumulo.scan.close", MetricType.COUNTER, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_QUERIES("accumulo.scan.queries", MetricType.GAUGE, "", 
MetricCategory.SCAN_SERVER),
-  SCAN_SCANNED_ENTRIES("accumulo.scan.query.scanned.entries", MetricType.GAUGE,
-      "Prior to 2.1.0 this metric was reported as a rate, it is now the count 
and the rate can be derived.",
+  SCAN_TIMES("accumulo.scan.times", MetricType.TIMER, "Scan session lifetime 
(creation to close).",
       MetricCategory.SCAN_SERVER),
-  SCAN_QUERY_SCAN_RESULTS("accumulo.scan.query.results", MetricType.GAUGE,
-      "Prior to 2.1.0 this metric was reported as a rate, it is now the count 
and the rate can be derived.",
+  SCAN_OPEN_FILES("accumulo.scan.files.open", MetricType.GAUGE, "Number of 
files open for scans.",
       MetricCategory.SCAN_SERVER),
-  SCAN_QUERY_SCAN_RESULTS_BYTES("accumulo.scan.query.results.bytes", 
MetricType.GAUGE,
-      "Prior to 2.1.0 this metric was reported as a rate, it is now the count 
and the rate can be derived.",
+  SCAN_RESULTS("accumulo.scan.result", MetricType.GAUGE, "Results per scan.",
+      MetricCategory.SCAN_SERVER),
+  SCAN_YIELDS("accumulo.scan.yields", MetricType.GAUGE, "Counts scans that 
have yielded.",
       MetricCategory.SCAN_SERVER),
-  SCAN_PAUSED_FOR_MEM("accumulo.scan.paused.for.memory", MetricType.COUNTER, 
"",
+  SCAN_START("accumulo.scan.start", MetricType.COUNTER,
+      "Number of calls to start a scan or multiscan.", 
MetricCategory.SCAN_SERVER),
+  SCAN_CONTINUE("accumulo.scan.continue", MetricType.COUNTER,
+      "Number of calls to continue a scan or multiscan.", 
MetricCategory.SCAN_SERVER),
+  SCAN_CLOSE("accumulo.scan.close", MetricType.COUNTER,
+      "Number of calls to close a scan or multiscan.", 
MetricCategory.SCAN_SERVER),
+  SCAN_QUERIES("accumulo.scan.queries", MetricType.GAUGE, "Number of queries 
made during scans.",
       MetricCategory.SCAN_SERVER),
-  SCAN_RETURN_FOR_MEM("accumulo.scan.return.early.for.memory", 
MetricType.COUNTER, "",
+  SCAN_SCANNED_ENTRIES("accumulo.scan.query.scanned.entries", MetricType.GAUGE,
+      "Count of scanned entries. The rate can be derived from this metric.",
       MetricCategory.SCAN_SERVER),
-  SCAN_ZOMBIE_THREADS("accumulo.scan.zombie.threads", MetricType.GAUGE, "",
+  SCAN_QUERY_SCAN_RESULTS("accumulo.scan.query.results", MetricType.GAUGE,
+      "Query count. The rate can be derived from this metric.", 
MetricCategory.SCAN_SERVER),
+  SCAN_QUERY_SCAN_RESULTS_BYTES("accumulo.scan.query.results.bytes", 
MetricType.GAUGE,
+      "Query byte count. The rate can be derived from this metric.", 
MetricCategory.SCAN_SERVER),
+  SCAN_PAUSED_FOR_MEM("accumulo.scan.paused.for.memory", MetricType.COUNTER,
+      "Count of scans paused due to server being low on memory.", 
MetricCategory.SCAN_SERVER),
+  SCAN_RETURN_FOR_MEM("accumulo.scan.return.early.for.memory", 
MetricType.COUNTER,
+      "Count of scans that returned results early due to server being low on 
memory.",
       MetricCategory.SCAN_SERVER),
+  SCAN_ZOMBIE_THREADS("accumulo.scan.zombie.threads", MetricType.GAUGE,
+      "Number of scan threads that have no associated client session.", 
MetricCategory.SCAN_SERVER),
 
   // Major Compaction Metrics
   MAJC_QUEUED("accumulo.tserver.compactions.majc.queued", MetricType.GAUGE,
-      "The compaction service information is in a tag: 
`id={i|e}_{compactionServiceName}_{executor_name}`.",
+      "Number of queued major compactions. The compaction service information 
is in a tag: `id={i|e}_{compactionServiceName}_{executor_name}`.",
       MetricCategory.TABLET_SERVER),
   MAJC_RUNNING("accumulo.tserver.compactions.majc.running", MetricType.GAUGE,
-      "The compaction service information is in a tag: 
`id={i|e}_{compactionServiceName}_{executor_name}`.",
-      MetricCategory.TABLET_SERVER),
-  MAJC_PAUSED("accumulo.tserver.compactions.majc.paused", MetricType.COUNTER, 
"",
+      "Number of running major compactions. The compaction service information 
is in a tag: `id={i|e}_{compactionServiceName}_{executor_name}`.",
       MetricCategory.TABLET_SERVER),
+  MAJC_PAUSED("accumulo.tserver.compactions.majc.paused", MetricType.COUNTER,
+      "Number of paused major compactions.", MetricCategory.TABLET_SERVER),
 
   // Minor Compaction Metrics
-  MINC_QUEUED("accumulo.tserver.compactions.minc.queued", MetricType.TIMER, "",
-      MetricCategory.TABLET_SERVER),
-  MINC_RUNNING("accumulo.tserver.compactions.minc.running", MetricType.TIMER, 
"",
-      MetricCategory.TABLET_SERVER),
-  MINC_PAUSED("accumulo.tserver.compactions.minc.paused", MetricType.COUNTER, 
"",
-      MetricCategory.TABLET_SERVER),
+  MINC_QUEUED("accumulo.tserver.compactions.minc.queued", MetricType.TIMER,
+      "Queued minor compactions time queued.", MetricCategory.TABLET_SERVER),
+  MINC_RUNNING("accumulo.tserver.compactions.minc.running", MetricType.TIMER,
+      "Minor compactions time active.", MetricCategory.TABLET_SERVER),
+  MINC_PAUSED("accumulo.tserver.compactions.minc.paused", MetricType.COUNTER,
+      "Number of paused minor compactions.", MetricCategory.TABLET_SERVER),
 
   // Updates (Ingest) Metrics
   UPDATE_ERRORS("accumulo.tserver.updates.error", MetricType.GAUGE,
-      "Type is stored in a tag (e.g., type=permission, type=unknown.tablet, 
type=constraint.violation).",
-      MetricCategory.TABLET_SERVER),
-  UPDATE_COMMIT("accumulo.tserver.updates.commit", MetricType.TIMER, "",
-      MetricCategory.TABLET_SERVER),
-  UPDATE_COMMIT_PREP("accumulo.tserver.updates.commit.prep", MetricType.TIMER, 
"",
-      MetricCategory.TABLET_SERVER),
-  UPDATE_WALOG_WRITE("accumulo.tserver.updates.walog.write", MetricType.TIMER, 
"",
+      "Count of errors during tablet updates. Type/reason for error is stored 
in the `type` tag (e.g., type=permission, type=unknown.tablet, 
type=constraint.violation).",
       MetricCategory.TABLET_SERVER),
+  UPDATE_COMMIT("accumulo.tserver.updates.commit", MetricType.TIMER,
+      "Time taken to commit a mutation.", MetricCategory.TABLET_SERVER),
+  UPDATE_COMMIT_PREP("accumulo.tserver.updates.commit.prep", MetricType.TIMER,
+      "Time taken to prepare to commit a single mutation.", 
MetricCategory.TABLET_SERVER),
+  UPDATE_WALOG_WRITE("accumulo.tserver.updates.walog.write", MetricType.TIMER,
+      "Time taken to write a batch of mutations to WAL.", 
MetricCategory.TABLET_SERVER),
   UPDATE_MUTATION_ARRAY_SIZE("accumulo.tserver.updates.mutation.arrays.size",
-      MetricType.DISTRIBUTION_SUMMARY, "", MetricCategory.TABLET_SERVER),
+      MetricType.DISTRIBUTION_SUMMARY, "Batch size of mutations from client.",
+      MetricCategory.TABLET_SERVER),
 
   // Thrift Metrics
 
-  THRIFT_IDLE("accumulo.thrift.idle", MetricType.DISTRIBUTION_SUMMARY, "", 
MetricCategory.THRIFT),
-  THRIFT_EXECUTE("accumulo.thrift.execute", MetricType.DISTRIBUTION_SUMMARY, 
"",
-      MetricCategory.THRIFT),
+  THRIFT_IDLE("accumulo.thrift.idle", MetricType.DISTRIBUTION_SUMMARY,
+      "Time waiting to execute an RPC request.", MetricCategory.THRIFT),
+  THRIFT_EXECUTE("accumulo.thrift.execute", MetricType.DISTRIBUTION_SUMMARY,
+      "Time to execute an RPC request.", MetricCategory.THRIFT),
 
   // Block Cache Metrics
-  BLOCKCACHE_INDEX_HITCOUNT("accumulo.blockcache.index.hitcount", 
MetricType.FUNCTION_COUNTER, "",
-      MetricCategory.BLOCK_CACHE),
+  BLOCKCACHE_INDEX_HITCOUNT("accumulo.blockcache.index.hitcount", 
MetricType.FUNCTION_COUNTER,
+      "Index block cache hit count.", MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_INDEX_REQUESTCOUNT("accumulo.blockcache.index.requestcount",
-      MetricType.FUNCTION_COUNTER, "", MetricCategory.BLOCK_CACHE),
+      MetricType.FUNCTION_COUNTER, "Index block cache request count.", 
MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_INDEX_EVICTIONCOUNT("accumulo.blockcache.index.evictioncount",
-      MetricType.FUNCTION_COUNTER, "", MetricCategory.BLOCK_CACHE),
-  BLOCKCACHE_DATA_HITCOUNT("accumulo.blockcache.data.hitcount", 
MetricType.FUNCTION_COUNTER, "",
-      MetricCategory.BLOCK_CACHE),
+      MetricType.FUNCTION_COUNTER, "Index block cache eviction count.", 
MetricCategory.BLOCK_CACHE),
+  BLOCKCACHE_DATA_HITCOUNT("accumulo.blockcache.data.hitcount", 
MetricType.FUNCTION_COUNTER,
+      "Data block cache hit count.", MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_DATA_REQUESTCOUNT("accumulo.blockcache.data.requestcount", 
MetricType.FUNCTION_COUNTER,
-      "", MetricCategory.BLOCK_CACHE),
+      "Data block cache request count.", MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_DATA_EVICTIONCOUNT("accumulo.blockcache.data.evictioncount",
-      MetricType.FUNCTION_COUNTER, "", MetricCategory.BLOCK_CACHE),
+      MetricType.FUNCTION_COUNTER, "Data block cache eviction count.", 
MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_SUMMARY_HITCOUNT("accumulo.blockcache.summary.hitcount", 
MetricType.FUNCTION_COUNTER,
-      "", MetricCategory.BLOCK_CACHE),
+      "Summary block cache hit count.", MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_SUMMARY_REQUESTCOUNT("accumulo.blockcache.summary.requestcount",
-      MetricType.FUNCTION_COUNTER, "", MetricCategory.BLOCK_CACHE),
+      MetricType.FUNCTION_COUNTER, "Summary block cache request count.",
+      MetricCategory.BLOCK_CACHE),
   BLOCKCACHE_SUMMARY_EVICTIONCOUNT("accumulo.blockcache.summary.evictioncount",
-      MetricType.FUNCTION_COUNTER, "", MetricCategory.BLOCK_CACHE),
+      MetricType.FUNCTION_COUNTER, "Summary block cache eviction count.",
+      MetricCategory.BLOCK_CACHE),
 
   // Manager Metrics
   
MANAGER_BALANCER_MIGRATIONS_NEEDED("accumulo.manager.balancer.migrations.needed",
       MetricType.GAUGE,
-      "The number of migrations that need to complete before the system is 
balanced.",
+      "The total number of migrations that need to complete before the system 
is balanced.",
       MetricCategory.MANAGER);
 
   private final String name;
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/compaction/PausedCompactionMetrics.java
 
b/server/base/src/main/java/org/apache/accumulo/server/compaction/PausedCompactionMetrics.java
index 4c0f69f866..da3b9fb437 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/compaction/PausedCompactionMetrics.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/compaction/PausedCompactionMetrics.java
@@ -44,9 +44,9 @@ public class PausedCompactionMetrics implements 
MetricsProducer {
   @Override
   public void registerMetrics(MeterRegistry registry) {
     FunctionCounter.builder(MAJC_PAUSED.getName(), majcPauseCount, 
AtomicLong::get)
-        .description("major compaction pause count").register(registry);
+        .description(MAJC_PAUSED.getDescription()).register(registry);
     FunctionCounter.builder(MINC_PAUSED.getName(), mincPauseCount, 
AtomicLong::get)
-        .description("minor compactor pause count").register(registry);
+        .description(MINC_PAUSED.getDescription()).register(registry);
   }
 
 }
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java
 
b/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java
index 83def19228..e824da163b 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/metrics/ProcessMetrics.java
@@ -21,12 +21,12 @@ package org.apache.accumulo.server.metrics;
 import static org.apache.accumulo.core.metrics.Metric.LOW_MEMORY;
 import static org.apache.accumulo.core.metrics.Metric.SERVER_IDLE;
 
-import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.accumulo.core.metrics.MetricsProducer;
 import org.apache.accumulo.server.ServerContext;
 
+import io.micrometer.core.instrument.Gauge;
 import io.micrometer.core.instrument.MeterRegistry;
 
 public class ProcessMetrics implements MetricsProducer {
@@ -41,8 +41,10 @@ public class ProcessMetrics implements MetricsProducer {
 
   @Override
   public void registerMetrics(MeterRegistry registry) {
-    registry.gauge(LOW_MEMORY.getName(), List.of(), this, 
this::lowMemDetected);
-    registry.gauge(SERVER_IDLE.getName(), isIdle, AtomicInteger::get);
+    Gauge.builder(LOW_MEMORY.getName(), this, this::lowMemDetected)
+        .description(LOW_MEMORY.getDescription()).register(registry);
+    Gauge.builder(SERVER_IDLE.getName(), isIdle, AtomicInteger::get)
+        .description(SERVER_IDLE.getDescription()).register(registry);
   }
 
   private int lowMemDetected(ProcessMetrics processMetrics) {
diff --git 
a/server/base/src/main/java/org/apache/accumulo/server/metrics/ThriftMetrics.java
 
b/server/base/src/main/java/org/apache/accumulo/server/metrics/ThriftMetrics.java
index 9fdf98a61c..b910f57670 100644
--- 
a/server/base/src/main/java/org/apache/accumulo/server/metrics/ThriftMetrics.java
+++ 
b/server/base/src/main/java/org/apache/accumulo/server/metrics/ThriftMetrics.java
@@ -43,9 +43,10 @@ public class ThriftMetrics implements MetricsProducer {
 
   @Override
   public void registerMetrics(MeterRegistry registry) {
-    idle = 
DistributionSummary.builder(THRIFT_IDLE.getName()).baseUnit("ms").register(registry);
-    execute =
-        
DistributionSummary.builder(THRIFT_EXECUTE.getName()).baseUnit("ms").register(registry);
+    idle = DistributionSummary.builder(THRIFT_IDLE.getName()).baseUnit("ms")
+        .description(THRIFT_IDLE.getDescription()).register(registry);
+    execute = 
DistributionSummary.builder(THRIFT_EXECUTE.getName()).baseUnit("ms")
+        .description(THRIFT_EXECUTE.getDescription()).register(registry);
   }
 
 }
diff --git 
a/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java 
b/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java
index 4658bd8a5a..1d49cf4f8f 100644
--- 
a/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java
+++ 
b/server/compactor/src/main/java/org/apache/accumulo/compactor/Compactor.java
@@ -183,14 +183,12 @@ public class Compactor extends AbstractServer implements 
MetricsProducer, Compac
   public void registerMetrics(MeterRegistry registry) {
     super.registerMetrics(registry);
     FunctionCounter.builder(COMPACTOR_ENTRIES_READ.getName(), this, 
Compactor::getTotalEntriesRead)
-        .description("Number of entries read by all compactions that have run 
on this compactor")
-        .register(registry);
+        
.description(COMPACTOR_ENTRIES_READ.getDescription()).register(registry);
     FunctionCounter
         .builder(COMPACTOR_ENTRIES_WRITTEN.getName(), this, 
Compactor::getTotalEntriesWritten)
-        .description("Number of entries written by all compactions that have 
run on this compactor")
-        .register(registry);
+        
.description(COMPACTOR_ENTRIES_WRITTEN.getDescription()).register(registry);
     LongTaskTimer timer = LongTaskTimer.builder(COMPACTOR_MAJC_STUCK.getName())
-        .description("Number and duration of stuck major 
compactions").register(registry);
+        .description(COMPACTOR_MAJC_STUCK.getDescription()).register(registry);
     CompactionWatcher.setTimer(timer);
   }
 
diff --git 
a/server/gc/src/main/java/org/apache/accumulo/gc/metrics/GcMetrics.java 
b/server/gc/src/main/java/org/apache/accumulo/gc/metrics/GcMetrics.java
index 9a88f85316..699ac82567 100644
--- a/server/gc/src/main/java/org/apache/accumulo/gc/metrics/GcMetrics.java
+++ b/server/gc/src/main/java/org/apache/accumulo/gc/metrics/GcMetrics.java
@@ -53,41 +53,39 @@ public class GcMetrics implements MetricsProducer {
   @Override
   public void registerMetrics(MeterRegistry registry) {
     Gauge.builder(GC_STARTED.getName(), metricValues, v -> 
v.getLastCollect().getStarted())
-        .description("Timestamp GC file collection cycle 
started").register(registry);
+        .description(GC_STARTED.getDescription()).register(registry);
     Gauge.builder(GC_FINISHED.getName(), metricValues, v -> 
v.getLastCollect().getFinished())
-        .description("Timestamp GC file collect cycle 
finished").register(registry);
+        .description(GC_FINISHED.getDescription()).register(registry);
     Gauge.builder(GC_CANDIDATES.getName(), metricValues, v -> 
v.getLastCollect().getCandidates())
-        .description("Number of files that are candidates for 
deletion").register(registry);
+        .description(GC_CANDIDATES.getDescription()).register(registry);
     Gauge.builder(GC_IN_USE.getName(), metricValues, v -> 
v.getLastCollect().getInUse())
-        .description("Number of candidate files still in 
use").register(registry);
+        .description(GC_IN_USE.getDescription()).register(registry);
     Gauge.builder(GC_DELETED.getName(), metricValues, v -> 
v.getLastCollect().getDeleted())
-        .description("Number of candidate files deleted").register(registry);
+        .description(GC_DELETED.getDescription()).register(registry);
     Gauge.builder(GC_ERRORS.getName(), metricValues, v -> 
v.getLastCollect().getErrors())
-        .description("Number of candidate deletion errors").register(registry);
+        .description(GC_ERRORS.getDescription()).register(registry);
 
     // WAL metrics Gauges
     Gauge.builder(GC_WAL_STARTED.getName(), metricValues, v -> 
v.getLastWalCollect().getStarted())
-        .description("Timestamp GC WAL collection cycle 
started").register(registry);
+        .description(GC_WAL_STARTED.getDescription()).register(registry);
     Gauge.builder(GC_WAL_FINISHED.getName(), metricValues, v -> 
v.getLastWalCollect().getFinished())
-        .description("Timestamp GC WAL collect cycle 
finished").register(registry);
+        .description(GC_WAL_FINISHED.getDescription()).register(registry);
     Gauge
         .builder(GC_WAL_CANDIDATES.getName(), metricValues,
             v -> v.getLastWalCollect().getCandidates())
-        .description("Number of files that are candidates for 
deletion").register(registry);
+        .description(GC_WAL_CANDIDATES.getDescription()).register(registry);
     Gauge.builder(GC_WAL_IN_USE.getName(), metricValues, v -> 
v.getLastWalCollect().getInUse())
-        .description("Number of wal file candidates that are still in 
use").register(registry);
+        .description(GC_WAL_IN_USE.getDescription()).register(registry);
     Gauge.builder(GC_WAL_DELETED.getName(), metricValues, v -> 
v.getLastWalCollect().getDeleted())
-        .description("Number of candidate wal files 
deleted").register(registry);
+        .description(GC_WAL_DELETED.getDescription()).register(registry);
     Gauge.builder(GC_WAL_ERRORS.getName(), metricValues, v -> 
v.getLastWalCollect().getErrors())
-        .description("Number candidate wal file deletion 
errors").register(registry);
+        .description(GC_WAL_ERRORS.getDescription()).register(registry);
     Gauge
         .builder(GC_POST_OP_DURATION.getName(), metricValues,
             v -> TimeUnit.NANOSECONDS.toMillis(v.getPostOpDurationNanos()))
-        .description("GC metadata table post operation duration in 
milliseconds")
-        .register(registry);
+        .description(GC_POST_OP_DURATION.getDescription()).register(registry);
     Gauge.builder(GC_RUN_CYCLE.getName(), metricValues, 
GcCycleMetrics::getRunCycleCount)
-        .description("gauge incremented each gc cycle run, rest on process 
start")
-        .register(registry);
+        .description(GC_RUN_CYCLE.getDescription()).register(registry);
 
   }
 
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/metrics/BalancerMetrics.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/metrics/BalancerMetrics.java
index 820f49b139..9bdb24b94d 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/metrics/BalancerMetrics.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/metrics/BalancerMetrics.java
@@ -48,6 +48,6 @@ public class BalancerMetrics implements MetricsProducer {
     Gauge
         .builder(MANAGER_BALANCER_MIGRATIONS_NEEDED.getName(), this,
             BalancerMetrics::getMigratingCount)
-        .description("Overall total migrations that need to 
complete").register(registry);
+        
.description(MANAGER_BALANCER_MIGRATIONS_NEEDED.getDescription()).register(registry);
   }
 }
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java
index b6325654d8..987abc12e7 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/BlockCacheMetrics.java
@@ -55,26 +55,26 @@ public class BlockCacheMetrics implements MetricsProducer {
     ToDoubleFunction<BlockCache> getEvictionCount = cache -> 
cache.getStats().evictionCount();
 
     FunctionCounter.builder(BLOCKCACHE_INDEX_HITCOUNT.getName(), indexCache, 
getHitCount)
-        .description("Index block cache hit count").register(registry);
+        
.description(BLOCKCACHE_INDEX_HITCOUNT.getDescription()).register(registry);
     FunctionCounter.builder(BLOCKCACHE_INDEX_REQUESTCOUNT.getName(), 
indexCache, getRequestCount)
-        .description("Index block cache request count").register(registry);
+        
.description(BLOCKCACHE_INDEX_REQUESTCOUNT.getDescription()).register(registry);
     FunctionCounter.builder(BLOCKCACHE_INDEX_EVICTIONCOUNT.getName(), 
indexCache, getEvictionCount)
-        .description("Index block cache eviction count").register(registry);
+        
.description(BLOCKCACHE_INDEX_EVICTIONCOUNT.getDescription()).register(registry);
 
     FunctionCounter.builder(BLOCKCACHE_DATA_HITCOUNT.getName(), dataCache, 
getHitCount)
-        .description("Data block cache hit count").register(registry);
+        
.description(BLOCKCACHE_DATA_HITCOUNT.getDescription()).register(registry);
     FunctionCounter.builder(BLOCKCACHE_DATA_REQUESTCOUNT.getName(), dataCache, 
getRequestCount)
-        .description("Data block cache request count").register(registry);
+        
.description(BLOCKCACHE_DATA_REQUESTCOUNT.getDescription()).register(registry);
     FunctionCounter.builder(BLOCKCACHE_DATA_EVICTIONCOUNT.getName(), 
dataCache, getEvictionCount)
-        .description("Data block cache eviction count").register(registry);
+        
.description(BLOCKCACHE_DATA_EVICTIONCOUNT.getDescription()).register(registry);
 
     FunctionCounter.builder(BLOCKCACHE_SUMMARY_HITCOUNT.getName(), 
summaryCache, getHitCount)
-        .description("Summary block cache hit count").register(registry);
+        
.description(BLOCKCACHE_SUMMARY_HITCOUNT.getDescription()).register(registry);
     FunctionCounter
         .builder(BLOCKCACHE_SUMMARY_REQUESTCOUNT.getName(), summaryCache, 
getRequestCount)
-        .description("Summary block cache request count").register(registry);
+        
.description(BLOCKCACHE_SUMMARY_REQUESTCOUNT.getDescription()).register(registry);
     FunctionCounter
         .builder(BLOCKCACHE_SUMMARY_EVICTIONCOUNT.getName(), summaryCache, 
getEvictionCount)
-        .description("Summary block cache eviction count").register(registry);
+        
.description(BLOCKCACHE_SUMMARY_EVICTIONCOUNT.getDescription()).register(registry);
   }
 }
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
index 12d85f1d22..1f558021e0 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
@@ -56,17 +56,15 @@ public class ScanServerMetrics implements MetricsProducer {
   @Override
   public void registerMetrics(MeterRegistry registry) {
     totalReservationTimer = 
Timer.builder(SCAN_RESERVATION_TOTAL_TIMER.getName())
-        .description("Time to reserve a tablets files for 
scan").register(registry);
+        
.description(SCAN_RESERVATION_TOTAL_TIMER.getDescription()).register(registry);
     writeOutReservationTimer = 
Timer.builder(SCAN_RESERVATION_WRITEOUT_TIMER.getName())
-        .description("Time to write out a tablets file reservations for 
scan").register(registry);
+        
.description(SCAN_RESERVATION_WRITEOUT_TIMER.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_BUSY_TIMEOUT_COUNT.getName(), 
busyTimeoutCount, AtomicLong::get)
-        .description("The number of scans where a busy timeout 
happened").register(registry);
+        
.description(SCAN_BUSY_TIMEOUT_COUNT.getDescription()).register(registry);
     FunctionCounter
         .builder(SCAN_RESERVATION_CONFLICT_COUNTER.getName(), 
reservationConflictCount,
             AtomicLong::get)
-        .description(
-            "Counts instances where file reservation attempts for scans 
encountered conflicts")
-        .register(registry);
+        
.description(SCAN_RESERVATION_CONFLICT_COUNTER.getDescription()).register(registry);
 
     if (tabletMetadataCache != null) {
       Preconditions.checkState(tabletMetadataCache.policy().isRecordingStats(),
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java
index 26bbd11adb..134c604a67 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMetrics.java
@@ -67,61 +67,59 @@ public class TabletServerMetrics implements MetricsProducer 
{
   public void registerMetrics(MeterRegistry registry) {
     FunctionCounter
         .builder(COMPACTOR_ENTRIES_READ.getName(), this, 
TabletServerMetrics::getTotalEntriesRead)
-        .description("Number of entries read by all compactions that have run 
on this tserver")
-        .register(registry);
+        
.description(COMPACTOR_ENTRIES_READ.getDescription()).register(registry);
     FunctionCounter
         .builder(COMPACTOR_ENTRIES_WRITTEN.getName(), this,
             TabletServerMetrics::getTotalEntriesWritten)
-        .description("Number of entries written by all compactions that have 
run on this tserver")
-        .register(registry);
+        
.description(COMPACTOR_ENTRIES_WRITTEN.getDescription()).register(registry);
     LongTaskTimer timer = LongTaskTimer.builder(TSERVER_MAJC_STUCK.getName())
-        .description("Number and duration of stuck major 
compactions").register(registry);
+        .description(TSERVER_MAJC_STUCK.getDescription()).register(registry);
     CompactionWatcher.setTimer(timer);
     Gauge
         .builder(TSERVER_TABLETS_LONG_ASSIGNMENTS.getName(), util,
             TabletServerMetricsUtil::getLongTabletAssignments)
-        .description("Number of tablet assignments that are taking a long 
time").register(registry);
+        
.description(TSERVER_TABLETS_LONG_ASSIGNMENTS.getDescription()).register(registry);
 
     Gauge.builder(TSERVER_ENTRIES.getName(), util, 
TabletServerMetricsUtil::getEntries)
-        .description("Number of entries").register(registry);
+        .description(TSERVER_ENTRIES.getDescription()).register(registry);
     Gauge.builder(TSERVER_MEM_ENTRIES.getName(), util, 
TabletServerMetricsUtil::getEntriesInMemory)
-        .description("Number of entries in memory").register(registry);
+        .description(TSERVER_MEM_ENTRIES.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_MAJC_RUNNING.getName(), util, 
TabletServerMetricsUtil::getMajorCompactions)
-        .description("Number of active major compactions").register(registry);
+        .description(TSERVER_MAJC_RUNNING.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_MAJC_QUEUED.getName(), util,
             TabletServerMetricsUtil::getMajorCompactionsQueued)
-        .description("Number of queued major compactions").register(registry);
+        .description(TSERVER_MINC_QUEUED.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_MINC_RUNNING.getName(), util, 
TabletServerMetricsUtil::getMinorCompactions)
-        .description("Number of active minor compactions").register(registry);
+        .description(TSERVER_MINC_RUNNING.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_MINC_QUEUED.getName(), util,
             TabletServerMetricsUtil::getMinorCompactionsQueued)
-        .description("Number of queued minor compactions").register(registry);
+        .description(TSERVER_MINC_QUEUED.getDescription()).register(registry);
     Gauge.builder(TSERVER_TABLETS_ONLINE.getName(), util, 
TabletServerMetricsUtil::getOnlineCount)
-        .description("Number of online tablets").register(registry);
+        
.description(TSERVER_TABLETS_ONLINE.getDescription()).register(registry);
     Gauge.builder(TSERVER_TABLETS_OPENING.getName(), util, 
TabletServerMetricsUtil::getOpeningCount)
-        .description("Number of opening tablets").register(registry);
+        
.description(TSERVER_TABLETS_OPENING.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_TABLETS_UNOPENED.getName(), util,
             TabletServerMetricsUtil::getUnopenedCount)
-        .description("Number of unopened tablets").register(registry);
+        
.description(TSERVER_TABLETS_UNOPENED.getDescription()).register(registry);
     Gauge
         .builder(TSERVER_MINC_TOTAL.getName(), util,
             TabletServerMetricsUtil::getTotalMinorCompactions)
-        .description("Total number of minor compactions 
performed").register(registry);
+        .description(TSERVER_MINC_TOTAL.getDescription()).register(registry);
 
     Gauge
         .builder(TSERVER_TABLETS_FILES.getName(), util,
             TabletServerMetricsUtil::getAverageFilesPerTablet)
-        .description("Number of files per tablet").register(registry);
+        
.description(TSERVER_TABLETS_FILES.getDescription()).register(registry);
     Gauge.builder(TSERVER_HOLD.getName(), util, 
TabletServerMetricsUtil::getHoldTime)
-        .description("Time commits held").register(registry);
+        .description(TSERVER_HOLD.getDescription()).register(registry);
     Gauge.builder(TSERVER_INGEST_MUTATIONS.getName(), util, 
TabletServerMetricsUtil::getIngestCount)
-        .description("Ingest rate (entries/sec)").register(registry);
+        
.description(TSERVER_INGEST_MUTATIONS.getDescription()).register(registry);
     Gauge.builder(TSERVER_INGEST_BYTES.getName(), util, 
TabletServerMetricsUtil::getIngestByteCount)
-        .description("Ingest rate (bytes/sec)").register(registry);
+        .description(TSERVER_INGEST_BYTES.getDescription()).register(registry);
   }
 }
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMinCMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMinCMetrics.java
index 7bc3e5bc85..0ce05e7783 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMinCMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerMinCMetrics.java
@@ -44,11 +44,11 @@ public class TabletServerMinCMetrics implements 
MetricsProducer {
 
   @Override
   public void registerMetrics(MeterRegistry registry) {
-    activeMinc = Timer.builder(MINC_RUNNING.getName()).description("Minor 
compactions time active")
+    activeMinc = 
Timer.builder(MINC_RUNNING.getName()).description(MINC_RUNNING.getDescription())
         .register(registry);
 
-    queuedMinc = Timer.builder(MINC_QUEUED.getName())
-        .description("Queued minor compactions time 
queued").register(registry);
+    queuedMinc = 
Timer.builder(MINC_QUEUED.getName()).description(MINC_QUEUED.getDescription())
+        .register(registry);
   }
 
 }
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
index d5848722cb..e5b40c98d9 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
@@ -138,40 +138,39 @@ public class TabletServerScanMetrics implements 
MetricsProducer {
   @Override
   public void registerMetrics(MeterRegistry registry) {
     Gauge.builder(SCAN_OPEN_FILES.getName(), openFiles::get)
-        .description("Number of files open for scans").register(registry);
-    scans = 
Timer.builder(SCAN_TIMES.getName()).description("Scans").register(registry);
+        .description(SCAN_OPEN_FILES.getDescription()).register(registry);
+    scans = 
Timer.builder(SCAN_TIMES.getName()).description(SCAN_TIMES.getDescription())
+        .register(registry);
     resultsPerScan = DistributionSummary.builder(SCAN_RESULTS.getName())
-        .description("Results per scan").register(registry);
-    yields =
-        
DistributionSummary.builder(SCAN_YIELDS.getName()).description("yields").register(registry);
+        .description(SCAN_RESULTS.getDescription()).register(registry);
+    yields = DistributionSummary.builder(SCAN_YIELDS.getName())
+        .description(SCAN_YIELDS.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_START.getName(), this.startScanCalls, 
AtomicLong::get)
-        .description("calls to start a scan / multiscan").register(registry);
+        .description(SCAN_START.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_CONTINUE.getName(), this.continueScanCalls, 
AtomicLong::get)
-        .description("calls to continue a scan / 
multiscan").register(registry);
+        .description(SCAN_CONTINUE.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_CLOSE.getName(), this.closeScanCalls, 
AtomicLong::get)
-        .description("calls to close a scan / multiscan").register(registry);
+        .description(SCAN_CLOSE.getDescription()).register(registry);
     FunctionCounter
         .builder(SCAN_BUSY_TIMEOUT_COUNT.getName(), this.busyTimeoutCount, 
AtomicLong::get)
-        .description("The number of scans where a busy timeout 
happened").register(registry);
+        
.description(SCAN_BUSY_TIMEOUT_COUNT.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_QUERIES.getName(), this.lookupCount, 
LongAdder::sum)
-        .description("Number of queries").register(registry);
+        .description(SCAN_QUERIES.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_SCANNED_ENTRIES.getName(), this.scannedCount, 
LongAdder::sum)
-        .description("Scanned rate").register(registry);
+        .description(SCAN_SCANNED_ENTRIES.getDescription()).register(registry);
     FunctionCounter.builder(SCAN_PAUSED_FOR_MEM.getName(), 
this.pausedForMemory, AtomicLong::get)
-        .description("scan paused due to server being low on 
memory").register(registry);
+        .description(SCAN_PAUSED_FOR_MEM.getDescription()).register(registry);
     FunctionCounter
         .builder(SCAN_RETURN_FOR_MEM.getName(), this.earlyReturnForMemory, 
AtomicLong::get)
-        .description("scan returned results early due to server being low on 
memory")
-        .register(registry);
+        .description(SCAN_RETURN_FOR_MEM.getDescription()).register(registry);
     Gauge.builder(SCAN_QUERY_SCAN_RESULTS.getName(), this.queryResultCount, 
LongAdder::sum)
-        .description("Query rate (entries/sec)").register(registry);
+        
.description(SCAN_QUERY_SCAN_RESULTS.getDescription()).register(registry);
     Gauge.builder(SCAN_QUERY_SCAN_RESULTS_BYTES.getName(), 
this.queryResultBytes, LongAdder::sum)
-        .description("Query rate (bytes/sec)").register(registry);
+        
.description(SCAN_QUERY_SCAN_RESULTS_BYTES.getDescription()).register(registry);
     Gauge
         .builder(SCAN_ZOMBIE_THREADS.getName(), this,
             TabletServerScanMetrics::getZombieThreadsCount)
-        .description("Number of scan threads that have no associated client 
session")
-        .register(registry);
+        .description(SCAN_ZOMBIE_THREADS.getDescription()).register(registry);
   }
 
 }
diff --git 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
index 37beff251c..52453916cc 100644
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
@@ -76,21 +76,21 @@ public class TabletServerUpdateMetrics implements 
MetricsProducer {
   @Override
   public void registerMetrics(MeterRegistry registry) {
     FunctionCounter.builder(UPDATE_ERRORS.getName(), permissionErrorsCount, 
AtomicLong::get)
-        .tags("type", "permission").description("Counts permission 
errors").register(registry);
+        .tags("type", 
"permission").description(UPDATE_ERRORS.getDescription()).register(registry);
     FunctionCounter.builder(UPDATE_ERRORS.getName(), unknownTabletErrorsCount, 
AtomicLong::get)
-        .tags("type", "unknown.tablet").description("Counts unknown tablet 
errors")
+        .tags("type", 
"unknown.tablet").description(UPDATE_ERRORS.getDescription())
         .register(registry);
     FunctionCounter.builder(UPDATE_ERRORS.getName(), 
constraintViolationsCount, AtomicLong::get)
-        .tags("type", "constraint.violation").description("Counts constraint 
violations")
+        .tags("type", 
"constraint.violation").description(UPDATE_ERRORS.getDescription())
         .register(registry);
     commitPrepStat = Timer.builder(UPDATE_COMMIT_PREP.getName())
-        .description("preparing to commit mutations").register(registry);
+        .description(UPDATE_COMMIT_PREP.getDescription()).register(registry);
     walogWriteTimeStat = Timer.builder(UPDATE_WALOG_WRITE.getName())
-        .description("writing mutations to WAL").register(registry);
-    commitTimeStat = 
Timer.builder(UPDATE_COMMIT.getName()).description("committing mutations")
-        .register(registry);
+        .description(UPDATE_WALOG_WRITE.getDescription()).register(registry);
+    commitTimeStat = Timer.builder(UPDATE_COMMIT.getName())
+        .description(UPDATE_COMMIT.getDescription()).register(registry);
     mutationArraySizeStat = 
DistributionSummary.builder(UPDATE_MUTATION_ARRAY_SIZE.getName())
-        .description("mutation array").register(registry);
+        
.description(UPDATE_MUTATION_ARRAY_SIZE.getDescription()).register(registry);
   }
 
 }

Reply via email to