VictoriaMetrics/docs/anomaly-detection/components/reader.md
Andrii Chubatiuk 35d77a3bed
docs: updated guides structure, removed deprecated sort option (#6767)
### Describe Your Changes

* `sort` param is unused by the current website engine, and was present only for compatibility
with previous website engine. It is time to remove it as it makes no effect
* re-structure guides content into folders to simplify assets management

### Checklist

The following checks are **mandatory**:

- [ ] My change adheres [VictoriaMetrics contributing
guidelines](https://docs.victoriametrics.com/contributing/).
2024-08-07 16:48:08 +02:00

7.6 KiB

title weight menu aliases
Reader 2
docs
parent weight
vmanomaly-components 2
/anomaly-detection/components/reader.html

VictoriaMetrics Anomaly Detection (vmanomaly) primarily uses VmReader to ingest data. This reader focuses on fetching time-series data directly from VictoriaMetrics with the help of powerful MetricsQL expressions for aggregating, filtering and grouping your data, ensuring seamless integration and efficient data handling.

Future updates will introduce additional readers, expanding the range of data sources vmanomaly can work with.

VM reader

Note

: Starting from v1.13.0 there is backward-compatible change of queries arg of VmReader. New format allows to specify per-query parameters, like step to reduce amount of data read from VictoriaMetrics TSDB and to allow config flexibility. Please see per-query parameters section for the details.

Old format like

# other config sections ...
reader:
  class: 'vm'
  datasource_url: 'http://localhost:8428'  # source victoriametrics/prometheus
  sampling_period: "10s"  # set it <= min(infer_every) in schedulers section
  queries:
    # old format {query_alias: query_expr}, prior to 1.13, will be converted to a new format automatically
    vmb: 'avg(vm_blocks)'

will be converted to a new one with a warning raised in logs:

# other config sections ...
reader:
  class: 'vm'
  datasource_url: 'http://localhost:8428'  # source victoriametrics/prometheus
  sampling_period: '10s'
  queries:
    # old format {query_alias: query_expr}, prior to 1.13, will be converted to a new format automatically
    vmb:
      expr: 'avg(vm_blocks)'  # initial MetricsQL expression
      step: '10s'  # individual step for this query, will be filled with `sampling_period` from the root level
      # new query-level arguments will be added in backward-compatible way in future releases

Per-query parameters

Starting from v1.13.0 there is change of queries arg format. Now each query alias supports the next (sub)fields:

  • expr (string): MetricsQL/PromQL expression that defines an input for VmReader. As accepted by /query_range?query=%s. i.e. avg(vm_blocks)

  • step (string): query-level frequency of the points returned, i.e. 30s. Will be converted to /query_range?step=%s param (in seconds). Useful to optimize total amount of data read from VictoriaMetrics, where different queries may have different frequencies for different machine learning models to run on.

    Note

    : if not set explicitly (or if older config style prior to v1.13.0) is used, then it is set to reader-level sampling_period arg.

    Note

    : having different individual step args for queries (i.e. 30s for q1 and 2m for q2) is not yet supported for multivariate model if you want to run it on several queries simultaneously (i.e. setting queries arg of a model to [q1, q2]).

Per-query config example

reader:
  class: 'vm'
  sampling_period: '1m'
  # other reader params ...
  queries:
    ingestion_rate:
      expr: 'sum(rate(vm_rows_inserted_total[5m])) by (type) > 0'
      step: '2m'  # overrides global `sampling_period` of 1m

Config parameters

Parameter Example Description

class

reader.vm.VmReader (or vm starting from v1.13.0)

Name of the class needed to enable reading from VictoriaMetrics or Prometheus. VmReader is the default option, if not specified.

queries

See per-query config example above

See per-query config section above

datasource_url

http://localhost:8481/

Datasource URL address

tenant_id

0:0

For VictoriaMetrics Cluster version only, tenants are identified by accountID or accountID:projectID. See VictoriaMetrics Cluster multitenancy docs

sampling_period

1h

Frequency of the points returned. Will be converted to /query_range?step=%s param (in seconds). Required since v1.9.0.

query_range_path

/api/v1/query_range

Performs PromQL/MetricsQL range query

health_path

health

Absolute or relative URL address where to check availability of the datasource.

user

USERNAME

BasicAuth username

password

PASSWORD

BasicAuth password

timeout

30s

Timeout for the requests, passed as a string

verify_tls

false

Allows disabling TLS verification of the remote certificate.

bearer_token

token

Token is passed in the standard format with header: Authorization: bearer {token}

extra_filters

[]

List of strings with series selector. See: Prometheus querying API enhancements

Config file example:

reader:
  class: "vm"  # or "reader.vm.VmReader" until v1.13.0
  datasource_url: "http://localhost:8428/"
  tenant_id: "0:0"
  queries:
    ingestion_rate: 'sum(rate(vm_rows_inserted_total[5m])) by (type) > 0'
  sampling_period: '1m'

Healthcheck metrics

VmReader exposes several healthchecks metrics.