![Version: 1.5.1](https://img.shields.io/badge/Version-1.5.1-informational?style=flat-square) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/victoriametrics)](https://artifacthub.io/packages/helm/victoriametrics/victoria-metrics-anomaly) [![Slack](https://img.shields.io/badge/join%20slack-%23victoriametrics-brightgreen.svg)](https://slack.victoriametrics.com/) [![GitHub license](https://img.shields.io/github/license/VictoriaMetrics/VictoriaMetrics.svg)](https://github.com/VictoriaMetrics/helm-charts/blob/master/LICENSE) ![Twitter Follow](https://img.shields.io/twitter/follow/VictoriaMetrics?style=social) ![Subreddit subscribers](https://img.shields.io/reddit/subreddit-subscribers/VictoriaMetrics?style=social) Victoria Metrics Anomaly Detection - a service that continuously scans Victoria Metrics time series and detects unexpected changes within data patterns in real-time. ## Prerequisites * Install the follow packages: ``git``, ``kubectl``, ``helm``, ``helm-docs``. See this [tutorial](https://docs.victoriametrics.com/helm/requirements/). * PV support on underlying infrastructure ## Chart Details This chart will do the following: * Rollout victoria metrics anomaly ## How to install Access a Kubernetes cluster. ### Setup chart repository (can be omitted for OCI repositories) Add a chart helm repository with follow commands: ```console helm repo add vm https://victoriametrics.github.io/helm-charts/ helm repo update ``` List versions of `vm/victoria-metrics-anomaly` chart available to installation: ```console helm search repo vm/victoria-metrics-anomaly -l ``` ### Install `victoria-metrics-anomaly` chart Export default values of `victoria-metrics-anomaly` chart to file `values.yaml`: - For HTTPS repository ```console helm show values vm/victoria-metrics-anomaly > values.yaml ``` - For OCI repository ```console helm show values oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-anomaly > values.yaml ``` Change the values according to the need of the environment in ``values.yaml`` file. Test the installation with command: - For HTTPS repository ```console helm install vma vm/victoria-metrics-anomaly -f values.yaml -n NAMESPACE --debug --dry-run ``` - For OCI repository ```console helm install vma oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-anomaly -f values.yaml -n NAMESPACE --debug --dry-run ``` Install chart with command: - For HTTPS repository ```console helm install vma vm/victoria-metrics-anomaly -f values.yaml -n NAMESPACE ``` - For OCI repository ```console helm install vma oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-anomaly -f values.yaml -n NAMESPACE ``` Get the pods lists by running this commands: ```console kubectl get pods -A | grep 'vma' ``` Get the application by running this command: ```console helm list -f vma -n NAMESPACE ``` See the history of versions of `vma` application with command. ```console helm history vma -n NAMESPACE ``` ## How to uninstall Remove application with command. ```console helm uninstall vma -n NAMESPACE ``` ## Documentation of Helm Chart Install ``helm-docs`` following the instructions on this [tutorial](https://docs.victoriametrics.com/helm/requirements/). Generate docs with ``helm-docs`` command. ```bash cd charts/victoria-metrics-anomaly helm-docs ``` The markdown generation is entirely go template driven. The tool parses metadata from charts and generates a number of sub-templates that can be referenced in a template file (by default ``README.md.gotmpl``). If no template file is provided, the tool has a default internal template that will generate a reasonably formatted README. ## Parameters The following tables lists the configurable parameters of the chart and their default values. For more `vmanomaly` config parameters see https://docs.victoriametrics.com/anomaly-detection/components Change the values according to the need of the environment in ``victoria-metrics-anomaly/values.yaml`` file.
Key Type Default Description
affinity object
{}

Affinity configurations

annotations object
{}

Annotations to be added to the deployment

config object
models: {}
preset: ""
reader:
    class: vm
    datasource_url: ""
    queries: {}
    sampling_period: 1m
    tenant_id: ""
schedulers: {}
writer:
    class: vm
    datasource_url: ""
    tenant_id: ""

Full vmanomaly config section

config.models object
{}

Models section

config.preset string
""

Whether to use preset configuration. If not empty, preset name should be specified.

config.reader object
class: vm
datasource_url: ""
queries: {}
sampling_period: 1m
tenant_id: ""

Reader section

config.reader.class string
vm

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

config.reader.datasource_url string
""

Datasource URL address. Required for example http://single-victoria-metrics-single-server.default.svc.cluster.local:8428 or http://cluster-victoria-metrics-cluster-vminsert.default.svc.cluster.local:8480

config.reader.queries object
{}

Required. PromQL/MetricsQL query to select data in format: QUERY_ALIAS: “QUERY”. As accepted by “/query_range?query=%s”. See here for more details.

config.reader.sampling_period string
1m

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

config.reader.tenant_id string
""

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

config.schedulers object
{}

Scheduler section

config.writer object
class: vm
datasource_url: ""
tenant_id: ""

Writer section

config.writer.class string
vm

Name of the class needed to enable writing to VictoriaMetrics or Prometheus. VmWriter is the default option, if not specified.

config.writer.datasource_url string
""

Datasource URL address. Required for example http://single-victoria-metrics-single-server.default.svc.cluster.local:8428 or http://cluster-victoria-metrics-cluster-vminsert.default.svc.cluster.local:8480

config.writer.tenant_id string
""

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

configMapAnnotations object
{}

Annotations to be added to configMap

containerWorkingDir string
/vmanomaly

Container working directory

emptyDir object
{}

Empty dir configuration when persistence is disabled

env list
[]

Additional environment variables (ex.: secret tokens, flags)

envFrom list
[]

Specify alternative source for env variables

extraArgs object
{}

Extra command line arguments for container of component

extraContainers list
[]

Extra containers to run in a pod with anomaly container

extraHostPathMounts list
[]

Additional hostPath mounts

extraVolumeMounts list
[]

Extra Volume Mounts for the container

extraVolumes list
[]

Extra Volumes for the pod

fullnameOverride string
""

Full name prefix override

global.compatibility object
openshift:
    adaptSecurityContext: auto

Openshift security context compatibility configuration

global.image.registry string
""

Image registry, that can be shared across multiple helm charts

global.imagePullSecrets list
[]

Image pull secrets, that can be shared across multiple helm charts

image.pullPolicy string
IfNotPresent

Pull policy of Docker image

image.registry string
""

Victoria Metrics anomaly Docker registry

image.repository string
victoriametrics/vmanomaly

Victoria Metrics anomaly Docker repository and image name

image.tag string
""

Tag of Docker image

imagePullSecrets list
[]

Image pull secrets

license object
key: ""
secret:
    key: ""
    name: ""

License key configuration for vmanomaly. See docs Required starting from v1.5.0.

license.key string
""

License key for vmanomaly

license.secret object
key: ""
name: ""

Use existing secret with license key for vmanomaly

license.secret.key string
""

Key in secret with license key

license.secret.name string
""

Existing secret name

nameOverride string
""

Full name suffix override

nodeSelector object
{}

NodeSelector configurations. Details are here

persistentVolume object
accessModes:
    - ReadWriteOnce
annotations: {}
dumpData: true
dumpModels: true
enabled: false
existingClaim: ""
matchLabels: {}
size: 1Gi
storageClassName: ""

Persistence to store models on disk. Available starting from v1.13.0

persistentVolume.accessModes list
- ReadWriteOnce

Array of access modes. Must match those of existing PV or dynamic provisioner. Details are here

persistentVolume.annotations object
{}

Persistant volume annotations

persistentVolume.dumpData bool
true

Enables dumpling data which is fetched from VictoriaMetrics to persistence disk. This is helpful to reduce memory usage.

persistentVolume.dumpModels bool
true

Enables dumping models to persistence disk. This is helpful to reduce memory usage.

persistentVolume.enabled bool
false

Create/use Persistent Volume Claim for models dump.

persistentVolume.existingClaim string
""

Existing Claim name. If defined, PVC must be created manually before volume will be bound

persistentVolume.matchLabels object
{}

Bind Persistent Volume by labels. Must match all labels of targeted PV.

persistentVolume.size string
1Gi

Size of the volume. Should be calculated based on the metrics you send and retention policy you set.

persistentVolume.storageClassName string
""

StorageClass to use for persistent volume. Requires server.persistentVolume.enabled: true. If defined, PVC created automatically

podAnnotations object
{}

Annotations to be added to pod

podDisruptionBudget object
enabled: false
labels: {}
minAvailable: 1

See kubectl explain poddisruptionbudget.spec for more. Details are here

podMonitor.annotations object
{}

PodMonitor annotations

podMonitor.enabled bool
false

Enable PodMonitor

podMonitor.extraLabels object
{}

PodMonitor labels

podSecurityContext object
enabled: true
fsGroup: 1000

Pod’s security context. Details are here

resources object
{}

Resource object. Details are here

securityContext object
enabled: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000

Check here for details.

serviceAccount.annotations object
{}

Annotations to add to the service account

serviceAccount.create bool
true

Specifies whether a service account should be created

serviceAccount.name string
null

The name of the service account to use. If not set and create is true, a name is generated using the fullname template

tolerations list
[]

Tolerations configurations. Details are here