# Apache Accumulo Documentation : Metrics

As of version 1.2, metrics for the Master and Tablet Servers are available. A new configuration file, accumulo-metrics.xml, is located in the conf directory and can be modified to turn metrics collection on or off, and to enable file logging if desired. This file can be modified at runtime and the changes will be seen after a few seconds. Except where specified all time values are in milliseconds.

# Master Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=MasterMetricsMBean,name= <current thread name>

Method Name | Description
public long getPingCount(); | Number of pings to tablet servers
public long getPingAvgTime(); | Average time for each ping
public long getPingMinTime(); | Minimum time for each ping
public long getPingMaxTime(); | Maximum time for each ping
public String getTServerWithHighestPingTime(); | tablet server with highest ping
public void reset(); | Resets all counters to zero

# Tablet Server Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerMBean,name= <current thread name>

Method Name | Description
public int getOnlineCount(); | Number of tablets online
public int getOpeningCount(); | Number of tablets that are being opened
public int getUnopenedCount(); | Number or unopened tablets
public int getMajorCompactions(); | Number of Major Compactions currently running
public int getMajorCompactionsQueued(); | Number of Major Compactions yet to run
public int getMinorCompactions(); | Number of Minor Compactions currently running
public int getMinorCompactionsQueued(); | Number of Minor Compactions yet to run
public int getShutdownStage(); | Current stage in the shutdown process
public long getEntries(); | Number of entries in all the tablets
public long getEntriesInMemory(); | Number of entries in memory on all tablet servers
public long getQueries(); | Number of queries currently running on all the tablet servers
public long getIngest(); | Number of entries currently being ingested on all the tablet servers
public long getTotalMinorCompactions(); | Number of Minor Compactions completed
public double getHoldTime(); | Number of seconds that ingest is waiting for memory to be freed on tablet servers
public String getName(); | Address of the master

# Tablet Server Minor Compaction Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerMinCMetricsMBean,name= <current thread name>

Method Name | Description
public long getMinorCompactionCount(); | Number of completed Minor Compactions on all tablet servers
public long getMinorCompactionAvgTime(); | Average time to complete Minor Compaction
public long getMinorCompactionMinTime(); | Minimum time to complete Minor Compaction
public long getMinorCompactionMaxTime(); | Maximum time to complete Minor Compaction
public long getMinorCompactionQueueCount(); | Number of Minor Compactions yet to be run
public long getMinorCompactionQueueAvgTime(); | Average time Minor Compaction is in the queue
public long getMinorCompactionQueueMinTime(); | Minimum time Minor Compaction is in the queue
public long getMinorCompactionQueueMaxTime(); | Maximum time Minor Compaction is in the queue
public void reset(); | Resets all counters to zero

# Tablet Server Scan Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerScanMetricsMBean,name= <current thread name>

Method Name | Description
public long getScanCount(); | Number of scans completed
public long getScanAvgTime(); | Average time for scan operation
public long getScanMinTime(); | Minimum time for scan operation
public long getScanMaxTime(); | Maximum time for scan operation
public long getResultCount(); | Number of scans that returned a result
public long getResultAvgSize(); | Average size of scan result
public long getResultMinSize(); | Minimum size of scan result
public long getResultMaxSize(); | Maximum size of scan result
public void reset(); | Resets all counters to zero

# Tablet Server Update Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerUpdateMetricsMBean,name= <current thread name>

Method Name | Description
public long getPermissionErrorCount(); | Number of permission errors
public long getUnknownTabletErrorCount(); | Number of unknown tablet errors
public long getMutationArrayAvgSize(); | Average size of mutation array
public long getMutationArrayMinSize(); | Minimum size of mutation array
public long getMutationArrayMaxSize(); | Maximum size of mutation array
public long getCommitPrepCount(); | Number of commit preparations
public long getCommitPrepMinTime(); | Minimum time for commit preparation
public long getCommitPrepMaxTime(); | Maximum time for commit preparatation
public long getCommitPrepAvgTime(); | Average time for commit preparation
public long getConstraintViolationCount(); | Number of constraint violations
public long getWALogWriteCount(); | Number of writes to the Write Ahead Log
public long getWALogWriteMinTime(); | Minimum time of a write to the Write Ahead Log
public long getWALogWriteMaxTime(); | Maximum time of a write to the Write Ahead Log
public long getWALogWriteAvgTime(); | Average time of a write to the Write Ahead Log
public long getCommitCount(); | Number of commits
public long getCommitMinTime(); | Minimum time for a commit
public long getCommitMaxTime(); | Maximum time for a commit
public long getCommitAvgTime(); | Average time for a commit
public void reset(); | Resets all counters to zero

# Thrift Server Metrics

JMX Object Name: org.apache.accumulo.server.metrics:type=ThriftMetricsMBean,name= <thread name>

Method Name | Description
public long getIdleCount(); | Number of times the Thrift server has been idle
public long getIdleMinTime(); | Minimum amount of time the Thrift server has been idle
public long getIdleMaxTime(); | Maximum amount of time the Thrift server has been idle
public long getIdleAvgTime(); | Average time the Thrift server has been idle
public long getExecutionCount(); | Number of calls processed by the Thrift server
public long getExecutionMinTime(); | Minimum amount of time executing method
public long getExecutionMaxTime(); | Maximum amount of time executing method
public long getExecutionAvgTime(); | Average time executing methods
public void reset(); | Resets all counters to zero