feat: add replay runner and scheduler with CLI integration#234
Open
JasonXuDeveloper wants to merge 5 commits intoAzure:unstable-replayfrom
Open
feat: add replay runner and scheduler with CLI integration#234JasonXuDeveloper wants to merge 5 commits intoAzure:unstable-replayfrom
JasonXuDeveloper wants to merge 5 commits intoAzure:unstable-replayfrom
Conversation
3 tasks
6e9bd4c to
588d89f
Compare
- Fix "traget" → "target" typo in LoadProfileSpec comment - Fix "letencies" → "latencies" typo in runner CLI flag description - Add empty specs validation in loadConfig to prevent index-out-of-range panic when config file has no specs - Preserve nodeAffinity from runnergroup spec when CLI --affinity flag is not provided Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Add foundation types for the timeseries replay system: - ReplayRequest, ReplayProfile, ReplayProfileSpec types with validation - IsReplayMode() method on RunnerGroupSpec for detecting replay configs - ReplayProfileSpec field in RunnerGroupSpec for distributed mode - Sample replay profile and runner group config test data Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Extract shared report-building logic into metrics.BuildPercentileLatenciesReport() to avoid duplication between runner and replay report builders. Refactor buildRunnerMetricReport() to use the shared utility. Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Core replay data processing (no execution engine yet): - Loader: YAML/gzip profile loading from file or URL - Partition: request distribution across runners using object-key consistent hashing to preserve per-object ordering - Builder: HTTP request construction with URL building, verb mapping, and URL masking for metrics aggregation Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Execution engine for the timeseries replay system: - Runner: worker pool with time-bucketed scheduling, per-worker metrics, pool-first WATCH connection assignment with overflow support - Scheduler: orchestrator for both local multi-runner and distributed single-runner modes with configuration validation and warnings - CLI: 'kperf replay run' command for local replay execution and 'kperf runner replay' subcommand for distributed runner pods Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
588d89f to
0aaf1c9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
kperf replay runcommand for local replay execution,kperf runner replaysubcommand for distributed runner podsTest plan
go build ./...passesgo vet ./...passesgo test ./replay/...passes (runner, schedule tests)go test ./cmd/kperf/commands/replay/...passes