[BUG] The threshold rule cannot be triggered when the indicator value is "no data"
- Dominant language
- Java
- Stars
- 7.4k
- Forks
- 1.3k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 32
Description
### Is there an existing issue for this?
- [X] I have searched the existing issues
### Current Behavior

As shown in the figure, when there is a value in the "Error Message" column, the "Value Exists" threshold rule can be triggered, but if the "Error Message" column is "No Data", the error threshold cannot be triggered anyway.
That is, the threshold rule I set is "contains(message, "Client")". When there is a value in the error message and it is the value in the screenshot, the threshold rule can be triggered normally. However, if the error message becomes "no data", no error will be reported and the error will not be eliminated.
### Expected Behavior
When the indicator value is "no data", the alarm recovery should be triggered. Or the "!exists" threshold should be triggered.
### Steps To Reproduce
_No response_
### Environment
```markdown
HertzBeat version(s):v1.6.0
```
### Debug logs
_No response_
### Anything else?
_No response_
Contributor guide
Research direction
Start by reproducing the issue on HertzBeat v1.6.0 with a threshold such as contains(message, "Client"), comparing an error message with a "no data" indicator value. Trace the threshold evaluation and alarm recovery behavior; the fix is complete when the expected recovery or !exists threshold behavior works for "no data" and is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- observability
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100