/api/stats/threads¶
The threads endpoint is used for debugging the TSD and providing insight into the state and execution of various threads without having to resort to a JStack trace. (v2.2)
Verbs¶
GET
Requests¶
No parameters available.
Example Request¶
Query String
http://localhost:4242/api/stats/threads
Response¶
The response is an array of objects. Fields in the response include:
Name |
Data Type |
Description |
Example |
---|---|---|---|
threadID |
Integer |
Numeric ID of the thread |
1 |
priority |
Integer |
Execution priority for the thread |
5 |
name |
String |
String name of the thread, usually assigned by default |
New I/O worker #23 |
interrupted |
Boolean |
Whether or not the thread was interrupted |
false |
state |
String |
One of the valid Java thread states |
RUNNABLE |
stack |
Array<String> |
A stack trace showing where execution is currently located |
See Below |
Example Response¶
[
{
"threadID": 33,
"priority": 5,
"name": "AsyncHBase I/O Worker #23",
"interrupted": false,
"state": "RUNNABLE",
"stack": [
"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)",
"sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136)",
"sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)",
"sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)",
"sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)",
"org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68)",
"org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:415)",
"org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)",
"org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)",
"org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)",
"org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)",
"org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)",
"java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)",
"java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)",
"java.lang.Thread.run(Thread.java:695)"
]
},
{
"threadID": 6,
"priority": 9,
"name": "Signal Dispatcher",
"interrupted": false,
"state": "RUNNABLE",
"stack": []
},
{
"threadID": 21,
"priority": 5,
"name": "AsyncHBase I/O Worker #11",
"interrupted": false,
"state": "RUNNABLE",
"stack": [
"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)",
"sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136)",
"sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69)",
"sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)",
"sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)",
"org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:68)",
"org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:415)",
"org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:212)",
"org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)",
"org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)",
"org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)",
"org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)",
"java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)",
"java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)",
"java.lang.Thread.run(Thread.java:695)"
]
},
{
"threadID": 2,
"priority": 10,
"name": "Reference Handler",
"interrupted": false,
"state": "WAITING",
"stack": [
"java.lang.Object.wait(Native Method)",
"java.lang.Object.wait(Object.java:485)",
"java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)"
]
},
{
"threadID": 44,
"priority": 5,
"name": "OpenTSDB Timer TSDB Timer #1",
"interrupted": false,
"state": "TIMED_WAITING",
"stack": [
"java.lang.Thread.sleep(Native Method)",
"org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:483)",
"org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:392)",
"org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)",
"java.lang.Thread.run(Thread.java:695)"
]
}
]