feat(watchdog): 主机侧巡检定时器按异常邮件通知平台所有者,operator 增加 phase 与 build_info 指标、卡死存活探针与告警规则
This commit is contained in:
26 files changed
+2686
-34
No files matched your search
@@ -48,3 +48,30 @@ func TestGaugeSyncerPublishesFleetStateFromCluster(t *testing.T) {
|
||||
t.Errorf("servers_total{state=Stopped} = %v, want 2", got)
|
||||
}
|
||||
}
|
||||
|
||||
// TestGaugeSyncerPublishesServerPhases: every server gets one felis_server_phase
|
||||
// series carrying its system role, observed phase (Unknown before the first
|
||||
// report) and desired state.
|
||||
func TestGaugeSyncerPublishesServerPhases(t *testing.T) {
|
||||
login := gaugeServer("login", v1alpha1.DesiredRunning)
|
||||
login.Labels = map[string]string{v1alpha1.LabelSystemRole: "login"}
|
||||
login.Status.Phase = v1alpha1.PhaseFailed
|
||||
fresh := gaugeServer("fresh", "")
|
||||
c := fake.NewClientBuilder().WithScheme(newScheme(t)).WithObjects(login, fresh).Build()
|
||||
|
||||
if err := (&operator.GaugeSyncer{Client: c}).SyncOnce(context.Background()); err != nil {
|
||||
t.Fatalf("SyncOnce: %v", err)
|
||||
}
|
||||
defer metrics.ServerPhase.Reset()
|
||||
if n := testutil.CollectAndCount(metrics.ServerPhase); n != 2 {
|
||||
t.Fatalf("felis_server_phase series = %d, want 2", n)
|
||||
}
|
||||
for _, labels := range [][]string{
|
||||
{"login", "login", "Failed", "Running"},
|
||||
{"fresh", "", "Unknown", "Stopped"},
|
||||
} {
|
||||
if got := testutil.ToFloat64(metrics.ServerPhase.WithLabelValues(labels...)); got != 1 {
|
||||
t.Errorf("felis_server_phase%v = %v, want 1", labels, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user