OpenNIT

Quelltext des aktuellen Standes

Fassung 1.1.1

234_status_monitoring_suggestions.sql

2 KB
-- Migration 234: Statusseite – Störungsmeldungen aus dem Monitoring vorschlagen
--
-- Ein Alarm des Monitorings und die Störungsmeldung auf der Statusseite
-- beschreiben denselben Vorfall, entstanden aber getrennt: Der Alarm lief auf,
-- die Meldung wurde von Hand abgetippt. Offene Alarme erscheinen jetzt als
-- Vorschlag in der Verwaltung; übernommen wird er weiterhin bewusst.

-- ------------------------------------------------------------
-- 1. Herkunft einer Störungsmeldung
-- ------------------------------------------------------------
-- Hält fest, aus welchem Alarm die Meldung entstanden ist. Daraus folgt
-- zweierlei: Der Alarm wird nicht erneut vorgeschlagen, und meldet ihn das
-- Monitoring später als behoben, weist die Verwaltung darauf hin.
ALTER TABLE `status_incidents`
    ADD COLUMN `monitoring_event_id` INT UNSIGNED NULL DEFAULT NULL
        COMMENT 'Alarm des Monitorings, aus dem die Meldung entstand';

ALTER TABLE `status_incidents`
    ADD INDEX `idx_status_incidents_monitoring` (`monitoring_event_id`);

-- ------------------------------------------------------------
-- 2. Verworfene Vorschläge
-- ------------------------------------------------------------
-- Nicht jeder Alarm gehört auf eine öffentliche Statusseite. Ein einmal
-- verworfener Vorschlag bleibt verworfen, statt bei jedem Aufruf erneut zu
-- erscheinen.
--
-- Bewusst ohne Fremdschlüssel auf die Alarme: Die Vorschlagsliste liest nur
-- Alarme, die es gibt – eine Zeile ohne zugehörigen Alarm bleibt damit
-- wirkungslos, und die Statusseite hängt nicht am Schema eines Moduls, das
-- abgeschaltet sein kann.
CREATE TABLE IF NOT EXISTS `status_suggestion_dismissals` (
    `monitoring_event_id` INT UNSIGNED NOT NULL,
    `dismissed_by` BIGINT UNSIGNED NULL,
    `dismissed_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`monitoring_event_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='Monitoring-Alarme, die nicht auf die Statusseite sollen';