diff options
Diffstat (limited to '')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/shared/models/prometheus-alerts.ts | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/models/prometheus-alerts.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/prometheus-alerts.ts new file mode 100644 index 000000000..9deaa5378 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/models/prometheus-alerts.ts @@ -0,0 +1,85 @@ +export class PrometheusAlertLabels { + alertname: string; + instance: string; + job: string; + severity: string; +} + +class Annotations { + description: string; + summary: string; +} + +class CommonAlertmanagerAlert { + labels: PrometheusAlertLabels; + annotations: Annotations; + startsAt: string; // Date string + endsAt: string; // Date string + generatorURL: string; +} + +class PrometheusAlert { + labels: PrometheusAlertLabels; + annotations: Annotations; + state: 'pending' | 'firing'; + activeAt: string; // Date string + value: number; +} + +export interface PrometheusRuleGroup { + name: string; + file: string; + rules: PrometheusRule[]; +} + +export class PrometheusRule { + name: string; // => PrometheusAlertLabels.alertname + query: string; + duration: 10; + labels: { + severity: string; // => PrometheusAlertLabels.severity + }; + annotations: Annotations; + alerts: PrometheusAlert[]; // Shows only active alerts + health: string; + type: string; + group?: string; // Added field for flattened list +} + +export class AlertmanagerAlert extends CommonAlertmanagerAlert { + status: { + state: 'unprocessed' | 'active' | 'suppressed'; + silencedBy: null | string[]; + inhibitedBy: null | string[]; + }; + receivers: string[]; + fingerprint: string; +} + +export class AlertmanagerNotificationAlert extends CommonAlertmanagerAlert { + status: 'firing' | 'resolved'; +} + +export class AlertmanagerNotification { + status: 'firing' | 'resolved'; + groupLabels: object; + commonAnnotations: object; + groupKey: string; + notified: string; + id: string; + alerts: AlertmanagerNotificationAlert[]; + version: string; + receiver: string; + externalURL: string; + commonLabels: { + severity: string; + }; +} + +export class PrometheusCustomAlert { + status: 'resolved' | 'unprocessed' | 'active' | 'suppressed'; + name: string; + url: string; + description: string; + fingerprint?: string | boolean; +} |