diff --git a/internal/accesslogs/storage_es.go b/internal/accesslogs/storage_es.go index e1df4f55..7cff2e33 100644 --- a/internal/accesslogs/storage_es.go +++ b/internal/accesslogs/storage_es.go @@ -13,9 +13,7 @@ import ( "io/ioutil" "net/http" "regexp" - "strconv" "strings" - "sync/atomic" "time" ) @@ -57,14 +55,12 @@ func (this *ESStorage) Write(accessLogs []*pb.HTTPAccessLog) error { return nil } - var requestId int64 = 1_0000_0000_0000_0000 - bulk := &strings.Builder{} indexName := this.FormatVariables(this.config.Index) typeName := this.FormatVariables(this.config.MappingType) for _, accessLog := range accessLogs { if len(accessLog.RequestId) == 0 { - accessLog.RequestId = strconv.FormatInt(time.Now().UnixNano(), 10) + strconv.FormatInt(atomic.AddInt64(&requestId, 1), 10) + fmt.Sprintf("%08d", 1) + continue } opData, err := json.Marshal(map[string]interface{}{ diff --git a/internal/configs/api_config.go b/internal/configs/api_config.go index 5859f8d9..96e0c96c 100644 --- a/internal/configs/api_config.go +++ b/internal/configs/api_config.go @@ -1,7 +1,6 @@ package configs import ( - "fmt" teaconst "github.com/TeaOSLab/EdgeAPI/internal/const" "github.com/go-yaml/yaml" "github.com/iwind/TeaGo/Tea" @@ -11,7 +10,6 @@ import ( ) var sharedAPIConfig *APIConfig = nil -var PaddingId string // APIConfig API节点配置 type APIConfig struct { @@ -100,7 +98,6 @@ func SharedAPIConfig() (*APIConfig, error) { func (this *APIConfig) SetNumberId(numberId int64) { this.numberId = numberId teaconst.NodeId = numberId - PaddingId = fmt.Sprintf("%08d", numberId) } // NumberId 获取数字ID diff --git a/internal/db/models/http_access_log_dao.go b/internal/db/models/http_access_log_dao.go index 90e467be..24b6f8d7 100644 --- a/internal/db/models/http_access_log_dao.go +++ b/internal/db/models/http_access_log_dao.go @@ -2,7 +2,6 @@ package models import ( "encoding/json" - "github.com/TeaOSLab/EdgeAPI/internal/configs" "github.com/TeaOSLab/EdgeAPI/internal/errors" "github.com/TeaOSLab/EdgeAPI/internal/utils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" @@ -18,7 +17,6 @@ import ( "net/http" "regexp" "sort" - "strconv" "strings" "sync" "time" @@ -82,7 +80,7 @@ func (this *HTTPAccessLogDAO) CreateHTTPAccessLogsWithDAO(tx *dbs.Tx, daoWrapper fields["nodeId"] = accessLog.NodeId fields["status"] = accessLog.Status fields["createdAt"] = accessLog.Timestamp - fields["requestId"] = accessLog.RequestId + strconv.FormatInt(time.Now().UnixNano(), 10) + configs.PaddingId + fields["requestId"] = accessLog.RequestId fields["firewallPolicyId"] = accessLog.FirewallPolicyId fields["firewallRuleGroupId"] = accessLog.FirewallRuleGroupId fields["firewallRuleSetId"] = accessLog.FirewallRuleSetId @@ -407,7 +405,7 @@ func (this *HTTPAccessLogDAO) listAccessLogs(tx *dbs.Tx, lastRequestId string, s // FindAccessLogWithRequestId 根据请求ID获取访问日志 func (this *HTTPAccessLogDAO) FindAccessLogWithRequestId(tx *dbs.Tx, requestId string) (*HTTPAccessLog, error) { - if !regexp.MustCompile(`^\d{30,}`).MatchString(requestId) { + if !regexp.MustCompile(`^\d{11,}`).MatchString(requestId) { return nil, errors.New("invalid requestId") } diff --git a/internal/db/models/ns_access_log_dao.go b/internal/db/models/ns_access_log_dao.go index 496cf851..87d25883 100644 --- a/internal/db/models/ns_access_log_dao.go +++ b/internal/db/models/ns_access_log_dao.go @@ -2,7 +2,6 @@ package models import ( "encoding/json" - "github.com/TeaOSLab/EdgeAPI/internal/configs" "github.com/TeaOSLab/EdgeAPI/internal/errors" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" _ "github.com/go-sql-driver/mysql" @@ -14,7 +13,6 @@ import ( timeutil "github.com/iwind/TeaGo/utils/time" "regexp" "sort" - "strconv" "strings" "sync" "time" @@ -78,7 +76,7 @@ func (this *NSAccessLogDAO) CreateNSAccessLogsWithDAO(tx *dbs.Tx, daoWrapper *NS fields["domainId"] = accessLog.NsDomainId fields["recordId"] = accessLog.NsRecordId fields["createdAt"] = accessLog.Timestamp - fields["requestId"] = accessLog.RequestId + strconv.FormatInt(time.Now().UnixNano(), 10) + configs.PaddingId + fields["requestId"] = accessLog.RequestId content, err := json.Marshal(accessLog) if err != nil { @@ -259,7 +257,7 @@ func (this *NSAccessLogDAO) listAccessLogs(tx *dbs.Tx, lastRequestId string, siz // FindAccessLogWithRequestId 根据请求ID获取访问日志 func (this *NSAccessLogDAO) FindAccessLogWithRequestId(tx *dbs.Tx, requestId string) (*NSAccessLog, error) { - if !regexp.MustCompile(`^\d{30,}`).MatchString(requestId) { + if !regexp.MustCompile(`^\d{11,}`).MatchString(requestId) { return nil, errors.New("invalid requestId") }