There is no alert support in VM because of nonsupporting of remote read.
Need to create an solution which support Prometheus alert rules and does integration with AlertManager.
Basic requirements:
Nice to have:
Is the remote read just needed to read back the rules that are stored?
Is the remote read just needed to read back the rules that are stored?
I'm afraid I don't understand the question :(
There are plans to create a dedicated service - vmalert, which would accept Prometheus-compatible alerting configs and evaluate PromQL queries from these configs on the configured remote system via /api/v1/query. The vmalert should work with any system with /api/v1/query support such as VictoriaMetrics, Prometheus, Thanos, Cortex, M3DB, etc.
I am still learning about the the Prom ecosystem. It seems it should be possible to use an existing open source tool that does this like Ruler from Cortex?
It looks like Ruler for Cortex speaks custom gRPC instead of Prometheus querying API :(
There is Promxy, which can be used as alerter for VictoriaMetrics.
Why not just use promxy then?
Promxy can be used as alerter for VictoriaMetrics as I already mentioned above. But we want creating our own vmalert service specially dedicated for alerting needs, since the main purpose of Promxy is slightly different than alerting. It merges and de-duplicates data obtained from multiple sources that speak Prometheus querying API.
Okay, so it seems like the use case is probably for a deployment that is not already running Promxy. I think that to have an HA deployment Promxy will already be required somewhere. But perhaps less after replication or object storage is implemented.
I'm in favor of this request to provide integration with AlertManager, rather than use Grafana or promxy as alerting system for VM, or in this regard have (another) own vmalert system. Let me clarify the reasons:
vmproxy is not an alert middleware
Do you mean promxy?
clients who rely on Prometheus/AlertManager will need to support yet another system
Why can't you still send alerts to AlertManager directly? I think the idea is that vmalert will still be sending alerts to AlertManager.
Yes, I meant promxy.
And, I'll be happy to send alerts to AlertManager, but I also in favor of preserving the same rules/records syntax as Prometheus does, i.e. we write alert rules in Prometheus.
For instance, there are VM specific functions, e.g. recently introduced Hoeffding bound, which I want to set alert on. So far I can only do it in Grafana, but I rather prefer to have programatic way to write/test alerts in a similar way as we do in Prometheus.
And, if VM team in favor of implementing vmalert tool, do you have any requirement docs? Is there any time-frame to implement this?
And, if VM team in favor of implementing vmalert tool, do you have any requirement docs? Is there any time-frame to implement this?
There are no formal requirements for vmalert tool yet. Basic requirements are:
/api/v1/query* endpoints from Prometheus querying API;Unfortunately there is no ETA for vmalert tool. We are open to third-party contributions.
The initial version of vmalert you may find here https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/app/vmalert
Another issue with promxy is that it doesn't support MetricsQL. This is a limitation for VM HA as well.
Most helpful comment
I'm in favor of this request to provide integration with AlertManager, rather than use Grafana or promxy as alerting system for VM, or in this regard have (another) own vmalert system. Let me clarify the reasons: