From 0655afb5ab318cd43c5e0dcaf841f11d5bfb3b7c Mon Sep 17 00:00:00 2001 From: zxr <271055687@qq.com> Date: Tue, 21 Jul 2026 17:24:25 +0800 Subject: [PATCH] fix: isolate legacy outbox trace ids --- internal/ingest/alert_outbox.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/ingest/alert_outbox.go b/internal/ingest/alert_outbox.go index f3a659b..cf133dd 100644 --- a/internal/ingest/alert_outbox.go +++ b/internal/ingest/alert_outbox.go @@ -156,7 +156,7 @@ func processOneOutbox(db *gorm.DB, row models.AlertOutbox) error { } return markOutboxDead(db, row, row.RetryCount, "invalid_payload: "+err.Error(), now) } - forwardErr := forwardOutboxPayload(row.PayloadJSON, body) + forwardErr := forwardOutboxPayload(row.PayloadJSON, body, fmt.Sprintf("logs-outbox:%d", row.ID)) now, err := databaseNow(db) if err != nil { return err @@ -178,11 +178,13 @@ func databaseNow(db *gorm.DB) (time.Time, error) { return now.UTC(), nil } -func forwardOutboxPayload(payloadJSON string, legacyBody AlertReceiveBody) error { +func forwardOutboxPayload(payloadJSON string, legacyBody AlertReceiveBody, fallbackSourceEventKey string) error { var rawEvent RawEventIngestBody if err := json.Unmarshal([]byte(payloadJSON), &rawEvent); err == nil && rawEvent.SourceType != "" && len(rawEvent.RawPayload) > 0 { + rawEvent.TraceID = ensureAlertTraceID(rawEvent.TraceID, firstNonEmpty(rawEvent.SourceEventKey, fallbackSourceEventKey)) return forwardRawEvent(rawEvent) } + legacyBody.TraceID = ensureAlertTraceID(legacyBody.TraceID, firstNonEmpty(legacyBody.SourceEventKey, fallbackSourceEventKey)) return forwardAlert(legacyBody) }