Skip to content

Commit 941c98b

Browse files
committed
HBASE-27762 Include EventType and ProcedureV2 pid in logging via MDC (#5145)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
1 parent 81671f2 commit 941c98b

5 files changed

Lines changed: 13 additions & 1 deletion

File tree

hbase-logging/src/test/resources/log4j.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m
4848
log4j.appender.console=org.apache.log4j.ConsoleAppender
4949
log4j.appender.console.target=System.err
5050
log4j.appender.console.layout=org.apache.log4j.PatternLayout
51-
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m%n
51+
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t (%X)] %C{2}(%L): %m%n
5252

5353
# Custom Logging levels
5454

hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.yetus.audience.InterfaceAudience;
2828
import org.slf4j.Logger;
2929
import org.slf4j.LoggerFactory;
30+
import org.slf4j.MDC;
3031

3132
/**
3233
* Abstract base class for all HBase event handlers. Subclasses should implement the
@@ -94,10 +95,15 @@ public EventHandler prepare() throws Exception {
9495

9596
@Override
9697
public void run() {
98+
// assume that this is the top of an execution on a new or reused thread, that we're safe to
99+
// blast any existing MDC state.
97100
try (TraceScope scope = TraceUtil.createTrace(this.getClass().getSimpleName(), parent)) {
101+
MDC.put("event_type", eventType.toString());
98102
process();
99103
} catch (Throwable t) {
100104
handleException(t);
105+
} finally {
106+
MDC.clear();
101107
}
102108
}
103109

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/AssignRegionHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.apache.yetus.audience.InterfaceAudience;
3939
import org.slf4j.Logger;
4040
import org.slf4j.LoggerFactory;
41+
import org.slf4j.MDC;
4142

4243
import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
4344

@@ -93,6 +94,7 @@ private void cleanUpAndReportFailure(IOException error) throws IOException {
9394

9495
@Override
9596
public void process() throws IOException {
97+
MDC.put("pid", Long.toString(openProcId));
9698
HRegionServer rs = getServer();
9799
String encodedName = regionInfo.getEncodedName();
98100
byte[] encodedNameBytes = regionInfo.getEncodedNameAsBytes();

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/RSProcedureHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.apache.yetus.audience.InterfaceAudience;
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
26+
import org.slf4j.MDC;
2627

2728
/**
2829
* A event handler for running procedure.
@@ -46,6 +47,7 @@ public RSProcedureHandler(HRegionServer rs, long procId, RSProcedureCallable cal
4647
public void process() {
4748
Throwable error = null;
4849
try {
50+
MDC.put("pid", Long.toString(procId));
4951
callable.call();
5052
} catch (Throwable t) {
5153
LOG.error("pid=" + this.procId, t);

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/handler/UnassignRegionHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.apache.yetus.audience.InterfaceAudience;
3636
import org.slf4j.Logger;
3737
import org.slf4j.LoggerFactory;
38+
import org.slf4j.MDC;
3839

3940
import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
4041

@@ -78,6 +79,7 @@ private HRegionServer getServer() {
7879

7980
@Override
8081
public void process() throws IOException {
82+
MDC.put("pid", Long.toString(closeProcId));
8183
HRegionServer rs = getServer();
8284
byte[] encodedNameBytes = Bytes.toBytes(encodedName);
8385
Boolean previous = rs.getRegionsInTransitionInRS().putIfAbsent(encodedNameBytes, Boolean.FALSE);

0 commit comments

Comments
 (0)