/api/stats/threads

线程端点用于调试 TSD,并提供对各种线程的状态和执行的了解,而不必诉诸 JStack 跟踪。 (v2.2)

Verbs

  • GET

Requests

无可用参数。

Example Request

Query String

http://localhost:4242/api/stats/threads

Response

响应是一个对象数组。响应中的字段包括:

NameData TypeDescriptionExample
threadIDInteger线程的数字 ID1
priorityInteger线程的执行优先级5
nameString线程的字符串名称,通常默认分配新的 I/OWorker#23
interruptedBoolean线程是否被中断false
stateString有效的 Java 线程状态之一RUNNABLE
stackArray<String>显示执行当前位置的堆栈跟踪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)"
        ]
    }
]