Workflow Resource Monitoring evidence
Evidence summary
| Observation | Evidence state |
|---|---|
| Oqullus exposes Resources and independently requests latest and history | Source-verified |
| Non-404 latest failure generates task-shaped sample metrics and provisioning conclusions | Source-verified |
| Missing or insufficient history generates a sample trend | Source-verified |
| BFF validates browser JWT but performs no workflow authorization | Source-verified |
| Dedicated FastAPI backend has no caller authentication | Source-verified at 8665dd6efe13 |
| Dedicated API and collector are implemented | Source-verified at 8665dd6efe13 |
| Current KCL does not deploy the dedicated API or configure its BFF URL | Source-verified at platform-stacks a71390d12463 |
| Current KCL separately gives Spark Recommendation the Workflow resource table | Source-verified; live write pending |
| Dedicated history API is unbounded | Source-verified |
| Dedicated collector converts Prometheus failures to empty maps used as zero measurements | Source-verified; deployed impact not applicable until collector rollout |
| Persisted identity stops at snapshot date, DAG, and task; run, attempt, and Spark application are absent | Source-verified |
Collector uses a documented 15-minute tick, mixed five-minute and instantaneous metrics, sequential reads, and RUNNING-only discovery | Source-verified; collector not KCL-deployed |
WF-S010 — Resource monitoring trust and access
- Compare current and history data across supported single-project legacy roles and record the deployed access boundary.
- Warm data under an allowed role, then repeat with a role outside that boundary.
- Stop or disconnect the backend and verify production shows Unavailable rather than generated utilization values.
- Test a workflow with no runs and distinguish No data from dependency failure.
- Measure response size and latency for 7, 30, 60, and 90 days and verify the service bounds the query rather than returning all history.
- After OpenFGA activation, repeat with disjoint workflow grants and verify denial before monitoring access, including after caches are warm.
WF-S021 — Resource monitoring KCL wiring
- Render the
gj76anadpsc/w-t5e2kcxjdstack and locate the canonical producer, API Deployment/Service, BFFRESOURCE_MONITORING_URL, credentials, probes, and capability flag. - Confirm only one job writes
cogrion_system.workflow_resource_monitoringand record its schema and retention owner. - Open Resources and capture latest/history requests. Confirm the BFF reaches the rendered internal service and does not use an empty base URL.
- Verify the API authenticates to Alibaba Trino, reads the same table, and distinguishes no rows from dependency failure.
- Stop the API and deny Trino access. Confirm readiness fails and Oqullus shows Unavailable without generated values.
- Restore dependencies and verify current and bounded history recover without requiring a browser refresh.
RM-S001 — Collector measurement validity
- Run the selected canonical producer against a short, a long, and a dynamically allocated Spark workflow.
- Record the workflow/run/task identities, collection interval, Prometheus timestamps, executor count, and raw resource series.
- Compare stored allocation, usage, waste, and status with those sources.
- Fail CPU, memory, and disk queries independently. Confirm the collection is rejected or marked incomplete; it must not store zero usage and classify the workload as Over provisioned.
- Run a workflow entirely between two collection intervals and confirm the design captures it or documents it as unsupported.
RM-S002 — Real, no-data, stale, unavailable, and demo states
- Return a fresh real snapshot and confirm provenance plus observation time.
- Return a structured
404and confirm No data. - Return an old last-good snapshot and confirm Stale plus age.
- Return
401,403,500,502, timeout, invalid JSON, and connection refusal; confirm each produces no measurement or provisioning conclusion. - Enable any approved demo mode and confirm a persistent environment-level banner, non-production isolation, and response provenance.
- Confirm backend sample mode cannot be mistaken for real data by the browser.
RM-S003 — History scale and cancellation
- Populate multiple tasks up to and beyond the retention boundary.
- Request each supported time range and page size.
- Record Trino scanned bytes, execution time, API response size, BFF latency, browser memory, and rendered point count.
- Cancel a slow request and verify cancellation propagates rather than leaving abandoned Trino work.
- Attempt an unsupported or excessive range and confirm a bounded validation response.
RM-S004 — Identity and authorization
- Create two workflows whose actors have disjoint view grants.
- Request both by Workflow UUID and by guessed Airflow DAG ID.
- Confirm the server resolves the managed workflow and denies the unauthorized request before querying monitoring data.
- Verify the monitoring API accepts only authenticated internal callers.
- Confirm logs and metrics contain safe workflow correlation without browser tokens, Trino credentials, or raw tenant data.
RM-S005 — Producer ownership and migration
- Inventory every writer to the monitoring table and disable all but the selected canonical producer.
- Record schema, partitioning, merge key, version, retention, and timestamp semantics.
- If ownership moves, dual-read and compare during a bounded migration without concurrent writes to the same keys.
- Roll back and forward, confirming no duplicate, lost, or reclassified observations.
RM-S006 — Task-execution granularity
- Create a workflow with two Spark tasks and one non-Spark task.
- Run it twice on the same date, then retry one Spark task so at least three task attempts and distinct Spark applications exist.
- Confirm every observation contains managed Workflow UUID and revision, workflow run ID, task ID, attempt, Spark application ID, observation ID, timestamp, and source.
- Verify no execution overwrites another and current/history reads can select each run and task attempt independently.
- Confirm the workflow summary equals an aggregation of the selected run's task observations and the non-Spark task shows Not applicable.
- Generate a recommendation and verify it references the exact observation set and task configuration rather than only the DAG/task name.
- Rename or revise the workflow and confirm old observations remain attached to the original immutable workflow identity and revision.
RM-S007 — Collection window and coverage
- Run Spark tasks lasting less than five minutes, between five and fifteen minutes, and longer than fifteen minutes; include dynamic executor scaling.
- Capture their exact application start/end time, task attempt, Prometheus series, Kubernetes state transitions, and collector invocation times.
- Verify every execution is discovered even when it starts and finishes between reconciliation ticks.
- Recalculate CPU average/high percentile/peak, memory high percentile/peak, disk peak/final usage, and executor allocation over time from the source series; compare them with the finalized record.
- Delay the Prometheus and Kubernetes calls independently and confirm each measurement retains its real window/timestamp instead of inheriting one misleading snapshot time.
- Remove one metric series, fail one lifecycle event, and overlap a collector reconciliation run with its next schedule. Confirm the record is incomplete or recovered, never silently zero-filled or treated as complete.
- Verify incomplete observations cannot produce provisioning or recommendation conclusions and that the UI explains the missing coverage.
Evidence still required
- Rendered and deployed KCL evidence for the API, BFF URL, identity, probes, and feature capability.
- Live latest/history responses from realm
gj76anadpsc, workspacew-t5e2kcxjd. - Role and OpenFGA denial evidence.
- Collector accuracy and partial-source-failure evidence.
- History scale, cancellation, retention, and recovery evidence.
- Confirmation of one canonical monitoring-table producer.
- Same-day multi-run, retry, workflow-revision, and recommendation-correlation
evidence for
RM-S006. - Short-job, peak, mixed-window, delayed-read, missed-event, and overlapping-run
evidence for
RM-S007.
Missing evidence remains open; source presence is not deployment proof.