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)
|
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)
|
now, err := databaseNow(db)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -178,11 +178,13 @@ func databaseNow(db *gorm.DB) (time.Time, error) {
|
|||||||
return now.UTC(), nil
|
return now.UTC(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func forwardOutboxPayload(payloadJSON string, legacyBody AlertReceiveBody) error {
|
func forwardOutboxPayload(payloadJSON string, legacyBody AlertReceiveBody, fallbackSourceEventKey string) error {
|
||||||
var rawEvent RawEventIngestBody
|
var rawEvent RawEventIngestBody
|
||||||
if err := json.Unmarshal([]byte(payloadJSON), &rawEvent); err == nil && rawEvent.SourceType != "" && len(rawEvent.RawPayload) > 0 {
|
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)
|
return forwardRawEvent(rawEvent)
|
||||||
}
|
}
|
||||||
|
legacyBody.TraceID = ensureAlertTraceID(legacyBody.TraceID, firstNonEmpty(legacyBody.SourceEventKey, fallbackSourceEventKey))
|
||||||
return forwardAlert(legacyBody)
|
return forwardAlert(legacyBody)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user