fix: 修复链路追踪输出记录及关闭追踪时的额外开销

This commit is contained in:
Obltv
2026-07-23 14:45:43 +08:00
parent 06ff95cdc3
commit 36e3cf8c52
4 changed files with 25 additions and 9 deletions

View File

@@ -43,26 +43,26 @@ public class DefaultTraceStreamSpan implements TraceStreamSpan {
}
@Override
public void finishSuccess() {
finish(TraceConstants.STATUS_SUCCESS, null);
public void finishSuccess(String outputPayload) {
finish(TraceConstants.STATUS_SUCCESS, null, outputPayload);
}
@Override
public void finishError(Throwable throwable) {
finish(TraceConstants.STATUS_ERROR, TracePayloadUtils.error(throwable, traceProperties));
finish(TraceConstants.STATUS_ERROR, TracePayloadUtils.error(throwable, traceProperties), null);
}
@Override
public void finishCancelledIfRunning() {
finish(TraceConstants.STATUS_CANCELLED, null);
finish(TraceConstants.STATUS_CANCELLED, null, null);
}
private void finish(String status, String errorMessage) {
private void finish(String status, String errorMessage, String outputPayload) {
if (!finished.compareAndSet(false, true)) {
return;
}
try {
traceRecordService.finishNode(traceId, nodeId, status, errorMessage, null,
traceRecordService.finishNode(traceId, nodeId, status, errorMessage, outputPayload,
new Date(), System.currentTimeMillis() - startMillis);
} catch (Exception e) {
log.warn("结束 trace stream span 失败traceId={}, nodeId={}", traceId, nodeId, e);

View File

@@ -7,7 +7,14 @@ public interface TraceStreamSpan {
void detach();
void finishSuccess();
/**
* 结束成功的流式节点,并可写入输出摘要。
*/
default void finishSuccess() {
finishSuccess(null);
}
void finishSuccess(String outputPayload);
void finishError(Throwable throwable);