replication: prometheus metric for number of failed replications in last attempt

- package replication: metric
- Grafana panel
- wiring
- changelog

Signed-off-by: Christian Schwarz <me@cschwarz.com>

closes #341
This commit is contained in:
Hans Schulz
2020-08-04 01:17:38 +02:00
committed by Christian Schwarz
parent 0ee7a49d31
commit 83fdffbcef
4 changed files with 215 additions and 13 deletions
+27
View File
@@ -162,3 +162,30 @@ func (f *FilesystemReport) NextStep() *StepReport {
func (f *StepReport) IsIncremental() bool {
return f.Info.From != ""
}
// Returns, for the latest replication attempt,
// 0 if there have not been any replication attempts,
// -1 if the replication failed while enumerating file systems
// N if N filesystems could not not be replicated successfully
func (r *Report) GetFailedFilesystemsCountInLatestAttempt() int {
if len(r.Attempts) == 0 {
return 0
}
a := r.Attempts[len(r.Attempts)-1]
switch a.State {
case AttemptPlanningError:
return -1
case AttemptFanOutError:
var count int
for _, f := range a.Filesystems {
if f.Error() != nil {
count++
}
}
return count
default:
return 0
}
}