[enhancement](audit-log) add status code and error msg to audit log for proxy stmt (#27607)
This commit is contained in:
@ -1231,6 +1231,10 @@ public enum ErrorCode {
|
||||
return sqlState;
|
||||
}
|
||||
|
||||
public String getErrorMsg() {
|
||||
return errorMsg;
|
||||
}
|
||||
|
||||
public String formatErrorMsg(Object... args) {
|
||||
try {
|
||||
return String.format(errorMsg, args);
|
||||
|
||||
@ -112,6 +112,11 @@ public class AuditLogHelper {
|
||||
if (!Env.getCurrentEnv().isMaster()) {
|
||||
if (ctx.executor.isForwardToMaster()) {
|
||||
ctx.getAuditEventBuilder().setState(ctx.executor.getProxyStatus());
|
||||
int proxyStatusCode = ctx.executor.getProxyStatusCode();
|
||||
if (proxyStatusCode != 0) {
|
||||
ctx.getAuditEventBuilder().setErrorCode(proxyStatusCode);
|
||||
ctx.getAuditEventBuilder().setErrorMessage(ctx.executor.getProxyErrMsg());
|
||||
}
|
||||
}
|
||||
}
|
||||
Env.getCurrentAuditEventProcessor().handleAuditEvent(ctx.getAuditEventBuilder().build());
|
||||
|
||||
@ -555,6 +555,12 @@ public abstract class ConnectProcessor {
|
||||
result.setMaxJournalId(Env.getCurrentEnv().getMaxJournalId());
|
||||
result.setPacket(getResultPacket());
|
||||
result.setStatus(ctx.getState().toString());
|
||||
if (ctx.getState().getStateType() == MysqlStateType.OK) {
|
||||
result.setStatusCode(0);
|
||||
} else {
|
||||
result.setStatusCode(ctx.getState().getErrorCode().getCode());
|
||||
result.setErrMessage(ctx.getState().getErrorMessage());
|
||||
}
|
||||
if (executor != null && executor.getProxyResultSet() != null) {
|
||||
result.setResultSet(executor.getProxyResultSet().tothrift());
|
||||
}
|
||||
|
||||
@ -21,6 +21,7 @@ import org.apache.doris.analysis.RedirectStatus;
|
||||
import org.apache.doris.catalog.Env;
|
||||
import org.apache.doris.common.ClientPool;
|
||||
import org.apache.doris.common.DdlException;
|
||||
import org.apache.doris.common.ErrorCode;
|
||||
import org.apache.doris.thrift.FrontendService;
|
||||
import org.apache.doris.thrift.TMasterOpRequest;
|
||||
import org.apache.doris.thrift.TMasterOpResult;
|
||||
@ -206,6 +207,23 @@ public class MasterOpExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
public int getProxyStatusCode() {
|
||||
if (result == null || !result.isSetStatusCode()) {
|
||||
return ErrorCode.ERR_UNKNOWN_ERROR.getCode();
|
||||
}
|
||||
return result.getStatusCode();
|
||||
}
|
||||
|
||||
public String getProxyErrMsg() {
|
||||
if (result == null) {
|
||||
return ErrorCode.ERR_UNKNOWN_ERROR.getErrorMsg();
|
||||
}
|
||||
if (!result.isSetErrMessage()) {
|
||||
return "";
|
||||
}
|
||||
return result.getErrMessage();
|
||||
}
|
||||
|
||||
public ShowResultSet getProxyResultSet() {
|
||||
if (result == null) {
|
||||
return null;
|
||||
|
||||
@ -396,6 +396,20 @@ public class StmtExecutor {
|
||||
return masterOpExecutor.getProxyStatus();
|
||||
}
|
||||
|
||||
public int getProxyStatusCode() {
|
||||
if (masterOpExecutor == null) {
|
||||
return MysqlStateType.UNKNOWN.ordinal();
|
||||
}
|
||||
return masterOpExecutor.getProxyStatusCode();
|
||||
}
|
||||
|
||||
public String getProxyErrMsg() {
|
||||
if (masterOpExecutor == null) {
|
||||
return MysqlStateType.UNKNOWN.name();
|
||||
}
|
||||
return masterOpExecutor.getProxyErrMsg();
|
||||
}
|
||||
|
||||
public boolean isSyncLoadKindStmt() {
|
||||
if (parsedStmt == null) {
|
||||
return false;
|
||||
|
||||
@ -530,6 +530,8 @@ struct TMasterOpResult {
|
||||
3: optional TShowResultSet resultSet;
|
||||
4: optional Types.TUniqueId queryId;
|
||||
5: optional string status;
|
||||
6: optional i32 statusCode;
|
||||
7: optional string errMessage;
|
||||
}
|
||||
|
||||
struct TUpdateExportTaskStatusRequest {
|
||||
|
||||
Reference in New Issue
Block a user