diff --git a/common/src/java/org/apache/hadoop/hive/common/metrics/common/MetricsConstant.java b/common/src/java/org/apache/hadoop/hive/common/metrics/common/MetricsConstant.java index af0f87bac3..74ae165be7 100644 --- a/common/src/java/org/apache/hadoop/hive/common/metrics/common/MetricsConstant.java +++ b/common/src/java/org/apache/hadoop/hive/common/metrics/common/MetricsConstant.java @@ -50,6 +50,9 @@ // The number of Hive operations that are waiting to enter the compile block public static final String WAITING_COMPILE_OPS = "waiting_compile_ops"; + // The number of Hive operations that are waiting to enter the compile block + public static final String WAITING_TEZ_SESSION = "waiting_tez_session"; + // The number of map reduce tasks executed by the HiveServer2 since the last restart public static final String HIVE_MR_TASKS = "hive_mapred_tasks"; // The number of spark tasks executed by the HiveServer2 since the last restart diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java index f2ed07add5..9fe3274e28 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hive.ql.exec.tez; +import org.apache.hadoop.hive.common.metrics.common.MetricsFactory; import org.apache.hive.common.util.Ref; import org.apache.hadoop.hive.ql.exec.tez.UserPoolMapping.MappingInput; import java.io.IOException; @@ -185,9 +186,19 @@ public int execute(DriverContext driverContext) { "HIVE", queryPlan.getQueryId(), "HIVE_QUERY_ID", queryPlan.getQueryStr()); perfLogger.PerfLogBegin(CLASS_NAME, PerfLogger.TEZ_GET_SESSION); - session = sessionRef.value = WorkloadManagerFederation.getSession( - sessionRef.value, conf, mi, getWork().getLlapMode(), wmContext); - perfLogger.PerfLogEnd(CLASS_NAME, PerfLogger.TEZ_GET_SESSION); + Metrics metrics = MetricsFactory.getInstance(); + if (metrics != null) { + metrics.incrementCounter(MetricsConstant.WAITING_TEZ_SESSION, 1); + } + try { + session = sessionRef.value = WorkloadManagerFederation.getSession( + sessionRef.value, conf, mi, getWork().getLlapMode(), wmContext); + } finally { + if (metrics != null) { + metrics.decrementCounter(MetricsConstant.WAITING_TEZ_SESSION, 1); + } + perfLogger.PerfLogEnd(CLASS_NAME, PerfLogger.TEZ_GET_SESSION); + } try { ss.setTezSession(session);