openobserve/tests/ui-testing
Prabhat Sharma 087e1498ab
feat(slos): add SLO burn-rate alerts (#13704)
design at /slo

## What

Adds **SLO burn-rate alerts** — an alert family that fires off an SLO's
error budget rather than a raw query — and finishes the SLO surface
around it: navigation entry, detail-page fixes, and the flag removal now
that SLOs have shipped.

## Changes

**SLO burn-rate alerts (backend)**
- New burn-rate evaluation (`config/src/meta/slo/burn.rs`,
`condition.rs`) with multi-window burn conditions, and
`core/src/slo/evaluate.rs` extended to evaluate them on the SLO job.
- Alerts carry an `slo_id`; `infra/src/table/alerts` gains the column,
filtering, and query support so an SLO's alerts can be listed and
deleted with it.
- Alert levels (`meta/alerts/level.rs`) and tags extended for the SLO
family; scheduler handlers route SLO alerts through the same
notification path.

**SLO alert UI**
- `SloAlertForm` + `AlertDetailSlo`: create, edit and view burn-rate
alerts from the SLO detail page and the alert list.
- Payload/routing helpers (`utils/alerts/sloAlertPayload.ts`,
`sloAlertRouting.ts`, `alertPayload.ts`) with unit tests.
- `AlertDestinationsField` extracted as the complete Destination form
field — side label, tooltip, combined destinations/workflows picker,
inline error, refresh, and create-in-new-tab. It replaces two verbatim
copies in the generic alert form and is reused by the SLO form and
synthetics `CheckAlerts` (which sets `supportsWorkflows: false`, since a
check has no workflow routing). Fixes the SLO form's previously unwired
refresh and Add Destination buttons.

**SLO detail page fixes**
- Burndown and burn-rate charts drew as bare axes when coverage was
sparse: `showSymbol: false` means an isolated measured bucket between
gaps has no segment and paints nothing. Symbols are now sized per point,
and a sparse-coverage note states how many buckets actually recorded
events.
- Nothing scrolled below ~700px of viewport height — `OPageLayout`'s
fixed flex body plus `OTabPanels` `scroll="none"` clipped the panels.
Panels now grow and scroll; the stat strip and tab bar stay pinned.
Verified at 1024x500, 1280x620, 1512x945.

**Other**
- `ZO_SLO_ENABLED` removed — SLOs have shipped, so the flag and its
status/route gating are gone.
- SLOs surfaced in the main nav.
- Dashboard chart panel header gets its own tint via new
`--color-panel-bar-bg` / `--color-panel-bar-border` tokens, and the bar
is extracted into `PanelBar.vue` (it existed as five hand-copied class
strings that had already drifted).
- `tsconfig.vitest.tsbuildinfo` untracked; third-party vendor name
removed from comments and test names.

## Testing

- New Rust tests across `meta/slo/burn.rs`, `condition.rs`,
`core/src/alerts/alert.rs` and `infra/src/table/alerts`.
- New frontend suites: `sloAlertPayload.spec.ts`,
`sloAlertRouting.spec.ts`, `alertPayload.spec.ts`,
`AlertDetailSlo.spec.ts`, `SloDetailAlerts.spec.ts`,
`SloListDelete.spec.ts`, `SloTimeSlicePreview.spec.ts`.
- `cargo clippy --all-targets` and `web` `lint:ci` clean.
2026-08-10 10:07:38 +00:00
..
ci-matrix test(autoe2e): generated E2E tests for #13652 (stream-schema-timezone) (#13657) 2026-08-06 07:00:06 +00:00
fixtures chore(deps): bump uuid, @openobserve/browser-logs and @openobserve/browser-rum in /tests/ui-testing/fixtures/rum/npm-app (#13688) 2026-08-07 06:45:04 +00:00
pages feat(slos): add SLO burn-rate alerts (#13704) 2026-08-10 10:07:38 +00:00
playwright-results test: e2e test dino poc (#8771) 2025-10-10 18:30:24 +05:30
playwright-tests feat(slos): add SLO burn-rate alerts (#13704) 2026-08-10 10:07:38 +00:00
scripts test: add alpha1 cloud compatibility for E2E logs tests (#10763) 2026-03-07 07:00:07 +05:30
utils test(e2e): stabilize alpha1 cloud E2E — shared https-ingestion fix + Streams revamp/cloud-race/CI-flake fixes (#13191) 2026-07-17 06:15:43 +00:00
.gitignore ci: add test-assist-ci caller + fixture data (#12946) 2026-07-01 05:24:27 +00:00
.nycrc fix: e2e test coverage setup (#4897) 2024-11-13 15:13:36 +05:30
README.md test: File cleanup for cypress files, removed websocket tests (#8027) 2025-08-18 10:54:15 +05:30
env.sh feat: add MCP category annotations to API endpoints (#9937) 2026-01-15 17:05:43 +08:00
package-lock.json chore(deps): bump qs from 6.15.1 to 6.15.2 in /tests/ui-testing (#12168) 2026-05-29 17:11:21 +00:00
package.json chore: last refreshed for logs and traces (#11398) 2026-04-23 11:30:00 +05:30
playwright-alpha1.config.js test(e2e/alpha1): robustness — auth self-heal + service-graph wide window (#13622) 2026-08-04 13:14:04 +00:00
playwright.config.js test(ci): loud stdout banner when Playwright retries a test (#13529) 2026-07-29 06:15:33 +00:00

README.md

zinc-observe-ui-automation

Playwright UI Testing

Installation

npm install

Running Tests

cd playwright-runner
npm start

Then open http://localhost:3000 to access the test runner interface.

Using Command Line

# Run all tests
npx playwright test

# Run specific test by tag
npx playwright test -g @alertsImportExport

# Run in headed mode
npx playwright test --headed

# Run specific test file
npx playwright test Alerts/alerts-import.spec.js

Environment Configuration

Tests can be configured using:

  1. Playwright Runner UI - Set environment variables through the web interface
  2. Environment Variables - Set variables in terminal or .env file