Fixes #453: Support tracing exception count for specific entry or context in Tracer
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
This commit is contained in:
parent
8e72211db9
commit
ba4fdcc638
|
|
@ -22,18 +22,30 @@ import com.alibaba.csp.sentinel.node.DefaultNode;
|
|||
import com.alibaba.csp.sentinel.slots.block.BlockException;
|
||||
|
||||
/**
|
||||
* This class is used to record other exception except block exception.
|
||||
* This class is used to record other exceptions except block exception.
|
||||
*
|
||||
* @author jialiang.linjl
|
||||
* @author Eric Zhao
|
||||
*/
|
||||
public final class Tracer {
|
||||
|
||||
/**
|
||||
* Trace provided {@link Throwable} and increment exception count to entry in current context.
|
||||
*
|
||||
* @param e exception to record
|
||||
*/
|
||||
public static void trace(Throwable e) {
|
||||
trace(e, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trace provided {@link Throwable} and add exception count to entry in current context.
|
||||
*
|
||||
* @param e exception to record
|
||||
* @param count exception count to add
|
||||
*/
|
||||
public static void trace(Throwable e, int count) {
|
||||
if (e instanceof BlockException) {
|
||||
if (e == null || e instanceof BlockException) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -43,6 +55,58 @@ public final class Tracer {
|
|||
}
|
||||
|
||||
DefaultNode curNode = (DefaultNode)context.getCurNode();
|
||||
traceExceptionToNode(e, count, curNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trace provided {@link Throwable} and add exception count to current entry in provided context.
|
||||
*
|
||||
* @param e exception to record
|
||||
* @param count exception count to add
|
||||
* @since 1.4.2
|
||||
*/
|
||||
public static void traceContext(Throwable e, int count, Context context) {
|
||||
if (e == null || e instanceof BlockException) {
|
||||
return;
|
||||
}
|
||||
if (context == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DefaultNode curNode = (DefaultNode)context.getCurNode();
|
||||
traceExceptionToNode(e, count, curNode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trace provided {@link Throwable} and increment exception count to provided entry.
|
||||
*
|
||||
* @param e exception to record
|
||||
* @since 1.4.2
|
||||
*/
|
||||
public static void traceEntry(Throwable e, Entry entry) {
|
||||
traceEntry(e, 1, entry);
|
||||
}
|
||||
|
||||
/**
|
||||
* Trace provided {@link Throwable} and add exception count to provided entry.
|
||||
*
|
||||
* @param e exception to record
|
||||
* @param count exception count to add
|
||||
* @since 1.4.2
|
||||
*/
|
||||
public static void traceEntry(Throwable e, int count, Entry entry) {
|
||||
if (e == null || e instanceof BlockException) {
|
||||
return;
|
||||
}
|
||||
if (entry == null || entry.getCurNode() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DefaultNode curNode = (DefaultNode)entry.getCurNode();
|
||||
traceExceptionToNode(e, count, curNode);
|
||||
}
|
||||
|
||||
private static void traceExceptionToNode(Throwable t, int count, DefaultNode curNode) {
|
||||
if (curNode == null) {
|
||||
return;
|
||||
}
|
||||
|
|
@ -52,7 +116,8 @@ public final class Tracer {
|
|||
if (clusterNode == null) {
|
||||
return;
|
||||
}
|
||||
clusterNode.trace(e, count);
|
||||
clusterNode.trace(t, count);
|
||||
}
|
||||
|
||||
private Tracer() {}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue