Nodes hot threads

The nodes hot threads endpoint provides information about busy JVM threads for selected cluster nodes. It provides a unique view of the of activity each node.

Example

  1. GET /_nodes/hot_threads

Path and HTTP methods

  1. GET /_nodes/hot_threads
  2. GET /_nodes/{nodeId}/hot_threads

URL parameters

You can include the following URL parameters in your request. All parameters are optional.

ParameterTypeDescription
nodeIdStringA comma-separated list of node IDs to filter results. Supports node filters. Defaults to _all.
snapshotsIntegerNumber of samples of thread stacktraces. Defaults to 10.
intervalTimeValueInterval between consecutive samples. Defaults to 500ms.
threadsIntegerA number of top busiest threads to return information about. Defaults to 3.
ignore_idle_threadsBooleanDon’t show threads that are in known-idle states, such as waiting on a socket select or pulling from an empty task queue. Defaults to true.
typeStringSupported thread types are cpu, wait, or block. Defaults to cpu.
timeoutTimeValueA request timeout. Defaults to 30s.

Response

Unlike the majority of OpenSearch API responses, this response is in a text format.

It consists of one section per each cluster node included in the response.

Each section starts with a single line containing the following segments:

Line segmentDescription
::: Line start (a distinct visual symbol).
{global-eu-35}Node name.
{uFPbKLDOTlOmdnwUlKW8sw}NodeId.
{OAM8OT5CQAyasWuIDeVyUA}EphemeralId.
{global-eu-35.local}Host name.
{[gdv2:a284:2acv:5fa6:0:3a2:7260:74cf]:9300}Host address.
{dimr}Node roles (d=data, i=ingest, m=cluster manager, r=remote cluster client).
{zone=west-a2, shard_indexing_pressure_enabled=true}Node attributes.

Then follows information about threads of selected type.

  1. ::: {global-eu-35}{uFPbKLDOTlOmdnwUlKW8sw}{OAM8OT5CQAyasWuIDeVyUA}{global-eu-35.local}{[gdv2:a284:2acv:5fa6:0:3a2:7260:74cf]:9300}{dimr}{zone=west-a2, shard_indexing_pressure_enabled=true}
  2. Hot threads at 2022-04-01T15:15:27.658Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
  3. 0.1% (645micros out of 500ms) cpu usage by thread 'opensearch[global-eu-35][transport_worker][T#7]'
  4. 4/10 snapshots sharing following 3 elements
  5. io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
  6. io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
  7. java.base@11.0.14.1/java.lang.Thread.run(Thread.java:829)
  8. ::: {global-eu-62}{4knOxAdERlOB19zLQIT1bQ}{HJuZs2HiQ_-8Elj0Fvi_1g}{global-eu-62.local}{[gdv2:a284:2acv:5fa6:0:3a2:bba6:fe3f]:9300}{dimr}{zone=west-a2, shard_indexing_pressure_enabled=true}
  9. Hot threads at 2022-04-01T15:15:27.659Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
  10. 18.7% (93.4ms out of 500ms) cpu usage by thread 'opensearch[global-eu-62][transport_worker][T#3]'
  11. 6/10 snapshots sharing following 3 elements
  12. io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
  13. io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
  14. java.base@11.0.14.1/java.lang.Thread.run(Thread.java:829)
  15. ::: {global-eu-44}{8WW3hrkcTwGvgah_L8D_jw}{Sok7spHISFyol0jFV6i0kw}{global-eu-44.local}{[gdv2:a284:2acv:5fa6:0:3a2:9120:e79e]:9300}{dimr}{zone=west-a2, shard_indexing_pressure_enabled=true}
  16. Hot threads at 2022-04-01T15:15:27.659Z, interval=500ms, busiestThreads=3, ignoreIdleThreads=true:
  17. 42.6% (212.7ms out of 500ms) cpu usage by thread 'opensearch[global-eu-44][write][T#5]'
  18. 2/10 snapshots sharing following 43 elements
  19. java.base@11.0.14.1/sun.nio.ch.IOUtil.write1(Native Method)
  20. java.base@11.0.14.1/sun.nio.ch.EPollSelectorImpl.wakeup(EPollSelectorImpl.java:254)
  21. io.netty.channel.nio.NioEventLoop.wakeup(NioEventLoop.java:787)
  22. io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:846)
  23. io.netty.util.concurrent.SingleThreadEventExecutor.execute(SingleThreadEventExecutor.java:815)
  24. io.netty.channel.AbstractChannelHandlerContext.safeExecute(AbstractChannelHandlerContext.java:989)
  25. io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:796)
  26. io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
  27. io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020)
  28. io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311)
  29. org.opensearch.transport.netty4.Netty4TcpChannel.sendMessage(Netty4TcpChannel.java:159)
  30. app//org.opensearch.transport.OutboundHan...

Required permissions

If you use the security plugin, make sure you set the following permissions: cluster:monitor/nodes/hot_threads.