The GitHub Actions job "CI" on rocketmq-dashboard.git/rocketmq-studio has 
failed.
Run started by GitHub user lizhimins (triggered by lizhimins).

Head commit for run:
be5265a8e067ea4990d271238a82321be6d77f22 / Yu Xinqiang <[email protected]>
fix(alert): validation, dedup and formatting hardening (#1405, #1420, #1432, 
#1440)

* [ISSUE #1404] Deduplicate alert names in Prometheus YAML export

The alertName() method strips non-alphanumeric characters from rule
names, causing collisions when two rules normalize to the same name
(e.g. 'Broker Down!' and 'Broker_Down' both become 'BrokerDown').
Prometheus rejects rule files with duplicate alert names.

This fix:
- Tracks used alert names per group during YAML export
- Appends _2, _3, etc. suffixes to resolve collisions
- Adds ensureUniqueAlertName() helper method

Fixes #1404

* [ISSUE #1419] Validate alert rule operator, metric, and duration fields

The alert rule operator, metric name, and duration fields were injected
directly into PromQL expressions without validation. Malformed values
could produce invalid PromQL that causes Prometheus rule loading to
fail. This fix:

- Validates operator against a whitelist of valid comparison operators
- Validates metric name against Prometheus metric name pattern
- Validates duration against Prometheus duration format
- Falls back to safe defaults for invalid values

Fixes #1419

* [ISSUE #1431] Reject NaN and Infinity in alert threshold formatting

formatThreshold produced 'NaN' or 'Infinity' strings for invalid
double values, causing Prometheus to reject the exported rules YAML.

Fixes #1431

* [ISSUE #1439] Prefix alert names starting with a digit

Prometheus alert names must start with [a-zA-Z_], not a digit.
The alertName method stripped non-alphanumeric chars but did not
validate the first character, producing invalid names like '5xxErrorRate'.

Fixes #1439

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

With regards,
GitHub Actions via GitBox

Reply via email to