bigcyy commented on code in PR #3673:
URL: https://github.com/apache/hertzbeat/pull/3673#discussion_r2298485067
##########
hertzbeat-common/src/main/java/org/apache/hertzbeat/common/entity/alerter/AlertDefine.java:
##########
@@ -100,6 +100,11 @@ public class AlertDefine {
@Size(max = 100)
private String datasource;
+ @Schema(title = "Query Expression", example = "SELECT * FROM metrics WHERE
value > 90")
+ @Size(max = 2048)
+ @Column(length = 2048)
+ private String queryExpr;
+
Review Comment:
Hi Tom, thank you for your review. I believe that a two-stage design,
separating the query and alerting phases, is of paramount importance. If we do
not make this separation, our SQL query syntax will be tightly coupled with the
alerting threshold syntax. This coupling would lead to insurmountable syntax
conflicts when adapting to different SQL dialects, such as those used by
Greptime and other databases.
Furthermore, from a user experience perspective, this two-stage model is
more intuitive in UI design. It perfectly aligns with the user's natural mental
model: first defining "What data do I need?" and then determining "What
conditions should trigger an alert?" This approach is much easier to understand
and operate than one that mixes all the logic together.
Finally, it is worth noting that this two-stage model is widely adopted in
mature industry monitoring platforms, such as Alibaba Cloud's Log Service
(SLS). This further validates the stability and maturity of a decoupled
solution.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]