diff --git a/.cursor/commands/fixture-schema-reference.md b/.cursor/commands/fixture-schema-reference.md index 42c904b34..21fb548fc 100644 --- a/.cursor/commands/fixture-schema-reference.md +++ b/.cursor/commands/fixture-schema-reference.md @@ -1,6 +1,7 @@ # Fixture Schema Reference ## Overview + Quick reference for the YAML fixture schema structure, valid values, and common patterns. ## Schema Structure @@ -27,6 +28,7 @@ incidents: array # Required: Array of incident objects ## Valid Values ### Components + - `monitoring` - Monitoring infrastructure - `storage` - Storage systems - `network` - Network components @@ -37,15 +39,18 @@ incidents: array # Required: Array of incident objects - `Others` - Other components ### Layers + - `core` - Core OpenShift components - `Others` - Non-core components ### Severities + - `critical` - Critical alerts - `warning` - Warning alerts - `info` - Informational alerts ### Duration Format + - Pattern: `^\d+[smhd]$` - Examples: `"30m"`, `"2h"`, `"7d"`, `"1h"` - Units: `s` (seconds), `m` (minutes), `h` (hours), `d` (days) @@ -53,6 +58,7 @@ incidents: array # Required: Array of incident objects ## Common Alert Names ### Monitoring Component + ```yaml - name: "AlertmanagerReceiversNotConfigured" namespace: "openshift-monitoring" @@ -76,6 +82,7 @@ incidents: array # Required: Array of incident objects ``` ### Storage Component + ```yaml - name: "KubePersistentVolumeFillingUp" namespace: "openshift-storage" @@ -91,6 +98,7 @@ incidents: array # Required: Array of incident objects ``` ### Network Component + ```yaml - name: "NetworkLatencyHigh" namespace: "openshift-network" @@ -102,6 +110,7 @@ incidents: array # Required: Array of incident objects ``` ### Compute Component + ```yaml - name: "NodeNotReady" namespace: "openshift-machine-api" @@ -115,43 +124,49 @@ incidents: array # Required: Array of incident objects ## Timeline Patterns ### Simple Ongoing Incident + ```yaml timeline: - start: "2h" # Started 2 hours ago + start: "2h" # Started 2 hours ago ``` ### Resolved Incident + ```yaml timeline: - start: "4h" # Started 4 hours ago - end: "1h" # Resolved 1 hour ago + start: "4h" # Started 4 hours ago + end: "1h" # Resolved 1 hour ago ``` ### Severity Escalation + ```yaml timeline: - start: "3h" # Started 3 hours ago + start: "3h" # Started 3 hours ago severityChanges: - - time: "3h" # Started as warning + - time: "3h" # Started as warning severity: "warning" - - time: "1h" # Escalated to critical 1 hour ago + - time: "1h" # Escalated to critical 1 hour ago severity: "critical" ``` ## Validation Rules ### Required Fields + - Root: `name`, `description`, `incidents` - Incident: `id`, `component`, `layer`, `alerts` - Alert: `name`, `namespace`, `severity` - Timeline: `start` ### Format Constraints + - Incident ID: Pattern `^[a-zA-Z0-9-_]+$` - Duration: Pattern `^\d+[smhd]$` - Component/Layer/Severity: Must be valid enum values ### Array Constraints + - Incidents: `minItems: 0` - Alerts: `minItems: 1` per incident @@ -159,15 +174,20 @@ timeline: ```typescript // Load YAML fixture -cy.mockIncidentFixture('cypress/fixtures/incident-scenarios/critical-monitoring-issues.yaml'); +cy.mockIncidentFixture( + "cypress/fixtures/incidents/scenarios/critical-monitoring-issues.yaml", +); // Load JSON fixture (backward compatibility) -cy.mockIncidentFixture('cypress/fixtures/incident-scenarios/some-scenario.json'); +cy.mockIncidentFixture( + "cypress/fixtures/incidents/scenarios/some-scenario.json", +); ``` ## Validation Tools ### CLI Validation + ```bash cd web/cypress/support/incidents_prometheus_query_mocks node validate-fixtures.js --all @@ -175,6 +195,7 @@ node validate-fixtures.js specific-file.yaml ``` ### Schema Files + - Schema: `web/cypress/support/incidents_prometheus_query_mocks/fixture-schema.json` - Validator: `web/cypress/support/incidents_prometheus_query_mocks/schema-validator.ts` - CLI Tool: `web/cypress/support/incidents_prometheus_query_mocks/validate-fixtures.js` diff --git a/.cursor/commands/generate-regression-test.md b/.cursor/commands/generate-regression-test.md index 2e7cfa50f..e60fef0ce 100644 --- a/.cursor/commands/generate-regression-test.md +++ b/.cursor/commands/generate-regression-test.md @@ -47,7 +47,7 @@ Generate automated regression tests from test documentation in [`docs/incident_d ### 3. Check/Create Fixtures -**Fixture location**: `web/cypress/fixtures/incident-scenarios/` +**Fixture location**: `web/cypress/fixtures/incidents/scenarios/` **Naming convention**: `XX-descriptive-name.yaml` (e.g., `13-tooltip-positioning-scenarios.yaml`) @@ -108,7 +108,7 @@ describe("Regression: [Section Name]", () => { cy.log("Navigate to Observe → Incidents"); incidentsPage.goTo(); cy.log("[Brief description of scenario being loaded]"); - cy.mockIncidentFixture("incident-scenarios/XX-scenario-name.yaml"); + cy.mockIncidentFixture("incidents/scenarios/XX-scenario-name.yaml"); }); it("1. [First test case description]", () => { @@ -355,7 +355,7 @@ incidentsPage.toggleFilter("Critical"); **Scenario A - No fixture exists**: -1. Search for similar fixtures in `web/cypress/fixtures/incident-scenarios/` +1. Search for similar fixtures in `web/cypress/fixtures/incidents/scenarios/` 2. Prompt with options: ``` No fixture found. Required: [list requirements] @@ -549,7 +549,7 @@ describe("Regression: Tooltip Positioning", () => { incidentsPage.goTo(); cy.log("Loading tooltip positioning test scenarios"); cy.mockIncidentFixture( - "incident-scenarios/13-tooltip-positioning-scenarios.yaml", + "incidents/scenarios/13-tooltip-positioning-scenarios.yaml", ); }); @@ -634,7 +634,7 @@ describe("Regression: Tooltip Positioning", () => { **AI Actions**: 1. Parse Section 1 from testing_flows_ui.md -2. Note: Fixture `7-comprehensive-filtering-test-scenarios.yaml` already exists +2. Note: Fixture `comprehensive-filtering-test-scenarios.yaml` already exists 3. **Design comprehensive flow**: Instead of separate tests for each filter type, create complete filtering workflows - Flow 1: User applies multiple filters in sequence, verifies each step, then clears all - Flow 2: User changes time range while filters are active, verifies data updates @@ -648,8 +648,8 @@ Provide: 1. **Test file path and name**: Full path to generated test file 2. **Test file content**: Complete TypeScript test file 3. **Fixture status**: - - If existing: "Using fixture: incident-scenarios/X-name.yaml" - - If new: "Created fixture: incident-scenarios/X-name.yaml" + YAML content + - If existing: "Using fixture: incidents/scenarios/X-name.yaml" + - If new: "Created fixture: incidents/scenarios/X-name.yaml" + YAML content 4. **Page object changes**: If any elements/methods need to be added, list them with implementation 5. **Validation status**: Confirm all checklist items passed diff --git a/.cursor/commands/validate-incident-fixtures.md b/.cursor/commands/validate-incident-fixtures.md index a936b8b43..440f3ff13 100644 --- a/.cursor/commands/validate-incident-fixtures.md +++ b/.cursor/commands/validate-incident-fixtures.md @@ -1,50 +1,62 @@ # Validate Incident Fixtures ## Overview + Validate existing YAML incident fixture files against the JSON Schema to ensure they are properly structured and will work correctly in tests. ## Process ### 1. Locate Fixture Files -- Check `web/cypress/fixtures/incident-scenarios/` directory + +- Check `web/cypress/fixtures/incidents/scenarios/` directory - Identify all `.yaml` and `.yml` files - Also validate any `.json` fixture files for backward compatibility ### 2. Run Schema Validation + Use the validation tool to check each fixture: + ```bash cd web/cypress/support/incidents_prometheus_query_mocks node validate-fixtures.js --all ``` ### 3. Analyze Results + For each fixture file: + - ✅ **Valid**: Fixture passes all schema validation - ❌ **Invalid**: Identify specific validation errors - 🔧 **Fixable**: Determine if errors can be automatically corrected ### 4. Fix Validation Issues + Common issues and fixes: #### Missing Required Fields + - Add missing `name`, `description`, or `incidents` fields - Ensure all incidents have required `id`, `component`, `layer`, `alerts` #### Invalid Duration Format + - Fix duration strings to use format: `"2h"`, `"30m"`, `"7d"` - Remove invalid formats like `"2 hours"`, `"30 minutes"` #### Invalid Enum Values + - **Components**: Use only valid values (monitoring, storage, network, etc.) - **Layers**: Use only `"core"` or `"Others"` - **Severities**: Use only `"critical"`, `"warning"`, or `"info"` #### YAML Syntax Errors + - Fix indentation issues - Correct quote usage - Ensure proper array formatting #### Alert Structure Issues + - Ensure alerts have `name`, `namespace`, `severity` - Verify alert names are realistic OpenShift alert names - Check namespace formats match OpenShift conventions @@ -52,14 +64,16 @@ Common issues and fixes: ## Validation Checklist ### Schema Compliance + - [ ] All required fields present - [ ] Valid component enum values -- [ ] Valid layer enum values +- [ ] Valid layer enum values - [ ] Valid severity enum values - [ ] Proper duration format - [ ] Correct YAML syntax ### Content Quality + - [ ] Realistic alert names - [ ] Proper OpenShift namespaces - [ ] Logical timeline values @@ -67,6 +81,7 @@ Common issues and fixes: - [ ] Clear descriptions ### Test Readiness + - [ ] Fixtures can be loaded without errors - [ ] Schema validation passes - [ ] Ready for use in Cypress tests @@ -74,17 +89,19 @@ Common issues and fixes: ## Common Fixes ### Fix Duration Format + ```yaml # Before start: "2 hours ago" end: "30 minutes ago" -# After -start: "2h" # Started 2 hours ago -end: "30m" # Resolved 30 minutes ago +# After +start: "2h" # Started 2 hours ago +end: "30m" # Resolved 30 minutes ago ``` ### Fix Component Names + ```yaml # Before component: "monitoring-system" @@ -94,6 +111,7 @@ component: "monitoring" ``` ### Fix Alert Structure + ```yaml # Before alerts: @@ -110,13 +128,16 @@ alerts: ``` ## Output + Provide: + 1. **Validation Summary**: List of all fixtures and their validation status 2. **Error Details**: Specific validation errors for any failed fixtures 3. **Fix Suggestions**: Recommended changes for invalid fixtures 4. **Corrected Fixtures**: Updated YAML content for any fixtures that need fixes ## Tools Available + - Schema validator: `web/cypress/support/incidents_prometheus_query_mocks/schema-validator.ts` - CLI validator: `web/cypress/support/incidents_prometheus_query_mocks/validate-fixtures.js` - JSON Schema: `web/cypress/support/incidents_prometheus_query_mocks/fixture-schema.json` diff --git a/.cursor/rules/incidents-testing-guidelines.mdc b/.cursor/rules/incidents-testing-guidelines.mdc index d11b0809f..91f3dd1dd 100644 --- a/.cursor/rules/incidents-testing-guidelines.mdc +++ b/.cursor/rules/incidents-testing-guidelines.mdc @@ -4,7 +4,7 @@ description: "Development guidelines for Incidents page Cypress tests" globs: - "web/cypress/e2e/incidents/**/*.cy.ts" - "web/cypress/views/incidents-page.ts" - - "web/cypress/fixtures/incident-scenarios/**/*.yaml" + - "web/cypress/fixtures/incidents/scenarios/**/*.yaml" --- # Incidents Testing Development Guidelines @@ -111,7 +111,7 @@ describe('Regression:
', () => { cy.log('Navigate to Observe → Incidents'); incidentsPage.goTo(); cy.log('Brief description of scenario'); - cy.mockIncidentFixture('incident-scenarios/XX-name.yaml'); + cy.mockIncidentFixture('incidents/scenarios/XX-name.yaml'); }); it('1. Test case description', () => { @@ -239,14 +239,14 @@ it('2. Existing test', () => { ## Fixture Management ### Fixture Location and Naming -- Location: `web/cypress/fixtures/incident-scenarios/` +- Location: `web/cypress/fixtures/incidents/scenarios/` - Pattern: `XX-descriptive-name.yaml` - Examples: `13-tooltip-positioning-scenarios.yaml` ### Fixture Usage in Tests ```typescript // Preferred: Single scenario per test file -cy.mockIncidentFixture('incident-scenarios/13-tooltip-positioning-scenarios.yaml'); +cy.mockIncidentFixture('incidents/scenarios/13-tooltip-positioning-scenarios.yaml'); // For empty state cy.mockIncidents([]); diff --git a/docs/incident_detection/tests/2.ui_display_flows.md b/docs/incident_detection/tests/2.ui_display_flows.md index a61850947..57d9bdad5 100644 --- a/docs/incident_detection/tests/2.ui_display_flows.md +++ b/docs/incident_detection/tests/2.ui_display_flows.md @@ -1,7 +1,8 @@ ## 2. CRITICAL: Charts – UI Bugs **Automation Status**: AUTOMATED in `02.reg_ui_charts_comprehensive.cy.ts` apart from 2.3.1 and 2.4 -- Uses fixture: `incident-scenarios/12-charts-ui-comprehensive.yaml` + +- Uses fixture: `incidents/scenarios/charts-ui-comprehensive.yaml` - Covers: Tooltip positioning, bar sorting & visibility, date/time display - Verifies: Incidents chart, alerts chart, multi-component tooltips, long alert names @@ -23,28 +24,30 @@ start,end,alertname,namespace,severity,silenced,labels ``` **Quick Reference** (Charts Test Data): -| Incident | Components | Duration | Severity | Time Range | Use For Testing | -|----------|------------|----------|----------|------------|-----------------| -| C | api-server | 0 min | Warning | 420 | Short duration visibility | -| D | monitoring | 5 hrs | Multi-severity (Info→Warning→Critical) | 480-780 | Multi-severity segments | -| E | etcd, kube-apiserver, kube-controller | 4 hrs | Critical | 840-1080 | Multi-component tooltip, long names | + +| Incident | Components | Duration | Severity | Time Range | Use For Testing | +| -------- | ------------------------------------- | -------- | -------------------------------------- | ---------- | ----------------------------------- | +| C | api-server | 0 min | Warning | 420 | Short duration visibility | +| D | monitoring | 5 hrs | Multi-severity (Info→Warning→Critical) | 480-780 | Multi-severity segments | +| E | etcd, kube-apiserver, kube-controller | 4 hrs | Critical | 840-1080 | Multi-component tooltip, long names | ### 2.1 Tooltip Positioning Issues + **BUG**: Tooltips were overlapping bars or going off-screen. **Automation Status**: AUTOMATED -- [ ] **Tooltip Positioning - Incidents Chart**: +- [ ] **Tooltip Positioning - Incidents Chart**: - Hover over Incident A (oldest, at bottom) - Hover over Incident H (one of newest, near top) - Hover over Incident D (middle position) - Verify tooltip appears directly above/on each bar without overlap - + - [ ] **Tooltip Content - Multi-Component**: Hover over Incident E - Verify shows: "Component(s): etcd, kube-apiserver, kube-controller" - Verify comma-separated list format - Test with long alert name (Controller_Very_Very_Very_Very_Long_Name_Alert) - -- [ ] **Tooltip Content - Firing vs Resolved**: + +- [ ] **Tooltip Content - Firing vs Resolved**: - Hover over Incident D (firing): End should show "---" - Hover over Incident A (resolved): End should show actual end time @@ -55,6 +58,7 @@ start,end,alertname,namespace,severity,silenced,labels - Verify alert name length does not influence the behaviour (test long controller name) ### 2.2 Bar Sorting & Visibility Issues + **BUGS**: Bars not sorted by start date, filtered bars not leaving space, short alerts not visible. **Automation Status**: AUTOMATED @@ -71,19 +75,20 @@ start,end,alertname,namespace,severity,silenced,labels 9. Incident I (1800-1980) 10. Incident J (2040-2220) - top - Verify this order maintained after applying filters - + - [ ] **Filtered Bars Leave Empty Space**: Apply "Critical" filter - Expected visible: D, E, H (Critical incidents) - Expected hidden but space preserved: A, B, C, F, G, I, J - Verify gaps appear where non-Critical incidents would be - Verify Y-axis still shows all 10 positions - + - [ ] **Short Duration Incidents Visible**: Check Incident C (single point at 420) - Verify bar IS visible despite 0-minute duration - Hover to confirm tooltip shows Incident C - Verify bar has minimum visible width ### 2.3 Date/Time Display Issues + **BUGS**: Start/End times not displaying correctly, date format not respecting language. **Automation Status**: AUTOMATED @@ -92,30 +97,33 @@ start,end,alertname,namespace,severity,silenced,labels - Incident A (resolved): Start = T-0min, End = T-180min (both shown) - Incident C (short, resolved): Start = T-420min, End = T-420min - Verify tooltip shows these times correctly - + - [ ] **Multi-Severity Segments**: Check Incident D (Info→Warning→Critical) - Verify each severity segment shows correct time range: - Info segment: T-480min to T-540min - Warning segment: T-540min to T-600min - Critical segment: T-600min to "---" - -- [ ] **Date Format Respects Language**: + +- [ ] **Date Format Respects Language**: - Set browser/app language to English - Check Incident A tooltip: should show "Jan 15, 2025, 3:45 PM" format - Switch to Chinese (if available) and verify format changes - Verify `dateTimeFormatter(i18n.language)` respects setting ### 2.3.1 (Not Automated) + - [ ] **Date Format Changed Immediately** (xfail): - Change the app language to Spanish - Check the "last updated date" field - Verify that the format changes without the need to reload the page ### 2.3.2 Incident Bar Trimming on Time Filter Change + **BUG**: When "Last N Days" is shorter than an incident's duration, the bar should be visually trimmed to show only the portion within the selected time window. **Automation Status**: NOT AUTOMATED **Background**: + - Incorrect behavior: Changing time filter "squashes" the X-axis to the right while still showing the full incident bar - Correct behavior: Incident bar is trimmed/clipped to only display the portion that falls within the selected time range @@ -132,14 +140,17 @@ start,end,alertname,namespace,severity,silenced,labels - Verify the displayed duration reflects the full incident, not just the visible portion ### 2.3.3 Mixed Severity Interval Boundary Times + **Automation Status**: NOT AUTOMATED This section covers two related time display bugs in multi-severity incident tooltips. #### Issue 1: Boundary End Times Not Rounded (OU-1205) + **BUG**: Consecutive interval end times within the same incident bar are not 5-minute rounded in tooltips. **Background**: + - The interval calculation logic in `utils.ts` uses 1-second offsets to prevent overlapping intervals - Example: If timestamps are at 100, 200, 300 seconds, intervals are calculated as: - Interval 1: [100, 199, 'critical'] @@ -153,9 +164,11 @@ This section covers two related time display bugs in multi-severity incident too - Verify all interval boundaries display at 5-minute precision in tooltips #### Issue 2: Start Times 5 Minutes Off (OU-1221) + **BUG**: Multi-severity incident bar tooltip start times are 5 minutes off from the values shown in alert tooltips and alerts table. **Background**: + - When hovering over a severity segment in an incident bar, the Start time shown differs from: - The Start time shown in the corresponding alert tooltip - The Start time shown in the alerts details table @@ -180,15 +193,18 @@ This section covers two related time display bugs in multi-severity incident too - Expected: Info ends at "10:15" and Warning starts at "10:15" ### 2.4 Silences labels (Not Automated) + - Verify that information about silences is contained in the alert name as `NetworkLatencyHigh (silenced)` instead of the additional `silenced=true` field ### 2.5 Incorrect Padding for 100+ Alerts in an Incident (Not Automated) + **BUG**: When an incident contains 100+ alerts, the alerts chart height calculation produces excessive padding, pushing alert bars far below the visible area. **Verifies**: OU-1123 **Background**: + - The alerts chart dynamically calculates its height based on the number of alerts - With 100+ alerts, the padding/height formula creates a large empty gap between the "Alerts Timeline" header and the actual alert bars, which are pushed to the bottom of the chart area - After the fix, a smaller gap may still appear with ~500+ alerts — this is accepted as a known limitation @@ -208,6 +224,7 @@ This section covers two related time display bugs in multi-severity incident too - This is accepted as a known limitation and does not block release ### 2.6 Data Delay Info Alert (Not Automated) + **Feature**: Info alert banner informing users about data update frequency. **Verifies**: OU-1039 diff --git a/docs/incident_detection/tests/3.api_calls_data_loading_flows.md b/docs/incident_detection/tests/3.api_calls_data_loading_flows.md index eacb53c00..d8db0992e 100644 --- a/docs/incident_detection/tests/3.api_calls_data_loading_flows.md +++ b/docs/incident_detection/tests/3.api_calls_data_loading_flows.md @@ -18,40 +18,45 @@ start,end,alertname,namespace,severity,silenced,labels ``` **Silence Matching Logic**: + - Silence determined by `silenced` field in CSV (becomes label in `cluster_health_components_map` metric) - Incidents I and J have same `alertname` but different `namespace` and different `silenced` values - Tests that silence matching uses: `alertname` + `namespace` + `severity` (NOT just alert name) **Quick Reference** (Alerts & Silences): -| Alert | alertname | namespace | severity | Time Range | Expected State | silenced | Use For Testing | -|-------|-----------|-----------|----------|------------|----------------|----------|-----------------| -| F1 | AlertF_KubePodCrashLooping | openshift-monitoring | warning | 1140-1260 | Resolved | false | Time-based resolution | -| F2 | AlertF_HighMemoryUsage | openshift-monitoring | critical | 1200-1380 | Resolved | false | Time-based resolution | -| G | AlertG_APIServerLatency | openshift-kube-apiserver | warning | 1440-1500 | Resolved | false | Short duration (1 hr) | -| I | AlertI_KubePodNotReady | openshift-operators | warning | 1800-1980 | Resolved | **true** | Silence matching | -| J | AlertJ_KubePodNotReady | openshift-storage | warning | 2040-2220 | Resolved | **false** | Different namespace = not silenced | +| Alert | alertname | namespace | severity | Time Range | Expected State | silenced | Use For Testing | +| ----- | -------------------------- | ------------------------ | -------- | ---------- | -------------- | --------- | ---------------------------------- | +| F1 | AlertF_KubePodCrashLooping | openshift-monitoring | warning | 1140-1260 | Resolved | false | Time-based resolution | +| F2 | AlertF_HighMemoryUsage | openshift-monitoring | critical | 1200-1380 | Resolved | false | Time-based resolution | +| G | AlertG_APIServerLatency | openshift-kube-apiserver | warning | 1440-1500 | Resolved | false | Short duration (1 hr) | +| I | AlertI_KubePodNotReady | openshift-operators | warning | 1800-1980 | Resolved | **true** | Silence matching | +| J | AlertJ_KubePodNotReady | openshift-storage | warning | 2040-2220 | Resolved | **false** | Different namespace = not silenced | ### 3.1 Short Incidents Not Visible + **BUG**: Incidents with duration < 5 minutes weren't showing up. **Automation Status**: AUTOMATED in `02.reg_ui_charts_comprehensive.cy.ts` (Section 3.1) -- Uses fixture: `incident-scenarios/12-charts-ui-comprehensive.yaml` (includes very short duration incidents) + +- Uses fixture: `incidents/scenarios/charts-ui-comprehensive.yaml` (includes very short duration incidents) - Tests: 5-minute, 9-minute, and recently resolved (2 min ago) incidents - Verifies: Bar visibility, dimensions, transparency, selectability, and alert loading - [x] **Short Incident C**: Check `api-server` incident (0 min duration, single point) - AUTOMATED - Verify appears in incidents chart (has visible bar despite 0 duration) - Select it and verify alert loads - + - [x] **Short Incident G**: Check `kube-apiserver` incident (60 min duration) - AUTOMATED - Verify appears in incidents chart with visible bar - Select it and verify AlertG_APIServerLatency appears - Verify no minimum duration threshold filters it out ### 3.2 Silences Not Applied Correctly + **BUG**: Silences were being matched by name only, not by name + namespace + severity. **Automation Status**: AUTOMATED in `03.reg_api_calls.cy.ts` -- Uses fixture: `incident-scenarios/9-silenced-alerts-mixed-scenario.yaml` + +- Uses fixture: `incidents/scenarios/silenced-alerts-mixed-scenario.yaml` - Verifies: Opacity (0.3 for silenced, 1.0 for non-silenced) - Verifies: Tooltip "(silenced)" indicator - Tests: Same alert name with different namespaces @@ -61,22 +66,24 @@ start,end,alertname,namespace,severity,silenced,labels - Expected: Alert marked as `silenced = true` - Verify alert bar has opacity: 0.3 (reduced) - Verify tooltip shows: "AlertI_KubePodNotReady (silenced)" - + - [ ] **Incident J NOT Silenced**: Check `AlertJ_KubePodNotReady` in `openshift-storage` - Same alert name as Incident I, but DIFFERENT namespace - Silence does NOT match (namespace mismatch) - Expected: Alert marked as `silenced = false` - Verify alert bar has opacity: 1.0 (full) - Verify tooltip shows: "AlertJ_KubePodNotReady" (no silenced suffix) - + - [ ] **Silence Matching Logic**: Verify implementation - Check that matching uses: `alertname` + `namespace` + `severity` - NOT just `alertname` alone - Silence source: `cluster_health_components_map` metric (NOT Alertmanager API) ### 3.3 Alerts Marked as Resolved After Time + **BUG**: Alerts not being marked as resolved when they should be. **Automation Status**: NOT AUTOMATED (requires live firing alerts) + - **WARNING Not possible to test on Injected Data, requires continously firing alert** - Trigger a real firing alert (Pod CrashLooping...) - Verify that the alert is firing @@ -85,13 +92,14 @@ start,end,alertname,namespace,severity,silenced,labels - Verify it is not marked as resolved - Verify the latest query end time param is within the last 5 minutes - ### 3.4 Many Alerts Break API Request (OU-632) + **BUG**: When an incident contains many alerts (100+), the Prometheus query for the Alerts endpoint becomes too large, resulting in a "Request Header Fields Too Large" (431) error. No alerts are rendered for that incident. **Automation Status**: NOT AUTOMATED (requires live injected data on cluster) **Data Setup**: Use the simulation script from the `cluster-health-analyzer` repository (`local/simulate.sh`) with the following CSVs from `docs/incident_detection/simulate_scenarios/`: + - `100-alerts-14-days.csv` — 100 alerts across 14 days (single incident, triggers the bug) - `1000-alerts-15-min.csv` — 1000 alerts in 15 minutes (extreme stress scenario) @@ -108,15 +116,19 @@ Use the simulation script from the `cluster-health-analyzer` repository (`local/ - Open browser console: verify no "Request Header Fields Too Large" error ### 3.5 Data Integrity + **NEW, NOT AUTOMATED, TODO COO 1.4** + - [ ] Incident grouping by `group_id` works correctly - [ ] Values deduplicated across multiple time range queries - [ ] Component lists combined for same group_id - [ ] Watchdog alerts filtered out ### 3.6 Permission Denied Handling (OU-1213) + **BUG**: Page should gracefully handle 403 Forbidden responses from API endpoints. **Automation Status**: AUTOMATED in `03.reg_api_calls.cy.ts` + - Uses mock: `cy.mockPermissionDenied({ rules: true, silences: true, prometheus: true })` - Manual replication: Apply resources from [`docs/incident_detection/resources/`](../resources/) diff --git a/docs/incident_detection/tests/performance/03.endurance_test_source.md b/docs/incident_detection/tests/performance/03.endurance_test_source.md index 4c969e6d3..c83a4c324 100644 --- a/docs/incident_detection/tests/performance/03.endurance_test_source.md +++ b/docs/incident_detection/tests/performance/03.endurance_test_source.md @@ -40,9 +40,7 @@ describe( }); it("8.1 Endurance: Incident select/deselect cycling across 20 incidents", () => { - cy.mockIncidentFixture( - "incident-scenarios/22-benchmark-20-incidents.yaml", - ); + cy.mockIncidentFixture("incidents/scenarios/benchmark-20-incidents.yaml"); incidentsPage.clearAllFilters(); incidentsPage.setDays("1 day"); incidentsPage.elements diff --git a/hack/scale-down-cmo.sh b/hack/scale-down-cmo.sh index 2edfa67a5..43a63880f 100755 --- a/hack/scale-down-cmo.sh +++ b/hack/scale-down-cmo.sh @@ -3,7 +3,7 @@ set -euo pipefail echo "Patching ClusterVersion to disable CMO management of monitoring-plugin..." oc patch clusterversion version --type json \ - -p "$(cat ./web/cypress/fixtures/cmo/disable-monitoring.yaml)" + -p "$(cat ./web/cypress/fixtures/shared/cluster-monitoring-operator/disable-monitoring.yaml)" echo "Scaling down cluster-monitoring-operator in openshift-monitoring..." kubectl scale --replicas=0 -n openshift-monitoring deployment/cluster-monitoring-operator diff --git a/web/cypress/e2e/alerts/alerts_bvt.cy.ts b/web/cypress/e2e/alerts/alerts_bvt.cy.ts index ab8588c8c..4b43def45 100644 --- a/web/cypress/e2e/alerts/alerts_bvt.cy.ts +++ b/web/cypress/e2e/alerts/alerts_bvt.cy.ts @@ -1,5 +1,5 @@ import { nav } from '../../views/nav'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { runBVTMonitoringTestsNamespace } from '../../support/monitoring/00.bvt_monitoring_namespace.cy'; import { commonPages } from '../../views/common'; import { CLUSTER_MONITORING_OPERATOR } from '../../support/operators'; diff --git a/web/cypress/e2e/alerts/alerts_ivt.cy.ts b/web/cypress/e2e/alerts/alerts_ivt.cy.ts index 0d6fcd630..8ca1fdbfd 100644 --- a/web/cypress/e2e/alerts/alerts_ivt.cy.ts +++ b/web/cypress/e2e/alerts/alerts_ivt.cy.ts @@ -3,7 +3,7 @@ import { CLUSTER_OBSERVABILITY_OPERATOR, KUBEVIRT_HYPERCONVERGED_OPERATOR, } from '../../support/operators'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { runAllRegressionAlertsTests } from '../../support/monitoring/01.reg_alerts.cy'; import { commonPages } from '../../views/common'; import { nav } from '../../views/nav'; diff --git a/web/cypress/e2e/alerts/alerts_regression.cy.ts b/web/cypress/e2e/alerts/alerts_regression.cy.ts index 6aa2bd09e..0180969f1 100644 --- a/web/cypress/e2e/alerts/alerts_regression.cy.ts +++ b/web/cypress/e2e/alerts/alerts_regression.cy.ts @@ -1,5 +1,5 @@ import { runAllRegressionAlertsTests } from '../../support/monitoring/01.reg_alerts.cy'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { runAllRegressionAlertsTestsNamespace } from '../../support/monitoring/04.reg_alerts_namespace.cy'; import { commonPages } from '../../views/common'; import { nav } from '../../views/nav'; diff --git a/web/cypress/e2e/alerts/alerts_virtualization_bvt.cy.ts b/web/cypress/e2e/alerts/alerts_virtualization_bvt.cy.ts index 193d064d2..bdb00778a 100644 --- a/web/cypress/e2e/alerts/alerts_virtualization_bvt.cy.ts +++ b/web/cypress/e2e/alerts/alerts_virtualization_bvt.cy.ts @@ -1,6 +1,6 @@ import { runBVTMonitoringTests } from '../../support/monitoring/00.bvt_monitoring.cy'; import { guidedTour } from '../../views/tour'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { nav } from '../../views/nav'; import { commonPages } from '../../views/common'; import { troubleshootingPanelPage } from 'cypress/views/troubleshooting-panel'; diff --git a/web/cypress/e2e/incidents/incidents_bvt.cy.ts b/web/cypress/e2e/incidents/incidents_bvt.cy.ts index 67e0cefc7..76f37a47d 100644 --- a/web/cypress/e2e/incidents/incidents_bvt.cy.ts +++ b/web/cypress/e2e/incidents/incidents_bvt.cy.ts @@ -21,7 +21,7 @@ describe('BVT: Incidents - UI', { tags: ['@cluster-health-analyzer'] }, () => { }); incidentsPage.warmUpForPlugin(); cy.mockIncidentFixture( - 'incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml', + 'incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml', ); }); @@ -75,12 +75,12 @@ describe('BVT: Incidents - UI', { tags: ['@cluster-health-analyzer'] }, () => { cy.log('5.2 Verify traversing incident table works when the alert is not present'); cy.mockIncidentFixture( - 'incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml', + 'incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml', ); incidentsPage.findIncidentWithAlert('TargetAlert').should('be.false'); cy.log('5.3 Verify traversing incident table works when the alert is present'); - cy.mockIncidentFixture('incident-scenarios/6-multi-incident-target-alert-scenario.yaml'); + cy.mockIncidentFixture('incidents/scenarios/multi-incident-target-alert-scenario.yaml'); incidentsPage.clearAllFilters(); incidentsPage.findIncidentWithAlert('TargetAlert').should('be.true'); }); @@ -89,7 +89,7 @@ describe('BVT: Incidents - UI', { tags: ['@cluster-health-analyzer'] }, () => { cy.log('6.1 Load multi-incident fixture and verify chart bars are clickable'); incidentsPage.setDays('7 days'); cy.mockIncidentFixture( - 'incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml', + 'incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml', ); incidentsPage.clearAllFilters(); incidentsPage.elements.incidentsChartContainer().should('be.visible'); diff --git a/web/cypress/e2e/incidents/incidents_mocking_example.cy.ts b/web/cypress/e2e/incidents/incidents_mocking_example.cy.ts index b86fe8995..d10d3e10e 100644 --- a/web/cypress/e2e/incidents/incidents_mocking_example.cy.ts +++ b/web/cypress/e2e/incidents/incidents_mocking_example.cy.ts @@ -28,7 +28,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('1. Mock silenced and firing incidents with mixed severity', () => { cy.log('Setting up silenced critical and firing warning incidents'); - cy.mockIncidentFixture('incident-scenarios/silenced-and-firing-mixed-severity.yaml'); + cy.mockIncidentFixture('incidents/scenarios/silenced-and-firing-mixed-severity.yaml'); cy.log( 'One silenced critical incident (resolved) and one firing warning incident should be visible', @@ -38,7 +38,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('2. Mock healthy cluster from fixture', () => { cy.log('Setting up healthy cluster scenario from fixture'); - cy.mockIncidentFixture('incident-scenarios/0-healthy-cluster.yaml'); + cy.mockIncidentFixture('incidents/scenarios/healthy-cluster.yaml'); cy.pause(); }); @@ -46,7 +46,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('3. Mock single incident with critical and warning alerts', () => { cy.log('Setting up single incident with critical and warning alerts from fixture'); cy.mockIncidentFixture( - 'incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml', + 'incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml', ); cy.log('Single incident with mixed severity alerts should be visible'); cy.pause(); @@ -55,7 +55,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('4. Mock multi-incidents with resolved and firing alerts', () => { cy.log('Setting up multi-incidents with resolved and firing alerts from fixture'); cy.mockIncidentFixture( - 'incident-scenarios/2-multi-incidents-multi-alerts-resolved-and-firing.yaml', + 'incidents/scenarios/multi-incidents-multi-alerts-resolved-and-firing.yaml', ); cy.log('Multiple incidents with mixed alert states should be visible'); @@ -64,7 +64,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('5. Mock multi-severity overlapping incidents', () => { cy.log('Setting up multi-severity overlapping incidents from fixture'); - cy.mockIncidentFixture('incident-scenarios/3-multi-severity-overlapping-incidents.yaml'); + cy.mockIncidentFixture('incidents/scenarios/multi-severity-overlapping-incidents.yaml'); cy.log('Overlapping incidents with different severity distributions should be visible'); cy.pause(); @@ -72,7 +72,7 @@ describe('Incidents - Mocking Examples', { tags: ['@cluster-health-analyzer'] }, it('6. Mock single incident with escalating severity alerts', () => { cy.log('Setting up single incident with escalating severity alerts from fixture'); - cy.mockIncidentFixture('incident-scenarios/5-escalating-severity-incident.yaml'); + cy.mockIncidentFixture('incidents/scenarios/escalating-severity-incident.yaml'); cy.log('Single incident with escalating severity alerts should be visible'); cy.pause(); diff --git a/web/cypress/e2e/incidents/performance/performance_benchmark.cy.ts b/web/cypress/e2e/incidents/performance/performance_benchmark.cy.ts index 1eb0e2125..ced5c8741 100644 --- a/web/cypress/e2e/incidents/performance/performance_benchmark.cy.ts +++ b/web/cypress/e2e/incidents/performance/performance_benchmark.cy.ts @@ -68,7 +68,7 @@ describe( label: string, days: '1 day' | '3 days' | '7 days' | '15 days' = '1 day', ) => { - cy.mockIncidentFixture(`incident-scenarios/${fixture}`); + cy.mockIncidentFixture(`incidents/scenarios/${fixture}`); collector.markStart(label); @@ -81,7 +81,7 @@ describe( cy.log('6.1.1 Incidents chart with 100 alerts (single incident)'); benchmarkIncidentsChart( - '15-stress-test-100-alerts.yaml', + 'stress-test-100-alerts.yaml', 1, THRESHOLDS.INCIDENTS_CHART_100_ALERTS, 'Incidents chart - 100 alerts', @@ -89,7 +89,7 @@ describe( cy.log('6.1.2 Incidents chart with 200 alerts (single incident)'); benchmarkIncidentsChart( - '16-stress-test-200-alerts.yaml', + 'stress-test-200-alerts.yaml', 1, THRESHOLDS.INCIDENTS_CHART_200_ALERTS, 'Incidents chart - 200 alerts', @@ -97,7 +97,7 @@ describe( cy.log('6.1.3 Incidents chart with 500 alerts (single incident)'); benchmarkIncidentsChart( - '17-stress-test-500-alerts.yaml', + 'stress-test-500-alerts.yaml', 1, THRESHOLDS.INCIDENTS_CHART_500_ALERTS, 'Incidents chart - 500 alerts', @@ -114,7 +114,7 @@ describe( label: string, days: '1 day' | '3 days' | '7 days' | '15 days' = '1 day', ) => { - cy.mockIncidentFixture(`incident-scenarios/${fixture}`); + cy.mockIncidentFixture(`incidents/scenarios/${fixture}`); incidentsPage.clearAllFilters(); incidentsPage.setDays(days); incidentsPage.elements.incidentsChartBarsGroups().should('have.length', 1); @@ -131,7 +131,7 @@ describe( cy.log('6.2.1 Alerts chart after selecting incident with 100 alerts'); benchmarkAlertsChart( - '15-stress-test-100-alerts.yaml', + 'stress-test-100-alerts.yaml', 'cluster-wide-failure-100-alerts', THRESHOLDS.ALERTS_CHART_100_ALERTS, 'Alerts chart - 100 alerts', @@ -139,7 +139,7 @@ describe( cy.log('6.2.2 Alerts chart after selecting incident with 200 alerts'); benchmarkAlertsChart( - '16-stress-test-200-alerts.yaml', + 'stress-test-200-alerts.yaml', 'cluster-wide-failure-200-alerts', THRESHOLDS.ALERTS_CHART_200_ALERTS, 'Alerts chart - 200 alerts', @@ -147,7 +147,7 @@ describe( cy.log('6.2.3 Alerts chart after selecting incident with 500 alerts'); benchmarkAlertsChart( - '17-stress-test-500-alerts.yaml', + 'stress-test-500-alerts.yaml', 'cluster-wide-failure-500-alerts', THRESHOLDS.ALERTS_CHART_500_ALERTS, 'Alerts chart - 500 alerts', @@ -157,7 +157,7 @@ describe( it('6.3 Benchmark: Multi-incident chart render time (20 uniform incidents)', () => { cy.wait(10000); - cy.mockIncidentFixture('incident-scenarios/22-benchmark-20-incidents.yaml'); + cy.mockIncidentFixture('incidents/scenarios/benchmark-20-incidents.yaml'); collector.markStart('Incidents chart - 20 uniform incidents'); @@ -174,7 +174,7 @@ describe( it('6.4 Benchmark: Mixed-size incidents chart render time (12 heterogeneous incidents)', () => { cy.wait(10000); - cy.mockIncidentFixture('incident-scenarios/23-benchmark-mixed-size-incidents.yaml'); + cy.mockIncidentFixture('incidents/scenarios/benchmark-mixed-size-incidents.yaml'); collector.markStart('Incidents chart - 12 mixed-size incidents (67 alerts)'); diff --git a/web/cypress/e2e/incidents/performance/performance_walkthrough.cy.ts b/web/cypress/e2e/incidents/performance/performance_walkthrough.cy.ts index 85ece765a..570085434 100644 --- a/web/cypress/e2e/incidents/performance/performance_walkthrough.cy.ts +++ b/web/cypress/e2e/incidents/performance/performance_walkthrough.cy.ts @@ -45,7 +45,7 @@ describe( }); it('7.1 Walkthrough: Filter interaction and time range switching with 20 incidents', () => { - cy.mockIncidentFixture('incident-scenarios/22-benchmark-20-incidents.yaml'); + cy.mockIncidentFixture('incidents/scenarios/benchmark-20-incidents.yaml'); incidentsPage.clearAllFilters(); incidentsPage.setDays('1 day'); incidentsPage.elements.incidentsChartBarsGroups().should('have.length', 20); @@ -131,7 +131,7 @@ describe( // --- Phase 3a: Table expansion with 100 alerts --- cy.log('7.2.1 Load 100-alert fixture and select incident'); - cy.mockIncidentFixture('incident-scenarios/15-stress-test-100-alerts.yaml'); + cy.mockIncidentFixture('incidents/scenarios/stress-test-100-alerts.yaml'); incidentsPage.clearAllFilters(); incidentsPage.setDays('1 day'); incidentsPage.selectIncidentById('cluster-wide-failure-100-alerts'); @@ -148,7 +148,7 @@ describe( // --- Phase 3b: Table expansion with 500 alerts --- cy.log('7.2.3 Load 500-alert fixture and select incident'); - cy.mockIncidentFixture('incident-scenarios/17-stress-test-500-alerts.yaml'); + cy.mockIncidentFixture('incidents/scenarios/stress-test-500-alerts.yaml'); incidentsPage.clearAllFilters(); incidentsPage.setDays('1 day'); incidentsPage.selectIncidentById('cluster-wide-failure-500-alerts'); diff --git a/web/cypress/e2e/incidents/regression/filtering.cy.ts b/web/cypress/e2e/incidents/regression/filtering.cy.ts index 4e12db67c..2d29b6c7e 100644 --- a/web/cypress/e2e/incidents/regression/filtering.cy.ts +++ b/web/cypress/e2e/incidents/regression/filtering.cy.ts @@ -24,7 +24,7 @@ describe('Regression: Incidents Filtering', { tags: ['@cluster-health-analyzer'] beforeEach(() => { cy.log('Setting up comprehensive filtering test scenarios'); - cy.mockIncidentFixture('incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml'); + cy.mockIncidentFixture('incidents/scenarios/comprehensive-filtering-test-scenarios.yaml'); }); it('1. Severity filtering - Critical, Warning, Info', () => { @@ -123,7 +123,7 @@ describe('Regression: Incidents Filtering', { tags: ['@cluster-health-analyzer'] incidentsPage.elements.incidentsChartBarsGroups().should('have.length', 12); cy.log('2.5 Filter-based traversal finds a known alert'); - cy.mockIncidentFixture('incident-scenarios/6-multi-incident-target-alert-scenario.yaml'); + cy.mockIncidentFixture('incidents/scenarios/multi-incident-target-alert-scenario.yaml'); incidentsPage.clearAllFilters(); incidentsPage.setDays('7 days'); incidentsPage.findIncidentWithAlert('TargetAlert').should('be.true'); @@ -133,7 +133,7 @@ describe('Regression: Incidents Filtering', { tags: ['@cluster-health-analyzer'] }); cy.log('2.7 Select incident by ID filter and verify matching alerts are present'); - cy.mockIncidentFixture('incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml'); + cy.mockIncidentFixture('incidents/scenarios/comprehensive-filtering-test-scenarios.yaml'); incidentsPage.clearAllFilters(); incidentsPage.selectIncidentIdFilter('etcd-critical-warning-001'); incidentsPage.elements.incidentsTable().scrollIntoView().should('be.visible'); diff --git a/web/cypress/e2e/incidents/regression/interval.cy.ts b/web/cypress/e2e/incidents/regression/interval.cy.ts index c7a04b32c..28f2102c5 100644 --- a/web/cypress/e2e/incidents/regression/interval.cy.ts +++ b/web/cypress/e2e/incidents/regression/interval.cy.ts @@ -29,7 +29,7 @@ describe( }); beforeEach(() => { - cy.mockIncidentFixture('incident-scenarios/21-multi-severity-boundary-times.yaml'); + cy.mockIncidentFixture('incidents/scenarios/multi-severity-boundary-times.yaml'); }); const extractTime = (tooltipText: string, field: 'Start' | 'End'): string => { diff --git a/web/cypress/e2e/incidents/regression/permission_and_silences.cy.ts b/web/cypress/e2e/incidents/regression/permission_and_silences.cy.ts index 8af772a95..23ea4ab7e 100644 --- a/web/cypress/e2e/incidents/regression/permission_and_silences.cy.ts +++ b/web/cypress/e2e/incidents/regression/permission_and_silences.cy.ts @@ -34,7 +34,7 @@ describe( beforeEach(() => { cy.log('Setting up silenced alerts mixed scenario'); - cy.mockIncidentFixture('incident-scenarios/9-silenced-alerts-mixed-scenario.yaml'); + cy.mockIncidentFixture('incidents/scenarios/silenced-alerts-mixed-scenario.yaml'); }); it('Silence matching verification flow - opacity and tooltip indicators', () => { diff --git a/web/cypress/e2e/incidents/regression/stress_test_ui.cy.ts b/web/cypress/e2e/incidents/regression/stress_test_ui.cy.ts index 939ca55bb..ed9e61c3a 100644 --- a/web/cypress/e2e/incidents/regression/stress_test_ui.cy.ts +++ b/web/cypress/e2e/incidents/regression/stress_test_ui.cy.ts @@ -36,7 +36,7 @@ describe('Regression: Stress Testing UI', { tags: ['@cluster-health-analyzer'] } maxGap: number, label: string, ) => { - cy.mockIncidentFixture(`incident-scenarios/${fixtureFile}`); + cy.mockIncidentFixture(`incidents/scenarios/${fixtureFile}`); incidentsPage.clearAllFilters(); incidentsPage.setDays('1 day'); @@ -65,7 +65,7 @@ describe('Regression: Stress Testing UI', { tags: ['@cluster-health-analyzer'] } cy.log('5.1.1 Verify no excessive padding with 100 alerts'); verifyAlertBarPadding( - '15-stress-test-100-alerts.yaml', + 'stress-test-100-alerts.yaml', 'cluster-wide-failure-100-alerts', MAX_GAP_STANDARD, '100 alerts', @@ -73,7 +73,7 @@ describe('Regression: Stress Testing UI', { tags: ['@cluster-health-analyzer'] } cy.log('5.1.2 Verify no excessive padding with 200 alerts'); verifyAlertBarPadding( - '16-stress-test-200-alerts.yaml', + 'stress-test-200-alerts.yaml', 'cluster-wide-failure-200-alerts', MAX_GAP_STANDARD, '200 alerts', @@ -81,7 +81,7 @@ describe('Regression: Stress Testing UI', { tags: ['@cluster-health-analyzer'] } cy.log('5.1.3 Verify accepted limitation with 500 alerts (relaxed threshold)'); verifyAlertBarPadding( - '17-stress-test-500-alerts.yaml', + 'stress-test-500-alerts.yaml', 'cluster-wide-failure-500-alerts', MAX_GAP_RELAXED, '500 alerts', diff --git a/web/cypress/e2e/incidents/regression/ui_interaction.cy.ts b/web/cypress/e2e/incidents/regression/ui_interaction.cy.ts index 477c2a9a0..2a457f87e 100644 --- a/web/cypress/e2e/incidents/regression/ui_interaction.cy.ts +++ b/web/cypress/e2e/incidents/regression/ui_interaction.cy.ts @@ -30,7 +30,7 @@ describe('Regression: Redux State Management', { tags: ['@cluster-health-analyze beforeEach(() => { cy.log('Setting up comprehensive filtering test scenarios'); - cy.mockIncidentFixture('incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml'); + cy.mockIncidentFixture('incidents/scenarios/comprehensive-filtering-test-scenarios.yaml'); }); it('1. Fresh load should display all 12 incidents without days filter manipulation', () => { diff --git a/web/cypress/e2e/incidents/regression/ui_regressions.cy.ts b/web/cypress/e2e/incidents/regression/ui_regressions.cy.ts index eef2002a0..98ffb1636 100644 --- a/web/cypress/e2e/incidents/regression/ui_regressions.cy.ts +++ b/web/cypress/e2e/incidents/regression/ui_regressions.cy.ts @@ -100,7 +100,7 @@ describe('Regression: Charts UI - Comprehensive', { tags: ['@cluster-health-anal }); beforeEach(() => { - cy.mockIncidentFixture('incident-scenarios/12-charts-ui-comprehensive.yaml'); + cy.mockIncidentFixture('incidents/scenarios/charts-ui-comprehensive.yaml'); }); describe('Section 2.1: Tooltip Positioning', () => { diff --git a/web/cypress/e2e/metrics/metrics_virtualization_ivt.cy.ts b/web/cypress/e2e/metrics/metrics_virtualization_ivt.cy.ts index 1c03ab44c..9a2b0a140 100644 --- a/web/cypress/e2e/metrics/metrics_virtualization_ivt.cy.ts +++ b/web/cypress/e2e/metrics/metrics_virtualization_ivt.cy.ts @@ -1,5 +1,5 @@ import { runAllRegressionMetricsTests2 } from '../../support/monitoring/02.reg_metrics_2.cy'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { runAllRegressionMetricsTests1 } from '../../support/monitoring/02.reg_metrics_1.cy'; import { runAllRegressionMetricsTestsNamespace1 } from '../../support/monitoring/05.reg_metrics_namespace_1.cy'; import { commonPages } from '../../views/common'; diff --git a/web/cypress/e2e/perses-dashboards/perses_dashboards_datasources.cy.ts b/web/cypress/e2e/perses-dashboards/perses_dashboards_datasources.cy.ts index 1ca062ada..ad175555f 100644 --- a/web/cypress/e2e/perses-dashboards/perses_dashboards_datasources.cy.ts +++ b/web/cypress/e2e/perses-dashboards/perses_dashboards_datasources.cy.ts @@ -38,7 +38,7 @@ describe( cy.waitForDistributeTracingUIPluginReady(); cy.waitForLoggingUIPluginReady(); - cy.createTempoLokiThanosPersesGlobalDatasource(); + cy.createGlobalDatasources(); }); beforeEach(() => { @@ -48,7 +48,7 @@ describe( }); after(() => { - cy.cleanupTempoLokiThanosPersesGlobalDatasource(); + cy.cleanupGlobalDatasources(); cy.cleanupLoggingUIPlugin(); cy.cleanupDistributeTracingUIPlugin(); cy.cleanupExtraDashboards(); diff --git a/web/cypress/e2e/shared/admin_perspective_bvt.cy.ts b/web/cypress/e2e/shared/admin_perspective_bvt.cy.ts index f898e8eb6..8902d8fa2 100644 --- a/web/cypress/e2e/shared/admin_perspective_bvt.cy.ts +++ b/web/cypress/e2e/shared/admin_perspective_bvt.cy.ts @@ -1,5 +1,5 @@ import { nav } from '../../views/nav'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { runBVTMonitoringTests } from '../../support/monitoring/00.bvt_monitoring.cy'; import { commonPages } from '../../views/common'; import { overviewPage } from '../../views/overview-page'; diff --git a/web/cypress/fixtures/monitoring/alert.ts b/web/cypress/fixtures/alerts/interceptWatchdogAlert.ts similarity index 95% rename from web/cypress/fixtures/monitoring/alert.ts rename to web/cypress/fixtures/alerts/interceptWatchdogAlert.ts index 442b815f3..905a03da6 100644 --- a/web/cypress/fixtures/monitoring/alert.ts +++ b/web/cypress/fixtures/alerts/interceptWatchdogAlert.ts @@ -1,4 +1,4 @@ -import { WatchdogAlert } from './constants'; +import { WatchdogAlert } from '../shared/cluster-monitoring-operator/constants'; export const alerts = { interceptWatchdogAlert: () => { diff --git a/web/cypress/fixtures/coo/acm-uninstall.sh b/web/cypress/fixtures/coo/acm-uninstall.sh deleted file mode 100755 index 6193c3486..000000000 --- a/web/cypress/fixtures/coo/acm-uninstall.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# this scrpit use to uninstall ACM test resources and do not excute automatlly with test -set -eux -echo "[ACM Uninstall] Using KUBECONFIG=${KUBECONFIG:-~/.kube/config}" - -# --- Step 1: delete MultiClusterObservability --- -echo "[ACM Uninstall] Deleting MultiClusterObservability (MCO)..." -oc delete MultiClusterObservability observability -n open-cluster-management-observability --ignore-not-found=true - -# --- Step 2: delete MinIO、PVC、Secret、Service --- -echo "[ACM Uninstall] Cleaning up MinIO and related resources..." -oc delete deploy minio -n open-cluster-management-observability --ignore-not-found=true -oc delete pvc minio -n open-cluster-management-observability --ignore-not-found=true -oc delete secret thanos-object-storage -n open-cluster-management-observability --ignore-not-found=true -oc delete svc minio -n open-cluster-management-observability --ignore-not-found=true - -# --- Step 3: delete MultiClusterHub --- -echo "[ACM Uninstall] Deleting MultiClusterHub..." -oc delete MultiClusterHub multiclusterhub -n open-cluster-management --ignore-not-found=true - -# wait for MultiClusterHub deleted -echo "[ACM Uninstall] Waiting for MultiClusterHub cleanup..." -oc wait MultiClusterHub multiclusterhub -n open-cluster-management --for=delete --timeout=300s || true - -# --- Step 4: delete Subscription and OperatorGroup --- -echo "[ACM Uninstall] Deleting ACM Operator Subscription & OperatorGroup..." -oc delete sub advanced-cluster-management -n open-cluster-management --ignore-not-found=true -oc delete og og-global -n open-cluster-management --ignore-not-found=true - -# --- Step 5: delete namespace --- -echo "[ACM Uninstall] Deleting ACM-related namespaces..." -oc delete ns open-cluster-management-observability --ignore-not-found=true -oc delete ns open-cluster-management --ignore-not-found=true - -# # --- Step 6: clean up CRDs(optional)--- -# echo "[ACM Uninstall] Cleaning up CRDs (optional cleanup)..." -# oc delete crd multiclusterhubs.operator.open-cluster-management.io --ignore-not-found=true -# oc delete crd multiclusterobservabilities.observability.open-cluster-management.io --ignore-not-found=true - -# --- Step 7: Pod / Finalizer --- -# echo "[ACM Uninstall] Removing potential finalizers..." -# oc get ns open-cluster-management-observability -o json | jq '.spec.finalizers=[]' | oc replace --raw "/api/v1/namespaces/open-cluster-management-observability/finalize" -f - || true -# oc get ns open-cluster-management -o json | jq '.spec.finalizers=[]' | oc replace --raw "/api/v1/namespaces/open-cluster-management/finalize" -f - || true - -echo "[ACM Uninstall] ✅ Completed cleanup." diff --git a/web/cypress/fixtures/coo/coo121_perses/dashboards/openshift-cluster-sample-dashboard.yaml b/web/cypress/fixtures/coo/coo121_perses/dashboards/openshift-cluster-sample-dashboard.yaml deleted file mode 100644 index dd3671502..000000000 --- a/web/cypress/fixtures/coo/coo121_perses/dashboards/openshift-cluster-sample-dashboard.yaml +++ /dev/null @@ -1,1040 +0,0 @@ -apiVersion: perses.dev/v1alpha1 -kind: PersesDashboard -metadata: - name: openshift-cluster-sample-dashboard - namespace: openshift-cluster-observability-operator -spec: - display: - name: Kubernetes / Compute Resources / Cluster - variables: - - kind: ListVariable - spec: - display: - hidden: false - allowAllValue: false - allowMultiple: false - sort: alphabetical-asc - plugin: - kind: PrometheusLabelValuesVariable - spec: - labelName: cluster - matchers: - - up{job="kubelet", metrics_path="/metrics/cadvisor"} - name: cluster - panels: - "0_0": - kind: Panel - spec: - display: - name: CPU Utilisation - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: cluster:node_cpu:ratio_rate5m{cluster="$cluster"} - "0_1": - kind: Panel - spec: - display: - name: CPU Requests Commitment - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_cpu:kube_pod_container_resource_requests:sum{cluster="$cluster"}) / sum(kube_node_status_allocatable{job="kube-state-metrics",resource="cpu",cluster="$cluster"}) - "0_2": - kind: Panel - spec: - display: - name: CPU Limits Commitment - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_cpu:kube_pod_container_resource_limits:sum{cluster="$cluster"}) / sum(kube_node_status_allocatable{job="kube-state-metrics",resource="cpu",cluster="$cluster"}) - "0_3": - kind: Panel - spec: - display: - name: Memory Utilisation - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: 1 - sum(:node_memory_MemAvailable_bytes:sum{cluster="$cluster"}) / sum(node_memory_MemTotal_bytes{job="node-exporter",cluster="$cluster"}) - "0_4": - kind: Panel - spec: - display: - name: Memory Requests Commitment - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_memory:kube_pod_container_resource_requests:sum{cluster="$cluster"}) / sum(kube_node_status_allocatable{job="kube-state-metrics",resource="memory",cluster="$cluster"}) - "0_5": - kind: Panel - spec: - display: - name: Memory Limits Commitment - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent-decimal - thresholds: - steps: - - color: green - value: 0 - - color: red - value: 80 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_memory:kube_pod_container_resource_limits:sum{cluster="$cluster"}) / sum(kube_node_status_allocatable{job="kube-state-metrics",resource="memory",cluster="$cluster"}) - "1_0": - kind: Panel - spec: - display: - name: CPU Usage - plugin: - kind: TimeSeriesChart - spec: - legend: - mode: list - position: bottom - values: [] - visual: - areaOpacity: 1 - connectNulls: false - display: line - lineWidth: 0.25 - stack: all - yAxis: - format: - unit: decimal - min: 0 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster"}) by (namespace) - seriesNameFormat: "{{namespace}}" - "2_0": - kind: Panel - spec: - display: - name: CPU Quota - plugin: - kind: Table - spec: - columnSettings: - - header: Time - hide: true - name: Time - - header: Pods - name: "Value #A" - - header: Workloads - name: "Value #B" - - header: CPU Usage - name: "Value #C" - - header: CPU Requests - name: "Value #D" - - header: CPU Requests % - name: "Value #E" - - header: CPU Limits - name: "Value #F" - - header: CPU Limits % - name: "Value #G" - - header: Namespace - name: namespace - - header: "" - name: /.*/ - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(kube_pod_owner{job="kube-state-metrics", cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: count(avg(namespace_workload_pod:kube_pod_owner:relabel{cluster="$cluster"}) by (workload, namespace)) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_cpu:kube_pod_container_resource_requests:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_requests:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_cpu:kube_pod_container_resource_limits:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster"}) by (namespace) / sum(namespace_cpu:kube_pod_container_resource_limits:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - "3_0": - kind: Panel - spec: - display: - name: Memory Usage (w/o cache) - plugin: - kind: TimeSeriesChart - spec: - legend: - mode: list - position: bottom - values: [] - visual: - areaOpacity: 1 - connectNulls: false - display: line - lineWidth: 0.25 - stack: all - yAxis: - format: - unit: bytes - min: 0 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", container!=""}) by (namespace) - seriesNameFormat: "{{namespace}}" - "4_0": - kind: Panel - spec: - display: - name: Requests by Namespace - plugin: - kind: Table - spec: - columnSettings: - - header: Time - hide: true - name: Time - - header: Pods - name: "Value #A" - - header: Workloads - name: "Value #B" - - header: Memory Usage - name: "Value #C" - - header: Memory Requests - name: "Value #D" - - header: Memory Requests % - name: "Value #E" - - header: Memory Limits - name: "Value #F" - - header: Memory Limits % - name: "Value #G" - - header: Namespace - name: namespace - - header: "" - name: /.*/ - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(kube_pod_owner{job="kube-state-metrics", cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: count(avg(namespace_workload_pod:kube_pod_owner:relabel{cluster="$cluster"}) by (workload, namespace)) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", container!=""}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_memory:kube_pod_container_resource_requests:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", container!=""}) by (namespace) / sum(namespace_memory:kube_pod_container_resource_requests:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(namespace_memory:kube_pod_container_resource_limits:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(container_memory_rss{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", container!=""}) by (namespace) / sum(namespace_memory:kube_pod_container_resource_limits:sum{cluster="$cluster"}) by (namespace) - seriesNameFormat: "" - "5_0": - kind: Panel - spec: - display: - name: Current Network Usage - plugin: - kind: Table - spec: - columnSettings: - - header: Time - hide: true - name: Time - - header: Current Receive Bandwidth - name: "Value #A" - - header: Current Transmit Bandwidth - name: "Value #B" - - header: Rate of Received Packets - name: "Value #C" - - header: Rate of Transmitted Packets - name: "Value #D" - - header: Rate of Received Packets Dropped - name: "Value #E" - - header: Rate of Transmitted Packets Dropped - name: "Value #F" - - header: Namespace - name: namespace - - header: "" - name: /.*/ - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_packets_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_packets_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_packets_dropped_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_packets_dropped_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "" - "6_0": - kind: Panel - spec: - display: - name: Receive Bandwidth - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "6_1": - kind: Panel - spec: - display: - name: Transmit Bandwidth - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "7_0": - kind: Panel - spec: - display: - name: "Average Container Bandwidth by Namespace: Received" - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: avg(irate(container_network_receive_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "7_1": - kind: Panel - spec: - display: - name: "Average Container Bandwidth by Namespace: Transmitted" - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: avg(irate(container_network_transmit_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "8_0": - kind: Panel - spec: - display: - name: Rate of Received Packets - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_packets_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "8_1": - kind: Panel - spec: - display: - name: Rate of Transmitted Packets - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_packets_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "9_0": - kind: Panel - spec: - display: - name: Rate of Received Packets Dropped - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_receive_packets_dropped_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "9_1": - kind: Panel - spec: - display: - name: Rate of Transmitted Packets Dropped - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum(irate(container_network_transmit_packets_dropped_total{job="kubelet", metrics_path="/metrics/cadvisor", cluster="$cluster", namespace=~".+"}[$__rate_interval])) by (namespace) - seriesNameFormat: "{{namespace}}" - "10_0": - kind: Panel - spec: - display: - name: IOPS(Reads+Writes) - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: ceil(sum by(namespace) (rate(container_fs_reads_total{job="kubelet", metrics_path="/metrics/cadvisor", id!="", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", cluster="$cluster", namespace!=""}[$__rate_interval]) + rate(container_fs_writes_total{job="kubelet", metrics_path="/metrics/cadvisor", id!="", cluster="$cluster", namespace!=""}[$__rate_interval]))) - seriesNameFormat: "{{namespace}}" - "10_1": - kind: Panel - spec: - display: - name: ThroughPut(Read+Write) - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_reads_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", id!="", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", cluster="$cluster", namespace!=""}[$__rate_interval]) + rate(container_fs_writes_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "{{namespace}}" - "11_0": - kind: Panel - spec: - display: - name: Current Storage IO - plugin: - kind: Table - spec: - columnSettings: - - header: Time - hide: true - name: Time - - header: IOPS(Reads) - name: "Value #A" - - header: IOPS(Writes) - name: "Value #B" - - header: IOPS(Reads + Writes) - name: "Value #C" - - header: Throughput(Read) - name: "Value #D" - - header: Throughput(Write) - name: "Value #E" - - header: Throughput(Read + Write) - name: "Value #F" - - header: Namespace - name: namespace - - header: "" - name: /.*/ - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_reads_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_writes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_reads_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval]) + rate(container_fs_writes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_reads_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_writes_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by(namespace) (rate(container_fs_reads_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval]) + rate(container_fs_writes_bytes_total{job="kubelet", metrics_path="/metrics/cadvisor", device=~"(/dev.+)|mmcblk.p.+|nvme.+|rbd.+|sd.+|vd.+|xvd.+|dm-.+|dasd.+", id!="", cluster="$cluster", namespace!=""}[$__rate_interval])) - seriesNameFormat: "" - layouts: - - kind: Grid - spec: - display: - title: Headlines - collapse: - open: true - items: - - x: 0 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_0" - - x: 4 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_1" - - x: 8 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_2" - - x: 12 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_3" - - x: 16 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_4" - - x: 20 - "y": 1 - width: 4 - height: 3 - content: - $ref: "#/spec/panels/0_5" - - kind: Grid - spec: - display: - title: CPU - collapse: - open: true - items: - - x: 0 - "y": 5 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/1_0" - - kind: Grid - spec: - display: - title: CPU Quota - collapse: - open: true - items: - - x: 0 - "y": 13 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/2_0" - - kind: Grid - spec: - display: - title: Memory - collapse: - open: true - items: - - x: 0 - "y": 21 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/3_0" - - kind: Grid - spec: - display: - title: Memory Requests - collapse: - open: true - items: - - x: 0 - "y": 29 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/4_0" - - kind: Grid - spec: - display: - title: Current Network Usage - collapse: - open: true - items: - - x: 0 - "y": 37 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/5_0" - - kind: Grid - spec: - display: - title: Bandwidth - collapse: - open: true - items: - - x: 0 - "y": 45 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/6_0" - - x: 12 - "y": 45 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/6_1" - - kind: Grid - spec: - display: - title: Average Container Bandwidth by Namespace - collapse: - open: true - items: - - x: 0 - "y": 53 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/7_0" - - x: 12 - "y": 53 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/7_1" - - kind: Grid - spec: - display: - title: Rate of Packets - collapse: - open: true - items: - - x: 0 - "y": 61 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/8_0" - - x: 12 - "y": 61 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/8_1" - - kind: Grid - spec: - display: - title: Rate of Packets Dropped - collapse: - open: true - items: - - x: 0 - "y": 69 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/9_0" - - x: 12 - "y": 69 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/9_1" - - kind: Grid - spec: - display: - title: Storage IO - collapse: - open: true - items: - - x: 0 - "y": 77 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/10_0" - - x: 12 - "y": 77 - width: 12 - height: 7 - content: - $ref: "#/spec/panels/10_1" - - kind: Grid - spec: - display: - title: Storage IO - Distribution - collapse: - open: true - items: - - x: 0 - "y": 85 - width: 24 - height: 7 - content: - $ref: "#/spec/panels/11_0" - duration: 1h \ No newline at end of file diff --git a/web/cypress/fixtures/coo/coo121_perses/dashboards/perses-dashboard-sample.yaml b/web/cypress/fixtures/coo/coo121_perses/dashboards/perses-dashboard-sample.yaml deleted file mode 100644 index b19c9b4d1..000000000 --- a/web/cypress/fixtures/coo/coo121_perses/dashboards/perses-dashboard-sample.yaml +++ /dev/null @@ -1,563 +0,0 @@ -apiVersion: perses.dev/v1alpha1 -kind: PersesDashboard -metadata: - name: perses-dashboard-sample - namespace: perses-dev -spec: - display: - name: Perses Dashboard Sample - description: This is a sample dashboard - duration: 5m - datasources: - PrometheusLocal: - default: false - plugin: - kind: PrometheusDatasource - spec: - proxy: - kind: HTTPProxy - spec: - url: http://localhost:9090 - variables: - - kind: ListVariable - spec: - name: job - allowMultiple: false - allowAllValue: false - plugin: - kind: PrometheusLabelValuesVariable - spec: - labelName: job - - kind: ListVariable - spec: - name: instance - allowMultiple: false - allowAllValue: false - plugin: - kind: PrometheusLabelValuesVariable - spec: - labelName: instance - matchers: - - up{job=~"$job"} - - kind: ListVariable - spec: - name: interval - plugin: - kind: StaticListVariable - spec: - values: - - 1m - - 5m - - kind: TextVariable - spec: - name: text - value: test - constant: true - panels: - defaultTimeSeriesChart: - kind: Panel - spec: - display: - name: Default Time Series Panel - plugin: - kind: TimeSeriesChart - spec: {} - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: up - seriesTest: - kind: Panel - spec: - display: - name: '~130 Series' - description: This is a line chart - plugin: - kind: TimeSeriesChart - spec: - yAxis: - format: - unit: bytes - shortValues: true - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: rate(caddy_http_response_duration_seconds_sum[$interval]) - basicEx: - kind: Panel - spec: - display: - name: Single Query - plugin: - kind: TimeSeriesChart - spec: - yAxis: - format: - unit: decimal - legend: - position: right - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: Node memory - {{device}} {{instance}} - query: - 1 - node_filesystem_free_bytes{job='$job',instance=~'$instance',fstype!="rootfs",mountpoint!~"/(run|var).*",mountpoint!=""} - / node_filesystem_size_bytes{job='$job',instance=~'$instance'} - legendEx: - kind: Panel - spec: - display: - name: Legend Example - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - yAxis: - show: true - format: - unit: bytes - shortValues: true - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: Node memory total - query: - node_memory_MemTotal_bytes{job='$job',instance=~'$instance'} - - node_memory_MemFree_bytes{job='$job',instance=~'$instance'} - - node_memory_Buffers_bytes{job='$job',instance=~'$instance'} - node_memory_Cached_bytes{job='$job',instance=~'$instance'} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: Memory (buffers) - {{instance}} - query: node_memory_Buffers_bytes{job='$job',instance=~'$instance'} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: Cached Bytes - query: node_memory_Cached_bytes{job='$job',instance=~'$instance'} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: MemFree Bytes - query: node_memory_MemFree_bytes{job='$job',instance=~'$instance'} - testNodeQuery: - kind: Panel - spec: - display: - name: Test Query - description: Description text - plugin: - kind: TimeSeriesChart - spec: - yAxis: - format: - unit: decimal - decimalPlaces: 2 - legend: - position: right - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_load15{instance=~"(demo.do.prometheus.io:9100)",job='$job'} - seriesNameFormat: Test {{job}} {{instance}} - testQueryAlt: - kind: Panel - spec: - display: - name: Test Query Alt - description: Description text - plugin: - kind: TimeSeriesChart - spec: - legend: - position: right - yAxis: - format: - unit: percent-decimal - decimalPlaces: 1 - thresholds: - steps: - - value: 0.4 - name: 'Alert: Warning condition example' - - value: 0.75 - name: 'Alert: Critical condition example' - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_load1{instance=~"(demo.do.prometheus.io:9100)",job='$job'} - cpuLine: - kind: Panel - spec: - display: - name: CPU - Line (Multi Series) - description: This is a line chart test - plugin: - kind: TimeSeriesChart - spec: - yAxis: - show: false - label: CPU Label - format: - unit: percent-decimal - decimalPlaces: 0 - legend: - position: bottom - thresholds: - steps: - - value: 0.2 - - value: 0.35 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: '{{mode}} mode - {{job}} {{instance}}' - query: avg without (cpu)(rate(node_cpu_seconds_total{job='$job',instance=~'$instance',mode!="nice",mode!="steal",mode!="irq"}[$interval])) - cpuGauge: - kind: Panel - spec: - display: - name: CPU - Gauge (Multi Series) - description: This is a gauge chart test - plugin: - kind: GaugeChart - spec: - calculation: last-number - format: - unit: percent-decimal - thresholds: - steps: - - value: 0.2 - - value: 0.35 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - seriesNameFormat: '{{mode}} mode - {{job}} {{instance}}' - query: avg without (cpu)(rate(node_cpu_seconds_total{job='$job',instance=~'$instance',mode!="nice",mode!="steal",mode!="irq"}[$interval])) - statSm: - kind: Panel - spec: - display: - name: Stat Sm - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: decimal - decimalPlaces: 1 - shortValues: true - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_time_seconds{job='$job',instance=~'$instance'} - node_boot_time_seconds{job='$job',instance=~'$instance'} - gaugeRAM: - kind: Panel - spec: - display: - name: RAM Used - description: This is a stat chart - plugin: - kind: GaugeChart - spec: - calculation: last-number - format: - unit: percent - thresholds: - steps: - - value: 85 - - value: 95 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: - 100 - ((node_memory_MemAvailable_bytes{job='$job',instance=~'$instance'} - * 100) / node_memory_MemTotal_bytes{job='$job',instance=~'$instance'}) - statRAM: - kind: Panel - spec: - display: - name: RAM Used - description: This is a stat chart - plugin: - kind: StatChart - spec: - calculation: last-number - format: - unit: percent - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: - 100 - ((node_memory_MemAvailable_bytes{job='$job',instance=~'$instance'} - * 100) / node_memory_MemTotal_bytes{job='$job',instance=~'$instance'}) - statTotalRAM: - kind: Panel - spec: - display: - name: RAM Total - description: This is a stat chart - plugin: - kind: StatChart - spec: - calculation: last-number - format: - unit: bytes - decimalPlaces: 1 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_memory_MemTotal_bytes{job='$job',instance=~'$instance'} - statMd: - kind: Panel - spec: - display: - name: Stat Md - plugin: - kind: StatChart - spec: - calculation: sum - format: - unit: decimal - decimalPlaces: 2 - shortValues: true - sparkline: - color: '#e65013' - width: 1.5 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: - avg(node_load15{job='node',instance=~'$instance'}) / count(count(node_cpu_seconds_total{job='node',instance=~'$instance'}) - by (cpu)) * 100 - statLg: - kind: Panel - spec: - display: - name: Stat Lg - description: This is a stat chart - plugin: - kind: StatChart - spec: - calculation: mean - format: - unit: percent - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: - (((count(count(node_cpu_seconds_total{job='$job',instance=~'$instance'}) - by (cpu))) - avg(sum by (mode)(rate(node_cpu_seconds_total{mode="idle",job='$job',instance=~'$instance'}[$interval])))) - * 100) / count(count(node_cpu_seconds_total{job='$job',instance=~'$instance'}) - by (cpu)) - gaugeEx: - kind: Panel - spec: - display: - name: Gauge Ex - description: This is a gauge chart - plugin: - kind: GaugeChart - spec: - calculation: last-number - format: - unit: percent - thresholds: - steps: - - value: 85 - - value: 95 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: - (((count(count(node_cpu_seconds_total{job='$job',instance=~'$instance'}) - by (cpu))) - avg(sum by (mode)(rate(node_cpu_seconds_total{mode="idle",job='$job',instance=~'$instance'}[$interval])))) - * 100) / count(count(node_cpu_seconds_total{job='$job',instance=~'$instance'}) - by (cpu)) - gaugeAltEx: - kind: Panel - spec: - display: - name: Gauge Alt Ex - description: GaugeChart description text - plugin: - kind: GaugeChart - spec: - calculation: last-number - format: - unit: percent-decimal - decimalPlaces: 1 - thresholds: - steps: - - value: 0.5 - name: 'Alert: Warning condition example' - - value: 0.75 - name: 'Alert: Critical condition example' - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_load15{instance=~'$instance',job='$job'} - gaugeFormatTest: - kind: Panel - spec: - display: - name: Gauge Format Test - plugin: - kind: GaugeChart - spec: - calculation: last-number - format: - unit: bytes - max: 95000000 - thresholds: - steps: - - value: 71000000 - - value: 82000000 - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - query: node_time_seconds{job='$job',instance=~'$instance'} - node_boot_time_seconds{job='$job',instance=~'$instance'} - layouts: - - kind: Grid - spec: - display: - title: Row 1 - collapse: - open: true - items: - - x: 0 - 'y': 0 - width: 2 - height: 3 - content: - '$ref': '#/spec/panels/statRAM' - - x: 0 - 'y': 4 - width: 2 - height: 3 - content: - '$ref': '#/spec/panels/statTotalRAM' - - x: 2 - 'y': 0 - width: 4 - height: 6 - content: - '$ref': '#/spec/panels/statMd' - - x: 6 - 'y': 0 - width: 10 - height: 6 - content: - '$ref': '#/spec/panels/statLg' - - x: 16 - 'y': 0 - width: 4 - height: 6 - content: - '$ref': '#/spec/panels/gaugeFormatTest' - - x: 20 - 'y': 0 - width: 4 - height: 6 - content: - '$ref': '#/spec/panels/gaugeRAM' - - kind: Grid - spec: - display: - title: Row 2 - collapse: - open: true - items: - - x: 0 - 'y': 0 - width: 12 - height: 6 - content: - '$ref': '#/spec/panels/legendEx' - - x: 12 - 'y': 0 - width: 12 - height: 6 - content: - '$ref': '#/spec/panels/basicEx' - - kind: Grid - spec: - display: - title: Row 3 - collapse: - open: false - items: - - x: 0 - 'y': 0 - width: 24 - height: 6 - content: - '$ref': '#/spec/panels/cpuGauge' - - x: 0 - 'y': 6 - width: 12 - height: 8 - content: - '$ref': '#/spec/panels/cpuLine' - - x: 12 - 'y': 0 - width: 12 - height: 8 - content: - '$ref': '#/spec/panels/defaultTimeSeriesChart' \ No newline at end of file diff --git a/web/cypress/fixtures/coo/coo121_perses/dashboards/prometheus-overview-variables.yaml b/web/cypress/fixtures/coo/coo121_perses/dashboards/prometheus-overview-variables.yaml deleted file mode 100644 index c6efa8b38..000000000 --- a/web/cypress/fixtures/coo/coo121_perses/dashboards/prometheus-overview-variables.yaml +++ /dev/null @@ -1,460 +0,0 @@ -apiVersion: perses.dev/v1alpha1 -kind: PersesDashboard -metadata: - name: prometheus-overview - namespace: perses-dev -spec: - display: - name: Prometheus / Overview - variables: - - kind: ListVariable - spec: - display: - name: job - hidden: false - allowAllValue: false - allowMultiple: false - plugin: - kind: PrometheusLabelValuesVariable - spec: - datasource: - kind: PrometheusDatasource - - labelName: job - matchers: - - prometheus_build_info{} - name: job - - kind: ListVariable - spec: - display: - name: instance - hidden: false - allowAllValue: false - allowMultiple: false - plugin: - kind: PrometheusLabelValuesVariable - spec: - datasource: - kind: PrometheusDatasource - - labelName: instance - matchers: - - prometheus_build_info{job="$job"} - name: instance - panels: - "0_0": - kind: Panel - spec: - display: - name: Prometheus Stats - plugin: - kind: Table - spec: - columnSettings: - - name: job - header: Job - - name: instance - header: Instance - - name: version - header: Version - - name: value - hide: true - - name: timestamp - hide: true - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: count by (job, instance, version) (prometheus_build_info{instance=~"$instance",job=~"$job"}) - "1_0": - kind: Panel - spec: - display: - name: Target Sync - description: Monitors target synchronization time for Prometheus instances - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, scrape_job, instance) ( - rate(prometheus_target_sync_length_seconds_sum{instance=~"$instance",job=~"$job"}[$__rate_interval]) - ) - seriesNameFormat: '{{job}} - {{instance}} - Metrics' - "1_1": - kind: Panel - spec: - display: - name: Targets - description: Shows discovered targets across Prometheus instances - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (job, instance) (prometheus_sd_discovered_targets{instance=~"$instance",job=~"$job"}) - seriesNameFormat: '{{job}} - {{instance}} - Metrics' - "2_0": - kind: Panel - spec: - display: - name: Average Scrape Interval Duration - description: Shows average interval between scrapes for Prometheus targets - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - rate( - prometheus_target_interval_length_seconds_sum{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - / - rate( - prometheus_target_interval_length_seconds_count{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - seriesNameFormat: '{{job}} - {{instance}} - {{interval}} Configured' - "2_1": - kind: Panel - spec: - display: - name: Scrape failures - description: Shows scrape failure metrics for Prometheus targets - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, instance) ( - rate( - prometheus_target_scrapes_exceeded_body_size_limit_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - ) - seriesNameFormat: 'exceeded body size limit: {{job}} - {{instance}} - Metrics' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, instance) ( - rate( - prometheus_target_scrapes_exceeded_sample_limit_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - ) - seriesNameFormat: 'exceeded sample limit: {{job}} - {{instance}} - Metrics' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, instance) ( - rate( - prometheus_target_scrapes_sample_duplicate_timestamp_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - ) - seriesNameFormat: 'duplicate timestamp: {{job}} - {{instance}} - Metrics' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, instance) ( - rate( - prometheus_target_scrapes_sample_out_of_bounds_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - ) - seriesNameFormat: 'out of bounds: {{job}} - {{instance}} - Metrics' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (job, instance) ( - rate( - prometheus_target_scrapes_sample_out_of_order_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - ) - seriesNameFormat: 'out of order: {{job}} - {{instance}} - Metrics' - "2_2": - kind: Panel - spec: - display: - name: Appended Samples - description: Shows rate of samples appended to Prometheus TSDB - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - rate( - prometheus_tsdb_head_samples_appended_total{instance=~"$instance",job=~"$job"}[$__rate_interval] - ) - seriesNameFormat: '{{job}} - {{instance}} - {{remote_name}} - {{url}}' - "3_0": - kind: Panel - spec: - display: - name: Head Series - description: Shows number of series in Prometheus TSDB head - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: prometheus_tsdb_head_series{instance=~"$instance",job=~"$job"} - seriesNameFormat: '{{job}} - {{instance}} - Head Series' - "3_1": - kind: Panel - spec: - display: - name: Head Chunks - description: Shows number of chunks in Prometheus TSDB head - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: prometheus_tsdb_head_chunks{instance=~"$instance",job=~"$job"} - seriesNameFormat: '{{job}} - {{instance}} - Head Chunks' - "4_0": - kind: Panel - spec: - display: - name: Query Rate - description: Shows Prometheus query rate metrics - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - rate( - prometheus_engine_query_duration_seconds_count{instance=~"$instance",job=~"$job",slice="inner_eval"}[$__rate_interval] - ) - seriesNameFormat: '{{job}} - {{instance}} - Query Rate' - "4_1": - kind: Panel - spec: - display: - name: Stage Duration - description: Shows duration of different Prometheus query stages - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - max by (slice) ( - prometheus_engine_query_duration_seconds{instance=~"$instance",job=~"$job",quantile="0.9"} - ) - seriesNameFormat: '{{slice}} - Duration' - layouts: - - kind: Grid - spec: - display: - title: Prometheus Stats - items: - - x: 0 - "y": 0 - width: 24 - height: 8 - content: - $ref: '#/spec/panels/0_0' - - kind: Grid - spec: - display: - title: Discovery - items: - - x: 0 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/1_0' - - x: 12 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/1_1' - - kind: Grid - spec: - display: - title: Retrieval - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_2' - - kind: Grid - spec: - display: - title: Storage - items: - - x: 0 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/3_0' - - x: 12 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/3_1' - - kind: Grid - spec: - display: - title: Query - items: - - x: 0 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/4_0' - - x: 12 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/4_1' - duration: 1h \ No newline at end of file diff --git a/web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-compact-overview-1var.yaml b/web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-compact-overview-1var.yaml deleted file mode 100644 index d36bd0166..000000000 --- a/web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-compact-overview-1var.yaml +++ /dev/null @@ -1,1420 +0,0 @@ -apiVersion: perses.dev/v1alpha1 -kind: PersesDashboard -metadata: - name: thanos-compact-overview - namespace: perses-dev -spec: - display: - name: Thanos / Compact / Overview - variables: - - kind: ListVariable - spec: - display: - name: job - hidden: false - allowAllValue: false - allowMultiple: true - plugin: - kind: PrometheusLabelValuesVariable - spec: - datasource: - kind: PrometheusDatasource - - labelName: job - matchers: - - thanos_build_info{container="thanos-compact"} - name: job - - kind: ListVariable - spec: - display: - name: namespace - hidden: false - allowAllValue: false - allowMultiple: false - plugin: - kind: PrometheusLabelValuesVariable - spec: - datasource: - kind: PrometheusDatasource - - labelName: namespace - matchers: - - thanos_status{} - name: namespace - panels: - "0_0": - kind: Panel - spec: - display: - name: TODO Compaction Blocks - description: Shows number of blocks planned to be compacted. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (namespace, job) (thanos_compact_todo_compaction_blocks{job=~"$job",namespace="$namespace"}) - seriesNameFormat: '{{job}} {{namespace}}' - "0_1": - kind: Panel - spec: - display: - name: TODO Compactions - description: Shows number of compaction operations to be done. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (namespace, job) (thanos_compact_todo_compactions{job=~"$job",namespace="$namespace"}) - seriesNameFormat: '{{job}} {{namespace}}' - "0_2": - kind: Panel - spec: - display: - name: TODO Deletions - description: Shows number of blocks that have crossed their retention periods. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (namespace, job) (thanos_compact_todo_deletion_blocks{job=~"$job",namespace="$namespace"}) - seriesNameFormat: '{{job}} {{namespace}}' - "0_3": - kind: Panel - spec: - display: - name: TODO Downsamples - description: Shows number of blocks to be downsampled. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (namespace, job) (thanos_compact_todo_downsample_blocks{job=~"$job",namespace="$namespace"}) - seriesNameFormat: '{{job}} {{namespace}}' - "1_0": - kind: Panel - spec: - display: - name: Group Compactions - description: Shows rate of execution of compaction operations against blocks in a bucket, split by compaction resolution. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job, resolution) ( - rate(thanos_compact_group_compactions_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: 'Resolution: {{resolution}} - {{job}} {{namespace}}' - "1_1": - kind: Panel - spec: - display: - name: Group Compaction Errors - description: Shows the percentage of errors compared to the total number of executed compaction operations against blocks stored in bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: percent - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - sum by (namespace, job) ( - rate( - thanos_compact_group_compactions_failures_total{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - / - sum by (namespace, job) ( - rate(thanos_compact_group_compactions_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - * - 100 - seriesNameFormat: '{{job}} {{namespace}}' - "2_0": - kind: Panel - spec: - display: - name: Downsample Rate - description: Shows rate of execution of downsample operations against blocks stored in a bucket, split by resolution. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job, resolution) ( - rate(thanos_compact_downsample_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: 'Resolution: {{resolution}} - {{job}} {{namespace}}' - "2_1": - kind: Panel - spec: - display: - name: Downsample Errors - description: Shows the percentage of downsample errors compared to the total number of downsample operations done on block in buckets. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: percent - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - sum by (namespace, job) ( - rate(thanos_compact_downsample_failed_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - / - sum by (namespace, job) ( - rate(thanos_compact_downsample_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - * - 100 - seriesNameFormat: '{{job}} {{namespace}}' - "2_2": - kind: Panel - spec: - display: - name: Downsample Durations - description: Shows the p50, p90, and p99 of the time it takes to complete downsample operation against blocks in a bucket, split by resolution. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.5, - sum by (namespace, job, resolution, le) ( - rate( - thanos_compact_downsample_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: 'p50 Resolution: {{resolution}} - {{job}} {{namespace}}' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.9, - sum by (namespace, job, resolution, le) ( - rate( - thanos_compact_downsample_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: 'p90 Resolution: {{resolution}} - {{job}} {{namespace}}' - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.99, - sum by (namespace, job, resolution, le) ( - rate( - thanos_compact_downsample_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: 'p99 Resolution: {{resolution}} - {{job}} {{namespace}}' - "3_0": - kind: Panel - spec: - display: - name: Sync Meta Rate - description: Shows rate of syncing block meta files from bucket into memory. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job) ( - rate(thanos_blocks_meta_syncs_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: '{{job}} {{namespace}}' - "3_1": - kind: Panel - spec: - display: - name: Sync Meta Errors - description: Shows percentage of errors of meta file sync operation compared to total number of meta file syncs from bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: percent - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - sum by (namespace, job) ( - rate(thanos_blocks_meta_sync_failures_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - / - sum by (namespace, job) ( - rate(thanos_blocks_meta_syncs_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - * - 100 - seriesNameFormat: '{{job}} {{namespace}}' - "3_2": - kind: Panel - spec: - display: - name: Sync Meta Durations - description: Shows p50, p90 and p99 durations of the time it takes to sync meta files from blocks in bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.5, - sum by (namespace, job, le) ( - rate( - thanos_blocks_meta_sync_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p50 {{job}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.9, - sum by (namespace, job, le) ( - rate( - thanos_blocks_meta_sync_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p90 {{job}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.99, - sum by (namespace, job, le) ( - rate( - thanos_blocks_meta_sync_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p99 {{job}} {{namespace}} - "4_0": - kind: Panel - spec: - display: - name: Deletion Rate - description: Shows the deletion rate of blocks already marked for deletion. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job) ( - rate(thanos_compact_blocks_cleaned_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: '{{job}} {{namespace}}' - "4_1": - kind: Panel - spec: - display: - name: Deletion Errors - description: Shows rate of deletion failures for blocks already marked for deletion. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job) ( - rate( - thanos_compact_block_cleanup_failures_total{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - seriesNameFormat: '{{job}} {{namespace}}' - "4_2": - kind: Panel - spec: - display: - name: Marking Rate - description: Shows the rate at which blocks are marked for deletion (from GC and retention policy). - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job) ( - rate( - thanos_compact_blocks_marked_total{job=~"$job",marker="deletion-mark.json",namespace="$namespace"}[$__rate_interval] - ) - ) - seriesNameFormat: '{{job}} {{namespace}}' - "5_0": - kind: Panel - spec: - display: - name: Bucket Operations - description: Shows rate of executions of operations against object storage bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: requests/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job, operation) ( - rate(thanos_objstore_bucket_operations_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: '{{job}} {{operation}} {{namespace}}' - "5_1": - kind: Panel - spec: - display: - name: Bucket Operation Errors - description: Shows percentage of errors of operations against object storage bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: percent - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - sum by (namespace, job, operation) ( - rate( - thanos_objstore_bucket_operation_failures_total{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - / - sum by (namespace, job, operation) ( - rate(thanos_objstore_bucket_operations_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - * - 100 - seriesNameFormat: '{{job}} {{operation}} {{namespace}}' - "5_2": - kind: Panel - spec: - display: - name: Bucket Operation Latency - description: Shows latency of operations against object storage bucket. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.99, - sum by (namespace, job, operation, le) ( - rate( - thanos_objstore_bucket_operation_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p99 {{job}} {{operation}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.9, - sum by (namespace, job, operation, le) ( - rate( - thanos_objstore_bucket_operation_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p90 {{job}} {{operation}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.5, - sum by (namespace, job, operation, le) ( - rate( - thanos_objstore_bucket_operation_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p50 {{job}} {{operation}} {{namespace}} - "6_0": - kind: Panel - spec: - display: - name: Halted Compactors - description: Shows compactors that have been halted due to unexpected errors. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: sum by (namespace, job) (thanos_compact_halted{job=~"$job",namespace="$namespace"}) - seriesNameFormat: '{{job}} {{namespace}}' - "7_0": - kind: Panel - spec: - display: - name: Garbage Collection - description: Shows rate of execution of removal of blocks, if their data is available as part of a block with a higher compaction level. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: counts/sec - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - sum by (namespace, job) ( - rate(thanos_compact_garbage_collection_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - seriesNameFormat: '{{job}} {{namespace}}' - "7_1": - kind: Panel - spec: - display: - name: Garbage Collection Errors - description: Shows the percentage of garbage collection operations that resulted in errors. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: percent - visual: - display: line - lineWidth: 0.25 - areaOpacity: 1 - palette: - mode: auto - stack: all - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |4- - sum by (namespace, job) ( - rate( - thanos_compact_garbage_collection_failures_total{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - / - sum by (namespace, job) ( - rate(thanos_compact_garbage_collection_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - ) - * - 100 - seriesNameFormat: '{{job}} {{namespace}}' - "7_2": - kind: Panel - spec: - display: - name: Garbage Collection Durations - description: Shows p50, p90 and p99 of how long it takes to execute garbage collection operations. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - yAxis: - format: - unit: seconds - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.5, - sum by (namespace, job, le) ( - rate( - thanos_compact_garbage_collection_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p50 {{job}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.9, - sum by (namespace, job, le) ( - rate( - thanos_compact_garbage_collection_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p90 {{job}} {{namespace}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: |- - histogram_quantile( - 0.99, - sum by (namespace, job, le) ( - rate( - thanos_compact_garbage_collection_duration_seconds_bucket{job=~"$job",namespace="$namespace"}[$__rate_interval] - ) - ) - ) - seriesNameFormat: p99 {{job}} {{namespace}} - "8_0": - kind: Panel - spec: - display: - name: CPU Usage - description: Shows the CPU usage of the component. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - values: - - last - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: rate(process_cpu_seconds_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - seriesNameFormat: '{{pod}}' - "8_1": - kind: Panel - spec: - display: - name: Memory Usage - description: Shows various memory usage metrics of the component. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - values: - - last - yAxis: - format: - unit: bytes - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_memstats_alloc_bytes{job=~"$job",namespace="$namespace"} - seriesNameFormat: Alloc All {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_memstats_heap_alloc_bytes{job=~"$job",namespace="$namespace"} - seriesNameFormat: Alloc Heap {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: rate(go_memstats_alloc_bytes_total{job=~"$job",namespace="$namespace"}[$__rate_interval]) - seriesNameFormat: Alloc Rate All {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: rate(go_memstats_heap_alloc_bytes{job=~"$job",namespace="$namespace"}[$__rate_interval]) - seriesNameFormat: Alloc Rate Heap {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_memstats_stack_inuse_bytes{job=~"$job",namespace="$namespace"} - seriesNameFormat: Inuse Stack {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_memstats_heap_inuse_bytes{job=~"$job",namespace="$namespace"} - seriesNameFormat: Inuse Heap {{pod}} - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: process_resident_memory_bytes{job=~"$job",namespace="$namespace"} - seriesNameFormat: Resident Memory {{pod}} - "8_2": - kind: Panel - spec: - display: - name: Goroutines - description: Shows the number of goroutines being used by the component. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - values: - - last - yAxis: - format: - unit: decimal - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_goroutines{job=~"$job",namespace="$namespace"} - seriesNameFormat: '{{pod}}' - "8_3": - kind: Panel - spec: - display: - name: GC Duration - description: Shows the Go garbage collection pause durations for the component. - plugin: - kind: TimeSeriesChart - spec: - legend: - position: bottom - mode: table - values: - - last - yAxis: - format: - unit: seconds - visual: - display: line - lineWidth: 0.25 - areaOpacity: 0.5 - palette: - mode: auto - queries: - - kind: TimeSeriesQuery - spec: - plugin: - kind: PrometheusTimeSeriesQuery - spec: - datasource: - kind: PrometheusDatasource - - query: go_gc_duration_seconds{job=~"$job",namespace="$namespace"} - seriesNameFormat: '{{quantile}} - {{pod}}' - layouts: - - kind: Grid - spec: - display: - title: TODO Operations - items: - - x: 0 - "y": 0 - width: 6 - height: 6 - content: - $ref: '#/spec/panels/0_0' - - x: 6 - "y": 0 - width: 6 - height: 6 - content: - $ref: '#/spec/panels/0_1' - - x: 12 - "y": 0 - width: 6 - height: 6 - content: - $ref: '#/spec/panels/0_2' - - x: 18 - "y": 0 - width: 6 - height: 6 - content: - $ref: '#/spec/panels/0_3' - - kind: Grid - spec: - display: - title: Group Compactions - items: - - x: 0 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/1_0' - - x: 12 - "y": 0 - width: 12 - height: 8 - content: - $ref: '#/spec/panels/1_1' - - kind: Grid - spec: - display: - title: Downsample Operations - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/2_2' - - kind: Grid - spec: - display: - title: Sync Meta - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/3_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/3_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/3_2' - - kind: Grid - spec: - display: - title: Block Deletion - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/4_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/4_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/4_2' - - kind: Grid - spec: - display: - title: Bucket Operations - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/5_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/5_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/5_2' - - kind: Grid - spec: - display: - title: Halted Compactors - items: - - x: 0 - "y": 0 - width: 24 - height: 8 - content: - $ref: '#/spec/panels/6_0' - - kind: Grid - spec: - display: - title: Garbage Collection - items: - - x: 0 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/7_0' - - x: 8 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/7_1' - - x: 16 - "y": 0 - width: 8 - height: 8 - content: - $ref: '#/spec/panels/7_2' - - kind: Grid - spec: - display: - title: Resources - items: - - x: 0 - "y": 0 - width: 6 - height: 8 - content: - $ref: '#/spec/panels/8_0' - - x: 6 - "y": 0 - width: 6 - height: 8 - content: - $ref: '#/spec/panels/8_1' - - x: 12 - "y": 0 - width: 6 - height: 8 - content: - $ref: '#/spec/panels/8_2' - - x: 18 - "y": 0 - width: 6 - height: 8 - content: - $ref: '#/spec/panels/8_3' - duration: 1h \ No newline at end of file diff --git a/web/cypress/fixtures/coo/logging/make-clean-resources.sh b/web/cypress/fixtures/coo/logging/make-clean-resources.sh deleted file mode 100755 index 13cc96d4f..000000000 --- a/web/cypress/fixtures/coo/logging/make-clean-resources.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -euo pipefail -cd ./cypress/fixtures/coo/logging/openshift || exit 1 - -make clean-resources diff --git a/web/cypress/fixtures/coo/logging/make-resources.sh b/web/cypress/fixtures/coo/logging/make-resources.sh deleted file mode 100755 index 087013270..000000000 --- a/web/cypress/fixtures/coo/logging/make-resources.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -euo pipefail -cd ./cypress/fixtures/coo/logging/openshift || exit 1 - -make resources diff --git a/web/cypress/fixtures/export.sh b/web/cypress/fixtures/export.sh deleted file mode 100755 index ee37cebe4..000000000 --- a/web/cypress/fixtures/export.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# non-admin user -# export CYPRESS_BASE_URL=https:// -# export CYPRESS_LOGIN_IDP=flexy-htpasswd-provider -# export CYPRESS_LOGIN_USERS=username:password -# export CYPRESS_KUBECONFIG_PATH=~/Downloads/kubeconfig - -# kubeadmin user -export CYPRESS_BASE_URL=https:// -export CYPRESS_LOGIN_IDP=kube:admin -export CYPRESS_LOGIN_IDP_DEV_USER=my_htpasswd_provider -export CYPRESS_LOGIN_USERS=kubeadmin:password,user1:password,user2:password -export CYPRESS_KUBECONFIG_PATH=~/Downloads/kubeconfig - -# Set the following var to use custom Monitoring Plugin image (that goes on Cluster Monitoring Operator). The image will be patched in CMO CSV. -export CYPRESS_MP_IMAGE= - -# Set the following var to specify the Cluster Observability Operator namespace (defaults to openshift-cluster-observability-operator if not set) -export CYPRESS_COO_NAMESPACE=openshift-cluster-observability-operator - -# Set the var to skip Cluster Observability and all the required operators installation. -export CYPRESS_SKIP_COO_INSTALL=false - -# Set the var to install Cluster Observability from redhat-operators catalog source. -export CYPRESS_COO_UI_INSTALL=false - -# Set the var to install Cluster Observability Operator using Konflux bundle. -# export CYPRESS_KONFLUX_COO_BUNDLE_IMAGE= - -# Set the var to use custom Cluster Observability Operator bundle image -# export CYPRESS_CUSTOM_COO_BUNDLE_IMAGE= - -# Set the var to use Cluster Observability Operator FBC image -export CYPRESS_FBC_STAGE_COO_IMAGE= - -# Set the following var to use custom Monitoring Console Plugin UI plugin image. The image will be patched in Cluster Observability Operator CSV. -export CYPRESS_MCP_CONSOLE_IMAGE= - -# Set the following var to use custom cluster-health-analyzer image. The image will be patched in Cluster Observability Operator CSV. -export CYPRESS_CHA_IMAGE= - -# Set the following var to specify the cluster timezone for incident timeline calculations. Defaults to UTC if not specified. -export CYPRESS_TIMEZONE= - -# Set the following var to transform old metric names to new format in mocks (for testing against locally built instances) -export CYPRESS_MOCK_NEW_METRICS=false - -# Set the following var to enable Cypress session management for faster test execution. -export CYPRESS_SESSION=true - -# Skip all operator installation, cleanup, and verifications (for pre-provisioned environments where COO and Monitoring Plugin are already installed) -# Note: This skips COO installation which would otherwise remove any existing monitoring plugin from the cluster -export CYPRESS_SKIP_ALL_INSTALL=false diff --git a/web/cypress/fixtures/incident-scenarios/0-healthy-cluster.yaml b/web/cypress/fixtures/incident-scenarios/0-healthy-cluster.yaml deleted file mode 100644 index 930b3e454..000000000 --- a/web/cypress/fixtures/incident-scenarios/0-healthy-cluster.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: "Healthy Cluster" -description: "Minimal activity with only watchdog alert" -incidents: - - id: "watchdog-info" - component: "monitoring" - layer: "core" - timeline: - start: "7d" # Started 7 days ago (normal) - alerts: - - name: "Watchdog" - namespace: "openshift-monitoring" - severity: "info" - firing: true \ No newline at end of file diff --git a/web/cypress/fixtures/incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml b/web/cypress/fixtures/incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml deleted file mode 100644 index 758daa44f..000000000 --- a/web/cypress/fixtures/incident-scenarios/1-single-incident-firing-critical-and-warning-alerts.yaml +++ /dev/null @@ -1,22 +0,0 @@ -name: "Critical Monitoring Issues" -description: "Cluster with critical monitoring component failures" -incidents: - - id: "monitoring-critical-001" - component: "monitoring" - layer: "core" - timeline: - start: "5d" # Started 2 hours ago - # No end = ongoing incident - alerts: - - name: "AlertmanagerReceiversNotConfigured" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - - name: "KubeDeploymentReplicasMismatch" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - - name: "KubePodCrashLooping" - namespace: "openshift-monitoring" - severity: "warning" - firing: true \ No newline at end of file diff --git a/web/cypress/fixtures/incident-scenarios/12-charts-ui-comprehensive.yaml b/web/cypress/fixtures/incident-scenarios/12-charts-ui-comprehensive.yaml deleted file mode 100644 index 28094f03f..000000000 --- a/web/cypress/fixtures/incident-scenarios/12-charts-ui-comprehensive.yaml +++ /dev/null @@ -1,221 +0,0 @@ -name: "Charts UI Comprehensive Test Scenarios with Edge Cases" -description: "Streamlined scenarios (10 incidents) for testing tooltip positioning with varied name lengths, bar visibility, short duration alerts (< 5 min for Section 3.1), multi-component tooltips, and multi-severity segments. Tests Sections 2 (Charts UI) and 3.1 (Short Duration Visibility) without requiring scrolling." -incidents: - # 1. SHORT DURATION FIRING (newest) - Short names for baseline - - id: "network-firing-short-002" - component: "network" - layer: "core" - timeline: - start: "10m" - alerts: - - name: "NetworkFirewallRuleBlocking0023" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "10m" - - name: "NetworkPacketLossHigh0023" - namespace: "openshift-network" - severity: "warning" - firing: true - timeline: - start: "8m" - - name: "NetworkRouteTableCorrupted0023" - namespace: "openshift-network" - severity: "warning" - firing: true - timeline: - start: "5m" - - name: "NetworkSecurityPolicyViolation0023" - namespace: "openshift-network" - severity: "info" - firing: true - timeline: - start: "3m" - - name: "NetworkLoadBalancerUnhealthy0023" - namespace: "openshift-network" - severity: "info" - firing: true - timeline: - start: "0m" - - # 2. SHORT DURATION RESOLVED - Medium names - - id: "network-resolved-short-001" - component: "network" - layer: "core" - timeline: - start: "50m" - end: "40m" - alerts: - - name: "NetworkInterfaceDown0023" - namespace: "openshift-network" - severity: "critical" - firing: false - timeline: - start: "50m" - end: "40m" - - name: "NetworkLatencyHighExceedingThresholds0023" - namespace: "openshift-network" - severity: "warning" - firing: false - timeline: - start: "47m" - end: "40m" - - name: "NetworkBandwidthUtilizationHighRequiringInvestigation0023" - namespace: "openshift-network" - severity: "warning" - firing: false - timeline: - start: "45m" - end: "40m" - - # 3. MULTI-COMPONENT - Medium-long names for tooltip width testing - - id: "network-three-alerts-001" - component: "network" - layer: "core" - timeline: - start: "1h30m" - alerts: - - name: "NetworkLatencyHighAffectingServiceResponseTimes001" - namespace: "openshift-network" - severity: "warning" - firing: true - component: "network" - - name: "PacketDropRateElevatedIndicatingPotentialNetworkSaturation001" - namespace: "openshift-network" - severity: "warning" - firing: true - component: "compute" - - name: "ConnectionPoolExhaustedRequiringImmediateScalingAction001" - namespace: "openshift-network" - severity: "warning" - firing: true - component: "storage" - - # 4. SECTION 3.1: 1-minute incident - Long component name - - id: "api-server-transient-001" - component: "api-server" - layer: "core" - timeline: - start: "2h" - end: "119m" - alerts: - - name: "APIServerRequestLatencyBriefSpikeDetectedDuringHighTrafficPeriod001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - - # 5. MULTI-SEVERITY GRADUAL ESCALATION - Long names for tooltip positioning edge case - - id: "monitoring-gradual-alerts-001" - component: "monitoring" - layer: "core" - timeline: - start: "5h30m" - severityChanges: - - time: "5h30m" - severity: "info" - - time: "2h" - severity: "warning" - - time: "1h30m" - severity: "critical" - alerts: - - name: "PrometheusRuleEvaluationPerformanceDegradationDetectedRequiringOptimization001" - namespace: "openshift-monitoring" - severity: "info" - firing: true - timeline: - start: "5h30m" - - name: "PrometheusQueryLatencyIncreasingBeyondAcceptableThresholdsImpactingDashboards001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "2h" - - name: "AlertmanagerClusterFailedToSendNotificationsCriticalAlertsNotDelivered001" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "1h30m" - - # 6. SECTION 3.1: 9-minute incident - Medium names - - id: "compute-microsecond-resolution-001" - component: "compute" - layer: "core" - timeline: - start: "3h" - end: "171m" - alerts: - - name: "NodeTransientIssueResolvedAutomatically001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - - # 7. SECTION 3.1: Recently resolved - Short to medium names - - id: "monitoring-just-resolved-001" - component: "monitoring" - layer: "core" - timeline: - start: "4h" - end: "2m" - alerts: - - name: "PrometheusTargetMissingButRecovered001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - - # 8. SIX ALERTS FOR ALERTS CHART - Mix of very short and very long names - - id: "etcd-six-alerts-001" - component: "etcd" - layer: "core" - timeline: - start: "5h" - alerts: - - name: "E001" - namespace: "openshift-etcd" - severity: "critical" - firing: true - - name: "EtcdBackupOperationFailureDetectedWithRetryAttempts001" - namespace: "openshift-etcd" - severity: "critical" - firing: true - - name: "EtcdDatabaseSizeApproachingConfiguredLimitRequiringCompactionOperationToFreeSpace001" - namespace: "openshift-etcd" - severity: "warning" - firing: true - - name: "EtcdLeaderElectionTimeExceedingNormalThresholdIndicatingPotentialNetworkOrPerformanceIssues001" - namespace: "openshift-etcd" - severity: "warning" - firing: true - - name: "EtcdMemberCommunicationLatencyHigherThanExpectedBaselinePerformanceMetricsRequiringInvestigation001" - namespace: "openshift-etcd" - severity: "info" - firing: true - - name: "EtcdClusterHealthMonitoringSystemReportingNormalOperatingConditionsWithAllMembersRespondingWithinAcceptableTimeframesAndNoOutstandingIssuesDetectedDuringRoutineMaintenanceChecks001" - namespace: "openshift-etcd" - severity: "info" - firing: true - - # 9. EXTREMELY LONG NAME (180+ chars) - Critical for viewport overflow testing - - id: "others-very-long-name-001" - component: "Others" - layer: "Others" - timeline: - start: "6h" - alerts: - - name: "CustomApplicationDatabaseConnectionPoolExhaustedRequiringImmediateAttentionFromOperationsTeamToInvestigatePotentialMemoryLeaksAndResolveUnderlyingInfrastructureLimitationsOrConfigurationIssuesThatMayBeImpactingOverallSystemPerformance001" - namespace: "custom-application-namespace-with-very-long-name" - severity: "critical" - firing: true - - # 10. OLDEST INCIDENT - Very short name for sorting test - - id: "VSN-001" - component: "version" - layer: "core" - timeline: - start: "8h" - alerts: - - name: "V001" - namespace: "openshift-cluster-version" - severity: "info" - firing: true diff --git a/web/cypress/fixtures/incident-scenarios/15-stress-test-100-alerts.yaml b/web/cypress/fixtures/incident-scenarios/15-stress-test-100-alerts.yaml deleted file mode 100644 index 1e350ed2d..000000000 --- a/web/cypress/fixtures/incident-scenarios/15-stress-test-100-alerts.yaml +++ /dev/null @@ -1,414 +0,0 @@ -name: "15 - UI Stress Test - 100 Alerts" -description: Stress test scenario with single incident containing 100 alerts -incidents: -- id: cluster-wide-failure-100-alerts - component: monitoring - layer: core - timeline: - start: 1h - severityChanges: - - time: 1h - severity: warning - - time: 30m - severity: critical - alerts: - - name: NetworkPolicyViolation001 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation002 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation003 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation004 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation005 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation006 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation007 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation008 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation009 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation010 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation011 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation012 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation013 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation014 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation015 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation016 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation017 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation018 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation019 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation020 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation021 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation022 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation023 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation024 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation025 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation026 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation027 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation028 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation029 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation030 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation031 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation032 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation033 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation034 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation035 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation036 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation037 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation038 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation039 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation040 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation041 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation042 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation043 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation044 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation045 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation046 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation047 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation048 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation049 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation050 - namespace: openshift-network - severity: critical - firing: true - - name: SDNControllerDown051 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown052 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown053 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown054 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown055 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown056 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown057 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown058 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown059 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown060 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown061 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown062 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown063 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown064 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown065 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown066 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown067 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown068 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown069 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown070 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown071 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown072 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown073 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown074 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown075 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown076 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown077 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown078 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown079 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown080 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown081 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown082 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown083 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown084 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown085 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown086 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown087 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown088 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown089 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown090 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown091 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown092 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown093 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown094 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown095 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown096 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown097 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown098 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown099 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown100 - namespace: openshift-sdn - severity: critical - firing: true diff --git a/web/cypress/fixtures/incident-scenarios/16-stress-test-200-alerts.yaml b/web/cypress/fixtures/incident-scenarios/16-stress-test-200-alerts.yaml deleted file mode 100644 index de3354145..000000000 --- a/web/cypress/fixtures/incident-scenarios/16-stress-test-200-alerts.yaml +++ /dev/null @@ -1,814 +0,0 @@ -name: "16 - UI Stress Test - 200 Alerts" -description: Stress test scenario with single incident containing 200 alerts -incidents: -- id: cluster-wide-failure-200-alerts - component: monitoring - layer: core - timeline: - start: 1h - severityChanges: - - time: 1h - severity: warning - - time: 30m - severity: critical - alerts: - - name: NetworkPolicyViolation001 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation002 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation003 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation004 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation005 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation006 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation007 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation008 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation009 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation010 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation011 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation012 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation013 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation014 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation015 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation016 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation017 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation018 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation019 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation020 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation021 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation022 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation023 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation024 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation025 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation026 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation027 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation028 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation029 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation030 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation031 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation032 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation033 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation034 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation035 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation036 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation037 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation038 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation039 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation040 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation041 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation042 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation043 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation044 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation045 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation046 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation047 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation048 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation049 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation050 - namespace: openshift-network - severity: critical - firing: true - - name: SDNControllerDown051 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown052 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown053 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown054 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown055 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown056 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown057 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown058 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown059 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown060 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown061 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown062 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown063 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown064 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown065 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown066 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown067 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown068 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown069 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown070 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown071 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown072 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown073 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown074 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown075 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown076 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown077 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown078 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown079 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown080 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown081 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown082 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown083 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown084 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown085 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown086 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown087 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown088 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown089 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown090 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown091 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown092 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown093 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown094 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown095 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown096 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown097 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown098 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown099 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown100 - namespace: openshift-sdn - severity: critical - firing: true - - name: OVNKubeControllerDown101 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown102 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown103 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown104 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown105 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown106 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown107 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown108 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown109 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown110 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown111 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown112 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown113 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown114 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown115 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown116 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown117 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown118 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown119 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown120 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown121 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown122 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown123 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown124 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown125 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown126 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown127 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown128 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown129 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown130 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown131 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown132 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown133 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown134 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown135 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown136 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown137 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown138 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown139 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown140 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown141 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown142 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown143 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown144 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown145 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown146 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown147 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown148 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown149 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown150 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: NodeNetworkUnavailable151 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable152 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable153 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable154 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable155 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable156 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable157 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable158 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable159 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable160 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable161 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable162 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable163 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable164 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable165 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable166 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable167 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable168 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable169 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable170 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable171 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable172 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable173 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable174 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable175 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable176 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable177 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable178 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable179 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable180 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable181 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable182 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable183 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable184 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable185 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable186 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable187 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable188 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable189 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable190 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable191 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable192 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable193 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable194 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable195 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable196 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable197 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable198 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable199 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable200 - namespace: openshift-network - severity: warning - firing: true diff --git a/web/cypress/fixtures/incident-scenarios/17-stress-test-500-alerts.yaml b/web/cypress/fixtures/incident-scenarios/17-stress-test-500-alerts.yaml deleted file mode 100644 index 7bc365733..000000000 --- a/web/cypress/fixtures/incident-scenarios/17-stress-test-500-alerts.yaml +++ /dev/null @@ -1,2014 +0,0 @@ -name: UI Stress Test - 500 Alerts -description: Stress test scenario with single incident containing 500 alerts -incidents: -- id: cluster-wide-failure-500-alerts - component: monitoring - layer: core - timeline: - start: 1h - severityChanges: - - time: 1h - severity: warning - - time: 30m - severity: critical - alerts: - - name: NetworkPolicyViolation001 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation002 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation003 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation004 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation005 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation006 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation007 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation008 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation009 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation010 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation011 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation012 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation013 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation014 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation015 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation016 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation017 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation018 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation019 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation020 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation021 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation022 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation023 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation024 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation025 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation026 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation027 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation028 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation029 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation030 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation031 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation032 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation033 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation034 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation035 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation036 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation037 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation038 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation039 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation040 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation041 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation042 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation043 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation044 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation045 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation046 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation047 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation048 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation049 - namespace: openshift-network - severity: critical - firing: true - - name: NetworkPolicyViolation050 - namespace: openshift-network - severity: critical - firing: true - - name: SDNControllerDown051 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown052 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown053 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown054 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown055 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown056 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown057 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown058 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown059 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown060 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown061 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown062 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown063 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown064 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown065 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown066 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown067 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown068 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown069 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown070 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown071 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown072 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown073 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown074 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown075 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown076 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown077 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown078 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown079 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown080 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown081 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown082 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown083 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown084 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown085 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown086 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown087 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown088 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown089 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown090 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown091 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown092 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown093 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown094 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown095 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown096 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown097 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown098 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown099 - namespace: openshift-sdn - severity: critical - firing: true - - name: SDNControllerDown100 - namespace: openshift-sdn - severity: critical - firing: true - - name: OVNKubeControllerDown101 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown102 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown103 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown104 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown105 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown106 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown107 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown108 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown109 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown110 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown111 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown112 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown113 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown114 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown115 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown116 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown117 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown118 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown119 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown120 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown121 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown122 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown123 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown124 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown125 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown126 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown127 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown128 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown129 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown130 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown131 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown132 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown133 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown134 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown135 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown136 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown137 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown138 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown139 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown140 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown141 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown142 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown143 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown144 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown145 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown146 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown147 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown148 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown149 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: OVNKubeControllerDown150 - namespace: openshift-ovn-kubernetes - severity: critical - firing: true - - name: NodeNetworkUnavailable151 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable152 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable153 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable154 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable155 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable156 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable157 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable158 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable159 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable160 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable161 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable162 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable163 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable164 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable165 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable166 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable167 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable168 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable169 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable170 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable171 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable172 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable173 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable174 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable175 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable176 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable177 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable178 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable179 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable180 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable181 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable182 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable183 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable184 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable185 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable186 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable187 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable188 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable189 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable190 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable191 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable192 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable193 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable194 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable195 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable196 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable197 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable198 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable199 - namespace: openshift-network - severity: warning - firing: true - - name: NodeNetworkUnavailable200 - namespace: openshift-network - severity: warning - firing: true - - name: IngressControllerDegraded201 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded202 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded203 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded204 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded205 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded206 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded207 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded208 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded209 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded210 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded211 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded212 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded213 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded214 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded215 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded216 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded217 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded218 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded219 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded220 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded221 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded222 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded223 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded224 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded225 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded226 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded227 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded228 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded229 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded230 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded231 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded232 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded233 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded234 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded235 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded236 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded237 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded238 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded239 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded240 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded241 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded242 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded243 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded244 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded245 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded246 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded247 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded248 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded249 - namespace: openshift-ingress - severity: warning - firing: true - - name: IngressControllerDegraded250 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency251 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency252 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency253 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency254 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency255 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency256 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency257 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency258 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency259 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency260 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency261 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency262 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency263 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency264 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency265 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency266 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency267 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency268 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency269 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency270 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency271 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency272 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency273 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency274 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency275 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency276 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency277 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency278 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency279 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency280 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency281 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency282 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency283 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency284 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency285 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency286 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency287 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency288 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency289 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency290 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency291 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency292 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency293 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency294 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency295 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency296 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency297 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency298 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency299 - namespace: openshift-ingress - severity: warning - firing: true - - name: RouterHighLatency300 - namespace: openshift-ingress - severity: warning - firing: true - - name: DNSOperatorDegraded301 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded302 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded303 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded304 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded305 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded306 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded307 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded308 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded309 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded310 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded311 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded312 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded313 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded314 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded315 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded316 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded317 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded318 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded319 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded320 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded321 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded322 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded323 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded324 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded325 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded326 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded327 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded328 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded329 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded330 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded331 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded332 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded333 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded334 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded335 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded336 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded337 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded338 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded339 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded340 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded341 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded342 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded343 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded344 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded345 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded346 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded347 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded348 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded349 - namespace: openshift-dns - severity: critical - firing: true - - name: DNSOperatorDegraded350 - namespace: openshift-dns - severity: critical - firing: true - - name: CoreDNSLatencyHigh351 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh352 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh353 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh354 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh355 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh356 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh357 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh358 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh359 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh360 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh361 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh362 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh363 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh364 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh365 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh366 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh367 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh368 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh369 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh370 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh371 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh372 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh373 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh374 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh375 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh376 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh377 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh378 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh379 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh380 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh381 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh382 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh383 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh384 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh385 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh386 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh387 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh388 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh389 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh390 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh391 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh392 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh393 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh394 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh395 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh396 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh397 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh398 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh399 - namespace: openshift-dns - severity: warning - firing: true - - name: CoreDNSLatencyHigh400 - namespace: openshift-dns - severity: warning - firing: true - - name: KubeNodeNotReady401 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady402 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady403 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady404 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady405 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady406 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady407 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady408 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady409 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady410 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady411 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady412 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady413 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady414 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady415 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady416 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady417 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady418 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady419 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady420 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady421 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady422 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady423 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady424 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady425 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady426 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady427 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady428 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady429 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady430 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady431 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady432 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady433 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady434 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady435 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady436 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady437 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady438 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady439 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady440 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady441 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady442 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady443 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady444 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady445 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady446 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady447 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady448 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady449 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubeNodeNotReady450 - namespace: openshift-monitoring - severity: critical - firing: true - - name: KubePodNotReady451 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady452 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady453 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady454 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady455 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady456 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady457 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady458 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady459 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady460 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady461 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady462 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady463 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady464 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady465 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady466 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady467 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady468 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady469 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady470 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady471 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady472 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady473 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady474 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady475 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady476 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady477 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady478 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady479 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady480 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady481 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady482 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady483 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady484 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady485 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady486 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady487 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady488 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady489 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady490 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady491 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady492 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady493 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady494 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady495 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady496 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady497 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady498 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady499 - namespace: openshift-monitoring - severity: warning - firing: true - - name: KubePodNotReady500 - namespace: openshift-monitoring - severity: warning - firing: true diff --git a/web/cypress/fixtures/incident-scenarios/2-multi-incidents-multi-alerts-resolved-and-firing.yaml b/web/cypress/fixtures/incident-scenarios/2-multi-incidents-multi-alerts-resolved-and-firing.yaml deleted file mode 100644 index e2d2a147c..000000000 --- a/web/cypress/fixtures/incident-scenarios/2-multi-incidents-multi-alerts-resolved-and-firing.yaml +++ /dev/null @@ -1,154 +0,0 @@ -name: "Multi-Incident Crisis" -description: "Complex incident scenario with multiple overlapping incidents featuring extended duration incidents and a cluster of critical alerts" -incidents: - - id: "monitoring-extended-outage-001" - component: "monitoring" - layer: "core" - timeline: - start: "3600m" - end: "2160m" - alerts: - - name: "MonitoringAlertmanagerReceiversCritical001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "3600m" - end: "2160m" - - name: "MonitoringPrometheusTargetDownWarning002" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "2520m" - - name: "MonitoringGrafanaDashboardCritical003" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "2400m" - - name: "MonitoringThanosQueryWarning004" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "2280m" - - name: "MonitoringAlertmanagerConfigCritical005" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "2160m" - - name: "MonitoringPrometheusRuleWarning006" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "2040m" - - name: "MonitoringServiceMonitorCritical007" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "1920m" - - name: "MonitoringPodMonitorWarning008" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "1800m" - - name: "MonitoringPrometheusTargetCritical009" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "1680m" - - name: "MonitoringGrafanaDataSourceWarning010" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "1560m" - - name: "MonitoringThanosStoreCritical011" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "1500m" - - name: "MonitoringPrometheusConfigWarning012" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "1470m" - - - id: "storage-persistent-issue-001" - component: "storage" - layer: "core" - timeline: - start: "3600m" - end: "2160m" - alerts: - - name: "StoragePersistentVolumeClaimPending013" - namespace: "openshift-storage" - severity: "info" - firing: true - timeline: - start: "3600m" - end: "2160m" - - - id: "compute-critical-failure-001" - component: "compute" - layer: "core" - timeline: - start: "2160m" - end: "1800m" - alerts: - - name: "ComputeNodeNotReadyCritical014" - namespace: "openshift-machine-api" - severity: "critical" - firing: true - timeline: - start: "2160m" - end: "1800m" - - - id: "api-server-escalation-001" - component: "api-server" - layer: "core" - timeline: - start: "1800m" - end: "1620m" - alerts: - - name: "APIServerHighErrorRateCritical015" - namespace: "openshift-kube-apiserver" - severity: "info" - firing: true - timeline: - start: "1800m" - end: "1620m" - - - id: "network-connectivity-issue-001" - component: "network" - layer: "core" - timeline: - start: "1560m" - alerts: - - name: "NetworkDNSResolutionFailureCritical016" - namespace: "openshift-dns" - severity: "critical" - firing: true - timeline: - start: "1560m" - - id: "network-connectivity-issue-002" - component: "network" - layer: "core" - timeline: - start: "1560m" - alerts: - - name: "NetworkDNSResolutionFailureCritical017" - namespace: "openshift-dns" - severity: "critical" - firing: true - timeline: - start: "1560m" - diff --git a/web/cypress/fixtures/incident-scenarios/21-multi-severity-boundary-times.yaml b/web/cypress/fixtures/incident-scenarios/21-multi-severity-boundary-times.yaml deleted file mode 100644 index 7852e3c6c..000000000 --- a/web/cypress/fixtures/incident-scenarios/21-multi-severity-boundary-times.yaml +++ /dev/null @@ -1,38 +0,0 @@ -name: "Multi-Severity Interval Boundary Times" -description: "Single resolved multi-severity incident for verifying that tooltip end times at severity interval boundaries are 5-minute rounded. The incident escalates from info to warning to critical over 5 hours." -incidents: - - id: "monitoring-multi-severity-boundary-001" - component: "monitoring" - layer: "core" - timeline: - start: "6h" - end: "1h" - severityChanges: - - time: "6h" - severity: "info" - - time: "4h" - severity: "warning" - - time: "2h" - severity: "critical" - alerts: - - name: "MonitoringLatencyHigh001" - namespace: "openshift-monitoring" - severity: "info" - firing: false - timeline: - start: "6h" - end: "4h" - - name: "MonitoringDegraded001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "4h" - end: "2h" - - name: "MonitoringDown001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "2h" - end: "1h" diff --git a/web/cypress/fixtures/incident-scenarios/3-multi-severity-overlapping-incidents.yaml b/web/cypress/fixtures/incident-scenarios/3-multi-severity-overlapping-incidents.yaml deleted file mode 100644 index a49af7432..000000000 --- a/web/cypress/fixtures/incident-scenarios/3-multi-severity-overlapping-incidents.yaml +++ /dev/null @@ -1,110 +0,0 @@ -name: "Multi-Severity Overlapping Incidents" -description: "Three incidents spanning several days with different severity distributions and overlapping alert timelines. First incident contains only critical alerts, second has critical and warning alerts, third has all three severity levels." -incidents: - - id: "monitoring-critical-only-001" - component: "monitoring" - layer: "core" - timeline: - start: "5d" - end: "3d" - alerts: - - name: "AlertmanagerReceiversNotConfigured001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "5d" - end: "3d" - - name: "PrometheusTargetDown001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "114h" - end: "78h" - - name: "GrafanaDashboardUnavailable001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "108h" - end: "84h" - - - id: "storage-mixed-severity-001" - component: "storage" - layer: "core" - timeline: - start: "4d" - end: "1d" - alerts: - - name: "PersistentVolumeClaimPending001" - namespace: "openshift-storage" - severity: "critical" - firing: false - timeline: - start: "4d" - end: "2d" - - name: "StorageNodeDiskSpaceLow001" - namespace: "openshift-storage" - severity: "warning" - firing: false - timeline: - start: "90h" - end: "30h" - - name: "CephClusterHealthDegraded001" - namespace: "openshift-storage" - severity: "critical" - firing: false - timeline: - start: "84h" - end: "36h" - - name: "StoragePerformanceDegraded001" - namespace: "openshift-storage" - severity: "warning" - firing: false - timeline: - start: "78h" - end: "42h" - - - id: "network-all-severities-001" - component: "network" - layer: "core" - timeline: - start: "3d" - alerts: - - name: "NetworkInterfaceDown001" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "3d" - - name: "NetworkLatencyHigh001" - namespace: "openshift-network" - severity: "warning" - firing: true - timeline: - start: "66h" - - name: "NetworkBandwidthUtilizationHigh001" - namespace: "openshift-network" - severity: "warning" - firing: true - timeline: - start: "60h" - - name: "NetworkConnectionPoolExhausted001" - namespace: "openshift-network" - severity: "info" - firing: true - timeline: - start: "54h" - - name: "NetworkDNSResolutionSlow001" - namespace: "openshift-network" - severity: "info" - firing: true - timeline: - start: "42h" - - name: "NetworkFirewallRuleBlocking001" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "36h" diff --git a/web/cypress/fixtures/incident-scenarios/4-single-incident-warning-alerts-only.yaml b/web/cypress/fixtures/incident-scenarios/4-single-incident-warning-alerts-only.yaml deleted file mode 100644 index 88fb0ea6d..000000000 --- a/web/cypress/fixtures/incident-scenarios/4-single-incident-warning-alerts-only.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: "Single Incident Warning Alerts Only" -description: "A single incident containing only warning severity alerts, representing a degraded but not critical system state." -incidents: - - id: "compute-warning-only-001" - component: "compute" - layer: "core" - timeline: - start: "2d" - end: "6h" - alerts: - - name: "NodeMemoryUtilizationHigh001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "2d" - end: "6h" - - name: "NodeCPUUtilizationHigh001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "42h" - end: "8h" - - name: "PodRestartFrequently001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "36h" - end: "10h" - - name: "NodeDiskSpaceLow001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "30h" - end: "12h" - - name: "ContainerMemoryLimitApproaching001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "1d" - end: "14h" diff --git a/web/cypress/fixtures/incident-scenarios/5-escalating-severity-incident.yaml b/web/cypress/fixtures/incident-scenarios/5-escalating-severity-incident.yaml deleted file mode 100644 index 0db1a5522..000000000 --- a/web/cypress/fixtures/incident-scenarios/5-escalating-severity-incident.yaml +++ /dev/null @@ -1,46 +0,0 @@ -name: "Escalating Severity Incident" -description: "A single incident where alerts fire gradually with increasing severity levels, causing the incident severity to escalate from info to warning to critical as new alerts start firing." -incidents: - - id: "api-server-escalating-severity-001" - component: "api-server" - layer: "core" - timeline: - start: "2d" - severityChanges: - - time: "2d" - severity: "info" - - time: "36h" - severity: "warning" - - time: "1d" - severity: "critical" - alerts: - - name: "APIServerRequestLatencyHigh001" - namespace: "openshift-monitoring" - severity: "info" - firing: true - timeline: - start: "2d" - - name: "APIServerErrorRateElevated001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "36h" - - name: "APIServerDown001" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "1d" - - name: "APIServerCertificateExpiring001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "18h" - - name: "APIServerMemoryUsageHigh001" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "12h" diff --git a/web/cypress/fixtures/incident-scenarios/6-multi-incident-target-alert-scenario.yaml b/web/cypress/fixtures/incident-scenarios/6-multi-incident-target-alert-scenario.yaml deleted file mode 100644 index 281081dfd..000000000 --- a/web/cypress/fixtures/incident-scenarios/6-multi-incident-target-alert-scenario.yaml +++ /dev/null @@ -1,98 +0,0 @@ -name: "Multi-Incident Cross-Namespace Target Alert Scenario" -description: "Multiple incidents with varying components and severities. The final incident contains alerts from multiple namespaces including a TargetAlert for test query validation." -incidents: - - id: "storage-resolved-001" - component: "storage" - layer: "core" - timeline: - start: "6d" - end: "4d" - alerts: - - name: "PersistentVolumeClaimPending001" - namespace: "openshift-storage" - severity: "critical" - firing: false - timeline: - start: "6d" - end: "4d" - - name: "StorageNodeDiskSpaceLow001" - namespace: "openshift-storage" - severity: "warning" - firing: false - timeline: - start: "138h" - end: "102h" - - - id: "network-mixed-severity-001" - component: "network" - layer: "core" - timeline: - start: "3d" - alerts: - - name: "NetworkInterfaceDown001" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "3d" - - name: "NetworkLatencyHigh001" - namespace: "openshift-network" - severity: "warning" - firing: true - timeline: - start: "60h" - - name: "NetworkBandwidthUtilizationHigh001" - namespace: "openshift-network" - severity: "info" - firing: true - timeline: - start: "48h" - - - id: "multi-namespace-target-001" - component: "monitoring" - layer: "core" - timeline: - start: "2d" - alerts: - - name: "AlertmanagerReceiversNotConfigured001" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "2d" - - name: "PrometheusTargetDown001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "42h" - - name: "TargetAlert" - namespace: "openshift-user-workload-monitoring" - severity: "critical" - firing: true - timeline: - start: "36h" - - name: "KubeDeploymentReplicasMismatch001" - namespace: "openshift-kube-apiserver" - severity: "warning" - firing: true - timeline: - start: "30h" - - name: "EtcdMemberCommunicationSlow001" - namespace: "openshift-etcd" - severity: "info" - firing: true - timeline: - start: "24h" - - name: "NodeExporterDown001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "18h" - - name: "ApplicationHealthCheckFailing001" - namespace: "test-application" - severity: "critical" - firing: true - timeline: - start: "12h" diff --git a/web/cypress/fixtures/incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml b/web/cypress/fixtures/incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml deleted file mode 100644 index 851def092..000000000 --- a/web/cypress/fixtures/incident-scenarios/7-comprehensive-filtering-test-scenarios.yaml +++ /dev/null @@ -1,316 +0,0 @@ -name: "Comprehensive Filtering Test Scenarios" -description: "Multiple incidents with various severity patterns for testing filtering functionality. Includes single-severity incidents, multi-alert incidents with dominant severities, and escalating severity incidents with gradual progression." -incidents: - # Single severity incidents - Critical only - - id: "monitoring-critical-single-001" - component: "monitoring" - layer: "core" - timeline: - start: "6h" - end: "2h" - alerts: - - name: "AlertmanagerClusterDown001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "330m" - end: "150m" - - name: "PrometheusTargetDown001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "6h" - end: "2h" - - - # Single severity incidents - Warning only - - id: "storage-warning-single-001" - component: "storage" - layer: "core" - timeline: - start: "8h" - end: "1h" - alerts: - - name: "PersistentVolumeUsageHigh001" - namespace: "openshift-storage" - severity: "warning" - firing: false - timeline: - start: "8h" - end: "1h" - - name: "StorageNodeDiskSpaceWarning001" - namespace: "openshift-storage" - severity: "warning" - firing: false - timeline: - start: "7h" - end: "90m" - - # Single severity incidents - Info only - - id: "network-info-single-001" - component: "network" - layer: "core" - timeline: - start: "4h" - end: "30m" - alerts: - - name: "NetworkBandwidthUtilizationInfo001" - namespace: "openshift-network" - severity: "info" - firing: false - timeline: - start: "4h" - end: "30m" - - name: "NetworkConnectionPoolInfo001" - namespace: "openshift-network" - severity: "info" - firing: false - timeline: - start: "210m" - end: "45m" - - # Multi-alert incident with Critical dominant (Critical + Warning + Info) - - id: "compute-critical-dominant-001" - component: "compute" - layer: "core" - timeline: - start: "12h" - end: "3h" - alerts: - - name: "NodeNotReady001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - timeline: - start: "12h" - end: "3h" - - name: "NodeMemoryPressure001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "11h" - end: "4h" - - name: "NodeDiskPressure001" - namespace: "openshift-monitoring" - severity: "info" - firing: false - timeline: - start: "10h" - end: "5h" - - # Multi-alert incident with Warning dominant (Warning + Info) - - id: "api-server-warning-dominant-001" - component: "api-server" - layer: "core" - timeline: - start: "9h" - end: "2h" - alerts: - - name: "APIServerRequestLatencyWarning001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - timeline: - start: "9h" - end: "2h" - - name: "APIServerCertificateInfo001" - namespace: "openshift-monitoring" - severity: "info" - firing: false - timeline: - start: "8h" - end: "3h" - - name: "APIServerConnectionInfo001" - namespace: "openshift-monitoring" - severity: "info" - firing: false - timeline: - start: "7h" - end: "4h" - - # Multi-alert incident with Critical dominant (Critical + Warning) - - id: "etcd-critical-warning-001" - component: "etcd" - layer: "core" - timeline: - start: "15h" - end: "5h" - alerts: - - name: "EtcdClusterUnavailable001" - namespace: "openshift-etcd" - severity: "critical" - firing: false - timeline: - start: "15h" - end: "5h" - - name: "EtcdHighLatency001" - namespace: "openshift-etcd" - severity: "warning" - firing: false - timeline: - start: "14h" - end: "6h" - - name: "EtcdBackupFailed001" - namespace: "openshift-etcd" - severity: "warning" - firing: false - timeline: - start: "13h" - end: "7h" - - # Multi-alert incident with Critical dominant (Critical + Info) - - id: "version-critical-info-001" - component: "version" - layer: "core" - timeline: - start: "20h" - end: "8h" - alerts: - - name: "ClusterVersionUpdateFailed001" - namespace: "openshift-cluster-version" - severity: "critical" - firing: false - timeline: - start: "20h" - end: "8h" - - name: "ClusterVersionUpdateAvailable001" - namespace: "openshift-cluster-version" - severity: "info" - firing: false - timeline: - start: "19h" - end: "9h" - - name: "ClusterVersionOperatorInfo001" - namespace: "openshift-cluster-version" - severity: "info" - firing: false - timeline: - start: "18h" - end: "10h" - - # Escalating severity incident - Info → Warning → Critical - - id: "monitoring-escalating-complete-001" - component: "monitoring" - layer: "core" - timeline: - start: "24h" - severityChanges: - - time: "24h" - severity: "info" - - time: "18h" - severity: "warning" - - time: "12h" - severity: "critical" - alerts: - - name: "PrometheusConfigReloadInfo001" - namespace: "openshift-monitoring" - severity: "info" - firing: true - timeline: - start: "24h" - - name: "PrometheusQueryLatencyWarning001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "18h" - - name: "PrometheusRuleEvaluationFailure001" - namespace: "openshift-monitoring" - severity: "critical" - firing: true - timeline: - start: "12h" - - # Escalating severity incident - Warning → Critical - - id: "storage-escalating-partial-001" - component: "storage" - layer: "core" - timeline: - start: "16h" - severityChanges: - - time: "16h" - severity: "warning" - - time: "8h" - severity: "critical" - alerts: - - name: "CephHealthWarning001" - namespace: "openshift-storage" - severity: "warning" - firing: true - timeline: - start: "16h" - - name: "CephOSDDown001" - namespace: "openshift-storage" - severity: "critical" - firing: true - timeline: - start: "8h" - - name: "CephMonitorDown001" - namespace: "openshift-storage" - severity: "critical" - firing: true - timeline: - start: "6h" - - # Currently firing single severity - Critical - - id: "network-firing-critical-001" - component: "network" - layer: "core" - timeline: - start: "3h" - alerts: - - name: "NetworkInterfaceDown001" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "3h" - - name: "NetworkControllerDown001" - namespace: "openshift-network" - severity: "critical" - firing: true - timeline: - start: "150m" - - # Currently firing single severity - Warning - - id: "compute-firing-warning-001" - component: "compute" - layer: "core" - timeline: - start: "5h" - alerts: - - name: "NodeHighCPUUsage001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "5h" - - name: "NodeHighMemoryUsage001" - namespace: "openshift-monitoring" - severity: "warning" - firing: true - timeline: - start: "4h" - - # Currently firing single severity - Info - - id: "others-firing-info-001" - component: "Others" - layer: "Others" - timeline: - start: "2h" - alerts: - - name: "CustomApplicationInfo001" - namespace: "custom-namespace" - severity: "info" - firing: true - timeline: - start: "2h" - - name: "ApplicationHealthcheckInfo001" - namespace: "custom-namespace" - severity: "info" - firing: true - timeline: - start: "90m" diff --git a/web/cypress/fixtures/incident-scenarios/9-silenced-alerts-mixed-scenario.yaml b/web/cypress/fixtures/incident-scenarios/9-silenced-alerts-mixed-scenario.yaml deleted file mode 100644 index 127d1e1b6..000000000 --- a/web/cypress/fixtures/incident-scenarios/9-silenced-alerts-mixed-scenario.yaml +++ /dev/null @@ -1,104 +0,0 @@ -name: "Silenced Alerts Mixed Scenario" -description: "Incidents demonstrating silenced alerts across resolved and firing cases with shared alert names." -incidents: - # Pair 1: Same alert name and same component; older resolved is silenced, newer is firing not silenced - - id: "PAIR-1-shared-alert-resolved-SILENCED" - component: "monitoring" - layer: "core" - timeline: - start: "6h" - end: "1h" - alerts: - - name: "MonitoringSyntheticShared001" - namespace: "openshift-monitoring" - severity: "warning" - firing: false - silenced: true - timeline: - start: "5h" - end: "2h" - - - id: "PAIR-1-shared-alert-firing-UNSILENCED" - component: "monitoring" - layer: "core" - timeline: - start: "2h" - alerts: - - name: "MonitoringSyntheticShared001" # same name and component as above - namespace: "openshift-monitoring" - severity: "warning" - firing: true - silenced: false - timeline: - start: "1h" - - - # Pair 2: Same alert name but different components; both firing; one silenced, one not - - id: "PAIR-2-shared-alert-name-storage-SILENCED" - component: "storage" - layer: "core" - timeline: - start: "3h" - alerts: - - name: "SyntheticSharedFiring002" - component: "storage" - namespace: "openshift-storage" - severity: "critical" - firing: true - silenced: true - timeline: - start: "2h" - # - name: "StorageAdditionalInfoS001" - # namespace: "openshift-storage" - # severity: "info" - # firing: true - # timeline: - # start: "100m" - - - id: "PAIR-2-shared-alert-name-network-UNSILENCED" - component: "network" - layer: "core" - timeline: - start: "3h" - alerts: - - name: "SyntheticSharedFiring002" # same name as storage incident, different component - component: "network" - namespace: "openshift-network" - severity: "critical" - firing: true - silenced: false - timeline: - start: "90m" - # - name: "NetworkAdditionalWarnN001" - # namespace: "openshift-network" - # severity: "warning" - # firing: true - # timeline: - # start: "80m" - - - - - id: "CASE-3-shared-alert-single-incident-storage-network-SILENCED-UNSILENCED" - component: "storage" - layer: "core" - timeline: - start: "3h" - alerts: - - name: "SyntheticSharedFiring003" - component: "storage" - namespace: "openshift-storage" - severity: "critical" - firing: true - silenced: true - timeline: - start: "2h" - - - name: "SyntheticSharedFiring003" - component: "network" - namespace: "openshift-network" - severity: "critical" - firing: true - silenced: false - timeline: - start: "90m" - diff --git a/web/cypress/fixtures/incident-scenarios/silenced-and-firing-mixed-severity.yaml b/web/cypress/fixtures/incident-scenarios/silenced-and-firing-mixed-severity.yaml deleted file mode 100644 index d443123d8..000000000 --- a/web/cypress/fixtures/incident-scenarios/silenced-and-firing-mixed-severity.yaml +++ /dev/null @@ -1,32 +0,0 @@ -name: "Silenced and Firing Mixed Severity" -description: "One silenced critical incident (resolved) and one firing warning incident." -incidents: - - id: "silenced-critical-resolved-001" - component: "monitoring" - layer: "core" - timeline: - start: "4h" - end: "1h" - alerts: - - name: "SilencedCriticalAlert001" - namespace: "openshift-monitoring" - severity: "critical" - firing: false - silenced: true - timeline: - start: "3h" - end: "2h" - - - id: "firing-warning-unsilenced-001" - component: "network" - layer: "core" - timeline: - start: "2h" - alerts: - - name: "FiringWarningAlert001" - namespace: "openshift-network" - severity: "warning" - firing: true - silenced: false - timeline: - start: "1h" diff --git a/web/cypress/fixtures/incidents/pod_crash_loop.yaml b/web/cypress/fixtures/incidents/pod_crash_loop.yaml index 58c535657..bbea7c49c 100644 --- a/web/cypress/fixtures/incidents/pod_crash_loop.yaml +++ b/web/cypress/fixtures/incidents/pod_crash_loop.yaml @@ -1,19 +1,19 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: crash-loop - namespace: openshift-monitoring + name: crash-loop + namespace: openshift-monitoring spec: - replicas: 1 - selector: - matchLabels: - app: crash-loop - template: - metadata: - labels: - app: crash-loop - spec: - containers: - - name: crash-loop - image: busybox - command: ["sh", "-c", "exit 1"] # Exit immediately with a failure \ No newline at end of file + replicas: 1 + selector: + matchLabels: + app: crash-loop + template: + metadata: + labels: + app: crash-loop + spec: + containers: + - name: crash-loop + image: busybox + command: ['sh', '-c', 'exit 1'] # Exit immediately with a failure diff --git a/web/cypress/fixtures/incidents/prometheus_rule_pod_crash_loop.yaml b/web/cypress/fixtures/incidents/prometheus_rule_pod_crash_loop.yaml index 65d0c3f8a..f076e43ad 100644 --- a/web/cypress/fixtures/incidents/prometheus_rule_pod_crash_loop.yaml +++ b/web/cypress/fixtures/incidents/prometheus_rule_pod_crash_loop.yaml @@ -1,24 +1,24 @@ apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: - labels: - app.kubernetes.io/name: kube-prometheus - app.kubernetes.io/part-of: openshift-monitoring - prometheus: k8s - role: alert-rules - name: kubernetes-monitoring-podcrash-rules - namespace: openshift-monitoring + labels: + app.kubernetes.io/name: kube-prometheus + app.kubernetes.io/part-of: openshift-monitoring + prometheus: k8s + role: alert-rules + name: kubernetes-monitoring-podcrash-rules + namespace: openshift-monitoring spec: - groups: - - name: kubernetes-apps - rules: - - alert: {{ALERT_NAME}} - annotations: - description: 'Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container - }}) is in waiting state (reason: "CrashLoopBackOff").' - summary: Pod is crash looping. - expr: | - max_over_time(kube_pod_container_status_waiting_reason{reason="CrashLoopBackOff", namespace=~"(openshift-.*|kube-.*|default)",job="kube-state-metrics"}[5m]) >= 1 - for: 5m - labels: - severity: warning \ No newline at end of file + groups: + - name: kubernetes-apps + rules: + - alert: { { ALERT_NAME } } + annotations: + description: 'Pod {{ $labels.namespace }}/{{ $labels.pod }} ({{ $labels.container + }}) is in waiting state (reason: "CrashLoopBackOff").' + summary: Pod is crash looping. + expr: | + max_over_time(kube_pod_container_status_waiting_reason{reason="CrashLoopBackOff", namespace=~"(openshift-.*|kube-.*|default)",job="kube-state-metrics"}[5m]) >= 1 + for: 5m + labels: + severity: warning diff --git a/web/cypress/fixtures/incident-scenarios/22-benchmark-20-incidents.yaml b/web/cypress/fixtures/incidents/scenarios/benchmark-20-incidents.yaml similarity index 99% rename from web/cypress/fixtures/incident-scenarios/22-benchmark-20-incidents.yaml rename to web/cypress/fixtures/incidents/scenarios/benchmark-20-incidents.yaml index 3506c2306..0a94208e6 100644 --- a/web/cypress/fixtures/incident-scenarios/22-benchmark-20-incidents.yaml +++ b/web/cypress/fixtures/incidents/scenarios/benchmark-20-incidents.yaml @@ -1,4 +1,4 @@ -name: "22 - Performance Benchmark - 20 Incidents" +name: '22 - Performance Benchmark - 20 Incidents' description: > 20 incidents across various components for benchmarking incidents chart rendering performance. Each incident has 2-3 alerts. Uses 1h timeline diff --git a/web/cypress/fixtures/incident-scenarios/23-benchmark-mixed-size-incidents.yaml b/web/cypress/fixtures/incidents/scenarios/benchmark-mixed-size-incidents.yaml similarity index 95% rename from web/cypress/fixtures/incident-scenarios/23-benchmark-mixed-size-incidents.yaml rename to web/cypress/fixtures/incidents/scenarios/benchmark-mixed-size-incidents.yaml index 2d81396f7..aaaccda13 100644 --- a/web/cypress/fixtures/incident-scenarios/23-benchmark-mixed-size-incidents.yaml +++ b/web/cypress/fixtures/incidents/scenarios/benchmark-mixed-size-incidents.yaml @@ -1,4 +1,4 @@ -name: "23 - Performance Benchmark - Mixed Size Incidents" +name: '23 - Performance Benchmark - Mixed Size Incidents' description: > 12 incidents with heterogeneous alert counts (1 large, 2 medium, 3 small-medium, 6 small) for benchmarking chart rendering with realistic data distribution. @@ -156,5 +156,15 @@ incidents: timeline: start: 8m alerts: - - { name: TinyVerCrit01, namespace: openshift-cluster-version, severity: critical, firing: true } - - { name: TinyVerWarn01, namespace: openshift-cluster-version, severity: warning, firing: true } + - { + name: TinyVerCrit01, + namespace: openshift-cluster-version, + severity: critical, + firing: true, + } + - { + name: TinyVerWarn01, + namespace: openshift-cluster-version, + severity: warning, + firing: true, + } diff --git a/web/cypress/fixtures/incidents/scenarios/charts-ui-comprehensive.yaml b/web/cypress/fixtures/incidents/scenarios/charts-ui-comprehensive.yaml new file mode 100644 index 000000000..c6821289e --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/charts-ui-comprehensive.yaml @@ -0,0 +1,221 @@ +name: 'Charts UI Comprehensive Test Scenarios with Edge Cases' +description: 'Streamlined scenarios (10 incidents) for testing tooltip positioning with varied name lengths, bar visibility, short duration alerts (< 5 min for Section 3.1), multi-component tooltips, and multi-severity segments. Tests Sections 2 (Charts UI) and 3.1 (Short Duration Visibility) without requiring scrolling.' +incidents: + # 1. SHORT DURATION FIRING (newest) - Short names for baseline + - id: 'network-firing-short-002' + component: 'network' + layer: 'core' + timeline: + start: '10m' + alerts: + - name: 'NetworkFirewallRuleBlocking0023' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '10m' + - name: 'NetworkPacketLossHigh0023' + namespace: 'openshift-network' + severity: 'warning' + firing: true + timeline: + start: '8m' + - name: 'NetworkRouteTableCorrupted0023' + namespace: 'openshift-network' + severity: 'warning' + firing: true + timeline: + start: '5m' + - name: 'NetworkSecurityPolicyViolation0023' + namespace: 'openshift-network' + severity: 'info' + firing: true + timeline: + start: '3m' + - name: 'NetworkLoadBalancerUnhealthy0023' + namespace: 'openshift-network' + severity: 'info' + firing: true + timeline: + start: '0m' + + # 2. SHORT DURATION RESOLVED - Medium names + - id: 'network-resolved-short-001' + component: 'network' + layer: 'core' + timeline: + start: '50m' + end: '40m' + alerts: + - name: 'NetworkInterfaceDown0023' + namespace: 'openshift-network' + severity: 'critical' + firing: false + timeline: + start: '50m' + end: '40m' + - name: 'NetworkLatencyHighExceedingThresholds0023' + namespace: 'openshift-network' + severity: 'warning' + firing: false + timeline: + start: '47m' + end: '40m' + - name: 'NetworkBandwidthUtilizationHighRequiringInvestigation0023' + namespace: 'openshift-network' + severity: 'warning' + firing: false + timeline: + start: '45m' + end: '40m' + + # 3. MULTI-COMPONENT - Medium-long names for tooltip width testing + - id: 'network-three-alerts-001' + component: 'network' + layer: 'core' + timeline: + start: '1h30m' + alerts: + - name: 'NetworkLatencyHighAffectingServiceResponseTimes001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + component: 'network' + - name: 'PacketDropRateElevatedIndicatingPotentialNetworkSaturation001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + component: 'compute' + - name: 'ConnectionPoolExhaustedRequiringImmediateScalingAction001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + component: 'storage' + + # 4. SECTION 3.1: 1-minute incident - Long component name + - id: 'api-server-transient-001' + component: 'api-server' + layer: 'core' + timeline: + start: '2h' + end: '119m' + alerts: + - name: 'APIServerRequestLatencyBriefSpikeDetectedDuringHighTrafficPeriod001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + + # 5. MULTI-SEVERITY GRADUAL ESCALATION - Long names for tooltip positioning edge case + - id: 'monitoring-gradual-alerts-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '5h30m' + severityChanges: + - time: '5h30m' + severity: 'info' + - time: '2h' + severity: 'warning' + - time: '1h30m' + severity: 'critical' + alerts: + - name: 'PrometheusRuleEvaluationPerformanceDegradationDetectedRequiringOptimization001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: true + timeline: + start: '5h30m' + - name: 'PrometheusQueryLatencyIncreasingBeyondAcceptableThresholdsImpactingDashboards001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '2h' + - name: 'AlertmanagerClusterFailedToSendNotificationsCriticalAlertsNotDelivered001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '1h30m' + + # 6. SECTION 3.1: 9-minute incident - Medium names + - id: 'compute-microsecond-resolution-001' + component: 'compute' + layer: 'core' + timeline: + start: '3h' + end: '171m' + alerts: + - name: 'NodeTransientIssueResolvedAutomatically001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + + # 7. SECTION 3.1: Recently resolved - Short to medium names + - id: 'monitoring-just-resolved-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '4h' + end: '2m' + alerts: + - name: 'PrometheusTargetMissingButRecovered001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + + # 8. SIX ALERTS FOR ALERTS CHART - Mix of very short and very long names + - id: 'etcd-six-alerts-001' + component: 'etcd' + layer: 'core' + timeline: + start: '5h' + alerts: + - name: 'E001' + namespace: 'openshift-etcd' + severity: 'critical' + firing: true + - name: 'EtcdBackupOperationFailureDetectedWithRetryAttempts001' + namespace: 'openshift-etcd' + severity: 'critical' + firing: true + - name: 'EtcdDatabaseSizeApproachingConfiguredLimitRequiringCompactionOperationToFreeSpace001' + namespace: 'openshift-etcd' + severity: 'warning' + firing: true + - name: 'EtcdLeaderElectionTimeExceedingNormalThresholdIndicatingPotentialNetworkOrPerformanceIssues001' + namespace: 'openshift-etcd' + severity: 'warning' + firing: true + - name: 'EtcdMemberCommunicationLatencyHigherThanExpectedBaselinePerformanceMetricsRequiringInvestigation001' + namespace: 'openshift-etcd' + severity: 'info' + firing: true + - name: 'EtcdClusterHealthMonitoringSystemReportingNormalOperatingConditionsWithAllMembersRespondingWithinAcceptableTimeframesAndNoOutstandingIssuesDetectedDuringRoutineMaintenanceChecks001' + namespace: 'openshift-etcd' + severity: 'info' + firing: true + + # 9. EXTREMELY LONG NAME (180+ chars) - Critical for viewport overflow testing + - id: 'others-very-long-name-001' + component: 'Others' + layer: 'Others' + timeline: + start: '6h' + alerts: + - name: 'CustomApplicationDatabaseConnectionPoolExhaustedRequiringImmediateAttentionFromOperationsTeamToInvestigatePotentialMemoryLeaksAndResolveUnderlyingInfrastructureLimitationsOrConfigurationIssuesThatMayBeImpactingOverallSystemPerformance001' + namespace: 'custom-application-namespace-with-very-long-name' + severity: 'critical' + firing: true + + # 10. OLDEST INCIDENT - Very short name for sorting test + - id: 'VSN-001' + component: 'version' + layer: 'core' + timeline: + start: '8h' + alerts: + - name: 'V001' + namespace: 'openshift-cluster-version' + severity: 'info' + firing: true diff --git a/web/cypress/fixtures/incidents/scenarios/comprehensive-filtering-test-scenarios.yaml b/web/cypress/fixtures/incidents/scenarios/comprehensive-filtering-test-scenarios.yaml new file mode 100644 index 000000000..0c48406d4 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/comprehensive-filtering-test-scenarios.yaml @@ -0,0 +1,315 @@ +name: 'Comprehensive Filtering Test Scenarios' +description: 'Multiple incidents with various severity patterns for testing filtering functionality. Includes single-severity incidents, multi-alert incidents with dominant severities, and escalating severity incidents with gradual progression.' +incidents: + # Single severity incidents - Critical only + - id: 'monitoring-critical-single-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '6h' + end: '2h' + alerts: + - name: 'AlertmanagerClusterDown001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '330m' + end: '150m' + - name: 'PrometheusTargetDown001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '6h' + end: '2h' + + # Single severity incidents - Warning only + - id: 'storage-warning-single-001' + component: 'storage' + layer: 'core' + timeline: + start: '8h' + end: '1h' + alerts: + - name: 'PersistentVolumeUsageHigh001' + namespace: 'openshift-storage' + severity: 'warning' + firing: false + timeline: + start: '8h' + end: '1h' + - name: 'StorageNodeDiskSpaceWarning001' + namespace: 'openshift-storage' + severity: 'warning' + firing: false + timeline: + start: '7h' + end: '90m' + + # Single severity incidents - Info only + - id: 'network-info-single-001' + component: 'network' + layer: 'core' + timeline: + start: '4h' + end: '30m' + alerts: + - name: 'NetworkBandwidthUtilizationInfo001' + namespace: 'openshift-network' + severity: 'info' + firing: false + timeline: + start: '4h' + end: '30m' + - name: 'NetworkConnectionPoolInfo001' + namespace: 'openshift-network' + severity: 'info' + firing: false + timeline: + start: '210m' + end: '45m' + + # Multi-alert incident with Critical dominant (Critical + Warning + Info) + - id: 'compute-critical-dominant-001' + component: 'compute' + layer: 'core' + timeline: + start: '12h' + end: '3h' + alerts: + - name: 'NodeNotReady001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '12h' + end: '3h' + - name: 'NodeMemoryPressure001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + timeline: + start: '11h' + end: '4h' + - name: 'NodeDiskPressure001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: false + timeline: + start: '10h' + end: '5h' + + # Multi-alert incident with Warning dominant (Warning + Info) + - id: 'api-server-warning-dominant-001' + component: 'api-server' + layer: 'core' + timeline: + start: '9h' + end: '2h' + alerts: + - name: 'APIServerRequestLatencyWarning001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + timeline: + start: '9h' + end: '2h' + - name: 'APIServerCertificateInfo001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: false + timeline: + start: '8h' + end: '3h' + - name: 'APIServerConnectionInfo001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: false + timeline: + start: '7h' + end: '4h' + + # Multi-alert incident with Critical dominant (Critical + Warning) + - id: 'etcd-critical-warning-001' + component: 'etcd' + layer: 'core' + timeline: + start: '15h' + end: '5h' + alerts: + - name: 'EtcdClusterUnavailable001' + namespace: 'openshift-etcd' + severity: 'critical' + firing: false + timeline: + start: '15h' + end: '5h' + - name: 'EtcdHighLatency001' + namespace: 'openshift-etcd' + severity: 'warning' + firing: false + timeline: + start: '14h' + end: '6h' + - name: 'EtcdBackupFailed001' + namespace: 'openshift-etcd' + severity: 'warning' + firing: false + timeline: + start: '13h' + end: '7h' + + # Multi-alert incident with Critical dominant (Critical + Info) + - id: 'version-critical-info-001' + component: 'version' + layer: 'core' + timeline: + start: '20h' + end: '8h' + alerts: + - name: 'ClusterVersionUpdateFailed001' + namespace: 'openshift-cluster-version' + severity: 'critical' + firing: false + timeline: + start: '20h' + end: '8h' + - name: 'ClusterVersionUpdateAvailable001' + namespace: 'openshift-cluster-version' + severity: 'info' + firing: false + timeline: + start: '19h' + end: '9h' + - name: 'ClusterVersionOperatorInfo001' + namespace: 'openshift-cluster-version' + severity: 'info' + firing: false + timeline: + start: '18h' + end: '10h' + + # Escalating severity incident - Info → Warning → Critical + - id: 'monitoring-escalating-complete-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '24h' + severityChanges: + - time: '24h' + severity: 'info' + - time: '18h' + severity: 'warning' + - time: '12h' + severity: 'critical' + alerts: + - name: 'PrometheusConfigReloadInfo001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: true + timeline: + start: '24h' + - name: 'PrometheusQueryLatencyWarning001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '18h' + - name: 'PrometheusRuleEvaluationFailure001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '12h' + + # Escalating severity incident - Warning → Critical + - id: 'storage-escalating-partial-001' + component: 'storage' + layer: 'core' + timeline: + start: '16h' + severityChanges: + - time: '16h' + severity: 'warning' + - time: '8h' + severity: 'critical' + alerts: + - name: 'CephHealthWarning001' + namespace: 'openshift-storage' + severity: 'warning' + firing: true + timeline: + start: '16h' + - name: 'CephOSDDown001' + namespace: 'openshift-storage' + severity: 'critical' + firing: true + timeline: + start: '8h' + - name: 'CephMonitorDown001' + namespace: 'openshift-storage' + severity: 'critical' + firing: true + timeline: + start: '6h' + + # Currently firing single severity - Critical + - id: 'network-firing-critical-001' + component: 'network' + layer: 'core' + timeline: + start: '3h' + alerts: + - name: 'NetworkInterfaceDown001' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '3h' + - name: 'NetworkControllerDown001' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '150m' + + # Currently firing single severity - Warning + - id: 'compute-firing-warning-001' + component: 'compute' + layer: 'core' + timeline: + start: '5h' + alerts: + - name: 'NodeHighCPUUsage001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '5h' + - name: 'NodeHighMemoryUsage001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '4h' + + # Currently firing single severity - Info + - id: 'others-firing-info-001' + component: 'Others' + layer: 'Others' + timeline: + start: '2h' + alerts: + - name: 'CustomApplicationInfo001' + namespace: 'custom-namespace' + severity: 'info' + firing: true + timeline: + start: '2h' + - name: 'ApplicationHealthcheckInfo001' + namespace: 'custom-namespace' + severity: 'info' + firing: true + timeline: + start: '90m' diff --git a/web/cypress/fixtures/incidents/scenarios/escalating-severity-incident.yaml b/web/cypress/fixtures/incidents/scenarios/escalating-severity-incident.yaml new file mode 100644 index 000000000..48b96794f --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/escalating-severity-incident.yaml @@ -0,0 +1,46 @@ +name: 'Escalating Severity Incident' +description: 'A single incident where alerts fire gradually with increasing severity levels, causing the incident severity to escalate from info to warning to critical as new alerts start firing.' +incidents: + - id: 'api-server-escalating-severity-001' + component: 'api-server' + layer: 'core' + timeline: + start: '2d' + severityChanges: + - time: '2d' + severity: 'info' + - time: '36h' + severity: 'warning' + - time: '1d' + severity: 'critical' + alerts: + - name: 'APIServerRequestLatencyHigh001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: true + timeline: + start: '2d' + - name: 'APIServerErrorRateElevated001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '36h' + - name: 'APIServerDown001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '1d' + - name: 'APIServerCertificateExpiring001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '18h' + - name: 'APIServerMemoryUsageHigh001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '12h' diff --git a/web/cypress/fixtures/incidents/scenarios/healthy-cluster.yaml b/web/cypress/fixtures/incidents/scenarios/healthy-cluster.yaml new file mode 100644 index 000000000..43fa5666b --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/healthy-cluster.yaml @@ -0,0 +1,13 @@ +name: 'Healthy Cluster' +description: 'Minimal activity with only watchdog alert' +incidents: + - id: 'watchdog-info' + component: 'monitoring' + layer: 'core' + timeline: + start: '7d' # Started 7 days ago (normal) + alerts: + - name: 'Watchdog' + namespace: 'openshift-monitoring' + severity: 'info' + firing: true diff --git a/web/cypress/fixtures/incidents/scenarios/multi-incident-target-alert-scenario.yaml b/web/cypress/fixtures/incidents/scenarios/multi-incident-target-alert-scenario.yaml new file mode 100644 index 000000000..5b955874b --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/multi-incident-target-alert-scenario.yaml @@ -0,0 +1,98 @@ +name: 'Multi-Incident Cross-Namespace Target Alert Scenario' +description: 'Multiple incidents with varying components and severities. The final incident contains alerts from multiple namespaces including a TargetAlert for test query validation.' +incidents: + - id: 'storage-resolved-001' + component: 'storage' + layer: 'core' + timeline: + start: '6d' + end: '4d' + alerts: + - name: 'PersistentVolumeClaimPending001' + namespace: 'openshift-storage' + severity: 'critical' + firing: false + timeline: + start: '6d' + end: '4d' + - name: 'StorageNodeDiskSpaceLow001' + namespace: 'openshift-storage' + severity: 'warning' + firing: false + timeline: + start: '138h' + end: '102h' + + - id: 'network-mixed-severity-001' + component: 'network' + layer: 'core' + timeline: + start: '3d' + alerts: + - name: 'NetworkInterfaceDown001' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '3d' + - name: 'NetworkLatencyHigh001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + timeline: + start: '60h' + - name: 'NetworkBandwidthUtilizationHigh001' + namespace: 'openshift-network' + severity: 'info' + firing: true + timeline: + start: '48h' + + - id: 'multi-namespace-target-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '2d' + alerts: + - name: 'AlertmanagerReceiversNotConfigured001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '2d' + - name: 'PrometheusTargetDown001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '42h' + - name: 'TargetAlert' + namespace: 'openshift-user-workload-monitoring' + severity: 'critical' + firing: true + timeline: + start: '36h' + - name: 'KubeDeploymentReplicasMismatch001' + namespace: 'openshift-kube-apiserver' + severity: 'warning' + firing: true + timeline: + start: '30h' + - name: 'EtcdMemberCommunicationSlow001' + namespace: 'openshift-etcd' + severity: 'info' + firing: true + timeline: + start: '24h' + - name: 'NodeExporterDown001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '18h' + - name: 'ApplicationHealthCheckFailing001' + namespace: 'test-application' + severity: 'critical' + firing: true + timeline: + start: '12h' diff --git a/web/cypress/fixtures/incidents/scenarios/multi-incidents-multi-alerts-resolved-and-firing.yaml b/web/cypress/fixtures/incidents/scenarios/multi-incidents-multi-alerts-resolved-and-firing.yaml new file mode 100644 index 000000000..5abe21470 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/multi-incidents-multi-alerts-resolved-and-firing.yaml @@ -0,0 +1,153 @@ +name: 'Multi-Incident Crisis' +description: 'Complex incident scenario with multiple overlapping incidents featuring extended duration incidents and a cluster of critical alerts' +incidents: + - id: 'monitoring-extended-outage-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '3600m' + end: '2160m' + alerts: + - name: 'MonitoringAlertmanagerReceiversCritical001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '3600m' + end: '2160m' + - name: 'MonitoringPrometheusTargetDownWarning002' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '2520m' + - name: 'MonitoringGrafanaDashboardCritical003' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '2400m' + - name: 'MonitoringThanosQueryWarning004' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '2280m' + - name: 'MonitoringAlertmanagerConfigCritical005' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '2160m' + - name: 'MonitoringPrometheusRuleWarning006' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '2040m' + - name: 'MonitoringServiceMonitorCritical007' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '1920m' + - name: 'MonitoringPodMonitorWarning008' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '1800m' + - name: 'MonitoringPrometheusTargetCritical009' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '1680m' + - name: 'MonitoringGrafanaDataSourceWarning010' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '1560m' + - name: 'MonitoringThanosStoreCritical011' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + timeline: + start: '1500m' + - name: 'MonitoringPrometheusConfigWarning012' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + timeline: + start: '1470m' + + - id: 'storage-persistent-issue-001' + component: 'storage' + layer: 'core' + timeline: + start: '3600m' + end: '2160m' + alerts: + - name: 'StoragePersistentVolumeClaimPending013' + namespace: 'openshift-storage' + severity: 'info' + firing: true + timeline: + start: '3600m' + end: '2160m' + + - id: 'compute-critical-failure-001' + component: 'compute' + layer: 'core' + timeline: + start: '2160m' + end: '1800m' + alerts: + - name: 'ComputeNodeNotReadyCritical014' + namespace: 'openshift-machine-api' + severity: 'critical' + firing: true + timeline: + start: '2160m' + end: '1800m' + + - id: 'api-server-escalation-001' + component: 'api-server' + layer: 'core' + timeline: + start: '1800m' + end: '1620m' + alerts: + - name: 'APIServerHighErrorRateCritical015' + namespace: 'openshift-kube-apiserver' + severity: 'info' + firing: true + timeline: + start: '1800m' + end: '1620m' + + - id: 'network-connectivity-issue-001' + component: 'network' + layer: 'core' + timeline: + start: '1560m' + alerts: + - name: 'NetworkDNSResolutionFailureCritical016' + namespace: 'openshift-dns' + severity: 'critical' + firing: true + timeline: + start: '1560m' + - id: 'network-connectivity-issue-002' + component: 'network' + layer: 'core' + timeline: + start: '1560m' + alerts: + - name: 'NetworkDNSResolutionFailureCritical017' + namespace: 'openshift-dns' + severity: 'critical' + firing: true + timeline: + start: '1560m' diff --git a/web/cypress/fixtures/incidents/scenarios/multi-severity-boundary-times.yaml b/web/cypress/fixtures/incidents/scenarios/multi-severity-boundary-times.yaml new file mode 100644 index 000000000..e9dc1c61a --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/multi-severity-boundary-times.yaml @@ -0,0 +1,38 @@ +name: 'Multi-Severity Interval Boundary Times' +description: 'Single resolved multi-severity incident for verifying that tooltip end times at severity interval boundaries are 5-minute rounded. The incident escalates from info to warning to critical over 5 hours.' +incidents: + - id: 'monitoring-multi-severity-boundary-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '6h' + end: '1h' + severityChanges: + - time: '6h' + severity: 'info' + - time: '4h' + severity: 'warning' + - time: '2h' + severity: 'critical' + alerts: + - name: 'MonitoringLatencyHigh001' + namespace: 'openshift-monitoring' + severity: 'info' + firing: false + timeline: + start: '6h' + end: '4h' + - name: 'MonitoringDegraded001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + timeline: + start: '4h' + end: '2h' + - name: 'MonitoringDown001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '2h' + end: '1h' diff --git a/web/cypress/fixtures/incidents/scenarios/multi-severity-overlapping-incidents.yaml b/web/cypress/fixtures/incidents/scenarios/multi-severity-overlapping-incidents.yaml new file mode 100644 index 000000000..8d90d9d87 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/multi-severity-overlapping-incidents.yaml @@ -0,0 +1,110 @@ +name: 'Multi-Severity Overlapping Incidents' +description: 'Three incidents spanning several days with different severity distributions and overlapping alert timelines. First incident contains only critical alerts, second has critical and warning alerts, third has all three severity levels.' +incidents: + - id: 'monitoring-critical-only-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '5d' + end: '3d' + alerts: + - name: 'AlertmanagerReceiversNotConfigured001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '5d' + end: '3d' + - name: 'PrometheusTargetDown001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '114h' + end: '78h' + - name: 'GrafanaDashboardUnavailable001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + timeline: + start: '108h' + end: '84h' + + - id: 'storage-mixed-severity-001' + component: 'storage' + layer: 'core' + timeline: + start: '4d' + end: '1d' + alerts: + - name: 'PersistentVolumeClaimPending001' + namespace: 'openshift-storage' + severity: 'critical' + firing: false + timeline: + start: '4d' + end: '2d' + - name: 'StorageNodeDiskSpaceLow001' + namespace: 'openshift-storage' + severity: 'warning' + firing: false + timeline: + start: '90h' + end: '30h' + - name: 'CephClusterHealthDegraded001' + namespace: 'openshift-storage' + severity: 'critical' + firing: false + timeline: + start: '84h' + end: '36h' + - name: 'StoragePerformanceDegraded001' + namespace: 'openshift-storage' + severity: 'warning' + firing: false + timeline: + start: '78h' + end: '42h' + + - id: 'network-all-severities-001' + component: 'network' + layer: 'core' + timeline: + start: '3d' + alerts: + - name: 'NetworkInterfaceDown001' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '3d' + - name: 'NetworkLatencyHigh001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + timeline: + start: '66h' + - name: 'NetworkBandwidthUtilizationHigh001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + timeline: + start: '60h' + - name: 'NetworkConnectionPoolExhausted001' + namespace: 'openshift-network' + severity: 'info' + firing: true + timeline: + start: '54h' + - name: 'NetworkDNSResolutionSlow001' + namespace: 'openshift-network' + severity: 'info' + firing: true + timeline: + start: '42h' + - name: 'NetworkFirewallRuleBlocking001' + namespace: 'openshift-network' + severity: 'critical' + firing: true + timeline: + start: '36h' diff --git a/web/cypress/fixtures/incidents/scenarios/silenced-alerts-mixed-scenario.yaml b/web/cypress/fixtures/incidents/scenarios/silenced-alerts-mixed-scenario.yaml new file mode 100644 index 000000000..984ef7ad1 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/silenced-alerts-mixed-scenario.yaml @@ -0,0 +1,100 @@ +name: 'Silenced Alerts Mixed Scenario' +description: 'Incidents demonstrating silenced alerts across resolved and firing cases with shared alert names.' +incidents: + # Pair 1: Same alert name and same component; older resolved is silenced, newer is firing not silenced + - id: 'PAIR-1-shared-alert-resolved-SILENCED' + component: 'monitoring' + layer: 'core' + timeline: + start: '6h' + end: '1h' + alerts: + - name: 'MonitoringSyntheticShared001' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: false + silenced: true + timeline: + start: '5h' + end: '2h' + + - id: 'PAIR-1-shared-alert-firing-UNSILENCED' + component: 'monitoring' + layer: 'core' + timeline: + start: '2h' + alerts: + - name: 'MonitoringSyntheticShared001' # same name and component as above + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + silenced: false + timeline: + start: '1h' + + # Pair 2: Same alert name but different components; both firing; one silenced, one not + - id: 'PAIR-2-shared-alert-name-storage-SILENCED' + component: 'storage' + layer: 'core' + timeline: + start: '3h' + alerts: + - name: 'SyntheticSharedFiring002' + component: 'storage' + namespace: 'openshift-storage' + severity: 'critical' + firing: true + silenced: true + timeline: + start: '2h' + # - name: "StorageAdditionalInfoS001" + # namespace: "openshift-storage" + # severity: "info" + # firing: true + # timeline: + # start: "100m" + + - id: 'PAIR-2-shared-alert-name-network-UNSILENCED' + component: 'network' + layer: 'core' + timeline: + start: '3h' + alerts: + - name: 'SyntheticSharedFiring002' # same name as storage incident, different component + component: 'network' + namespace: 'openshift-network' + severity: 'critical' + firing: true + silenced: false + timeline: + start: '90m' + # - name: "NetworkAdditionalWarnN001" + # namespace: "openshift-network" + # severity: "warning" + # firing: true + # timeline: + # start: "80m" + + - id: 'CASE-3-shared-alert-single-incident-storage-network-SILENCED-UNSILENCED' + component: 'storage' + layer: 'core' + timeline: + start: '3h' + alerts: + - name: 'SyntheticSharedFiring003' + component: 'storage' + namespace: 'openshift-storage' + severity: 'critical' + firing: true + silenced: true + timeline: + start: '2h' + + - name: 'SyntheticSharedFiring003' + component: 'network' + namespace: 'openshift-network' + severity: 'critical' + firing: true + silenced: false + timeline: + start: '90m' diff --git a/web/cypress/fixtures/incidents/scenarios/silenced-and-firing-mixed-severity.yaml b/web/cypress/fixtures/incidents/scenarios/silenced-and-firing-mixed-severity.yaml new file mode 100644 index 000000000..5675013c4 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/silenced-and-firing-mixed-severity.yaml @@ -0,0 +1,32 @@ +name: 'Silenced and Firing Mixed Severity' +description: 'One silenced critical incident (resolved) and one firing warning incident.' +incidents: + - id: 'silenced-critical-resolved-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '4h' + end: '1h' + alerts: + - name: 'SilencedCriticalAlert001' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: false + silenced: true + timeline: + start: '3h' + end: '2h' + + - id: 'firing-warning-unsilenced-001' + component: 'network' + layer: 'core' + timeline: + start: '2h' + alerts: + - name: 'FiringWarningAlert001' + namespace: 'openshift-network' + severity: 'warning' + firing: true + silenced: false + timeline: + start: '1h' diff --git a/web/cypress/fixtures/incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml b/web/cypress/fixtures/incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml new file mode 100644 index 000000000..b1ccd07ff --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/single-incident-firing-critical-and-warning-alerts.yaml @@ -0,0 +1,22 @@ +name: 'Critical Monitoring Issues' +description: 'Cluster with critical monitoring component failures' +incidents: + - id: 'monitoring-critical-001' + component: 'monitoring' + layer: 'core' + timeline: + start: '5d' # Started 2 hours ago + # No end = ongoing incident + alerts: + - name: 'AlertmanagerReceiversNotConfigured' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true + - name: 'KubeDeploymentReplicasMismatch' + namespace: 'openshift-monitoring' + severity: 'critical' + firing: true + - name: 'KubePodCrashLooping' + namespace: 'openshift-monitoring' + severity: 'warning' + firing: true diff --git a/web/cypress/fixtures/incidents/scenarios/stress-test-100-alerts.yaml b/web/cypress/fixtures/incidents/scenarios/stress-test-100-alerts.yaml new file mode 100644 index 000000000..223112370 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/stress-test-100-alerts.yaml @@ -0,0 +1,414 @@ +name: '15 - UI Stress Test - 100 Alerts' +description: Stress test scenario with single incident containing 100 alerts +incidents: + - id: cluster-wide-failure-100-alerts + component: monitoring + layer: core + timeline: + start: 1h + severityChanges: + - time: 1h + severity: warning + - time: 30m + severity: critical + alerts: + - name: NetworkPolicyViolation001 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation002 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation003 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation004 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation005 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation006 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation007 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation008 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation009 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation010 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation011 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation012 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation013 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation014 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation015 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation016 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation017 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation018 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation019 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation020 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation021 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation022 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation023 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation024 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation025 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation026 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation027 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation028 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation029 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation030 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation031 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation032 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation033 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation034 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation035 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation036 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation037 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation038 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation039 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation040 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation041 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation042 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation043 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation044 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation045 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation046 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation047 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation048 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation049 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation050 + namespace: openshift-network + severity: critical + firing: true + - name: SDNControllerDown051 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown052 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown053 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown054 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown055 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown056 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown057 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown058 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown059 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown060 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown061 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown062 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown063 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown064 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown065 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown066 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown067 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown068 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown069 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown070 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown071 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown072 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown073 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown074 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown075 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown076 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown077 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown078 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown079 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown080 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown081 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown082 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown083 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown084 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown085 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown086 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown087 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown088 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown089 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown090 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown091 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown092 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown093 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown094 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown095 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown096 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown097 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown098 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown099 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown100 + namespace: openshift-sdn + severity: critical + firing: true diff --git a/web/cypress/fixtures/incidents/scenarios/stress-test-200-alerts.yaml b/web/cypress/fixtures/incidents/scenarios/stress-test-200-alerts.yaml new file mode 100644 index 000000000..26989dd85 --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/stress-test-200-alerts.yaml @@ -0,0 +1,814 @@ +name: '16 - UI Stress Test - 200 Alerts' +description: Stress test scenario with single incident containing 200 alerts +incidents: + - id: cluster-wide-failure-200-alerts + component: monitoring + layer: core + timeline: + start: 1h + severityChanges: + - time: 1h + severity: warning + - time: 30m + severity: critical + alerts: + - name: NetworkPolicyViolation001 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation002 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation003 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation004 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation005 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation006 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation007 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation008 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation009 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation010 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation011 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation012 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation013 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation014 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation015 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation016 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation017 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation018 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation019 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation020 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation021 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation022 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation023 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation024 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation025 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation026 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation027 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation028 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation029 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation030 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation031 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation032 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation033 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation034 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation035 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation036 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation037 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation038 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation039 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation040 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation041 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation042 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation043 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation044 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation045 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation046 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation047 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation048 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation049 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation050 + namespace: openshift-network + severity: critical + firing: true + - name: SDNControllerDown051 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown052 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown053 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown054 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown055 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown056 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown057 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown058 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown059 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown060 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown061 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown062 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown063 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown064 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown065 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown066 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown067 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown068 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown069 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown070 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown071 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown072 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown073 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown074 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown075 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown076 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown077 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown078 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown079 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown080 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown081 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown082 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown083 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown084 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown085 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown086 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown087 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown088 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown089 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown090 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown091 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown092 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown093 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown094 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown095 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown096 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown097 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown098 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown099 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown100 + namespace: openshift-sdn + severity: critical + firing: true + - name: OVNKubeControllerDown101 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown102 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown103 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown104 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown105 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown106 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown107 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown108 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown109 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown110 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown111 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown112 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown113 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown114 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown115 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown116 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown117 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown118 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown119 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown120 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown121 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown122 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown123 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown124 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown125 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown126 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown127 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown128 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown129 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown130 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown131 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown132 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown133 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown134 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown135 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown136 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown137 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown138 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown139 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown140 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown141 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown142 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown143 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown144 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown145 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown146 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown147 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown148 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown149 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown150 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: NodeNetworkUnavailable151 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable152 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable153 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable154 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable155 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable156 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable157 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable158 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable159 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable160 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable161 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable162 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable163 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable164 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable165 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable166 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable167 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable168 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable169 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable170 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable171 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable172 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable173 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable174 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable175 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable176 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable177 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable178 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable179 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable180 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable181 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable182 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable183 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable184 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable185 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable186 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable187 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable188 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable189 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable190 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable191 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable192 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable193 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable194 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable195 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable196 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable197 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable198 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable199 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable200 + namespace: openshift-network + severity: warning + firing: true diff --git a/web/cypress/fixtures/incidents/scenarios/stress-test-500-alerts.yaml b/web/cypress/fixtures/incidents/scenarios/stress-test-500-alerts.yaml new file mode 100644 index 000000000..6895b993f --- /dev/null +++ b/web/cypress/fixtures/incidents/scenarios/stress-test-500-alerts.yaml @@ -0,0 +1,2014 @@ +name: UI Stress Test - 500 Alerts +description: Stress test scenario with single incident containing 500 alerts +incidents: + - id: cluster-wide-failure-500-alerts + component: monitoring + layer: core + timeline: + start: 1h + severityChanges: + - time: 1h + severity: warning + - time: 30m + severity: critical + alerts: + - name: NetworkPolicyViolation001 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation002 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation003 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation004 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation005 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation006 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation007 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation008 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation009 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation010 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation011 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation012 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation013 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation014 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation015 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation016 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation017 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation018 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation019 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation020 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation021 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation022 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation023 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation024 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation025 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation026 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation027 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation028 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation029 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation030 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation031 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation032 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation033 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation034 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation035 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation036 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation037 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation038 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation039 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation040 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation041 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation042 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation043 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation044 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation045 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation046 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation047 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation048 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation049 + namespace: openshift-network + severity: critical + firing: true + - name: NetworkPolicyViolation050 + namespace: openshift-network + severity: critical + firing: true + - name: SDNControllerDown051 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown052 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown053 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown054 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown055 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown056 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown057 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown058 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown059 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown060 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown061 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown062 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown063 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown064 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown065 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown066 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown067 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown068 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown069 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown070 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown071 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown072 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown073 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown074 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown075 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown076 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown077 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown078 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown079 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown080 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown081 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown082 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown083 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown084 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown085 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown086 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown087 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown088 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown089 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown090 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown091 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown092 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown093 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown094 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown095 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown096 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown097 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown098 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown099 + namespace: openshift-sdn + severity: critical + firing: true + - name: SDNControllerDown100 + namespace: openshift-sdn + severity: critical + firing: true + - name: OVNKubeControllerDown101 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown102 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown103 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown104 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown105 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown106 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown107 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown108 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown109 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown110 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown111 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown112 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown113 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown114 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown115 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown116 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown117 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown118 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown119 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown120 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown121 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown122 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown123 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown124 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown125 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown126 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown127 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown128 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown129 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown130 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown131 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown132 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown133 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown134 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown135 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown136 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown137 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown138 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown139 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown140 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown141 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown142 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown143 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown144 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown145 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown146 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown147 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown148 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown149 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: OVNKubeControllerDown150 + namespace: openshift-ovn-kubernetes + severity: critical + firing: true + - name: NodeNetworkUnavailable151 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable152 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable153 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable154 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable155 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable156 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable157 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable158 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable159 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable160 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable161 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable162 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable163 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable164 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable165 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable166 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable167 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable168 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable169 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable170 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable171 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable172 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable173 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable174 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable175 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable176 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable177 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable178 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable179 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable180 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable181 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable182 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable183 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable184 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable185 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable186 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable187 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable188 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable189 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable190 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable191 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable192 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable193 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable194 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable195 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable196 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable197 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable198 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable199 + namespace: openshift-network + severity: warning + firing: true + - name: NodeNetworkUnavailable200 + namespace: openshift-network + severity: warning + firing: true + - name: IngressControllerDegraded201 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded202 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded203 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded204 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded205 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded206 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded207 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded208 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded209 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded210 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded211 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded212 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded213 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded214 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded215 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded216 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded217 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded218 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded219 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded220 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded221 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded222 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded223 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded224 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded225 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded226 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded227 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded228 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded229 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded230 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded231 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded232 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded233 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded234 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded235 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded236 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded237 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded238 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded239 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded240 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded241 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded242 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded243 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded244 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded245 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded246 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded247 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded248 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded249 + namespace: openshift-ingress + severity: warning + firing: true + - name: IngressControllerDegraded250 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency251 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency252 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency253 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency254 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency255 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency256 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency257 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency258 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency259 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency260 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency261 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency262 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency263 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency264 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency265 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency266 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency267 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency268 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency269 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency270 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency271 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency272 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency273 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency274 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency275 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency276 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency277 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency278 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency279 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency280 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency281 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency282 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency283 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency284 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency285 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency286 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency287 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency288 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency289 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency290 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency291 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency292 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency293 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency294 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency295 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency296 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency297 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency298 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency299 + namespace: openshift-ingress + severity: warning + firing: true + - name: RouterHighLatency300 + namespace: openshift-ingress + severity: warning + firing: true + - name: DNSOperatorDegraded301 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded302 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded303 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded304 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded305 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded306 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded307 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded308 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded309 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded310 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded311 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded312 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded313 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded314 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded315 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded316 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded317 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded318 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded319 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded320 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded321 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded322 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded323 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded324 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded325 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded326 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded327 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded328 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded329 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded330 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded331 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded332 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded333 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded334 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded335 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded336 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded337 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded338 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded339 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded340 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded341 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded342 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded343 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded344 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded345 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded346 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded347 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded348 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded349 + namespace: openshift-dns + severity: critical + firing: true + - name: DNSOperatorDegraded350 + namespace: openshift-dns + severity: critical + firing: true + - name: CoreDNSLatencyHigh351 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh352 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh353 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh354 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh355 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh356 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh357 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh358 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh359 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh360 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh361 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh362 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh363 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh364 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh365 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh366 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh367 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh368 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh369 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh370 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh371 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh372 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh373 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh374 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh375 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh376 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh377 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh378 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh379 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh380 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh381 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh382 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh383 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh384 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh385 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh386 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh387 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh388 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh389 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh390 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh391 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh392 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh393 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh394 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh395 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh396 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh397 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh398 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh399 + namespace: openshift-dns + severity: warning + firing: true + - name: CoreDNSLatencyHigh400 + namespace: openshift-dns + severity: warning + firing: true + - name: KubeNodeNotReady401 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady402 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady403 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady404 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady405 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady406 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady407 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady408 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady409 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady410 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady411 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady412 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady413 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady414 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady415 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady416 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady417 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady418 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady419 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady420 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady421 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady422 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady423 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady424 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady425 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady426 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady427 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady428 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady429 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady430 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady431 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady432 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady433 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady434 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady435 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady436 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady437 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady438 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady439 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady440 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady441 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady442 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady443 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady444 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady445 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady446 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady447 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady448 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady449 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubeNodeNotReady450 + namespace: openshift-monitoring + severity: critical + firing: true + - name: KubePodNotReady451 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady452 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady453 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady454 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady455 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady456 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady457 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady458 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady459 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady460 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady461 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady462 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady463 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady464 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady465 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady466 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady467 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady468 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady469 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady470 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady471 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady472 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady473 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady474 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady475 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady476 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady477 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady478 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady479 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady480 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady481 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady482 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady483 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady484 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady485 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady486 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady487 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady488 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady489 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady490 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady491 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady492 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady493 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady494 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady495 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady496 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady497 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady498 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady499 + namespace: openshift-monitoring + severity: warning + firing: true + - name: KubePodNotReady500 + namespace: openshift-monitoring + severity: warning + firing: true diff --git a/web/cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha1.yaml b/web/cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha1.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha1.yaml rename to web/cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha1.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha2.yaml b/web/cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha2.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha2.yaml rename to web/cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha2.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/import/acm-vm-status.json b/web/cypress/fixtures/perses/dashboards/import/acm-vm-status.json similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/acm-vm-status.json rename to web/cypress/fixtures/perses/dashboards/import/acm-vm-status.json diff --git a/web/cypress/fixtures/coo/coo140_perses/import/grafana_to_check_errors.json b/web/cypress/fixtures/perses/dashboards/import/grafana_to_check_errors.json similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/grafana_to_check_errors.json rename to web/cypress/fixtures/perses/dashboards/import/grafana_to_check_errors.json diff --git a/web/cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.json b/web/cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.json similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.json rename to web/cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.json diff --git a/web/cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.yaml b/web/cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.yaml rename to web/cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json b/web/cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json rename to web/cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json diff --git a/web/cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml b/web/cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml rename to web/cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/dashboards/openshift-cluster-sample-dashboard.yaml b/web/cypress/fixtures/perses/dashboards/openshift-cluster-sample-dashboard.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/dashboards/openshift-cluster-sample-dashboard.yaml rename to web/cypress/fixtures/perses/dashboards/openshift-cluster-sample-dashboard.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/dashboards/perses-dashboard-sample.yaml b/web/cypress/fixtures/perses/dashboards/perses-dashboard-sample.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/dashboards/perses-dashboard-sample.yaml rename to web/cypress/fixtures/perses/dashboards/perses-dashboard-sample.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/dashboards/prometheus-overview-variables.yaml b/web/cypress/fixtures/perses/dashboards/prometheus-overview-variables.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/dashboards/prometheus-overview-variables.yaml rename to web/cypress/fixtures/perses/dashboards/prometheus-overview-variables.yaml diff --git a/web/cypress/fixtures/coo/coo140_perses/dashboards/thanos-compact-overview-1var.yaml b/web/cypress/fixtures/perses/dashboards/thanos-compact-overview.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/dashboards/thanos-compact-overview-1var.yaml rename to web/cypress/fixtures/perses/dashboards/thanos-compact-overview.yaml diff --git a/web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-querier-datasource.yaml b/web/cypress/fixtures/perses/datasources/global-loki-datasource.yaml similarity index 66% rename from web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-querier-datasource.yaml rename to web/cypress/fixtures/perses/datasources/global-loki-datasource.yaml index 45602d2b1..d8b87c9b8 100644 --- a/web/cypress/fixtures/coo/coo121_perses/dashboards/thanos-querier-datasource.yaml +++ b/web/cypress/fixtures/perses/datasources/global-loki-datasource.yaml @@ -1,15 +1,14 @@ -apiVersion: perses.dev/v1alpha1 -kind: PersesDatasource +apiVersion: perses.dev/v1alpha2 +kind: PersesGlobalDatasource metadata: name: thanos-querier-datasource - namespace: perses-dev spec: config: display: - name: "Thanos Querier Datasource" + name: 'Thanos Querier Datasource' default: true plugin: - kind: "PrometheusDatasource" + kind: 'PrometheusDatasource' spec: proxy: kind: HTTPProxy @@ -21,4 +20,4 @@ spec: enable: true caCert: type: file - certPath: /ca/service-ca.crt \ No newline at end of file + certPath: /ca/service-ca.crt diff --git a/web/cypress/fixtures/perses/datasources/global-tempo-datasource.yaml b/web/cypress/fixtures/perses/datasources/global-tempo-datasource.yaml new file mode 100644 index 000000000..2c6a5759d --- /dev/null +++ b/web/cypress/fixtures/perses/datasources/global-tempo-datasource.yaml @@ -0,0 +1,25 @@ +apiVersion: perses.dev/v1alpha2 +kind: PersesGlobalDatasource +metadata: + name: tempo-platform +spec: + config: + display: + name: 'Tempo Datasource' + default: true + plugin: + kind: 'TempoDatasource' + spec: + proxy: + kind: HTTPProxy + spec: + url: https://tempo-platform-gateway.openshift-tracing.svc.cluster.local:8080/api/traces/v1/platform/tempo + headers: + X-Scope-OrgID: platform + secret: tempo-platform-secret + client: + tls: + enable: true + caCert: + type: file + certPath: /ca/service-ca.crt diff --git a/web/cypress/fixtures/perses/datasources/global-thanos-querier-datasource.yaml b/web/cypress/fixtures/perses/datasources/global-thanos-querier-datasource.yaml new file mode 100644 index 000000000..d8b87c9b8 --- /dev/null +++ b/web/cypress/fixtures/perses/datasources/global-thanos-querier-datasource.yaml @@ -0,0 +1,23 @@ +apiVersion: perses.dev/v1alpha2 +kind: PersesGlobalDatasource +metadata: + name: thanos-querier-datasource +spec: + config: + display: + name: 'Thanos Querier Datasource' + default: true + plugin: + kind: 'PrometheusDatasource' + spec: + proxy: + kind: HTTPProxy + spec: + url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091 + secret: thanos-querier-datasource-secret + client: + tls: + enable: true + caCert: + type: file + certPath: /ca/service-ca.crt diff --git a/web/cypress/fixtures/coo/coo140_perses/dashboards/thanos-querier-datasource.yaml b/web/cypress/fixtures/perses/datasources/thanos-querier-datasource.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/dashboards/thanos-querier-datasource.yaml rename to web/cypress/fixtures/perses/datasources/thanos-querier-datasource.yaml diff --git a/web/cypress/fixtures/perses/perses-global-datasources.yaml b/web/cypress/fixtures/perses/perses-global-datasources.yaml deleted file mode 100644 index d1de44287..000000000 --- a/web/cypress/fixtures/perses/perses-global-datasources.yaml +++ /dev/null @@ -1,79 +0,0 @@ -apiVersion: perses.dev/v1alpha2 -kind: PersesGlobalDatasource -metadata: - name: thanos-querier-datasource -spec: - config: - display: - name: "Thanos Querier Datasource" - default: true - plugin: - kind: "PrometheusDatasource" - spec: - proxy: - kind: HTTPProxy - spec: - url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091 - secret: thanos-querier-datasource-secret - client: - tls: - enable: true - caCert: - type: file - certPath: /ca/service-ca.crt ---- -apiVersion: perses.dev/v1alpha2 -kind: PersesGlobalDatasource -metadata: - name: loki-datasource -spec: - config: - display: - name: "Loki Datasource (Application Logs)" - default: true - plugin: - kind: "LokiDatasource" - spec: - proxy: - kind: HTTPProxy - spec: - # URL structure for LokiStack with openshift-logging tenancy: - # https://{gateway-svc}.{ns}.svc:8080/api/logs/v1/{tenant} - # Perses will append /loki/api/v1/... for queries - url: https://logging-loki-gateway-http.openshift-logging.svc.cluster.local:8080/api/logs/v1/application - headers: - X-Scope-OrgID: application - # IMPORTANT: Must reference secret for TLS config - secret: loki-datasource-secret - client: - tls: - enable: true - caCert: - type: file - certPath: /ca/service-ca.crt ---- -apiVersion: perses.dev/v1alpha2 -kind: PersesGlobalDatasource -metadata: - name: tempo-platform -spec: - config: - display: - name: "Tempo Datasource" - default: true - plugin: - kind: "TempoDatasource" - spec: - proxy: - kind: HTTPProxy - spec: - url: https://tempo-platform-gateway.openshift-tracing.svc.cluster.local:8080/api/traces/v1/platform/tempo - headers: - X-Scope-OrgID: platform - secret: tempo-platform-secret - client: - tls: - enable: true - caCert: - type: file - certPath: /ca/service-ca.crt diff --git a/web/cypress/fixtures/coo/coo140_perses/rbac/rbac_perses_e2e_ci_users.sh b/web/cypress/fixtures/perses/rbac_perses_e2e_ci_users.sh similarity index 100% rename from web/cypress/fixtures/coo/coo140_perses/rbac/rbac_perses_e2e_ci_users.sh rename to web/cypress/fixtures/perses/rbac_perses_e2e_ci_users.sh diff --git a/web/cypress/fixtures/monitoring/constants.ts b/web/cypress/fixtures/shared/cluster-monitoring-operator/constants.ts similarity index 100% rename from web/cypress/fixtures/monitoring/constants.ts rename to web/cypress/fixtures/shared/cluster-monitoring-operator/constants.ts diff --git a/web/cypress/fixtures/cmo/disable-monitoring.yaml b/web/cypress/fixtures/shared/cluster-monitoring-operator/disable-monitoring.yaml similarity index 100% rename from web/cypress/fixtures/cmo/disable-monitoring.yaml rename to web/cypress/fixtures/shared/cluster-monitoring-operator/disable-monitoring.yaml diff --git a/web/cypress/fixtures/cmo/reenable-monitoring.sh b/web/cypress/fixtures/shared/cluster-monitoring-operator/reenable-monitoring.sh similarity index 100% rename from web/cypress/fixtures/cmo/reenable-monitoring.sh rename to web/cypress/fixtures/shared/cluster-monitoring-operator/reenable-monitoring.sh diff --git a/web/cypress/fixtures/cmo/update-monitoring-plugin-image.sh b/web/cypress/fixtures/shared/cluster-monitoring-operator/update-monitoring-plugin-image.sh similarity index 84% rename from web/cypress/fixtures/cmo/update-monitoring-plugin-image.sh rename to web/cypress/fixtures/shared/cluster-monitoring-operator/update-monitoring-plugin-image.sh index fd0a97075..2333c6a8c 100755 --- a/web/cypress/fixtures/cmo/update-monitoring-plugin-image.sh +++ b/web/cypress/fixtures/shared/cluster-monitoring-operator/update-monitoring-plugin-image.sh @@ -5,12 +5,12 @@ echo "--------------------------------" CMO_FILE="/tmp/cmo_monitoring_csv_$(date +%s%N).yaml" -oc get deployment cluster-monitoring-operator -n openshift-monitoring -o yaml > "${CMO_FILE}" --kubeconfig "${KUBECONFIG}" +oc get deployment cluster-monitoring-operator -n openshift-monitoring -o yaml --kubeconfig "${KUBECONFIG}" >"${CMO_FILE}" sed -i "s#value: .*monitoring-plugin.*#value: ${MP_IMAGE}#g" "${CMO_FILE}" sed -i "s#^\([[:space:]]*- -images=monitoring-plugin=\).*#\1${MP_IMAGE}#g" "${CMO_FILE}" -oc patch clusterversion version --type json -p "$(cat ./cypress/fixtures/cmo/disable-monitoring.yaml)" +oc patch clusterversion version --type json -p "$(cat ./cypress/fixtures/shared/cluster-monitoring-operator/disable-monitoring.yaml)" oc replace -f "${CMO_FILE}" --kubeconfig "${KUBECONFIG}" @@ -26,4 +26,4 @@ echo "Monitoring plugin" echo "--------------------------------" csv=$(oc get deployment monitoring-plugin -n openshift-monitoring -o yaml) echo "${csv}" -echo "--------------------------------" \ No newline at end of file +echo "--------------------------------" diff --git a/web/cypress/fixtures/coo/coo_stage.sh b/web/cypress/fixtures/shared/cluster-observability-operator/coo_stage.sh similarity index 100% rename from web/cypress/fixtures/coo/coo_stage.sh rename to web/cypress/fixtures/shared/cluster-observability-operator/coo_stage.sh diff --git a/web/cypress/fixtures/coo/force_delete_ns.sh b/web/cypress/fixtures/shared/cluster-observability-operator/force_delete_ns.sh similarity index 100% rename from web/cypress/fixtures/coo/force_delete_ns.sh rename to web/cypress/fixtures/shared/cluster-observability-operator/force_delete_ns.sh diff --git a/web/cypress/fixtures/coo/coo-imagecontentsourcepolicy.yaml b/web/cypress/fixtures/shared/cluster-observability-operator/imagecontentsourcepolicy.yaml similarity index 100% rename from web/cypress/fixtures/coo/coo-imagecontentsourcepolicy.yaml rename to web/cypress/fixtures/shared/cluster-observability-operator/imagecontentsourcepolicy.yaml diff --git a/web/cypress/fixtures/coo/monitoring-ui-plugin.yaml b/web/cypress/fixtures/shared/cluster-observability-operator/monitoring-ui-plugin.yaml similarity index 100% rename from web/cypress/fixtures/coo/monitoring-ui-plugin.yaml rename to web/cypress/fixtures/shared/cluster-observability-operator/monitoring-ui-plugin.yaml diff --git a/web/cypress/fixtures/coo/troubleshooting-panel-ui-plugin.yaml b/web/cypress/fixtures/shared/cluster-observability-operator/troubleshooting-panel-ui-plugin.yaml similarity index 100% rename from web/cypress/fixtures/coo/troubleshooting-panel-ui-plugin.yaml rename to web/cypress/fixtures/shared/cluster-observability-operator/troubleshooting-panel-ui-plugin.yaml diff --git a/web/cypress/fixtures/coo/update-cha-image.sh b/web/cypress/fixtures/shared/cluster-observability-operator/update-cha-image.sh similarity index 100% rename from web/cypress/fixtures/coo/update-cha-image.sh rename to web/cypress/fixtures/shared/cluster-observability-operator/update-cha-image.sh diff --git a/web/cypress/fixtures/coo/update-mcp-image.sh b/web/cypress/fixtures/shared/cluster-observability-operator/update-mcp-image.sh similarity index 100% rename from web/cypress/fixtures/coo/update-mcp-image.sh rename to web/cypress/fixtures/shared/cluster-observability-operator/update-mcp-image.sh diff --git a/web/cypress/fixtures/coo/acm-alerrule-test.yaml b/web/cypress/fixtures/shared/fleet-management/fleet-management-alertrule-test.yaml similarity index 100% rename from web/cypress/fixtures/coo/acm-alerrule-test.yaml rename to web/cypress/fixtures/shared/fleet-management/fleet-management-alertrule-test.yaml diff --git a/web/cypress/fixtures/coo/acm-install.sh b/web/cypress/fixtures/shared/fleet-management/fleet-management-install.sh similarity index 100% rename from web/cypress/fixtures/coo/acm-install.sh rename to web/cypress/fixtures/shared/fleet-management/fleet-management-install.sh diff --git a/web/cypress/fixtures/coo/acm-uiplugin.yaml b/web/cypress/fixtures/shared/fleet-management/fleet-management-uiplugin.yaml similarity index 100% rename from web/cypress/fixtures/coo/acm-uiplugin.yaml rename to web/cypress/fixtures/shared/fleet-management/fleet-management-uiplugin.yaml diff --git a/web/cypress/fixtures/coo/logging/base.yaml b/web/cypress/fixtures/shared/logging/base.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/base.yaml rename to web/cypress/fixtures/shared/logging/base.yaml diff --git a/web/cypress/fixtures/coo/logging/logging-ui-plugin.yaml b/web/cypress/fixtures/shared/logging/logging-ui-plugin.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/logging-ui-plugin.yaml rename to web/cypress/fixtures/shared/logging/logging-ui-plugin.yaml diff --git a/web/cypress/fixtures/shared/logging/make-clean-resources.sh b/web/cypress/fixtures/shared/logging/make-clean-resources.sh new file mode 100755 index 000000000..72e9b64ea --- /dev/null +++ b/web/cypress/fixtures/shared/logging/make-clean-resources.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -euo pipefail +cd ./cypress/fixtures/shared/logging/openshift || exit 1 + +make clean-resources diff --git a/web/cypress/fixtures/shared/logging/make-resources.sh b/web/cypress/fixtures/shared/logging/make-resources.sh new file mode 100755 index 000000000..93134eb09 --- /dev/null +++ b/web/cypress/fixtures/shared/logging/make-resources.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -euo pipefail +cd ./cypress/fixtures/shared/logging/openshift || exit 1 + +make resources diff --git a/web/cypress/fixtures/coo/logging/openshift/Makefile b/web/cypress/fixtures/shared/logging/openshift/Makefile similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/Makefile rename to web/cypress/fixtures/shared/logging/openshift/Makefile diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/chat.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/chat.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/chat.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/chat.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/kustomization.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/kustomization.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/kustomization.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/kustomization.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/logging/clusterlogforwarder.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/logging/clusterlogforwarder.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/logging/clusterlogforwarder.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/logging/clusterlogforwarder.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/logging/kustomization.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/logging/kustomization.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/logging/kustomization.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/logging/kustomization.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/logging/lokistack.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/logging/lokistack.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/logging/lokistack.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/logging/lokistack.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/minio.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/minio.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/minio.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/minio.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/flow_collector.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/flow_collector.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/flow_collector.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/flow_collector.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/kustomization.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/kustomization.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/kustomization.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/kustomization.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/lokistack.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/lokistack.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/lokistack.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/lokistack.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/namespace.yaml b/web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/namespace.yaml similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/config/resources/netobserv/namespace.yaml rename to web/cypress/fixtures/shared/logging/openshift/config/resources/netobserv/namespace.yaml diff --git a/web/cypress/fixtures/coo/logging/openshift/wait.sh b/web/cypress/fixtures/shared/logging/openshift/wait.sh similarity index 100% rename from web/cypress/fixtures/coo/logging/openshift/wait.sh rename to web/cypress/fixtures/shared/logging/openshift/wait.sh diff --git a/web/cypress/fixtures/coo/traces/base.yaml b/web/cypress/fixtures/shared/tracing/base.yaml similarity index 100% rename from web/cypress/fixtures/coo/traces/base.yaml rename to web/cypress/fixtures/shared/tracing/base.yaml diff --git a/web/cypress/fixtures/coo/traces/tracing-apps.yaml b/web/cypress/fixtures/shared/tracing/tracing-apps.yaml similarity index 100% rename from web/cypress/fixtures/coo/traces/tracing-apps.yaml rename to web/cypress/fixtures/shared/tracing/tracing-apps.yaml diff --git a/web/cypress/fixtures/coo/traces/tracing-ui-plugin.yaml b/web/cypress/fixtures/shared/tracing/tracing-ui-plugin.yaml similarity index 100% rename from web/cypress/fixtures/coo/traces/tracing-ui-plugin.yaml rename to web/cypress/fixtures/shared/tracing/tracing-ui-plugin.yaml diff --git a/web/cypress/fixtures/virtualization/hyperconverged.yaml b/web/cypress/fixtures/shared/virtualization/hyperconverged.yaml similarity index 93% rename from web/cypress/fixtures/virtualization/hyperconverged.yaml rename to web/cypress/fixtures/shared/virtualization/hyperconverged.yaml index eeaec092a..d9917f6cb 100644 --- a/web/cypress/fixtures/virtualization/hyperconverged.yaml +++ b/web/cypress/fixtures/shared/virtualization/hyperconverged.yaml @@ -3,4 +3,4 @@ kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv -spec: {} \ No newline at end of file +spec: {} diff --git a/web/cypress/fixtures/virtualization/virtualization_stage.sh b/web/cypress/fixtures/shared/virtualization/virtualization_stage.sh similarity index 100% rename from web/cypress/fixtures/virtualization/virtualization_stage.sh rename to web/cypress/fixtures/shared/virtualization/virtualization_stage.sh diff --git a/web/cypress/support/commands/coo-install-commands.ts b/web/cypress/support/commands/coo-install-commands.ts index 1785fa6da..a3cdd8e78 100644 --- a/web/cypress/support/commands/coo-install-commands.ts +++ b/web/cypress/support/commands/coo-install-commands.ts @@ -34,9 +34,8 @@ export const cooInstallUtils = { ); cy.log('Install Cluster Observability Operator'); cy.exec( - `oc --kubeconfig "${Cypress.env( - 'KUBECONFIG_PATH', - )}" apply -f ./cypress/fixtures/coo/coo-imagecontentsourcepolicy.yaml`, + `oc --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}" apply -f ` + + `./cypress/fixtures/shared/cluster-observability-operator/imagecontentsourcepolicy.yaml`, ); cy.exec( `oc create namespace ${CLUSTER_OBSERVABILITY_OPERATOR.namespace} --kubeconfig ` + @@ -65,9 +64,8 @@ export const cooInstallUtils = { ); cy.log('Install Cluster Observability Operator'); cy.exec( - `oc --kubeconfig "${Cypress.env( - 'KUBECONFIG_PATH', - )}" apply -f ./cypress/fixtures/coo/coo-imagecontentsourcepolicy.yaml`, + `oc --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}" apply -f ` + + `./cypress/fixtures/shared/cluster-observability-operator/imagecontentsourcepolicy.yaml`, ); cy.log(`Creating namespace ${CLUSTER_OBSERVABILITY_OPERATOR.namespace}`); cy.exec( @@ -99,11 +97,10 @@ export const cooInstallUtils = { cy.log('FBC_COO_IMAGE is set. COO operator will be installed from FBC image.'); cy.log('Install Cluster Observability Operator'); cy.exec( - `oc --kubeconfig "${Cypress.env( - 'KUBECONFIG_PATH', - )}" apply -f ./cypress/fixtures/coo/coo-imagecontentsourcepolicy.yaml`, + `oc --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}" apply -f ` + + `./cypress/fixtures/shared/cluster-observability-operator/imagecontentsourcepolicy.yaml`, ); - cy.exec('./cypress/fixtures/coo/coo_stage.sh', { + cy.exec('./cypress/fixtures/stage/cluster-observability-operator/coo_stage.sh', { env: { FBC_STAGE_COO_IMAGE: Cypress.env('FBC_STAGE_COO_IMAGE'), KUBECONFIG: Cypress.env('KUBECONFIG_PATH') as string, @@ -372,7 +369,7 @@ export const cooInstallUtils = { ); return cy .exec( - `./cypress/fixtures/coo/force_delete_ns.sh ` + + `./cypress/fixtures/shared/cluster-observability-operator/force_delete_ns.sh ` + `${CLUSTER_OBSERVABILITY_OPERATOR.namespace} "${Cypress.env('KUBECONFIG_PATH')}"`, { failOnNonZeroExit: false, timeout: installTimeoutMilliseconds }, ) @@ -407,7 +404,7 @@ export const cooInstallUtils = { }s. Elapsed: ${Math.round(elapsed / 1000)}s`, ); cy.exec( - `./cypress/fixtures/coo/force_delete_ns.sh ` + + `./cypress/fixtures/shared/cluster-observability-operator/force_delete_ns.sh ` + `${CLUSTER_OBSERVABILITY_OPERATOR.namespace} "${Cypress.env('KUBECONFIG_PATH')}"`, { failOnNonZeroExit: false, timeout: installTimeoutMilliseconds }, ).then((forceResult) => { diff --git a/web/cypress/support/commands/dashboards-commands.ts b/web/cypress/support/commands/dashboards-commands.ts index a32018c1b..3b93d38c6 100644 --- a/web/cypress/support/commands/dashboards-commands.ts +++ b/web/cypress/support/commands/dashboards-commands.ts @@ -1,6 +1,7 @@ import 'cypress-wait-until'; import { DataTestIDs, LegacyTestIDs } from '@/shared/constants/data-test'; import { waitForPodsReady, waitForResourceCondition } from './wait-utils'; +import { PERSES_E2E_DASHBOARDS_DIR, PERSES_E2E_DATASOURCES_DIR } from '../perses/constants'; export {}; @@ -11,9 +12,9 @@ export const dashboardsUtils = { setupMonitoringUIPlugin(CLUSTER_OBSERVABILITY_OPERATOR: { namespace: string }): void { cy.log('Create Monitoring UI Plugin instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/monitoring-ui-plugin.yaml --kubeconfig ${Cypress.env( - 'KUBECONFIG_PATH', - )}`, + `oc apply -f ` + + `./cypress/fixtures/shared/cluster-observability-operator/monitoring-ui-plugin.yaml ` + + `--kubeconfig ${Cypress.env('KUBECONFIG_PATH')}`, ); waitForPodsReady( 'app.kubernetes.io/instance=monitoring', @@ -36,35 +37,35 @@ export const dashboardsUtils = { cy.log('Create openshift-cluster-sample-dashboard instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc apply -f ${PERSES_E2E_DASHBOARDS_DIR}` + `openshift-cluster-sample-dashboard.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Create perses-dashboard-sample instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc apply -f ${PERSES_E2E_DASHBOARDS_DIR}` + `perses-dashboard-sample.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Create prometheus-overview-variables instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc apply -f ${PERSES_E2E_DASHBOARDS_DIR}` + `prometheus-overview-variables.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); - cy.log('Create thanos-compact-overview-1var instance.'); + cy.log('Create thanos-compact-overview instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + - `thanos-compact-overview-1var.yaml ` + + `oc apply -f ${PERSES_E2E_DASHBOARDS_DIR}` + + `thanos-compact-overview.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Create Thanos Querier instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc apply -f ${PERSES_E2E_DATASOURCES_DIR}` + `thanos-querier-datasource.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); @@ -100,10 +101,9 @@ export const dashboardsUtils = { setupTroubleshootingPanel(CLUSTER_OBSERVABILITY_OPERATOR: { namespace: string }): void { cy.log('Create troubleshooting panel instance.'); - cy.exec( - `oc apply -f ./cypress/fixtures/coo/troubleshooting-panel-ui-plugin.yaml ` + - `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, - ); + const tp = + './cypress/fixtures/shared/cluster-observability-operator/troubleshooting-panel-ui-plugin.yaml'; + cy.exec(`oc apply -f ${tp} --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`); cy.log('Troubleshooting panel instance created. Waiting for pods to be ready.'); waitForPodsReady( @@ -179,35 +179,35 @@ export const dashboardsUtils = { if (Cypress.env('COO_UI_INSTALL')) { cy.log('Remove openshift-cluster-sample-dashboard instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `openshift-cluster-sample-dashboard.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove perses-dashboard-sample instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `perses-dashboard-sample.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove prometheus-overview-variables instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `prometheus-overview-variables.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); - cy.log('Remove thanos-compact-overview-1var instance.'); + cy.log('Remove thanos-compact-overview instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + - `thanos-compact-overview-1var.yaml ` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + + `thanos-compact-overview.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove Thanos Querier instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DATASOURCES_DIR}` + `thanos-querier-datasource.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); @@ -216,35 +216,35 @@ export const dashboardsUtils = { cy.log('Remove openshift-cluster-sample-dashboard instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `openshift-cluster-sample-dashboard.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove perses-dashboard-sample instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `perses-dashboard-sample.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove prometheus-overview-variables instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + `prometheus-overview-variables.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); - cy.log('Remove thanos-compact-overview-1var instance.'); + cy.log('Remove thanos-compact-overview instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + - `thanos-compact-overview-1var.yaml ` + + `oc delete -f ${PERSES_E2E_DASHBOARDS_DIR}` + + `thanos-compact-overview.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.log('Remove Thanos Querier instance.'); cy.executeAndDelete( - `oc delete -f ./cypress/fixtures/coo/coo140_perses/dashboards/` + + `oc delete -f ${PERSES_E2E_DATASOURCES_DIR}` + `thanos-querier-datasource.yaml ` + `--ignore-not-found --kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); diff --git a/web/cypress/support/commands/image-patch-commands.ts b/web/cypress/support/commands/image-patch-commands.ts index 2efee886f..b91ad5680 100644 --- a/web/cypress/support/commands/image-patch-commands.ts +++ b/web/cypress/support/commands/image-patch-commands.ts @@ -8,15 +8,18 @@ export const imagePatchUtils = { setupMonitoringPluginImage(CLUSTER_MONITORING_OPERATOR: { namespace: string }): void { cy.log('Set Monitoring Plugin image in operator CSV'); if (Cypress.env('MP_IMAGE')) { - cy.exec('./cypress/fixtures/cmo/update-monitoring-plugin-image.sh', { - env: { - MP_IMAGE: Cypress.env('MP_IMAGE'), - KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), - MP_NAMESPACE: `${CLUSTER_MONITORING_OPERATOR.namespace}`, + cy.exec( + './cypress/fixtures/shared/cluster-monitoring-operator/update-monitoring-plugin-image.sh', + { + env: { + MP_IMAGE: Cypress.env('MP_IMAGE'), + KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), + MP_NAMESPACE: `${CLUSTER_MONITORING_OPERATOR.namespace}`, + }, + timeout: readyTimeoutMilliseconds, + failOnNonZeroExit: true, }, - timeout: readyTimeoutMilliseconds, - failOnNonZeroExit: true, - }).then((result) => { + ).then((result) => { expect(result.code).to.eq(0); cy.log(`CMO deployment Scaled Down successfully: ${result.stdout}`); }); @@ -73,7 +76,7 @@ export const imagePatchUtils = { setupMonitoringConsolePlugin(CLUSTER_OBSERVABILITY_OPERATOR: { namespace: string }): void { imagePatchUtils.patchCOOCSVImage(CLUSTER_OBSERVABILITY_OPERATOR, { envVar: 'MCP_CONSOLE_IMAGE', - scriptPath: './cypress/fixtures/coo/update-mcp-image.sh', + scriptPath: './cypress/fixtures/shared/cluster-observability-operator/update-mcp-image.sh', componentName: 'Monitoring Console Plugin', }); }, @@ -81,7 +84,7 @@ export const imagePatchUtils = { setupClusterHealthAnalyzer(CLUSTER_OBSERVABILITY_OPERATOR: { namespace: string }): void { imagePatchUtils.patchCOOCSVImage(CLUSTER_OBSERVABILITY_OPERATOR, { envVar: 'CHA_IMAGE', - scriptPath: './cypress/fixtures/coo/update-cha-image.sh', + scriptPath: './cypress/fixtures/shared/cluster-observability-operator/update-cha-image.sh', componentName: 'cluster-health-analyzer', }); }, @@ -89,7 +92,7 @@ export const imagePatchUtils = { revertMonitoringPluginImage(CLUSTER_MONITORING_OPERATOR: { namespace: string }): void { if (Cypress.env('MP_IMAGE')) { cy.log('MP_IMAGE is set. Lets revert CMO operator CSV'); - cy.exec('./cypress/fixtures/cmo/reenable-monitoring.sh', { + cy.exec('./cypress/fixtures/shared/cluster-monitoring-operator/reenable-monitoring.sh', { env: { MP_IMAGE: Cypress.env('MP_IMAGE'), KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), diff --git a/web/cypress/support/commands/operator-commands.ts b/web/cypress/support/commands/operator-commands.ts index f35d5a4ee..ec9822f41 100644 --- a/web/cypress/support/commands/operator-commands.ts +++ b/web/cypress/support/commands/operator-commands.ts @@ -308,20 +308,19 @@ Cypress.Commands.add( (CLUSTER_OBSERVABILITY_OPERATOR, CLUSTER_MONITORING_OPERATOR) => { cy.beforeBlockCOO(CLUSTER_OBSERVABILITY_OPERATOR, CLUSTER_MONITORING_OPERATOR); cy.log('=== [Setup] Installing ACM test resources ==='); - cy.exec('bash ./cypress/fixtures/coo/acm-install.sh', { + cy.exec('bash ./cypress/fixtures/shared/fleet-management/fleet-management-install.sh', { env: { KUBECONFIG: Cypress.env('KUBECONFIG_PATH') }, failOnNonZeroExit: false, timeout: 1200000, }); cy.exec( - `oc apply -f ./cypress/fixtures/coo/acm-uiplugin.yaml --kubeconfig ${Cypress.env( - 'KUBECONFIG_PATH', - )}`, + `oc apply -f ./cypress/fixtures/shared/fleet-management/fleet-management-uiplugin.yaml` + + ` --kubeconfig ${Cypress.env('KUBECONFIG_PATH')}`, ); cy.exec( - `oc apply -f ./cypress/fixtures/coo/acm-alerrule-test.yaml --kubeconfig ${Cypress.env( - 'KUBECONFIG_PATH', - )}`, + `oc apply ` + + `-f ./cypress/fixtures/shared/fleet-management/fleet-management-alertrule-test.yaml ` + + `--kubeconfig ${Cypress.env('KUBECONFIG_PATH')}`, ); cy.log('ACM environment setup completed'); }, diff --git a/web/cypress/support/commands/perses-commands.ts b/web/cypress/support/commands/perses-commands.ts index ebec10ee8..114cd2ffd 100644 --- a/web/cypress/support/commands/perses-commands.ts +++ b/web/cypress/support/commands/perses-commands.ts @@ -3,31 +3,19 @@ export {}; import { nav } from '../../views/nav'; import { listPersesDashboardsPage } from '../../views/perses-dashboards-list-dashboards'; import { listPersesDashboardsOUIAIDs } from '@/shared/constants/data-test'; +import { + PERSES_E2E_DASHBOARDS_DIR, + PERSES_E2E_DATASOURCES_DIR, + PERSES_TEST_DASHBOARD_NAME_EXACT, + PERSES_TEST_DASHBOARD_NAME_PREFIXES, + SED_OCP_NS_TO_OBS_TEST, + SED_PERSES_DEV_TO_OBS_TEST, +} from '../perses/constants'; // Display name prefixes/exact matches for test-created PersesDashboards to delete before // Perses tests. // Examples: "Test Dashboard0.24...", "Dashboard to test duplication0.33...", // "Testing Dashboard - UP 0.32..." -const PERSES_TEST_DASHBOARD_NAME_PREFIXES = [ - 'Testing Dashboard - UP ', - 'Renamed dashboard ', - 'Duplicate dashboard ', - 'Test Dashboard', - 'Dashboard to test rename', - 'Dashboard to test duplication', - 'DashboardToTestDuplication', - 'Tempo Loki Perses Global Datasources', -]; -const PERSES_TEST_DASHBOARD_NAME_EXACT = [ - 'Testing Perses dashboard - YAML', - 'Testing Perses dashboard - JSON', - 'Service Level dashboards / Virtual Machines by Time in Status', -]; - -const PERSES_E2E_DASHBOARDS_DIR = './cypress/fixtures/coo/coo140_perses/dashboards'; -const SED_OCP_NS_TO_OBS_TEST = - "sed 's/namespace: openshift-cluster-observability-operator/namespace: observ-test/g'"; -const SED_PERSES_DEV_TO_OBS_TEST = "sed 's/namespace: perses-dev/namespace: observ-test/g'"; declare global { // eslint-disable-next-line @typescript-eslint/no-namespace @@ -46,7 +34,7 @@ Cypress.Commands.add('setupPersesRBACandExtraDashboards', () => { `${Cypress.env('LOGIN_USERNAME1')}` !== 'kubeadmin' && Cypress.env('LOGIN_USERNAME2') !== undefined ) { - cy.exec('./cypress/fixtures/coo/coo140_perses/rbac/rbac_perses_e2e_ci_users.sh', { + cy.exec('./cypress/fixtures/perses/rbac_perses_e2e_ci_users.sh', { env: { USER1: `${Cypress.env('LOGIN_USERNAME1')}`, USER2: `${Cypress.env('LOGIN_USERNAME2')}`, @@ -77,15 +65,15 @@ Cypress.Commands.add('setupPersesRBACandExtraDashboards', () => { `prometheus-overview-variables.yaml | oc apply -f - --kubeconfig ${kc}`, ); - cy.log('Create thanos-compact-overview-1var instance.'); + cy.log('Create thanos-compact-overview instance.'); cy.exec( `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DASHBOARDS_DIR}/` + - `thanos-compact-overview-1var.yaml | oc apply -f - --kubeconfig ${kc}`, + `thanos-compact-overview.yaml | oc apply -f - --kubeconfig ${kc}`, ); cy.log('Create Thanos Querier instance.'); cy.exec( - `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DASHBOARDS_DIR}/` + + `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DATASOURCES_DIR}/` + `thanos-querier-datasource.yaml | oc apply -f - --kubeconfig ${kc}`, ); } @@ -115,16 +103,16 @@ Cypress.Commands.add('cleanupExtraDashboards', () => { `--kubeconfig ${kc}`, ); - cy.log('Remove thanos-compact-overview-1var instance.'); + cy.log('Remove thanos-compact-overview instance.'); cy.exec( `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DASHBOARDS_DIR}/` + - `thanos-compact-overview-1var.yaml | oc delete -f - --ignore-not-found ` + + `thanos-compact-overview.yaml | oc delete -f - --ignore-not-found ` + `--kubeconfig ${kc}`, ); cy.log('Remove Thanos Querier instance.'); cy.exec( - `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DASHBOARDS_DIR}/` + + `${SED_PERSES_DEV_TO_OBS_TEST} ${PERSES_E2E_DATASOURCES_DIR}/` + `thanos-querier-datasource.yaml | oc delete -f - --ignore-not-found ` + `--kubeconfig ${kc}`, ); diff --git a/web/cypress/support/commands/traces-logging-commands.ts b/web/cypress/support/commands/traces-logging-commands.ts index 598e22915..16eb49ace 100644 --- a/web/cypress/support/commands/traces-logging-commands.ts +++ b/web/cypress/support/commands/traces-logging-commands.ts @@ -26,7 +26,7 @@ declare global { cleanupTempo(TEMPO: { namespace: string; packageName: string }); cleanupBase(); cleanupTracingApps(); - cleanupTempoLokiThanosPersesGlobalDatasource(); + cleanupGlobalDatasources(); cleanupDistributeTracingUIPlugin(); cleanupLoki(LOKI: { namespace: string; packageName: string }); cleanupLogging(CLO: { namespace: string; packageName: string }); @@ -34,7 +34,7 @@ declare global { cleanupLoggingUIPlugin(); cleanupChainsawNamespaces(); - createTempoLokiThanosPersesGlobalDatasource(); + createGlobalDatasources(); } } } @@ -276,9 +276,8 @@ const tracesUtils = { installDistributeTracingUIPlugin(): void { cy.log('Create Distributed Tracing UI Plugin instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/traces/tracing-ui-plugin.yaml --kubeconfig ${Cypress.env( - 'KUBECONFIG_PATH', - )}`, + `oc apply -f ./cypress/fixtures/shared/tracing/tracing-ui-plugin.yaml ` + + `--kubeconfig ${Cypress.env('KUBECONFIG_PATH')}`, ); cy.exec( // eslint-disable-next-line max-len @@ -331,7 +330,7 @@ const tracesUtils = { return; } const kc = Cypress.env('KUBECONFIG_PATH'); - const savedStatePath = 'cypress/fixtures/coo/traces/.original-monitoring-config.json'; + const savedStatePath = 'cypress/fixtures/shared/tracing/.original-monitoring-config.json'; // Read and store the existing enableUserWorkload value, then patch cy.exec( @@ -380,7 +379,7 @@ const tracesUtils = { }); // Apply the rest of base.yaml (no longer contains cluster-monitoring-config) - cy.exec(`oc apply -f ./cypress/fixtures/coo/traces/base.yaml --kubeconfig ${kc}`, { + cy.exec(`oc apply -f ./cypress/fixtures/shared/tracingaces/base.yaml --kubeconfig ${kc}`, { failOnNonZeroExit: false, }); }, @@ -391,7 +390,7 @@ const tracesUtils = { return; } const kc = Cypress.env('KUBECONFIG_PATH'); - const savedStatePath = 'cypress/fixtures/coo/traces/.original-monitoring-config.json'; + const savedStatePath = 'cypress/fixtures/shared/tracing/.original-monitoring-config.json'; // Restore cluster-monitoring-config if we saved its original state cy.exec(`test -f ${savedStatePath}`, { @@ -426,7 +425,7 @@ const tracesUtils = { }); // Delete the rest of base.yaml resources - cy.exec(`oc delete -f ./cypress/fixtures/coo/traces/base.yaml --kubeconfig ${kc}`, { + cy.exec(`oc delete -f ./cypress/fixtures/shared/tracing/base.yaml --kubeconfig ${kc}`, { failOnNonZeroExit: false, timeout: installTimeoutMilliseconds, }); @@ -439,7 +438,7 @@ const tracesUtils = { return; } cy.exec( - `oc apply -f ./cypress/fixtures/coo/traces/tracing-apps.yaml --kubeconfig ${Cypress.env( + `oc apply -f ./cypress/fixtures/shared/tracing/tracing-apps.yaml --kubeconfig ${Cypress.env( 'KUBECONFIG_PATH', )}`, { failOnNonZeroExit: false }, @@ -452,7 +451,7 @@ const tracesUtils = { return; } cy.exec( - `oc delete -f ./cypress/fixtures/coo/traces/tracing-apps.yaml --kubeconfig ${Cypress.env( + `oc delete -f ./cypress/fixtures/shared/tracing/tracing-apps.yaml --kubeconfig ${Cypress.env( 'KUBECONFIG_PATH', )}`, { failOnNonZeroExit: false }, @@ -651,9 +650,8 @@ const loggingUtils = { installLoggingUIPlugin(): void { cy.log('Install Logging UI Plugin'); cy.exec( - `oc apply -f ./cypress/fixtures/coo/logging/logging-ui-plugin.yaml --kubeconfig ${Cypress.env( - 'KUBECONFIG_PATH', - )}`, + `oc apply -f ./cypress/fixtures/shared/logging/logging-ui-plugin.yaml ` + + `--kubeconfig ${Cypress.env('KUBECONFIG_PATH')}`, ); cy.log('Install Logging UI Plugin completed'); @@ -703,7 +701,7 @@ const loggingUtils = { return; } const kc = Cypress.env('KUBECONFIG_PATH'); - cy.exec(`oc apply -f ./cypress/fixtures/coo/logging/base.yaml --kubeconfig ${kc}`, { + cy.exec(`oc apply -f ./cypress/fixtures/shared/logging/base.yaml --kubeconfig ${kc}`, { failOnNonZeroExit: false, }); cy.exec(`oc project openshift-logging --kubeconfig ${kc}`); @@ -731,7 +729,7 @@ const loggingUtils = { { failOnNonZeroExit: false }, ); - cy.exec(`./cypress/fixtures/coo/logging/make-resources.sh`, { + cy.exec(`./cypress/fixtures/shared/logging/make-resources.sh`, { env: { KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), }, @@ -749,12 +747,12 @@ const loggingUtils = { return; } cy.exec( - `oc delete -f ./cypress/fixtures/coo/logging/base.yaml --kubeconfig ${Cypress.env( + `oc delete -f ./cypress/fixtures/shared/logging/base.yaml --kubeconfig ${Cypress.env( 'KUBECONFIG_PATH', )}`, { failOnNonZeroExit: false }, ); - cy.exec(`./cypress/fixtures/coo/logging/make-clean-resources.sh`, { + cy.exec(`./cypress/fixtures/shared/logging/make-clean-resources.sh`, { env: { KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), }, @@ -766,16 +764,27 @@ const loggingUtils = { }; const persesUtils = { - createTempoLokiThanosPersesGlobalDatasource(): void { + createGlobalDatasources(): void { cy.log('Create Tempo Loki Thanos Perses Global Datasource'); const kc = Cypress.env('KUBECONFIG_PATH'); cy.exec( - `oc apply -f ./cypress/fixtures/perses/perses-global-datasources.yaml --kubeconfig ${kc}`, + `oc apply -f ./cypress/fixtures/perses/datasources/global-loki-datasource.yaml ` + + `--kubeconfig ${kc}`, + { failOnNonZeroExit: false }, + ); + cy.exec( + `oc apply -f ./cypress/fixtures/perses/datasources/global-tempo-datasource.yaml ` + + `--kubeconfig ${kc}`, + { failOnNonZeroExit: false }, + ); + cy.exec( + `oc apply -f ./cypress/fixtures/perses/datasources/global-thanos-querier-datasource.yaml ` + + `--kubeconfig ${kc}`, { failOnNonZeroExit: false }, ); }, - cleanupTempoLokiThanosPersesGlobalDatasource(): void { + cleanupGlobalDatasources(): void { if (Cypress.env('SKIP_COO_INSTALL')) { cy.log( 'SKIP_COO_INSTALL is set. Skipping Tempo Loki Thanos Perses Global Datasource cleanup.', @@ -784,7 +793,18 @@ const persesUtils = { } const kc = Cypress.env('KUBECONFIG_PATH'); cy.exec( - `oc delete -f ./cypress/fixtures/perses/perses-global-datasources.yaml --kubeconfig ${kc}`, + `oc delete -f ./cypress/fixtures/perses/datasources/global-loki-datasource.yaml ` + + `--kubeconfig ${kc}`, + { failOnNonZeroExit: false }, + ); + cy.exec( + `oc delete -f ./cypress/fixtures/perses/datasources/global-tempo-datasource.yaml ` + + `--kubeconfig ${kc}`, + { failOnNonZeroExit: false }, + ); + cy.exec( + `oc delete -f ./cypress/fixtures/perses/datasources/global-thanos-querier-datasource.yaml ` + + `--kubeconfig ${kc}`, { failOnNonZeroExit: false }, ); }, @@ -829,7 +849,7 @@ Cypress.Commands.add('beforeBlockTempo', (TEMPO: { namespace: string; packageNam sessionKey, () => { cy.log('Before block Tempo (session)'); - cy.cleanupTempoLokiThanosPersesGlobalDatasource(); + cy.cleanupGlobalDatasources(); cy.cleanupBase(); cy.cleanupTracingApps(); cy.cleanupTempo(TEMPO); @@ -848,7 +868,7 @@ Cypress.Commands.add('beforeBlockTempo', (TEMPO: { namespace: string; packageNam ); } else { cy.log('Before block Tempo (no session)'); - cy.cleanupTempoLokiThanosPersesGlobalDatasource(); + cy.cleanupGlobalDatasources(); cy.cleanupBase(); cy.cleanupTracingApps(); cy.cleanupTempo(TEMPO); @@ -1026,14 +1046,14 @@ Cypress.Commands.add('waitForLoggingUIPluginReady', () => { cy.log('WaitFor Logging UI Plugin Ready completed'); }); -Cypress.Commands.add('createTempoLokiThanosPersesGlobalDatasource', () => { +Cypress.Commands.add('createGlobalDatasources', () => { cy.log('Create Tempo Loki Thanos Perses Global Datasource'); - persesUtils.createTempoLokiThanosPersesGlobalDatasource(); + persesUtils.createGlobalDatasources(); cy.log('Create Tempo Loki Thanos Perses Global Datasource completed'); }); -Cypress.Commands.add('cleanupTempoLokiThanosPersesGlobalDatasource', () => { +Cypress.Commands.add('cleanupGlobalDatasources', () => { cy.log('Cleanup Tempo Loki Thanos Perses Global Datasource'); - persesUtils.cleanupTempoLokiThanosPersesGlobalDatasource(); + persesUtils.cleanupGlobalDatasources(); cy.log('Cleanup Tempo Loki Thanos Perses Global Datasource completed'); }); diff --git a/web/cypress/support/commands/virtualization-commands.ts b/web/cypress/support/commands/virtualization-commands.ts index 1992eb5ab..5fb3d459a 100644 --- a/web/cypress/support/commands/virtualization-commands.ts +++ b/web/cypress/support/commands/virtualization-commands.ts @@ -72,7 +72,7 @@ const virtualizationUtils = { ); cy.log('Install Openshift Virtualization'); - cy.exec('./cypress/fixtures/virtualization/virtualization_stage.sh', { + cy.exec('./cypress/fixtures/shared/virtualization/virtualization_stage.sh', { env: { FBC_STAGE_CNV_IMAGE: Cypress.env('FBC_STAGE_CNV_IMAGE'), KUBECONFIG: Cypress.env('KUBECONFIG_PATH'), @@ -149,7 +149,7 @@ const virtualizationUtils = { } else { cy.log('Create Hyperconverged instance.'); cy.exec( - `oc apply -f ./cypress/fixtures/virtualization/hyperconverged.yaml ` + + `oc apply -f ./cypress/fixtures/shared/virtualization/hyperconverged.yaml ` + `--kubeconfig "${Cypress.env('KUBECONFIG_PATH')}"`, ); cy.exec( diff --git a/web/cypress/support/incidents_prometheus_query_mocks/README.md b/web/cypress/support/incidents_prometheus_query_mocks/README.md index 547205248..6190f9815 100644 --- a/web/cypress/support/incidents_prometheus_query_mocks/README.md +++ b/web/cypress/support/incidents_prometheus_query_mocks/README.md @@ -5,6 +5,7 @@ This directory contains the Prometheus query mocking system for incident scenari ## Overview The mocking system allows you to: + - Define incident scenarios using YAML fixtures with schema validation - Mock Prometheus `query_range` API calls for both incident health data and alert details - Support complex timelines with severity changes and resolved/ongoing incidents @@ -16,7 +17,7 @@ The mocking system allows you to: ```typescript // Load a YAML fixture -cy.mockIncidentFixture('cypress/fixtures/incident-scenarios/critical-monitoring-issues.yaml'); +cy.mockIncidentFixture('cypress/fixtures/incidents/scenarios/critical-monitoring-issues.yaml'); ``` ### Using Direct Incident Definitions @@ -32,10 +33,10 @@ const incidents: IncidentDefinition[] = [ { name: 'AlertmanagerReceiversNotConfigured', namespace: 'openshift-monitoring', - severity: 'warning' - } - ] - } + severity: 'warning', + }, + ], + }, ]; cy.mockIncidents(incidents); @@ -87,6 +88,7 @@ The `.cursor/commands/` directory contains custom commands for working with inci - **`fixture-schema-reference.md`** - Quick reference for schema structure, valid values, and common patterns These commands help with: + - Creating new incident scenarios from descriptions or screenshots - Validating fixture files before committing - Understanding schema structure and valid values @@ -109,7 +111,7 @@ Set the timezone for incident timeline calculations: ```bash export CYPRESS_TIMEZONE="America/New_York" -export CYPRESS_TIMEZONE="Europe/London" +export CYPRESS_TIMEZONE="Europe/London" export CYPRESS_TIMEZONE="Asia/Tokyo" ``` @@ -124,10 +126,12 @@ export CYPRESS_MOCK_NEW_METRICS=true ``` When enabled, `cy.transformMetrics()` will intercept Prometheus queries and transform both request and response: -- **Request**: `cluster:health:components:map` → `cluster_health_components_map` + +- **Request**: `cluster:health:components:map` → `cluster_health_components_map` - **Response**: `cluster:health:components:map` → `cluster_health_components_map` **Usage:** + ```typescript // Call before visiting pages that make Prometheus queries cy.transformMetrics(); @@ -135,6 +139,7 @@ cy.visit('/monitoring/incidents'); ``` **Use Cases:** + - **`CYPRESS_MOCK_NEW_METRICS=false`** (default): Test against current release/backend - **`CYPRESS_MOCK_NEW_METRICS=true`**: Test against locally built instances with new metric format @@ -143,21 +148,21 @@ Default: `false` (if `CYPRESS_MOCK_NEW_METRICS` is not set) ## YAML Fixture Format ```yaml -name: "Scenario Name" -description: "Detailed description" +name: 'Scenario Name' +description: 'Detailed description' incidents: - - id: "unique-incident-id" - component: "monitoring|storage|network|compute|api-server|etcd|version|Others" - layer: "core|Others" + - id: 'unique-incident-id' + component: 'monitoring|storage|network|compute|api-server|etcd|version|Others' + layer: 'core|Others' timeline: - start: "2h" # Duration format: 30m, 2h, 7d - end: "1h" # Optional, omit for ongoing incidents + start: '2h' # Duration format: 30m, 2h, 7d + end: '1h' # Optional, omit for ongoing incidents alerts: - - name: "AlertName" - namespace: "openshift-namespace" - severity: "critical|warning|info" + - name: 'AlertName' + namespace: 'openshift-namespace' + severity: 'critical|warning|info' firing: true|false silenced: true|false # Optional; when true, mock adds silenced/src_silenced labels ``` -For detailed schema documentation and examples, see the files in the `schema/` subdirectory. \ No newline at end of file +For detailed schema documentation and examples, see the files in the `schema/` subdirectory. diff --git a/web/cypress/support/incidents_prometheus_query_mocks/schema/validate-fixtures.ts b/web/cypress/support/incidents_prometheus_query_mocks/schema/validate-fixtures.ts index b21acb6a0..8e4b17ae2 100755 --- a/web/cypress/support/incidents_prometheus_query_mocks/schema/validate-fixtures.ts +++ b/web/cypress/support/incidents_prometheus_query_mocks/schema/validate-fixtures.ts @@ -71,7 +71,7 @@ let allValid = true; if (args[0] === '--all') { // Validate all YAML files in the fixtures directory - const fixturesDir = path.join(__dirname, '../../../fixtures/incident-scenarios'); + const fixturesDir = path.join(__dirname, '../../../fixtures/incidents/scenarios'); if (!fs.existsSync(fixturesDir)) { console.log(`ERROR: Fixtures directory not found: ${fixturesDir}`); diff --git a/web/cypress/support/monitoring/00.bvt_monitoring.cy.ts b/web/cypress/support/monitoring/00.bvt_monitoring.cy.ts index c411bd71e..696dbf275 100644 --- a/web/cypress/support/monitoring/00.bvt_monitoring.cy.ts +++ b/web/cypress/support/monitoring/00.bvt_monitoring.cy.ts @@ -11,7 +11,7 @@ import { SilenceComment, SilenceState, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { alertingRuleListPage } from '../../views/alerting-rule-list-page'; export interface PerspectiveConfig { diff --git a/web/cypress/support/monitoring/00.bvt_monitoring_namespace.cy.ts b/web/cypress/support/monitoring/00.bvt_monitoring_namespace.cy.ts index 7224ebee4..37c9c763e 100644 --- a/web/cypress/support/monitoring/00.bvt_monitoring_namespace.cy.ts +++ b/web/cypress/support/monitoring/00.bvt_monitoring_namespace.cy.ts @@ -11,7 +11,7 @@ import { SilenceComment, SilenceState, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { alertingRuleListPage } from '../../views/alerting-rule-list-page'; export interface PerspectiveConfig { diff --git a/web/cypress/support/monitoring/01.reg_alerts.cy.ts b/web/cypress/support/monitoring/01.reg_alerts.cy.ts index b4eccbaae..13b75c1f4 100644 --- a/web/cypress/support/monitoring/01.reg_alerts.cy.ts +++ b/web/cypress/support/monitoring/01.reg_alerts.cy.ts @@ -15,7 +15,7 @@ import { SilenceState, Source, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { FilterOUIAIDs } from '@/shared/constants/data-test'; export interface PerspectiveConfig { diff --git a/web/cypress/support/monitoring/02.reg_metrics_1.cy.ts b/web/cypress/support/monitoring/02.reg_metrics_1.cy.ts index e8cfce3a7..9d96a131f 100644 --- a/web/cypress/support/monitoring/02.reg_metrics_1.cy.ts +++ b/web/cypress/support/monitoring/02.reg_metrics_1.cy.ts @@ -5,7 +5,7 @@ import { MetricsPagePredefinedQueries, MetricsPageQueryInput, MetricsPageUnits, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; export interface PerspectiveConfig { name: string; diff --git a/web/cypress/support/monitoring/02.reg_metrics_2.cy.ts b/web/cypress/support/monitoring/02.reg_metrics_2.cy.ts index 5c273bd1d..d8d8ea74c 100644 --- a/web/cypress/support/monitoring/02.reg_metrics_2.cy.ts +++ b/web/cypress/support/monitoring/02.reg_metrics_2.cy.ts @@ -5,7 +5,7 @@ import { MetricsPagePredefinedQueries, MetricsPageQueryInput, MetricsPageQueryKebabDropdown, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; export interface PerspectiveConfig { name: string; diff --git a/web/cypress/support/monitoring/03.reg_legacy_dashboards.cy.ts b/web/cypress/support/monitoring/03.reg_legacy_dashboards.cy.ts index 7306f86ca..00ee44a9d 100644 --- a/web/cypress/support/monitoring/03.reg_legacy_dashboards.cy.ts +++ b/web/cypress/support/monitoring/03.reg_legacy_dashboards.cy.ts @@ -4,11 +4,11 @@ import { LegacyDashboardsDashboardDropdown, MetricsPageQueryInput, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { Classes, DataTestIDs, LegacyDashboardPageTestIDs } from '@/shared/constants/data-test'; import { metricsPage } from '../../views/metrics'; import { alertingRuleDetailsPage } from '../../views/alerting-rule-details-page'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { listPage } from '../../views/list-page'; import { commonPages } from '../../views/common'; diff --git a/web/cypress/support/monitoring/04.reg_alerts_namespace.cy.ts b/web/cypress/support/monitoring/04.reg_alerts_namespace.cy.ts index 77b118c00..46128771b 100644 --- a/web/cypress/support/monitoring/04.reg_alerts_namespace.cy.ts +++ b/web/cypress/support/monitoring/04.reg_alerts_namespace.cy.ts @@ -15,7 +15,7 @@ import { SilenceState, Source, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { FilterOUIAIDs } from '@/shared/constants/data-test'; export interface PerspectiveConfig { diff --git a/web/cypress/support/monitoring/05.reg_metrics_namespace_1.cy.ts b/web/cypress/support/monitoring/05.reg_metrics_namespace_1.cy.ts index 2f91e05c1..b833f566a 100644 --- a/web/cypress/support/monitoring/05.reg_metrics_namespace_1.cy.ts +++ b/web/cypress/support/monitoring/05.reg_metrics_namespace_1.cy.ts @@ -5,7 +5,7 @@ import { MetricsPagePredefinedQueries, MetricsPageQueryInput, MetricsPageUnits, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; export interface PerspectiveConfig { name: string; diff --git a/web/cypress/support/monitoring/05.reg_metrics_namespace_2.cy.ts b/web/cypress/support/monitoring/05.reg_metrics_namespace_2.cy.ts index 1e592e04d..ca089535a 100644 --- a/web/cypress/support/monitoring/05.reg_metrics_namespace_2.cy.ts +++ b/web/cypress/support/monitoring/05.reg_metrics_namespace_2.cy.ts @@ -5,7 +5,7 @@ import { MetricsPageQueryInput, MetricsPageQueryInputByNamespace, MetricsPageQueryKebabDropdown, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; export interface PerspectiveConfig { name: string; diff --git a/web/cypress/support/monitoring/06.reg_legacy_dashboards_namespace.cy.ts b/web/cypress/support/monitoring/06.reg_legacy_dashboards_namespace.cy.ts index 380bab2f8..76a268ffb 100644 --- a/web/cypress/support/monitoring/06.reg_legacy_dashboards_namespace.cy.ts +++ b/web/cypress/support/monitoring/06.reg_legacy_dashboards_namespace.cy.ts @@ -4,11 +4,11 @@ import { LegacyDashboardsDashboardDropdownNamespace, MetricsPageQueryInputByNamespace, WatchdogAlert, -} from '../../fixtures/monitoring/constants'; +} from '../../fixtures/shared/cluster-monitoring-operator/constants'; import { Classes, DataTestIDs, LegacyDashboardPageTestIDs } from '@/shared/constants/data-test'; import { metricsPage } from '../../views/metrics'; import { alertingRuleDetailsPage } from '../../views/alerting-rule-details-page'; -import { alerts } from '../../fixtures/monitoring/alert'; +import { alerts } from '../../fixtures/alerts/interceptWatchdogAlert'; import { listPage } from '../../views/list-page'; import { commonPages } from '../../views/common'; diff --git a/web/cypress/support/perses/04.coo_import_perses_admin.cy.ts b/web/cypress/support/perses/04.coo_import_perses_admin.cy.ts index f95af5101..f0a21bc53 100644 --- a/web/cypress/support/perses/04.coo_import_perses_admin.cy.ts +++ b/web/cypress/support/perses/04.coo_import_perses_admin.cy.ts @@ -23,7 +23,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`1.3 Upload wrong format file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha1.yaml', + './cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha1.yaml', ); persesImportDashboardsPage.assertUnableToDetectDashboardFormat(); @@ -32,7 +32,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`1.5 Upload another wrong format file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/accelerators-dashboard-cr-v1alpha2.yaml', + './cypress/fixtures/perses/dashboards/import/accelerators-dashboard-cr-v1alpha2.yaml', ); persesImportDashboardsPage.assertUnableToDetectDashboardFormat(); @@ -41,7 +41,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`1.7 Upload Grafana dashboard file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/grafana_to_check_errors.json', + './cypress/fixtures/perses/dashboards/import/grafana_to_check_errors.json', ); persesImportDashboardsPage.assertGrafanaDashboardDetected(); @@ -68,7 +68,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`2.3 Upload Grafana dashboard file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/acm-vm-status.json', + './cypress/fixtures/perses/dashboards/import/acm-vm-status.json', ); persesImportDashboardsPage.assertGrafanaDashboardDetected(); @@ -98,7 +98,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/acm-vm-status.json', + './cypress/fixtures/perses/dashboards/import/acm-vm-status.json', ); persesImportDashboardsPage.assertGrafanaDashboardDetected(); persesImportDashboardsPage.selectProject('openshift-cluster-observability-operator'); @@ -117,7 +117,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`3.3 Upload Perses dashboard JSON file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -144,7 +144,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); persesImportDashboardsPage.selectProject('openshift-cluster-observability-operator'); @@ -163,7 +163,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { cy.log(`4.3 Upload Perses dashboard YAML file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -190,7 +190,7 @@ export function testCOOImportPerses(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); persesImportDashboardsPage.selectProject('openshift-cluster-observability-operator'); diff --git a/web/cypress/support/perses/05.coo_create_import_perses_admin.cy.ts b/web/cypress/support/perses/05.coo_create_import_perses_admin.cy.ts index a1b52017b..fcb04b6e3 100644 --- a/web/cypress/support/perses/05.coo_create_import_perses_admin.cy.ts +++ b/web/cypress/support/perses/05.coo_create_import_perses_admin.cy.ts @@ -104,7 +104,7 @@ export function testCOOCreateImportPerses(perspective: PerspectiveConfig) { cy.log(`2.3 Upload Perses dashboard JSON file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.json', + './cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -134,7 +134,7 @@ export function testCOOCreateImportPerses(perspective: PerspectiveConfig) { cy.log(`3.3 Upload Perses dashboard YAML file`); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/tempo_loki_thanos.yaml', + './cypress/fixtures/perses/dashboards/import/tempo_loki_thanos.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts index ea1d380ae..367c37dfb 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user1.cy.ts @@ -642,7 +642,7 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -680,7 +680,7 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -705,7 +705,7 @@ export function testCOORBACPersesTestsDevUser1(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); persesImportDashboardsPage.selectProject('openshift-cluster-observability-operator'); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts index 7890ed30e..c34a57259 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user3.cy.ts @@ -447,7 +447,7 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -487,7 +487,7 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -517,7 +517,7 @@ export function testCOORBACPersesTestsDevUser3(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.yaml', + './cypress/fixtures/perses/dashboards/testing-perses-dashboard.yaml', ); persesImportDashboardsPage.assertPersesDashboardDetected(); persesImportDashboardsPage.selectProject('empty-namespace3'); diff --git a/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts b/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts index 85b2fde7b..d0b6c4eec 100644 --- a/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts +++ b/web/cypress/support/perses/99.coo_rbac_perses_user5.cy.ts @@ -393,7 +393,7 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/import/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -427,7 +427,7 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); @@ -453,7 +453,7 @@ export function testCOORBACPersesTestsDevUser5(perspective: PerspectiveConfig) { listPersesDashboardsPage.clickImportButton(); persesImportDashboardsPage.importDashboardShouldBeLoaded(); persesImportDashboardsPage.uploadFile( - './cypress/fixtures/coo/coo140_perses/import/testing-perses-dashboard.json', + './cypress/fixtures/perses/dashboards/testing-perses-dashboard.json', ); persesImportDashboardsPage.assertPersesDashboardDetected(); persesImportDashboardsPage.selectProject('openshift-monitoring'); diff --git a/web/cypress/support/perses/constants.ts b/web/cypress/support/perses/constants.ts new file mode 100644 index 000000000..5212ed469 --- /dev/null +++ b/web/cypress/support/perses/constants.ts @@ -0,0 +1,21 @@ +export const PERSES_TEST_DASHBOARD_NAME_PREFIXES = [ + 'Testing Dashboard - UP ', + 'Renamed dashboard ', + 'Duplicate dashboard ', + 'Test Dashboard', + 'Dashboard to test rename', + 'Dashboard to test duplication', + 'DashboardToTestDuplication', + 'Tempo Loki Perses Global Datasources', +]; +export const PERSES_TEST_DASHBOARD_NAME_EXACT = [ + 'Testing Perses dashboard - YAML', + 'Testing Perses dashboard - JSON', + 'Service Level dashboards / Virtual Machines by Time in Status', +]; + +export const PERSES_E2E_DASHBOARDS_DIR = './cypress/fixtures/perses/dashboards'; +export const PERSES_E2E_DATASOURCES_DIR = './cypress/fixtures/perses/datasources'; +export const SED_OCP_NS_TO_OBS_TEST = + "sed 's/namespace: openshift-cluster-observability-operator/namespace: observ-test/g'"; +export const SED_PERSES_DEV_TO_OBS_TEST = "sed 's/namespace: perses-dev/namespace: observ-test/g'"; diff --git a/web/cypress/views/alerting-rule-list-page.ts b/web/cypress/views/alerting-rule-list-page.ts index 67a4e858b..6ee26a949 100644 --- a/web/cypress/views/alerting-rule-list-page.ts +++ b/web/cypress/views/alerting-rule-list-page.ts @@ -1,5 +1,5 @@ import { Classes, DataTestIDs, FilterOUIAIDs } from '@/shared/constants/data-test'; -import { Source } from '../fixtures/monitoring/constants'; +import { Source } from '../fixtures/shared/cluster-monitoring-operator/constants'; import { listPage } from './list-page'; export const alertingRuleListPage = { diff --git a/web/cypress/views/legacy-dashboards.ts b/web/cypress/views/legacy-dashboards.ts index 1551c9401..f577e56e4 100644 --- a/web/cypress/views/legacy-dashboards.ts +++ b/web/cypress/views/legacy-dashboards.ts @@ -8,7 +8,7 @@ import { LegacyDashboardsTimeRange, MonitoringPageTitles, MonitoringRefreshInterval, -} from '../fixtures/monitoring/constants'; +} from '../fixtures/shared/cluster-monitoring-operator/constants'; export const legacyDashboardsPage = { shouldBeLoaded: () => { cy.log('legacyDashboardsPage.shouldBeLoaded'); diff --git a/web/cypress/views/metrics.ts b/web/cypress/views/metrics.ts index e16de0598..3b0fa6662 100644 --- a/web/cypress/views/metrics.ts +++ b/web/cypress/views/metrics.ts @@ -9,7 +9,7 @@ import { MetricsPageQueryKebabDropdown, MetricsPageUnits, MonitoringRefreshInterval, -} from '../fixtures/monitoring/constants'; +} from '../fixtures/shared/cluster-monitoring-operator/constants'; export const metricsPage = { shouldBeLoaded: () => { diff --git a/web/cypress/views/perses-dashboards-list-dashboards.ts b/web/cypress/views/perses-dashboards-list-dashboards.ts index 81ce5d8c4..647c58cc5 100644 --- a/web/cypress/views/perses-dashboards-list-dashboards.ts +++ b/web/cypress/views/perses-dashboards-list-dashboards.ts @@ -15,7 +15,7 @@ import { persesDashboardsDuplicateDashboard, persesDashboardsRenameDashboard, } from '../fixtures/perses/constants'; -import { MonitoringPageTitles } from '../fixtures/monitoring/constants'; +import { MonitoringPageTitles } from '../fixtures/shared/cluster-monitoring-operator/constants'; export const listPersesDashboardsPage = { emptyState: () => { diff --git a/web/cypress/views/perses-dashboards.ts b/web/cypress/views/perses-dashboards.ts index aae3dc746..e49b67fa1 100644 --- a/web/cypress/views/perses-dashboards.ts +++ b/web/cypress/views/perses-dashboards.ts @@ -10,7 +10,7 @@ import { persesDashboardDataTestIDs, persesMUIDataTestIDs, } from '@/shared/constants/data-test'; -import { MonitoringPageTitles } from '../fixtures/monitoring/constants'; +import { MonitoringPageTitles } from '../fixtures/shared/cluster-monitoring-operator/constants'; import { listPersesDashboardsPageSubtitle, persesDashboardsEmptyDashboard,