[Feature](audit) add errorCode and errorMessage in audit log (#14925)

* [feat] add errorCode and errorMessage in audit log.

* [Feature](audit) add errorCode and errorMessage in audit log

Co-authored-by: wangxiangyu@360shuke.com <wangxiangyu@360shuke.com>
This commit is contained in:
wxy
2023-01-09 08:47:57 +08:00
committed by GitHub
parent c57fa7c930
commit 6829d361cb
7 changed files with 36 additions and 10 deletions

View File

@ -60,6 +60,10 @@ public class AuditEvent {
public String db = "";
@AuditField(value = "State")
public String state = "";
@AuditField(value = "ErrorCode")
public int errorCode = 0;
@AuditField(value = "ErrorMessage")
public String errorMessage = "";
@AuditField(value = "Time")
public long queryTime = -1;
@AuditField(value = "ScanBytes")
@ -86,7 +90,6 @@ public class AuditEvent {
public long peakMemoryBytes = -1;
@AuditField(value = "SqlDigest")
public String sqlDigest = "";
@AuditField(value = "TraceId")
public String traceId = "";
@ -131,6 +134,16 @@ public class AuditEvent {
return this;
}
public AuditEventBuilder setErrorCode(int errorCode) {
auditEvent.errorCode = errorCode;
return this;
}
public AuditEventBuilder setErrorMessage(String errorMessage) {
auditEvent.errorMessage = errorMessage;
return this;
}
public AuditEventBuilder setQueryTime(long queryTime) {
auditEvent.queryTime = queryTime;
return this;

View File

@ -178,7 +178,11 @@ public class ConnectProcessor {
ctx.getAuditEventBuilder().setEventType(EventType.AFTER_QUERY)
.setDb(ClusterNamespace.getNameFromFullName(ctx.getDatabase()))
.setState(ctx.getState().toString()).setQueryTime(elapseMs)
.setState(ctx.getState().toString())
.setErrorCode(ctx.getState().getErrorCode() == null ? 0 : ctx.getState().getErrorCode().getCode())
.setErrorMessage((ctx.getState().getErrorMessage() == null ? "" :
ctx.getState().getErrorMessage().replace("\n", " ").replace("\t", " ")))
.setQueryTime(elapseMs)
.setScanBytes(statistics == null ? 0 : statistics.getScanBytes())
.setScanRows(statistics == null ? 0 : statistics.getScanRows())
.setCpuTimeMs(statistics == null ? 0 : statistics.getCpuMs())

View File

@ -56,6 +56,7 @@ public class QueryState {
stateType = MysqlStateType.OK;
errorCode = null;
infoMessage = null;
errorMessage = "";
serverStatus = 0;
isQuery = false;
affectedRows = 0;