fix: isolate legacy outbox trace ids
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user