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>
24 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 |
|
|
config.models | object |
|
|
config.preset | string |
|
Whether to use preset configuration. If not empty, preset name should be specified. |
config.reader | object |
|
|
config.reader.class | string |
|
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 here for more details. |
config.reader.sampling_period | string |
|
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 |
|
|
config.writer.class | string |
|
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 |
|
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 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 |
|
Pull policy of Docker image |
image.registry | string |
|
Victoria Metrics anomaly Docker registry |
image.repository | string |
|
Victoria Metrics anomaly Docker repository and image name |
image.tag | string |
|
Tag of Docker image |
imagePullSecrets | list |
|
Image pull secrets |
license | object |
|
License key configuration for vmanomaly. See docs Required starting from v1.5.0. |
license.key | string |
|
License key for vmanomaly |
license.secret | object |
|
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 |
|
Persistence to store models on disk. Available starting from v1.13.0 |
persistentVolume.accessModes | list |
|
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 |
|
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 |
|
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 |
|
See |
podMonitor.annotations | object |
|
PodMonitor annotations |
podMonitor.enabled | bool |
|
Enable PodMonitor |
podMonitor.extraLabels | object |
|
PodMonitor labels |
podSecurityContext | object |
|
Pod’s security context. Details are here |
resources | object |
|
Resource object. Details are here |
securityContext | object |
|
Check here for details. |
serviceAccount.annotations | object |
|
Annotations to add to the service account |
serviceAccount.create | bool |
|
Specifies whether a service account should be created |
serviceAccount.name | string |
|
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 |