mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2025-03-11 15:34:56 +00:00
docs: follow-up for 197d3cdd74
(#2766)
Signed-off-by: hagen1778 <roman@victoriametrics.com>
This commit is contained in:
parent
197d3cdd74
commit
75dd7542e5
2 changed files with 60 additions and 24 deletions
|
@ -402,6 +402,36 @@ Check how to replace it with [cluster VictoriaMetrics](#cluster-victoriametrics)
|
||||||
|
|
||||||
#### Downsampling and aggregation via vmalert
|
#### Downsampling and aggregation via vmalert
|
||||||
|
|
||||||
|
`vmalert` can't modify existing data. But it can run arbitrary PromQL/MetricsQL queries
|
||||||
|
via [recording rules](#recording-rules) and backfill results to the configured `-remoteWrite.url`.
|
||||||
|
This ability allows to aggregate data. For example, the following rule will calculate the average value for
|
||||||
|
metric `http_requests` on the `5m` interval:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- record: http_requests:avg5m
|
||||||
|
expr: avg_over_time(http_requests[5m])
|
||||||
|
```
|
||||||
|
|
||||||
|
Every time this rule will be evaluated, `vmalert` will backfill its results as a new time series `http_requests:avg5m`
|
||||||
|
to the configured `-remoteWrite.url`.
|
||||||
|
|
||||||
|
`vmalert` executes rules with specified interval (configured via flag `-evaluationInterval`
|
||||||
|
or as [group's](#groups) `interval` param). The interval helps to control "resolution" of the produced series.
|
||||||
|
This ability allows to downsample data. For example, the following config will execute the rule only once every `5m`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
groups:
|
||||||
|
- name: my_group
|
||||||
|
interval: 5m
|
||||||
|
rules:
|
||||||
|
- record: http_requests:avg5m
|
||||||
|
expr: avg_over_time(http_requests[5m])
|
||||||
|
```
|
||||||
|
|
||||||
|
Ability of `vmalert` to be configured with different `datasource.url` and `remoteWrite.url` allows
|
||||||
|
reading data from one data source and backfilling results to another. This helps to build a system
|
||||||
|
for aggregating and downsampling the data.
|
||||||
|
|
||||||
The following example shows how to build a topology where `vmalert` will process data from one cluster
|
The following example shows how to build a topology where `vmalert` will process data from one cluster
|
||||||
and write results into another. Such clusters may be called as "hot" (low retention,
|
and write results into another. Such clusters may be called as "hot" (low retention,
|
||||||
high-speed disks, used for operative monitoring) and "cold" (long term retention,
|
high-speed disks, used for operative monitoring) and "cold" (long term retention,
|
||||||
|
@ -417,18 +447,6 @@ or reducing resolution) and push results to "cold" cluster.
|
||||||
-remoteWrite.url=http://aggregated-cluster-vminsert:8480/insert/0/prometheus # vminsert addr to persist recording rules results
|
-remoteWrite.url=http://aggregated-cluster-vminsert:8480/insert/0/prometheus # vminsert addr to persist recording rules results
|
||||||
```
|
```
|
||||||
|
|
||||||
`vmalert` passes the configuration [recording rules](https://docs.victoriametrics.com/vmalert.html#recording-rules). These rules execute arbitrary MetricsQL expression and write the received result back to remote write destination.
|
|
||||||
|
|
||||||
For example, for `downsampling` of the total number of requests within five minutes, the configuration file can be as follows
|
|
||||||
|
|
||||||
```
|
|
||||||
groups:
|
|
||||||
- name: downsampling
|
|
||||||
rules:
|
|
||||||
- record: requests:avg5m
|
|
||||||
expr: avg_over_time(my_requests_total[5m])
|
|
||||||
```
|
|
||||||
|
|
||||||
<img alt="vmalert multi cluster" src="vmalert_multicluster.png">
|
<img alt="vmalert multi cluster" src="vmalert_multicluster.png">
|
||||||
|
|
||||||
Please note, [replay](#rules-backfilling) feature may be used for transforming historical data.
|
Please note, [replay](#rules-backfilling) feature may be used for transforming historical data.
|
||||||
|
|
|
@ -406,6 +406,36 @@ Check how to replace it with [cluster VictoriaMetrics](#cluster-victoriametrics)
|
||||||
|
|
||||||
#### Downsampling and aggregation via vmalert
|
#### Downsampling and aggregation via vmalert
|
||||||
|
|
||||||
|
`vmalert` can't modify existing data. But it can run arbitrary PromQL/MetricsQL queries
|
||||||
|
via [recording rules](#recording-rules) and backfill results to the configured `-remoteWrite.url`.
|
||||||
|
This ability allows to aggregate data. For example, the following rule will calculate the average value for
|
||||||
|
metric `http_requests` on the `5m` interval:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- record: http_requests:avg5m
|
||||||
|
expr: avg_over_time(http_requests[5m])
|
||||||
|
```
|
||||||
|
|
||||||
|
Every time this rule will be evaluated, `vmalert` will backfill its results as a new time series `http_requests:avg5m`
|
||||||
|
to the configured `-remoteWrite.url`.
|
||||||
|
|
||||||
|
`vmalert` executes rules with specified interval (configured via flag `-evaluationInterval`
|
||||||
|
or as [group's](#groups) `interval` param). The interval helps to control "resolution" of the produced series.
|
||||||
|
This ability allows to downsample data. For example, the following config will execute the rule only once every `5m`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
groups:
|
||||||
|
- name: my_group
|
||||||
|
interval: 5m
|
||||||
|
rules:
|
||||||
|
- record: http_requests:avg5m
|
||||||
|
expr: avg_over_time(http_requests[5m])
|
||||||
|
```
|
||||||
|
|
||||||
|
Ability of `vmalert` to be configured with different `datasource.url` and `remoteWrite.url` allows
|
||||||
|
reading data from one data source and backfilling results to another. This helps to build a system
|
||||||
|
for aggregating and downsampling the data.
|
||||||
|
|
||||||
The following example shows how to build a topology where `vmalert` will process data from one cluster
|
The following example shows how to build a topology where `vmalert` will process data from one cluster
|
||||||
and write results into another. Such clusters may be called as "hot" (low retention,
|
and write results into another. Such clusters may be called as "hot" (low retention,
|
||||||
high-speed disks, used for operative monitoring) and "cold" (long term retention,
|
high-speed disks, used for operative monitoring) and "cold" (long term retention,
|
||||||
|
@ -421,18 +451,6 @@ or reducing resolution) and push results to "cold" cluster.
|
||||||
-remoteWrite.url=http://aggregated-cluster-vminsert:8480/insert/0/prometheus # vminsert addr to persist recording rules results
|
-remoteWrite.url=http://aggregated-cluster-vminsert:8480/insert/0/prometheus # vminsert addr to persist recording rules results
|
||||||
```
|
```
|
||||||
|
|
||||||
`vmalert` passes the configuration [recording rules](https://docs.victoriametrics.com/vmalert.html#recording-rules). These rules execute arbitrary MetricsQL expression and write the received result back to remote write destination.
|
|
||||||
|
|
||||||
For example, for `downsampling` of the total number of requests within five minutes, the configuration file can be as follows
|
|
||||||
|
|
||||||
```
|
|
||||||
groups:
|
|
||||||
- name: downsampling
|
|
||||||
rules:
|
|
||||||
- record: requests:avg5m
|
|
||||||
expr: avg_over_time(my_requests_total[5m])
|
|
||||||
```
|
|
||||||
|
|
||||||
<img alt="vmalert multi cluster" src="vmalert_multicluster.png">
|
<img alt="vmalert multi cluster" src="vmalert_multicluster.png">
|
||||||
|
|
||||||
Please note, [replay](#rules-backfilling) feature may be used for transforming historical data.
|
Please note, [replay](#rules-backfilling) feature may be used for transforming historical data.
|
||||||
|
|
Loading…
Reference in a new issue