code: @Override
    public Map<String, Object> callExecutorStats(final int executorId, final String action,
        final Pair<String, String>... params) throws IOException, ExecutorManagerException {
      final Executor executor = fetchExecutor(executorId);
  
      final List<Pair<String, String>> paramList =
          new ArrayList<>();
  
      // if params = null
      if (params != null) {
        paramList.addAll(Arrays.asList(params));
      }
  
      paramList
          .add(new Pair<>(ConnectorParams.ACTION_PARAM, action));
  
      return this.apiGateway.callForJsonObjectMap(executor.getHost(), executor.getPort(),
          "/stats", paramList);
    }
docs: Manage servlet call for stats servlet in Azkaban execution server {@inheritDoc}
  
  @see azkaban.executor.ExecutorManagerAdapter#callExecutorStats(int, java.lang.String,
  azkaban.utils.Pair[])