aws-samples / aws-samples/sample-edge-to-cloud-digital-ops-workshop

[Epic] Frac load generator + dashboard time-series panels

Open
#272 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3
Forks
1
Avg merge
7h 19m
Merged PRs (30d)
12

Description

# Epic — Frac load generator + dashboard time-series panels

Let an operator run a **local** script that generates realistic well-fracturing telemetry at configurable volume, push it into the **cloud MSK** cluster, and **watch the data stores behave under load** via three new time-series panels on the cloud-analytics dashboard (ingest volume, freshness-over-time, query-latency-over-time).

**Design spec:** [https://github.com/aws-samples/sample-edge-to-cloud-digital-ops-workshop/blob/feat/frac-load-dashboard-timeseries/docs/superpowers/specs/2026-09-09-frac-load-and-dashboard-timeseries-design.md](https://github.com/aws-samples/sample-edge-to-cloud-digital-ops-workshop/blob/feat/frac-load-dashboard-timeseries/docs/superpowers/specs/2026-09-09-frac-load-and-dashboard-timeseries-design.md) (branch `feat/frac-load-dashboard-timeseries`).

### Key design facts
- Only **RisingWave, TimescaleDB, InfluxDB** read MSK; **Athena/Iceberg + AppSync are MQTT-only** and stay flat under a direct-MSK load (accepted non-goal).
- Target topic **`sensors.raw.sim`**, real frac schema `{sensor, value, unit, ts_ms, site_id}`, `site_id` prefixed `ws-slotNN-…` — **zero pipeline schema changes**.
- Reachability: **sshuttle over SSH-over-SSM** to an EKS node (plain SSM port-forward breaks on multi-broker DNS).
- Freshness/latency trends use a **client-side ring buffer** (~600 pts), not a server-side history table.

### Child issues (implement in order, one PR)
1. #268 — local frac → MSK producer + sshuttle/SSM tunnel
2. #269 — `mv_fleet_ingest_rate` MV + `/api/volume` route *(blocks #270)*
3. #270 — dashboard time-series panels + ring buffer *(blocked by #269)*
4. #271 — tests: generator schema + screenshot assertions *(blocked by #268, #270)*

### Scope for the remote agent
Write all code and land it in **one PR** closing #268→#269→#270→#271 in order. Agent acceptance is **offline/static** (`--dry-run`, `pnpm build`/typecheck, `shellcheck`, `helm template` where relevant). **Live-slot validation — real tunnel, real MSK produce, screenshot against a running slot — stays with the local credentialed session and is NOT required from the agent.**

Contributor guide

Open the contributing guide

Research direction

Start with the linked design spec, then read child issues #268 through #271 in order to map the producer, API route, dashboard panels, and tests. Validate the work with the specified offline checks—dry-run, pnpm build/typecheck, shellcheck, and helm template where relevant; done means one PR completes all four child issues, while live MSK and screenshot validation remains out of scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, kafka, kubernetes, typescript
Domain
cloud, data, devops, frontend, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.