public synchronized MonitoredTask createStatus(String description, boolean ignore,
    boolean enableJournal) {
    MonitoredTask stat = new MonitoredTaskImpl(enableJournal, description);
    MonitoredTask proxy = (MonitoredTask) Proxy.newProxyInstance(stat.getClass().getClassLoader(),
      new Class<?>[] { MonitoredTask.class }, new PassthroughInvocationHandler<>(stat));
    TaskAndWeakRefPair pair = new TaskAndWeakRefPair(stat, proxy);
    if (tasks.isFull()) {
      purgeExpiredTasks();
    }
    if (!ignore) {
      tasks.add(pair);
    }
    return proxy;
  }
Create a monitored task for users to inquire about the status
@param description   description of the status
@param ignore        whether to ignore to track(e.g. show/clear/expire) the task in the
                     {@link TaskMonitor}
@param enableJournal enable when the task contains some stage journals
@return a monitored task
hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java