Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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-
returnerrors.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)

AltStyle によって変換されたページ (->オリジナル) /