Mirrored from GitHub github.com/roostorg/osprey
0

Configure Feed

Select the types of activity you want to include in your feed.

osprey-stress: refresh measure/open-loop wording now that #236 merged (#438)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Cassidy James <cassidyjames@roost.tools>

author
juliet
co-author
Claude Opus 4.8
co-author
Cassidy James
committer
GitHub
date (Jul 22, 2026, 9:47 AM -0700) commit 68447c38 parent bb6239ee
+13 -12
+9 -8
osprey_worker/src/osprey/worker/stress/cli.py
··· 12 12 the output topic, and reports drop rate + latency. Exits non-zero on threshold 13 13 breach so it can be wired into CI as a gate. 14 14 15 - The `measure` subcommand is reserved for when #236 (jetstream input stream 16 - plugin) lands — it will let the same measurement layer run in open-loop mode 17 - against any external input source. Today it prints a stub message. 15 + The `measure` subcommand is a planned open-loop mode: it would run the same 16 + measurement layer against events produced by an external source (such as the 17 + JetStream input stream sample from #236) rather than synthetic ones. It is not 18 + implemented yet, so today it prints a stub message; use `run` in the meantime. 18 19 """ 19 20 20 21 from __future__ import annotations ··· 282 283 283 284 measure = subparsers.add_parser( 284 285 'measure', 285 - help='Measure-only mode (open-loop). Stub until #236 lands.', 286 + help='Open-loop measurement mode; not yet implemented (use `run`).', 286 287 ) 287 288 _add_common_kafka_args(measure) 288 289 _add_threshold_args(measure) ··· 428 429 429 430 def cmd_measure(args: argparse.Namespace) -> int: 430 431 print( 431 - '[osprey-stress] `measure` is not yet implemented. It will activate once ' 432 - '#236 (jetstream input stream plugin) lands so this CLI can run the ' 433 - 'measurement layer against externally-produced events. ' 434 - 'Use `osprey-stress run` for synthetic closed-loop testing.', 432 + '[osprey-stress] `measure` (open-loop mode) is not yet implemented. It is ' 433 + 'intended to measure against externally-produced events, such as the ' 434 + 'JetStream input stream sample (#236). ' 435 + 'Use `osprey-stress run` for synthetic closed-loop testing in the meantime.', 435 436 file=sys.stderr, 436 437 ) 437 438 return EXIT_INTERNAL_ERROR
+3 -3
osprey_worker/src/osprey/worker/stress/consumer.py
··· 4 4 wall-clock receive time per `ActionId` so the reporter can pair every input 5 5 event with its output and compute end-to-end latency. 6 6 7 - Producer-agnostic: the same consumer works against synthetic load (#324), 8 - jetstream-driven load (once #236 lands), or any other input source. The 9 - optional `action_id_filter` decides whether we're in closed-loop matching mode 7 + Producer-agnostic: the same consumer works against synthetic load (#324), an 8 + external source such as the JetStream input stream, or any other input source. 9 + The optional `action_id_filter` decides whether we're in closed-loop matching mode 10 10 (only count IDs we know about) or open-loop throughput mode (count everything). 11 11 """ 12 12
+1 -1
osprey_worker/src/osprey/worker/stress/reporter.py
··· 8 8 9 9 * Closed-loop (synthetic source): we know every action_id we sent and when we 10 10 sent it, so we can compute exact drop rate and per-event latency. 11 - * Open-loop (external source — e.g. jetstream once #236 lands): we don't have 11 + * Open-loop (external source, e.g. the JetStream input stream): we don't have 12 12 per-event produce timestamps, so latency is unavailable; we report aggregate 13 13 throughput and drop rate via input/output counts. 14 14 """