The GitHub Actions job "CI" on rocketmq-dashboard.git/fix/alert-gc-time-ratio 
has failed.
Run started by GitHub user unbridled-41 (triggered by unbridled-41).

Head commit for run:
0eaa94ab6c29291c094fe35a2e4c093aebaf5e91 / unbridled-41 
<[email protected]>
fix(alert): compare the GC alert against the pause-time ratio

The bundled RocketMQJVMCpuHigh rule claims to fire when a broker spends
more than 30% of its time in GC pauses, but its expression was

  rate(jvm_gc_pause_seconds_count[5m]) * 
avg(rate(jvm_gc_pause_seconds_sum[5m])) > 0.3

rate(jvm_gc_pause_seconds_sum[5m]) is already the share of wall-clock time
spent in GC (seconds of pause per second), so the extra
rate(jvm_gc_pause_seconds_count[5m]) factor turns the left-hand side into
"GC pauses per second scaled by the pause-time share" — a quantity with no
"30% of the time" meaning.

The rule therefore mis-grades both ways: 20 young collections per second at
2 ms each spend only 4% of the time in GC but evaluate to 0.8 and fire,
while 1 collection per second at 250 ms (25%) evaluates to 0.25 and stays
silent. Operators who deploy the default rule set exported by the alert
rules API get an alert that cannot distinguish GC pressure from GC
frequency.

Fix: sum the pause-time ratio over the GC series and threshold it directly,
matching the annotation's "more than 30% of the time in GC pauses".

Tested: 
server/src/test/java/.../AlertRuleAssetServiceTest#gcCpuAlertShouldCompareTheGcTimeRatio
(red on the old expression, green after), the asset regeneration script now
reproduces the checked-in YAML byte for byte, and checkstyle passes.

Report URL: 
https://github.com/apache/rocketmq-dashboard/actions/runs/37085609949

With regards,
GitHub Actions via GitBox

Reply via email to