Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action Signed-off-by: Github Actions <133988544+victoriametrics-bot@users.noreply.github.com> Co-authored-by: AndrewChubatiuk <3162380+AndrewChubatiuk@users.noreply.github.com>
18 KiB
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. -
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:
helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update
List versions of vm/victoria-metrics-anomaly
chart available to installation:
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
helm show values vm/victoria-metrics-anomaly > values.yaml
-
For OCI repository
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
helm install vma vm/victoria-metrics-anomaly -f values.yaml -n NAMESPACE --debug --dry-run
-
For OCI repository
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
helm install vma vm/victoria-metrics-anomaly -f values.yaml -n NAMESPACE
-
For OCI repository
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:
kubectl get pods -A | grep 'vma'
Get the application by running this command:
helm list -f vma -n NAMESPACE
See the history of versions of vma
application with command.
helm history vma -n NAMESPACE
How to uninstall
Remove application with command.
helm uninstall vma -n NAMESPACE
Documentation of Helm Chart
Install helm-docs
following the instructions on this tutorial.
Generate docs with helm-docs
command.
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: ""
|
|
config.models | object | {}
|
|
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: ""
|
|
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 |
config.reader.queries | object | {}
|
Required. PromQL/MetricsQL query to select data in format: QUERY_ALIAS: “QUERY”. As accepted by “/query_range?query=%s”. See https://docs.victoriametrics.com/anomaly-detection/components/reader/#per-query-parameters for more details. |
config.reader.sampling_period | string | 1m |
Frequency of the points returned. Will be converted to |
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 | {}
|
|
config.writer | object | class: vm
datasource_url: ""
tenant_id: ""
|
|
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 |
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 |
|
emptyDir | object | {}
|
|
env | list | []
|
Additional environment variables (ex.: secret tokens, flags) |
envFrom | list | []
|
|
extraArgs | object | {}
|
|
extraContainers | list | []
|
|
extraHostPathMounts | list | []
|
Additional hostPath mounts |
extraVolumeMounts | list | []
|
Extra Volume Mounts for the container |
extraVolumes | list | []
|
Extra Volumes for the pod |
fullnameOverride | string | "" |
|
global.compatibility.openshift.adaptSecurityContext | string | auto |
|
global.image.registry | string | "" |
|
global.imagePullSecrets | list | []
|
|
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 | v1.15.9 |
Tag of Docker image |
imagePullSecrets | list | []
|
|
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 | "" |
|
nodeSelector | object | {}
|
NodeSelector configurations. Details are here |
persistentVolume | object | accessModes:
- ReadWriteOnce
annotations: {}
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.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 |
podMonitor.annotations | object | {}
|
|
podMonitor.enabled | bool | false |
|
podMonitor.extraLabels | object | {}
|
|
podSecurityContext.enabled | bool | true |
|
resources | object | {}
|
|
securityContext | object | enabled: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
|
Ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ |
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 |