From 83287bde1cb4413e67c9f00ec595c600bd5d511e Mon Sep 17 00:00:00 2001 From: Artem Navoiev Date: Mon, 15 Jan 2024 23:07:49 +0100 Subject: [PATCH] vmanomly: guide add diagramm Signed-off-by: Artem Navoiev --- .../guides/guide-vmanomaly-vmalert.md | 8 +++++--- .../guide-vmanomaly-vmalert_overview.webp | Bin 0 -> 36698 bytes 2 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 docs/anomaly-detection/guides/guide-vmanomaly-vmalert_overview.webp diff --git a/docs/anomaly-detection/guides/guide-vmanomaly-vmalert.md b/docs/anomaly-detection/guides/guide-vmanomaly-vmalert.md index fd4b956e1..32e2ff041 100644 --- a/docs/anomaly-detection/guides/guide-vmanomaly-vmalert.md +++ b/docs/anomaly-detection/guides/guide-vmanomaly-vmalert.md @@ -24,6 +24,8 @@ aliases: - [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/) - [Node exporter](https://github.com/prometheus/node_exporter#node-exporter) +vmanomaly typical setup diagramm + ## 1. What is vmanomaly? *VictoriaMetrics Anomaly Detection* ([vmanomaly](https://docs.victoriametrics.com/vmanomaly.html)) is a service that continuously scans time series stored in VictoriaMetrics and detects unexpected changes within data patterns in real-time. It does so by utilizing user-configurable machine learning models. @@ -117,9 +119,9 @@ There are 4 required sections in config file: Let's look into parameters in each section: * `scheduler` - * `infer_every` - how often trained models will make inferences on new data. Basically, how often to generate new datapoints for anomaly_score. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). You can look at this as how often a model will write its conclusions on newly added data. Here in example we are asking every 1 minute: based on the previous data, do these new datapoints look abnormal? - * `fit_every` - how often to retrain the models. The higher the frequency -- the fresher the model, but the more CPU it consumes. If omitted, the models will be retrained on each infer_every cycle. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). - * `fit_window` - what data interval to use for model training. Longer intervals capture longer historical behavior and detect seasonalities better, but is slower to adapt to permanent changes to metrics behavior. Recommended value is at least two full seasons. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). Here is the previous 14 days of data to put into the model training. + * `infer_every` - how often trained models will make inferences on new data. Basically, how often to generate new datapoints for anomaly_score. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). You can look at this as how often a model will write its conclusions on newly added data. Here in example we are asking every 1 minute: based on the previous data, do these new datapoints look abnormal? + * `fit_every` - how often to retrain the models. The higher the frequency -- the fresher the model, but the more CPU it consumes. If omitted, the models will be retrained on each infer_every cycle. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). + * `fit_window` - what data interval to use for model training. Longer intervals capture longer historical behavior and detect seasonalities better, but is slower to adapt to permanent changes to metrics behavior. Recommended value is at least two full seasons. Format examples: 30s, 4m, 2h, 1d. Time granularity ('s' - seconds, 'm' - minutes, 'h' - hours, 'd' - days). Here is the previous 14 days of data to put into the model training. * `model` * `class` - what model to run. You can use your own model or choose from built-in models: Seasonal Trend Decomposition, Facebook Prophet, ZScore, Rolling Quantile, Holt-Winters, Isolation Forest and ARIMA. Here we use Facebook Prophet (`model.prophet.ProphetModel`). * `args` - Model specific parameters, represented as YAML dictionary in a simple `key: value` form. For example, you can use parameters that are available in [FB Prophet](https://facebook.github.io/prophet/docs/quick_start.html). diff --git a/docs/anomaly-detection/guides/guide-vmanomaly-vmalert_overview.webp b/docs/anomaly-detection/guides/guide-vmanomaly-vmalert_overview.webp new file mode 100644 index 0000000000000000000000000000000000000000..2dfb66a6c5368181058ee243bf8ae701c9d381d2 GIT binary patch literal 36698 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

`&87LgF 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�{$HX89^iV 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 literal 0 HcmV?d00001