ACCUMULO-4531 Removed administration.html, metrics.html, distributedTracing.html
* Similar docs exist in 'Administration' section of user manual Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/43e98d4f Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/43e98d4f Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/43e98d4f Branch: refs/heads/master Commit: 43e98d4f98d7ca9d93cb15b909221d3192b8795d Parents: fc1a68a Author: Mike Walch <mwa...@apache.org> Authored: Tue Dec 6 10:45:03 2016 -0500 Committer: Mike Walch <mwa...@apache.org> Committed: Tue Dec 6 14:04:54 2016 -0500 ---------------------------------------------------------------------- .../main/asciidoc/chapters/administration.txt | 6 + docs/src/main/resources/administration.html | 201 ------------------- docs/src/main/resources/distributedTracing.html | 106 ---------- docs/src/main/resources/metrics.html | 151 -------------- 4 files changed, 6 insertions(+), 458 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/43e98d4f/docs/src/main/asciidoc/chapters/administration.txt ---------------------------------------------------------------------- diff --git a/docs/src/main/asciidoc/chapters/administration.txt b/docs/src/main/asciidoc/chapters/administration.txt index e0d2f48..1478543 100644 --- a/docs/src/main/asciidoc/chapters/administration.txt +++ b/docs/src/main/asciidoc/chapters/administration.txt @@ -582,6 +582,7 @@ The left navigation bar will have a new link to Shell. An Accumulo user name and password must be entered for access to the shell. === Metrics + Accumulo is capable of using the Hadoop Metrics2 library and is configured by default to use it. Metrics2 is a library which allows for routing of metrics generated by registered MetricsSources to configured MetricsSinks. Examples of sinks that are implemented by Hadoop include file-based logging, Graphite and Ganglia. All metric sources are exposed via JMX @@ -611,6 +612,7 @@ https://hadoop.apache.org/docs/current/api/org/apache/hadoop/metrics2/package-su [[tracing]] === Tracing + It can be difficult to determine why some operations are taking longer than expected. For example, you may be looking up items with very low latency, but sometimes the lookups take much longer. Determining the @@ -632,6 +634,7 @@ The design of Accumulo's distributed tracing follows that of http://research.google.com/pubs/pub36356.html[Google's Dapper]. ==== Tracers + To collect traces, Accumulo needs at least one server listed in +$ACCUMULO_CONF_DIR/tracers+. The server collects traces from clients and writes them to the +trace+ table. The Accumulo @@ -654,6 +657,7 @@ quorum, take care to configure Accumulo with unique values for this property. ==== Configuring Tracing + Traces are collected via SpanReceivers. The default SpanReceiver configured is org.apache.accumulo.core.trace.ZooTraceClient, which sends spans to an Accumulo Tracer process, as discussed in the @@ -854,11 +858,13 @@ Remember to close all spans and disable tracing when finished. DistributedTrace.disable(); ==== Viewing Collected Traces + To view collected traces, use the "Recent Traces" link on the Monitor UI. You can also programmatically access and print traces using the +TraceDump+ class. ===== Trace Table Format + This section is for developers looking to use data recorded in the trace table directly, above and beyond the default services of the Accumulo monitor. Please note the trace table format and its supporting classes http://git-wip-us.apache.org/repos/asf/accumulo/blob/43e98d4f/docs/src/main/resources/administration.html ---------------------------------------------------------------------- diff --git a/docs/src/main/resources/administration.html b/docs/src/main/resources/administration.html deleted file mode 100644 index 1782171..0000000 --- a/docs/src/main/resources/administration.html +++ /dev/null @@ -1,201 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<html> -<head> -<title>Accumulo Administration</title> -<link rel='stylesheet' type='text/css' href='documentation.css' media='screen'/> -</head> -<body> - -<h1>Apache Accumulo Documentation : Administration</h1> - - -<h3>Configure Accumulo</h3> - -<p>For the most part, accumulo is ready to go out of the box. To start it, first you must distribute and install -the accumulo software to each machine in the cloud that you wish to run on. The software should be installed -in the same directory on each machine and configured identically (or at least similarly... see the configuration -sections for more details). Select one machine to be your bootstrap machine, the one that you will start accumulo -with. Note that you must have passphrase-less ssh access to each machine from your bootstrap machine. On this machine, -create a conf/masters and conf/tservers file. In the masters file, type the hostname of the machine you wish to run the master on (probably localhost). -In the tservers file, type the hostnames, separated by newlines of each machine you wish to participate in accumulo as a tablet server. If you neglect -to create these files, the startup scripts will assume you are trying to run on localhost only, and will instantiate a single-node instance only. -It is probably a good idea to back up these files, or distribute them to the other nodes as well, so that you can easily boot up accumulo -from another machine, if necessary. You can also make create a <code>conf/accumulo-env.sh</code> file if you want to configure any custom environment variables. - -<h3>Initializing Accumulo</h3> - -<p>Once properly configured, you can initialize or prepare an instance of Accumulo by running the following command: - -<pre> -accumulo init -</pre> - -Follow the prompts and you are ready to go. This step only prepares accumulo to run, it does not start up accumulo. - -<h3>Starting accumulo</h3> - -<p>Once you have configured Accumulo to your liking, and distributed the appropriate configuration to each machine, you can start accumulo with the following command: - -<pre> -accumulo-cluster start -</pre> - -<p>If at any time, you wish to bring accumulo servers online after one or more have been shutdown, you can run the command again. This step will only start services -that are not already running. Be aware that if you run this command on more than one machine, you may unintentionally start an extra copy of the garbage collector -service and the monitoring service, since each of these will run on the server on which you run this script. - -<h3>Stopping accumulo</h3> - -<p>When you want to stop Accumulo, run the following command:</p> - -<pre> -accumulo-cluster stop -</pre> - -<p>This will prompt for the root password so that it can ask the master to shut down the tablet servers gracefully. If the tablet servers do not respond, or the master -takes too long, you can force a shutdown by hitting Ctrl-C at the password prompt, and waiting 15 seconds for the script to force a shutdown. Normally, once the shutdown -happens gracefully, unresponsive tablet servers are forcibly shut down after 5 seconds. - -<h3>Adding a Node</h3> - -<p>Update your <code>conf/tservers</code> file to account for the addition; at a minimum this needs to be on the host(s) being added, but in practice it's good to ensure consistent configuration across all nodes.</p> - -<pre> -accumulo admin start <host(s)> {<host> ...} -</pre> - -<p>Alternatively, you can ssh to each of the hosts you want to add and run <code>accumulo-service tserver start</code>.</p> - -<p>Make sure the host in question has the new configuration, or else the tablet server won't start.</p> - -<h3>Decomissioning a Node</h3> - -<p>If you need to take a node out of operation, you can trigger a graceful shutdown of a tablet server. Accumulo will automatically rebalance the tablets across the available tablet servers.</p> - -<pre> -bin/accumulo admin stop <host(s)> {<host> ...} -</pre> - -<p>Alternatively, you can ssh to each of the hosts you want to remove and run <code>bin/accumulo-service tserver stop</code>.</p> - -<p>Be sure to update your <code>conf/tservers</code> file to account for the removal of these hosts. Bear in mind that the monitor will not re-read the tservers file automatically, so it will report the decomissioned servers as down; it's recommended that you restart the monitor so that the node list is up to date.</p> - -<h3>Configuration</h3> -<p>Accumulo configuration information is stored in a xml file and ZooKeeper. System wide -configuration information is stored in accumulo-site.xml. In order for accumulo to -find this file its directory must be on the classpath. Accumulo will log a warning if it can not find -it, and will use built-in default values. The accumulo scripts try to put the config directory on the classpath. - -<p>Starting with version 1.0, per-table configuration was -introduced. This information is stored in ZooKeeper. This information -can be manipulated using the config command in the accumulo -shell. ZooKeeper will notify all tablet servers when config properties -are modified. This makes it possible to change major compaction -settings, for example, for a table while accumulo is running. - -<p>Per-table configuration settings override system settings. - -<p>See the possible configuration options and their default values in the user manual. - -<h3>Managing system resources</h3> - -<p>It is very important how disk and memory usage are allocated across the cluster and how servers processes are allocated across the cluster. - -<ul> - <li> On larger clusters, run the namenode, secondary namenode, jobtracker, accumulo master, and zookeepers on dedicated nodes. On a smaller cluster you may want to run all master processes on one node. When doing this ensure that the max total memory that could be used by all master processes does not exceed system memory. Swapping on your single master node would not be good. - <li> Accumulo 1.2 and earlier rely on zookeeper but do not use it heavily. On a large cluster setting up 3 or 5 zookeepers should be plenty. Since there is no performance gain when running more zookeepers, fault tolerance is the only benefit. - <li> On worker nodes ensure the memory used by all worker processes is less than system memory. For example the following worker node config could use up to 38G of RAM : tablet server 3G, logger 1G, data node 2G, up to 10 mappers each using 2G, and up 6 reducers each using 2G. If the worker nodes only have 32G, then using 38G will result in swapping which could cause tablet server to lose their lock in zookeeper and die. Even if swapping does not cause tablet servers to die, it will kill performance. - <li>Accumulo and map reduce will work with less memory, but it has an impact. Accumulo will minor compact more frequently when it has less map memory, resulting in more major compactions. The minor and major compactions both use CPU and HDFS I/O. The same goes for map reduce, the less memory you give it, the more it has to sort and spill. Try to minimize spilling and compactions as much as possible without causing swapping. - <li>Accumulo writes data to disk before it sorts it in memory. This allows data that was in memory when a tablet server crashes to be recovered. Each worker node needs a local directory to write this data to. Ensure the file system holding this directory has at least 100G free on all nodes. Also, if this directory is in a filesystem used by map reduce or hdfs they may effect each others performance. -</ul> - -<p>There are a few settings that determine how much memory accumulo tablet -servers use. In accumulo-env.sh there is a setting called -ACCUMULO_TSERVER_OPTS. By default this is set to something like "-Xmx512m --Xms512m". These are Java jvm options asking Java to use 512 megabytes of -memory. By default accumulo stores data written to it outside of the Java -memory space in order to avoid pauses caused by the Java garbage collector. The -amount of memory it uses for this data is determined by the accumulo setting -"tserver.memory.maps.max". Since this memory is outside of the Java managed -memory, the process can grow larger than the -Xmx setting. So if -Xmx is set -to 512M and tserver.memory.maps.max is set to 1G, a tablet server process can -be expected to use 1.5G. If tserver.memory.maps.native.enabled is set to -false, then accumulo will only use memory managed by Java and the process will -not use more than what -Xmx is set to. In this case the -tserver.memory.maps.max setting should be 75% of the -Xmx setting. - -<h3>Swappiness</h3> - -<p>The linux kernel will swap out memory of running programs to increase -the size of the disk buffers. This tendency to swap out is controlled by -a kernel setting called "swappiness." This behavior does not work well for -large java servers. When a java process runs a garbage collection, it touches -lots of pages forcing all swapped out pages back into memory. It is suggested -that swappiness be set to zero. - -<pre> - # sysctl -w vm.swappiness=0 - # echo "vm.swappiness = 0" >> /etc/sysctl.conf -</pre> - -<h3>Zone reclaim mode</h3> - -<p>Turn off zone reclaim mode. See this great article for all the -<a href="http://engineering.linkedin.com/performance/optimizing-linux-memory-management-low-latency-high-throughput-databases"> -details on why. -</a> - -<pre> - # sysctl -w vm.zone_reclaim_mode=0 - # echo "vm.zone_reclaim_mode = 0" >> /etc/sysctl.conf -</pre> - -<h3>Hadoop timeouts</h3> - -<p>In order to detect failed datanodes, use shorter timeouts. Add the following to your -hdfs-site.xml file: - -<pre> - - <property> - <name>dfs.socket.timeout</name> - <value>3000</value> - </property> - - <property> - <name>dfs.socket.write.timeout</name> - <value>5000</value> - </property> - - <property> - <name>ipc.client.connect.timeout</name> - <value>1000</value> - </property> - - <property> - <name>ipc.clident.connect.max.retries.on.timeouts</name> - <value>2</value> - </property> - - - -</pre> - - -</body> -</html> http://git-wip-us.apache.org/repos/asf/accumulo/blob/43e98d4f/docs/src/main/resources/distributedTracing.html ---------------------------------------------------------------------- diff --git a/docs/src/main/resources/distributedTracing.html b/docs/src/main/resources/distributedTracing.html deleted file mode 100644 index 2afe991..0000000 --- a/docs/src/main/resources/distributedTracing.html +++ /dev/null @@ -1,106 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<html> -<head> -<title>Accumulo Distributed Tracing</title> -<link rel='stylesheet' type='text/css' href='documentation.css' media='screen'/> -</head> -<body> - -<h1>Apache Accumulo Documentation : Distributed Tracing</h1> - -<p>It can be difficult to determine why some operations are taking longer than expected. For example, you may be looking up items with -very low latency, but sometimes the lookups take much longer. Determining the cause of the delay is difficult because the system is -distributed, and the typical lookup is fast.</p> - -<p>To provide insight into what accumulo is doing during your scan, you can turn on tracing before you do your operation:</p> - -<pre> - import org.apache.accumulo.core.trace.DistributedTrace; - import org.apache.htrace.Sampler; - import org.apache.htrace.Trace; - import org.apache.htrace.TraceScope; - ... - - DistributedTrace.enable(hostname, "myApplication"); - TraceScope scanTrace = Trace.startSpan("client:scan", Sampler.ALWAYS); - BatchScanner scanner = conn.createBatchScanner(...); - // Configure your scanner - for (Entry<Key, Value> entry : scanner) { - } - scanTrace.close(); - DistributedTrace.disableTracing(); -</pre> - - -<p>Accumulo has been instrumented to record the time that various operations take when tracing is turned on. The fact that tracing is -enabled follows all the requests made on behalf of the user throughout the distributed infrastructure of accumulo, and across all -threads of execution.</p> - -<p>These time spans will be inserted into the trace accumulo table. You can browse recent traces from the accumulo monitor page. -You can also read the trace table directly.</p> - -<p>Tracing is supported in the shell. For example: - -<pre> -root@test> createtable test -root@test test> insert a b c d -root@test test> trace on -root@test test> scan -a b:c [] d -root@test test> trace off -Waiting for trace information -Waiting for trace information -Waiting for trace information -Trace started at 2011/03/16 09:20:31.387 -Time Start Service@Location Name - 3355+0 shell@host2 shell:root - 1+1 shell@host2 client:listUsers - 1+1434 tserver@host2 getUserAuthorizations - 1+1434 shell@host2 client:getUserAuthorizations - 10+1550 shell@host2 scan - 9+1551 shell@host2 scan:location - 7+1552 shell@host2 client:startScan - 6+1553 tserver@host2 startScan - 5+1553 tserver@host2 tablet read ahead 11 - 1+1559 shell@host2 client:closeScan - 1+1561 shell@host2 client:listUsers -</pre> - -<p>Here we can see that the shell is getting the list of users (which is used for tab-completion) after every command. While -unexpected, it is a fast operation. In fact, all the requests are very fast, and most of the time is spent waiting for the user -to make a request while tracing is turned on.</p> - -<p>Spans are added to the trace table asynchronously. The user may have to wait several seconds for all requests to complete before the -trace information is complete.</p> - -<p>You can extract the trace data out of the trace table. Each span is a stored as a column in a row named for the trace id. -The following code will print out a trace:</p> - -<pre> -String table = AccumuloConfiguration.getSystemConfiguration().get(Property.TRACE_TABLE); -Scanner scanner = shellState.connector.createScanner(table, auths); -scanner.setRange(new Range(new Text(Long.toHexString(scanTrace.traceId())))); -TraceDump.printTrace(scanner, new Printer() { - void print(String line) { - System.out.println(line); - } -}); -</pre> - -</body> -</html> http://git-wip-us.apache.org/repos/asf/accumulo/blob/43e98d4f/docs/src/main/resources/metrics.html ---------------------------------------------------------------------- diff --git a/docs/src/main/resources/metrics.html b/docs/src/main/resources/metrics.html deleted file mode 100644 index 7ddef6e..0000000 --- a/docs/src/main/resources/metrics.html +++ /dev/null @@ -1,151 +0,0 @@ -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<html> -<head> -<title>Accumulo Metrics</title> -<link rel='stylesheet' type='text/css' href='documentation.css' media='screen'/> -</head> -<body> - -<h1>Apache Accumulo Documentation : Metrics</h1> - -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. -<h1>Master Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=MasterMetricsMBean,name= <current thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public long getPingCount();</td><td>Number of pings to tablet servers</td></tr> - <tr><td>public long getPingAvgTime();</td><td>Average time for each ping</td></tr> - <tr class="highlight"><td>public long getPingMinTime();</td><td>Minimum time for each ping</td></tr> - <tr><td>public long getPingMaxTime();</td><td>Maximum time for each ping</td></tr> - <tr class="highlight"><td>public String getTServerWithHighestPingTime();</td><td>tablet server with highest ping</td></tr> - <tr><td>public void reset();</td><td>Resets all counters to zero</td></tr> - </tbody> -</table> -<h1>Tablet Server Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerMBean,name= <current thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public int getOnlineCount();</td><td>Number of tablets online</td></tr> - <tr><td>public int getOpeningCount();</td><td>Number of tablets that are being opened</td></tr> - <tr class="highlight"><td>public int getUnopenedCount();</td><td>Number or unopened tablets</td></tr> - <tr><td>public int getMajorCompactions();</td><td>Number of Major Compactions currently running</td></tr> - <tr class="highlight"><td>public int getMajorCompactionsQueued();</td><td>Number of Major Compactions yet to run</td></tr> - <tr><td>public int getMinorCompactions();</td><td>Number of Minor Compactions currently running</td></tr> - <tr class="highlight"><td>public int getMinorCompactionsQueued();</td><td>Number of Minor Compactions yet to run</td></tr> - <tr><td>public int getShutdownStage();</td><td>Current stage in the shutdown process</td></tr> - <tr class="highlight"><td>public long getEntries();</td><td>Number of entries in all the tablets</td></tr> - <tr><td>public long getEntriesInMemory();</td><td>Number of entries in memory on all tablet servers</td></tr> - <tr class="highlight"><td>public long getQueries();</td><td>Number of queries currently running on all the tablet servers</td></tr> - <tr><td>public long getIngest();</td><td>Number of entries currently being ingested on all the tablet servers</td></tr> - <tr class="highlight"><td>public long getTotalMinorCompactions();</td><td>Number of Minor Compactions completed</td></tr> - <tr><td>public double getHoldTime();</td><td>Number of seconds that ingest is waiting for memory to be freed on tablet servers</td></tr> - <tr class="highlight"><td>public String getName();</td><td>Address of the master</td></tr> - </tbody> -</table> -<h1>Tablet Server Minor Compaction Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerMinCMetricsMBean,name= <current thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public long getMinorCompactionCount();</td><td>Number of completed Minor Compactions on all tablet servers</td></tr> - <tr><td>public long getMinorCompactionAvgTime();</td><td>Average time to complete Minor Compaction</td></tr> - <tr class="highlight"><td>public long getMinorCompactionMinTime();</td><td>Minimum time to complete Minor Compaction</td></tr> - <tr><td>public long getMinorCompactionMaxTime();</td><td>Maximum time to complete Minor Compaction</td></tr> - <tr class="highlight"><td>public long getMinorCompactionQueueCount();</td><td>Number of Minor Compactions yet to be run</td></tr> - <tr><td>public long getMinorCompactionQueueAvgTime();</td><td>Average time Minor Compaction is in the queue</td></tr> - <tr class="highlight"><td>public long getMinorCompactionQueueMinTime();</td><td>Minimum time Minor Compaction is in the queue</td></tr> - <tr><td>public long getMinorCompactionQueueMaxTime();</td><td>Maximum time Minor Compaction is in the queue</td></tr> - <tr class="highlight"><td>public void reset();</td><td>Resets all counters to zero</td></tr> - </tbody> -</table> -<h1>Tablet Server Scan Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerScanMetricsMBean,name= <current thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public long getScanCount();</td><td>Number of scans completed</td></tr> - <tr><td>public long getScanAvgTime();</td><td>Average time for scan operation</td></tr> - <tr class="highlight"><td>public long getScanMinTime();</td><td>Minimum time for scan operation</td></tr> - <tr><td>public long getScanMaxTime();</td><td>Maximum time for scan operation</td></tr> - <tr class="highlight"><td>public long getResultCount();</td><td>Number of scans that returned a result</td></tr> - <tr><td>public long getResultAvgSize();</td><td>Average size of scan result</td></tr> - <tr class="highlight"><td>public long getResultMinSize();</td><td>Minimum size of scan result</td></tr> - <tr><td>public long getResultMaxSize();</td><td>Maximum size of scan result</td></tr> - <tr class="highlight"><td>public void reset();</td><td>Resets all counters to zero</td></tr> - </tbody> -</table> -<h1>Tablet Server Update Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=TabletServerUpdateMetricsMBean,name= <current thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public long getPermissionErrorCount();</td><td>Number of permission errors</td></tr> - <tr><td>public long getUnknownTabletErrorCount();</td><td>Number of unknown tablet errors</td></tr> - <tr class="highlight"><td>public long getMutationArrayAvgSize();</td><td>Average size of mutation array</td></tr> - <tr><td>public long getMutationArrayMinSize();</td><td>Minimum size of mutation array</td></tr> - <tr class="highlight"><td>public long getMutationArrayMaxSize();</td><td>Maximum size of mutation array</td></tr> - <tr><td>public long getCommitPrepCount();</td><td>Number of commit preparations</td></tr> - <tr class="highlight"><td>public long getCommitPrepMinTime();</td><td>Minimum time for commit preparation</td></tr> - <tr><td>public long getCommitPrepMaxTime();</td><td>Maximum time for commit preparatation</td></tr> - <tr class="highlight"><td>public long getCommitPrepAvgTime();</td><td>Average time for commit preparation</td></tr> - <tr><td>public long getConstraintViolationCount();</td><td>Number of constraint violations</td></tr> - <tr class="highlight"><td>public long getWALogWriteCount();</td><td>Number of writes to the Write Ahead Log</td></tr> - <tr><td>public long getWALogWriteMinTime();</td><td>Minimum time of a write to the Write Ahead Log</td></tr> - <tr class="highlight"><td>public long getWALogWriteMaxTime();</td><td>Maximum time of a write to the Write Ahead Log</td></tr> - <tr><td>public long getWALogWriteAvgTime();</td><td>Average time of a write to the Write Ahead Log</td></tr> - <tr class="highlight"><td>public long getCommitCount();</td><td>Number of commits</td></tr> - <tr><td>public long getCommitMinTime();</td><td>Minimum time for a commit</td></tr> - <tr class="highlight"><td>public long getCommitMaxTime();</td><td>Maximum time for a commit</td></tr> - <tr><td>public long getCommitAvgTime();</td><td>Average time for a commit</td></tr> - <tr class="highlight"><td>public void reset();</td><td>Resets all counters to zero</td></tr> - </tbody> -</table> -<h1>Thrift Server Metrics</h1> -<p>JMX Object Name: org.apache.accumulo.server.metrics:type=ThriftMetricsMBean,name= <thread name></p> -<table> - <thead> - <tr><td>Method Name</td><td>Description</td></tr> - </thead> - <tbody> - <tr class="highlight"><td>public long getIdleCount();</td><td>Number of times the Thrift server has been idle</td></tr> - <tr><td>public long getIdleMinTime();</td><td>Minimum amount of time the Thrift server has been idle</td></tr> - <tr class="highlight"><td>public long getIdleMaxTime();</td><td>Maximum amount of time the Thrift server has been idle</td></tr> - <tr><td>public long getIdleAvgTime();</td><td>Average time the Thrift server has been idle</td></tr> - <tr class="highlight"><td>public long getExecutionCount();</td><td>Number of calls processed by the Thrift server</td></tr> - <tr><td>public long getExecutionMinTime();</td><td>Minimum amount of time executing method</td></tr> - <tr class="highlight"><td>public long getExecutionMaxTime();</td><td>Maximum amount of time executing method</td></tr> - <tr><td>public long getExecutionAvgTime();</td><td>Average time executing methods</td></tr> - <tr class="highlight"><td>public void reset();</td><td>Resets all counters to zero</td></tr> - </tbody> -</table> -</body> -</html>