code: @Process(actionType = LoadThreadPoolMetrics.class)
      public void loadMetrics(final LoadThreadPoolMetrics action, Channel channel) {
          ResourceAddress address = METRICS_ROOT_ADDRESS.resolve(statementContext);
          Operation operation = new Operation.Builder(READ_CHILDREN_RESOURCES_OPERATION, address)
                  .param(CHILD_TYPE, "thread-pool")
                  .param(INCLUDE_RUNTIME, true)
                  .build();
          dispatcher.execute(new DMRAction(operation), new AsyncCallback<DMRResponse>() {
              @Override
              public void onFailure(final Throwable caught) {
                  channel.nack(caught);
              }
  
              @Override
              public void onSuccess(final DMRResponse response) {
                  ModelNode result = response.get();
                  if (result.isFailure()) {
                      channel.nack(result.getFailureDescription());
                  } else {
                      threadPoolMetrics.clear();
                      threadPoolMetrics.addAll(result.get(RESULT).asPropertyList());
                      channel.ack();
                  }
              }
          });
      }
docs: ------------------------------------------------------ metrics