错误日志查询问题修复

This commit is contained in:
robin
2026-02-08 22:44:12 +08:00
parent b7388d83b0
commit 4812ad5aaf
14 changed files with 57299 additions and 57088 deletions

View File

@@ -67,14 +67,33 @@ func (this *HTTPAccessLogService) ListHTTPAccessLogs(ctx context.Context, req *p
}
store := clickhouse.NewLogsIngestStore()
if store.Client().IsConfigured() && req.Day != "" {
canReadFromClickHouse := this.shouldReadAccessLogsFromClickHouse() && store.Client().IsConfigured() && req.Day != ""
canReadFromMySQL := this.shouldReadAccessLogsFromMySQL()
if canReadFromClickHouse {
resp, listErr := this.listHTTPAccessLogsFromClickHouse(ctx, tx, store, req, userId)
if listErr != nil {
return nil, listErr
}
if resp != nil {
if listErr == nil && resp != nil {
return resp, nil
}
if !canReadFromMySQL {
if listErr != nil {
return nil, listErr
}
return &pb.ListHTTPAccessLogsResponse{
HttpAccessLogs: []*pb.HTTPAccessLog{},
AccessLogs: []*pb.HTTPAccessLog{},
HasMore: false,
RequestId: "",
}, nil
}
}
if !canReadFromMySQL {
return &pb.ListHTTPAccessLogsResponse{
HttpAccessLogs: []*pb.HTTPAccessLog{},
AccessLogs: []*pb.HTTPAccessLog{},
HasMore: false,
RequestId: "",
}, nil
}
accessLogs, requestId, hasMore, err := models.SharedHTTPAccessLogDAO.ListAccessLogs(tx, req.Partition, req.RequestId, req.Size, req.Day, req.HourFrom, req.HourTo, req.NodeClusterId, req.NodeId, req.ServerId, req.Reverse, req.HasError, req.FirewallPolicyId, req.FirewallRuleGroupId, req.FirewallRuleSetId, req.HasFirewallPolicy, req.UserId, req.Keyword, req.Ip, req.Domain)
@@ -241,12 +260,15 @@ func (this *HTTPAccessLogService) FindHTTPAccessLog(ctx context.Context, req *pb
// 优先从 ClickHouse 查询
store := clickhouse.NewLogsIngestStore()
if store.Client().IsConfigured() {
canReadFromClickHouse := this.shouldReadAccessLogsFromClickHouse() && store.Client().IsConfigured()
canReadFromMySQL := this.shouldReadAccessLogsFromMySQL()
if canReadFromClickHouse {
row, err := store.FindByTraceId(ctx, req.RequestId)
if err != nil {
return nil, err
}
if row != nil {
if !canReadFromMySQL {
return nil, err
}
} else if row != nil {
// 检查权限
if userId > 0 {
var tx = this.NullTx()
@@ -260,6 +282,10 @@ func (this *HTTPAccessLogService) FindHTTPAccessLog(ctx context.Context, req *pb
}
}
if !canReadFromMySQL {
return &pb.FindHTTPAccessLogResponse{HttpAccessLog: nil}, nil
}
// 如果 ClickHouse 未配置或未找到,则回退到 MySQL
var tx = this.NullTx()