HBASE-27762 Include EventType and ProcedureV2 pid in logging via MDC (#5145)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
parent
a417e5e61e
commit
1d3d900957
@ -48,7 +48,7 @@ log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m
|
||||
log4j.appender.console=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.console.target=System.err
|
||||
log4j.appender.console.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %C{2}(%L): %m%n
|
||||
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t (%X)] %C{2}(%L): %m%n
|
||||
|
||||
# Custom Logging levels
|
||||
|
||||
|
@ -27,6 +27,7 @@ import org.apache.htrace.core.Tracer;
|
||||
import org.apache.yetus.audience.InterfaceAudience;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.MDC;
|
||||
|
||||
/**
|
||||
* Abstract base class for all HBase event handlers. Subclasses should implement the
|
||||
@ -94,10 +95,15 @@ public abstract class EventHandler implements Runnable, Comparable<EventHandler>
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
// assume that this is the top of an execution on a new or reused thread, that we're safe to
|
||||
// blast any existing MDC state.
|
||||
try (TraceScope scope = TraceUtil.createTrace(this.getClass().getSimpleName(), parent)) {
|
||||
MDC.put("event_type", eventType.toString());
|
||||
process();
|
||||
} catch (Throwable t) {
|
||||
handleException(t);
|
||||
} finally {
|
||||
MDC.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;
|
||||
import org.apache.yetus.audience.InterfaceAudience;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.MDC;
|
||||
|
||||
import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
|
||||
|
||||
@ -93,6 +94,7 @@ public class AssignRegionHandler extends EventHandler {
|
||||
|
||||
@Override
|
||||
public void process() throws IOException {
|
||||
MDC.put("pid", Long.toString(openProcId));
|
||||
HRegionServer rs = getServer();
|
||||
String encodedName = regionInfo.getEncodedName();
|
||||
byte[] encodedNameBytes = regionInfo.getEncodedNameAsBytes();
|
||||
|
@ -23,6 +23,7 @@ import org.apache.hadoop.hbase.regionserver.HRegionServer;
|
||||
import org.apache.yetus.audience.InterfaceAudience;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.MDC;
|
||||
|
||||
/**
|
||||
* A event handler for running procedure.
|
||||
@ -46,6 +47,7 @@ public class RSProcedureHandler extends EventHandler {
|
||||
public void process() {
|
||||
Throwable error = null;
|
||||
try {
|
||||
MDC.put("pid", Long.toString(procId));
|
||||
callable.call();
|
||||
} catch (Throwable t) {
|
||||
LOG.error("pid=" + this.procId, t);
|
||||
|
@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;
|
||||
import org.apache.yetus.audience.InterfaceAudience;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.slf4j.MDC;
|
||||
|
||||
import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;
|
||||
|
||||
@ -78,6 +79,7 @@ public class UnassignRegionHandler extends EventHandler {
|
||||
|
||||
@Override
|
||||
public void process() throws IOException {
|
||||
MDC.put("pid", Long.toString(closeProcId));
|
||||
HRegionServer rs = getServer();
|
||||
byte[] encodedNameBytes = Bytes.toBytes(encodedName);
|
||||
Boolean previous = rs.getRegionsInTransitionInRS().putIfAbsent(encodedNameBytes, Boolean.FALSE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user