Skip to content

Commit 5d7f440

Browse files
committed
feat(loadgen): add burst subcommand and make scheduled bursts opt-in
Default burst-per-day changed from 2 to 0 so the start command no longer fires bursts unless explicitly configured. New burst subcommand triggers a single burst workload immediately, reusing the same matrix execution path as the scheduler.
1 parent 3de521d commit 5d7f440

3 files changed

Lines changed: 39 additions & 2 deletions

File tree

apps/loadgen/cmd/burst.go

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package cmd
2+
3+
import (
4+
"log"
5+
6+
"github.com/evstack/ev-node/apps/loadgen/internal"
7+
"github.com/spf13/cobra"
8+
)
9+
10+
func newBurstCmd() *cobra.Command {
11+
var (
12+
txCount int
13+
matrixPath string
14+
)
15+
16+
cmd := &cobra.Command{
17+
Use: "burst",
18+
Short: "trigger a single burst workload immediately",
19+
Args: cobra.NoArgs,
20+
RunE: func(cmd *cobra.Command, args []string) error {
21+
spamoorAddr := resolveSpamoorURL()
22+
api := internal.NewSpamoorClient(spamoorAddr)
23+
24+
if err := internal.WaitForSync(cmd.Context(), api); err != nil {
25+
return err
26+
}
27+
28+
log.Printf("==> burst workload starting (%d tx)", txCount)
29+
return internal.ExecuteMatrixWithOverridesFromFile(cmd.Context(), matrixPath, api, txCount)
30+
},
31+
}
32+
33+
cmd.Flags().IntVar(&txCount, "tx-count", envIntOr("BENCH_BURST_TX_COUNT", 500000), "total transactions for the burst")
34+
cmd.Flags().StringVar(&matrixPath, "burst-matrix", envStringOr("BENCH_BURST_MATRIX", defaultBurstPath), "path to burst matrix JSON")
35+
36+
return cmd
37+
}

apps/loadgen/cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func NewRootCmd() *cobra.Command {
1616

1717
rootCmd.PersistentFlags().StringVar(&spamoorFlag, "spamoor-url", "", "spamoor-daemon API URL (env: BENCH_SPAMOOR_URL)")
1818

19-
rootCmd.AddCommand(newRunCmd(), newStartCmd(), newCheckCmd())
19+
rootCmd.AddCommand(newRunCmd(), newStartCmd(), newCheckCmd(), newBurstCmd())
2020

2121
return rootCmd
2222
}

apps/loadgen/cmd/start.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func newStartCmd() *cobra.Command {
4646
cmd.Flags().IntVar(&cfg.txPerDay, "tx-per-day", envIntOr("BENCH_TX_PER_DAY", 1000000), "sustained txs/day")
4747
cmd.Flags().DurationVar(&cfg.interval, "interval", envDurationOr("BENCH_INTERVAL", time.Hour), "regular workload frequency")
4848
cmd.Flags().IntVar(&cfg.burstTxCount, "burst-tx-count", envIntOr("BENCH_BURST_TX_COUNT", 500000), "txs per burst")
49-
cmd.Flags().IntVar(&cfg.burstPerDay, "burst-per-day", envIntOr("BENCH_BURST_PER_DAY", 2), "bursts per day, randomly spaced")
49+
cmd.Flags().IntVar(&cfg.burstPerDay, "burst-per-day", envIntOr("BENCH_BURST_PER_DAY", 0), "bursts per day, randomly spaced (0 = no bursts)")
5050
cmd.Flags().StringVar(&cfg.regularMatrix, "regular-matrix", envStringOr("BENCH_REGULAR_MATRIX", defaultBaselinePath), "path to regular matrix JSON")
5151
cmd.Flags().StringVar(&cfg.burstMatrix, "burst-matrix", envStringOr("BENCH_BURST_MATRIX", defaultBurstPath), "path to burst matrix JSON")
5252

0 commit comments

Comments
 (0)