/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)"
]
}
]