Aller au contenu principal

MaintenanceWindow

À venir

Fonctionnalité en préparation. Cette page décrit l'interface cible pour recueillir vos retours ; rien n'est encore utilisable.

Le manifeste est accepté pour figer son format, mais aucune fenêtre n'est encore appliquée.

apiVersionmonitoring.stackngo.io/v1alpha1
kindMaintenanceWindow
Appliqué parsng apply ; sans effet dans cette version
Commandes liéessng template gen MaintenanceWindow, sng apply, sng kind list MaintenanceWindow, sng kind delete MaintenanceWindow NAME

À quoi ça servira​

Une MaintenanceWindow décrit une période d'intervention, unique ou récurrente, pendant laquelle les alertes de certains Monitor seront silencées, leur état affiché « maintenance » et, par défaut, la période exclue du calcul d'uptime.

Sans effet dans cette version

Le manifeste est validé et enregistré, mais rien ne le lit : les alertes partent normalement, la page de statut n'affiche pas d'état de maintenance, l'uptime n'est pas corrigé et le status reste vide. Pour une intervention, suspendez les moniteurs concernés (paused: true) puis réactivez-les.

Exemple minimal​

samedi-soir.yml
apiVersion: monitoring.stackngo.io/v1alpha1
kind: MaintenanceWindow
metadata:
name: samedi-soir
spec:
monitors: [api]
schedule:
cron: "0 22 * * 6"
duration: 2h
sng apply samedi-soir.yml

Exemple complet commenté​

migration.yml
apiVersion: monitoring.stackngo.io/v1alpha1
kind: MaintenanceWindow
metadata:
name: migration
spec:
monitors: [api, www] # moniteurs visés, par leur nom (100 au plus)
schedule:
start: "2026-10-10T22:00:00Z" # occurrence unique — ou cron, pas les deux
# cron: "0 22 * * 6" # récurrence, cron à 5 champs
duration: 90m # durée : <entier>m ou <entier>h
timeZone: Europe/Paris # fuseau du cron (défaut Europe/Paris)
excludeFromUptime: true # exclura la fenêtre du calcul d'uptime (défaut true)

Champs​

Règles de validation croisées​

Le schéma refuse, dès sng apply :

  • monitors absent ;
  • selector : les moniteurs se désignent par leur nom dans monitors (un moniteur ne porte pas de labels) ;
  • schedule.start et schedule.cron ensemble, ou aucun des deux ;
  • schedule.duration absente ou hors de la forme <entier>m / <entier>h ;
  • plus de 100 monitors, un nom de moniteur qui n'est pas un label DNS, un cron de plus de 100 caractères, un timeZone de plus de 64 caractères.

La syntaxe du cron et l'existence des moniteurs ne sont pas vérifiées dans cette version.

MaintenanceWindow​

MaintenanceWindow planifie une maintenance pendant laquelle vos monitors n'envoient pas d'alerte.

ChampDescriptionDéfautValidation
apiVersion stringmonitoring.stackngo.io/v1alpha1
kind stringMaintenanceWindow
metadata ObjectMetaSeul metadata.name est à renseigner (nom de la ressource dans votre tenant).
spec MaintenanceWindowSpec
status MaintenanceWindowStatus

MaintenanceWindowSpec​

MaintenanceWindowSpec : période planifiée pendant laquelle les alertes des monitors visés sont suspendues. Les fenêtres de maintenance ne sont pas encore appliquées dans cette version.

ChampDescriptionDéfautValidation
monitors string arrayNoms des Monitor concernés (exclusif avec selector).MaxItems: 100
items:Pattern: ^[a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?$
Optional: {}
selector LabelSelectorMonitor concernés, choisis par leurs labels (exclusif avec monitors).Optional: {}
schedule MaintenanceSchedulePlanification de la fenêtre.
excludeFromUptime booleanExclut la fenêtre du calcul d'uptime.true

MaintenanceWindowStatus​

MaintenanceWindowStatus : état de la fenêtre de maintenance.

ChampDescriptionDéfautValidation
active booleanIndique si une fenêtre est en cours.Optional: {}
nextStart TimeDébut de la prochaine fenêtre.Optional: {}
silenceIDs string arrayIdentifiants des suspensions d'alertes en cours (réservé à la plateforme).Optional: {}
conditions Condition arrayConditions de la fenêtre (Ready…), avec leur reason et un message lisible.Optional: {}

MaintenanceSchedule​

MaintenanceSchedule : occurrence unique (start) ou récurrente (cron).

ChampDescriptionDéfautValidation
start TimeDébut d'une fenêtre unique (exclusif avec cron).Optional: {}
cron stringExpression cron à 5 champs.MaxLength: 100
Optional: {}
duration stringDurée de la fenêtre, en minutes ou en heures (ex. 30m, 2h).Pattern: ^([1-9][0-9]*)(m|h)$
timeZone stringFuseau horaire de start et de cron (défaut : Europe/Paris).Europe/ParisMaxLength: 64

Statut et conditions​

Le status prévoit active (fenêtre en cours), nextStart (prochaine occurrence), silenceIDs et conditions. Aucun de ces champs n'est renseigné dans cette version.

Ce qui se passe quand vous supprimez​

sng kind delete MaintenanceWindow NAME retire le manifeste. Dans cette version, une fenêtre de maintenance n'a d'effet ni sur les moniteurs, ni sur les alertes, ni sur la page de statut : la créer ou la supprimer ne change rien de visible.

Erreurs fréquentes​

SymptômeCauseCorrection
sng apply refuse : spec.selector non accepté : utilisez spec.monitorsMoniteurs choisis par labelsLes nommer dans monitors
sng apply refuse : monitors ou selector : exactement un des deuxmonitors absentNommer les moniteurs dans monitors
sng apply refuse : start ou cron : exactement un des deuxLes deux donnés, ou aucunEn garder un
sng apply refuse sur duration1h30m ou 90Une seule unité : 90m
Alertes reçues pendant la fenêtreLes fenêtres ne sont pas encore appliquéesSuspendre les moniteurs (paused: true)

Voir aussi​