Reader

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#

Config parameters#

ParameterExampleDescription
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"ingestion_rate: 'sum(rate(vm_rows_inserted_total[5m])) by (type) > 0'"PromQL/MetricsQL query to select data in format: QUERY_ALIAS: "QUERY". As accepted by "/query_range?query=%s".
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. Default "api/v1/query_range"
health_path"health"Absolute or relative URL address where to check availability of the datasource. Default is "health".
user"USERNAME"BasicAuth username
password"PASSWORD"BasicAuth password
timeout"30s"Timeout for the requests, passed as a string. Defaults to "30s"
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.