Skip to content

Commit 654611b

Browse files
committed
fix: add refreshing errors to the retrieval state:
- add alerts about refreshing errors to the state of the instance (the `retrieving` section) - change the output level of data refreshing errors from `debug` to `error`
1 parent bb3dc77 commit 654611b

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed

engine/internal/retrieval/engine/postgres/logical/dump.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ func (d *DumpJob) cleanupDumpLocation(ctx context.Context, dumpContID string, db
481481
Tty: true,
482482
Cmd: cleanupCmd,
483483
}); err != nil {
484-
log.Dbg(out)
484+
log.Err(out)
485485
return errors.Wrap(err, "failed to clean up dump location")
486486
}
487487

@@ -511,8 +511,9 @@ func (d *DumpJob) dumpDatabase(ctx context.Context, dumpContID, dbName string, d
511511
Cmd: dumpCommand,
512512
Env: d.getExecEnvironmentVariables(),
513513
}); err != nil {
514-
log.Dbg(output)
515-
return errors.Wrap(err, "failed to dump a database")
514+
log.Err("Dump command failed: ", output)
515+
516+
return fmt.Errorf("failed to dump a database: %w. Output: %s", err, output)
516517
}
517518

518519
log.Msg(fmt.Sprintf("Dumping job for the database %q has been finished", dbName))

engine/internal/retrieval/engine/postgres/logical/restore.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -519,12 +519,14 @@ func (r *RestoreJob) restoreDB(ctx context.Context, contID, dbName string, dbDef
519519
Env: []string{"PGAPPNAME=" + dleRetrieval},
520520
})
521521

522-
if output != "" {
523-
log.Dbg("Output of the restore command: ", output)
522+
if err != nil {
523+
log.Err("Restore command failed: ", output)
524+
525+
return fmt.Errorf("failed to exec restore command: %w. Output: %s", err, output)
524526
}
525527

526-
if err != nil {
527-
return errors.Wrap(err, "failed to exec restore command")
528+
if output != "" {
529+
log.Dbg("Output of the restore command: ", output)
528530
}
529531

530532
if err := r.defineDSA(ctx, dbDefinition, contID, dbName); err != nil {

engine/internal/retrieval/retrieval.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,10 @@ func (r *Retrieval) Run(ctx context.Context) error {
222222
}
223223

224224
if err := r.run(runCtx, fsManager); err != nil {
225-
alert := telemetry.Alert{Level: models.RefreshFailed,
226-
Message: fmt.Sprintf("Failed to perform initial data retrieving: %s", r.State.Mode)}
227-
r.State.addAlert(alert)
228-
r.tm.SendEvent(ctx, telemetry.AlertEvent, alert)
225+
r.State.addAlert(telemetry.Alert{Level: models.RefreshFailed, Message: err.Error()})
226+
// Build a generic message to avoid sending sensitive data.
227+
r.tm.SendEvent(ctx, telemetry.AlertEvent, telemetry.Alert{Level: models.RefreshFailed,
228+
Message: fmt.Sprintf("Failed to perform initial data retrieving: %s", r.State.Mode)})
229229

230230
return err
231231
}
@@ -382,6 +382,10 @@ func (r *Retrieval) RefreshData(ctx context.Context, poolName string) error {
382382

383383
if err != nil {
384384
r.State.Status = models.Failed
385+
r.State.addAlert(telemetry.Alert{
386+
Level: models.RefreshFailed,
387+
Message: err.Error(),
388+
})
385389

386390
fsm.Pool().SetStatus(resources.EmptyPool)
387391
}
@@ -436,6 +440,10 @@ func (r *Retrieval) SnapshotData(ctx context.Context, poolName string) error {
436440

437441
if err != nil {
438442
r.State.Status = models.Failed
443+
r.State.addAlert(telemetry.Alert{
444+
Level: models.RefreshFailed,
445+
Message: err.Error(),
446+
})
439447

440448
fsm.Pool().SetStatus(resources.EmptyPool)
441449
}
@@ -543,10 +551,10 @@ func (r *Retrieval) setupScheduler(ctx context.Context) {
543551
func (r *Retrieval) refreshFunc(ctx context.Context) func() {
544552
return func() {
545553
if err := r.FullRefresh(ctx); err != nil {
546-
alert := telemetry.Alert{Level: models.RefreshFailed, Message: "Failed to run full-refresh"}
554+
alert := telemetry.Alert{Level: models.RefreshFailed, Message: err.Error()}
547555
r.State.addAlert(alert)
548-
r.tm.SendEvent(ctx, telemetry.AlertEvent, alert)
549-
log.Err(alert.Message, err)
556+
r.tm.SendEvent(ctx, telemetry.AlertEvent, telemetry.Alert{Level: models.RefreshFailed, Message: "Failed to run full-refresh"})
557+
log.Err(alert.Message)
550558
}
551559
}
552560
}

0 commit comments

Comments
 (0)