Victoria Metrics Cluster version - high-performance, cost-effective and scalable TSDB, long-term remote storage for Prometheus
Install the follow packages: git
, kubectl
, helm
, helm-docs
. See this tutorial.
PV support on underlying infrastructure
Note: this chart installs VictoriaMetrics cluster components such as vminsert, vmselect and vmstorage. It doesn’t create or configure metrics scraping. If you are looking for a chart to configure monitoring stack in cluster check out victoria-metrics-k8s-stack chart.
Access a Kubernetes cluster.
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-cluster
chart available to installation:
helm search repo vm/victoria-metrics-cluster -l
victoria-metrics-cluster
chartExport default values of victoria-metrics-cluster
chart to file values.yaml
:
For HTTPS repository
helm show values vm/victoria-metrics-cluster > values.yaml
For OCI repository
helm show values oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster > 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 vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debug --dry-run
For OCI repository
helm install vmc oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster -f values.yaml -n NAMESPACE --debug --dry-run
Install chart with command:
For HTTPS repository
helm install vmc vm/victoria-metrics-cluster -f values.yaml -n NAMESPACE
For OCI repository
helm install vmc oci://ghcr.io/victoriametrics/helm-charts/victoria-metrics-cluster -f values.yaml -n NAMESPACE
Get the pods lists by running this commands:
kubectl get pods -A | grep 'vmc'
Get the application by running this command:
helm list -f vmc -n NAMESPACE
See the history of versions of vmc
application with command.
helm history vmc -n NAMESPACE
Remove application with command.
helm uninstall vmc -n NAMESPACE
Install helm-docs
following the instructions on this tutorial.
Generate docs with helm-docs
command.
cd charts/victoria-metrics-cluster
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.
The following tables lists the configurable parameters of the chart and their default values.
Change the values according to the need of the environment in victoria-metrics-cluster/values.yaml
file.
Key | Description |
---|---|
|
(bool) use SRV discovery for storageNode and selectNode flags for enterprise version |
|
(object) common for all components image configuration |
|
(list) Add extra specs dynamically to this chart |
|
(list) |
|
(object) k8s cluster domain suffix, uses for building storage pods’ FQDN. Details are here |
|
(object) Openshift security context compatibility configuration |
|
(string) Image registry, that can be shared across multiple helm charts |
|
(string) Image tag for all vm charts |
|
(list) Image pull secrets, that can be shared across multiple helm charts |
|
(object) Enterprise license key configuration for VictoriaMetrics enterprise. Required only for VictoriaMetrics enterprise. Check docs here, for more information, visit site. Request a trial license here Supported starting from VictoriaMetrics v1.94.0 |
|
(string) License key |
|
(object) Use existing secret with license key |
|
(string) Key in secret with license key |
|
(string) Existing secret name |
|
(string) Override chart name |
|
(bool) Print information after deployment |
|
(object) Service account annotations |
|
(bool) mount API token to pod directly |
|
(bool) Specifies whether a service account should be created |
|
(object) Service account labels |
|
(string) The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
|
(object) Pod affinity |
|
(object) VMAuth annotations |
|
(object) VMAuth configuration object. It’s possible to use given below predefined variables in config: * |
|
(string) VMAuth configuration secret name |
|
(string) Container workdir |
|
(bool) Enable deployment of vmauth component. With vmauth enabled please set |
|
(list) Additional environment variables (ex.: secret tokens, flags). Check here for details |
|
(list) Specify alternative source for env variables |
|
(object) Extra command line arguments for vmauth component |
|
(list) Extra containers to run in a pod with vmauth |
|
(object) VMAuth additional labels |
|
(list) Extra Volume Mounts for the container |
|
(list) Extra Volumes for the pod |
|
(string) Overrides the full name of vmauth component |
|
(object) Behavior settings for scaling by the HPA |
|
(bool) Use HPA for vmauth component |
|
(int) Maximum replicas for HPA to use to to scale the vmauth component |
|
(list) Metric for HPA to use to scale the vmauth component |
|
(int) Minimum replicas for HPA to use to scale the vmauth component |
|
(string) Image pull policy |
|
(string) Image registry |
|
(string) Image repository |
|
(string) Image tag override Chart.AppVersion |
|
(string) Variant of the image to use. e.g. cluster, enterprise-cluster |
|
(object) Ingress annotations |
|
(bool) Enable deployment of ingress for vmauth component |
|
(object) |
|
(list) Array of host objects |
|
(string) pathType is only for k8s >= 1.1= |
|
(list) Array of TLS objects |
|
(list) Init containers for vmauth |
|
(object) Specify pod lifecycle |
|
(string) Override default |
|
(object) Pod’s node selector. Details are here |
|
(object) Pod’s annotations |
|
(object) See |
|
(object) VMAuth pod labels |
|
(object) Pod’s security context. Details are here |
|
(string) VMAuth http port name |
|
(string) Name of Priority Class |
|
(object) VMAuth liveness probe |
|
(object) VMAuth readiness probe |
|
(object) VMAuth startup probe |
|
(int) Count of vmauth pods |
|
(object) Resource object |
|
(object) Pod’s security context. Details are here |
|
(object) Service annotations |
|
(string) Service ClusterIP |
|
(bool) Create VMAuth service |
|
(list) Service External IPs. Details are here |
|
(string) Service external traffic policy. Check here for details |
|
(list) Extra service ports |
|
(string) Health check node port for a service. Check here for details |
|
(list) List of service IP families. Check here for details. |
|
(string) Service IP family policy. Check here for details. |
|
(object) Service labels |
|
(string) Service load balancer IP |
|
(list) Load balancer source range |
|
(int) Service port |
|
(string) Target port |
|
(string) Service type |
|
(bool) Enable UDP port. used if you have |
|
(object) Service Monitor annotations |
|
(object) Basic auth params for Service Monitor |
|
(bool) Enable deployment of Service Monitor for vmauth component. This is Prometheus operator object |
|
(object) Service Monitor labels |
|
(list) Service Monitor metricRelabelings |
|
(string) Target namespace of ServiceMonitor manifest |
|
(list) Service Monitor relabelings |
|
(object) VMAuth Deployment strategy |
|
(bool) Suppress rendering |
|
(list) Array of tolerations object. Details are here |
|
(list) Pod topologySpreadConstraints |
|
(object) Pod affinity |
|
(object) StatefulSet/Deployment annotations |
|
(string) Container workdir |
|
(bool) Enable deployment of vminsert component. Deployment is used |
|
(list) Additional environment variables (ex.: secret tokens, flags). Check here for details. |
|
(list) Specify alternative source for env variables |
|
(list) IDs of vmstorage nodes to exclude from writing |
|
(object) Extra command line arguments for vminsert component |
|
(list) Extra containers to run in a pod with vminsert |
|
(object) StatefulSet/Deployment additional labels |
|
(list) Extra Volume Mounts for the container |
|
(list) Extra Volumes for the pod |
|
(string) Overrides the full name of vminsert component |
|
(object) Behavior settings for scaling by the HPA |
|
(bool) Use HPA for vminsert component |
|
(int) Maximum replicas for HPA to use to to scale the vminsert component |
|
(list) Metric for HPA to use to scale the vminsert component |
|
(int) Minimum replicas for HPA to use to scale the vminsert component |
|
(string) Image pull policy |
|
(string) Image registry |
|
(string) Image repository |
|
(string) Image tag override Chart.AppVersion |
|
(string) Variant of the image to use. e.g. cluster, enterprise-cluster |
|
(object) Ingress annotations |
|
(bool) Enable deployment of ingress for vminsert component |
|
(object) Ingress extra labels |
|
(list) Array of host objects |
|
(string) Ingress controller class name |
|
(string) Ingress path type |
|
(list) Array of TLS objects |
|
(list) Init containers for vminsert |
|
(object) Specify pod lifecycle |
|
(string) Override default |
|
(object) Pod’s node selector. Details are here |
|
(object) Pod’s annotations |
|
(object) See |
|
(object) Pod’s additional labels |
|
(object) Pod’s security context. Details are here |
|
(string) VMInsert http port name |
|
(string) Name of Priority Class |
|
(object) Readiness & Liveness probes |
|
(object) VMInsert liveness probe |
|
(object) VMInsert readiness probe |
|
(object) VMInsert startup probe |
|
(object) Relabel configuration |
|
(string) Use existing configmap if specified otherwise .config values will be used. Relabel config should reside under |
|
(int) Count of vminsert pods |
|
(object) Resource object. Details are here |
|
(object) Pod’s security context. Details are here |
|
(object) Service annotations |
|
(string) Service ClusterIP |
|
(bool) Create VMInsert service |
|
(list) Service external IPs. Details are here |
|
(string) Service external traffic policy. Check here for details |
|
(list) Extra service ports |
|
(string) Health check node port for a service. Check here for details |
|
(list) List of service IP families. Check here for details. |
|
(string) Service IP family policy. Check here for details. |
|
(object) Service labels |
|
(string) Service load balancer IP |
|
(list) Load balancer source range |
|
(int) Service port |
|
(string) Target port |
|
(string) Service type |
|
(bool) Enable UDP port. used if you have |
|
(object) Service Monitor annotations |
|
(object) Basic auth params for Service Monitor |
|
(bool) Enable deployment of Service Monitor for vminsert component. This is Prometheus operator object |
|
(object) Service Monitor labels |
|
(list) Service Monitor metricRelabelings |
|
(string) Target namespace of ServiceMonitor manifest |
|
(list) Service Monitor relabelings |
|
(object) VMInsert strategy |
|
(bool) Suppress rendering |
|
(int) |
|
(list) Array of tolerations object. Details are here |
|
(list) Pod topologySpreadConstraints |
|
(object) Pod affinity |
|
(object) StatefulSet/Deployment annotations |
|
(string) Cache root folder |
|
(string) Container workdir |
|
(object) K8s Deployment specific variables |
|
(object) VMSelect strategy |
|
(object) Empty dir configuration if persistence is disabled |
|
(bool) Enable deployment of vmselect component. Can be deployed as Deployment(default) or StatefulSet |
|
(list) Additional environment variables (ex.: secret tokens, flags). Check here for details. |
|
(list) Specify alternative source for env variables |
|
(object) Extra command line arguments for vmselect component |
|
(list) Extra containers to run in a pod with vmselect |
|
(list) Additional hostPath mounts |
|
(object) StatefulSet/Deployment additional labels |
|
(list) Extra Volume Mounts for the container |
|
(list) Extra Volumes for the pod |
|
(string) Overrides the full name of vmselect component |
|
(object) Behavior settings for scaling by the HPA |
|
(bool) Use HPA for vmselect component |
|
(int) Maximum replicas for HPA to use to to scale the vmselect component |
|
(list) Metric for HPA to use to scale the vmselect component |
|
(int) Minimum replicas for HPA to use to scale the vmselect component |
|
(string) Image pull policy |
|
(string) Image registry |
|
(string) Image repository |
|
(string) Image tag override Chart.AppVersion |
|
(string) Variant of the image to use. e.g. cluster, enterprise-cluster |
|
(object) Ingress annotations |
|
(bool) Enable deployment of ingress for vmselect component |
|
(object) Ingress extra labels |
|
(list) Array of host objects |
|
(string) Ingress controller class name |
|
(string) Ingress path type |
|
(list) Array of TLS objects |
|
(list) Init containers for vmselect |
|
(object) Specify pod lifecycle |
|
(string) vmselect mode: deployment, daemonSet |
|
(string) Override default |
|
(object) Pod’s node selector. Details are here |
|
(list) Array of access mode. Must match those of existing PV or dynamic provisioner. Details are here |
|
(object) Persistent volume annotations |
|
(bool) Create/use Persistent Volume Claim for vmselect component. Empty dir if false. If true, vmselect will create/use a Persistent Volume Claim |
|
(string) Existing Claim name. Requires vmselect.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound |
|
(object) Persistent volume labels |
|
(string) Size of the volume. Better to set the same as resource limit memory property |
|
(string) Mount subpath |
|
(object) Pod’s annotations |
|
(object) See |
|
(bool) See |
|
(object) Pod’s additional labels |
|
(object) Pod’s security context. Details are here |
|
(string) VMSelect http port name |
|
(string) Name of Priority Class |
|
(object) Readiness & Liveness probes |
|
(object) VMSelect liveness probe |
|
(object) VMSelect readiness probe |
|
(object) VMSelect startup probe |
|
(int) Count of vmselect pods |
|
(object) Resource object. Details are here |
|
(object) Pod’s security context. Details are here |
|
(object) Service annotations |
|
(string) Service ClusterIP |
|
(bool) Create VMSelect service |
|
(list) Service external IPs. Details are here |
|
(string) Service external traffic policy. Check here for details |
|
(list) Extra service ports |
|
(string) Health check node port for a service. Check here for details |
|
(list) List of service IP families. Check here for details. |
|
(string) Service IP family policy. Check here for details. |
|
(object) Service labels |
|
(string) Service load balancer IP |
|
(list) Load balancer source range |
|
(int) Service port |
|
(string) Target port |
|
(string) Service type |
|
(object) Service Monitor annotations |
|
(object) Basic auth params for Service Monitor |
|
(bool) Enable deployment of Service Monitor for vmselect component. This is Prometheus operator object |
|
(object) Service Monitor labels |
|
(list) Service Monitor metricRelabelings |
|
(string) Target namespace of ServiceMonitor manifest |
|
(list) Service Monitor relabelings |
|
(object) K8s StatefulSet specific variables |
|
(string) Deploy order policy for StatefulSet pods |
|
(bool) Suppress rendering |
|
(int) Pod’s termination grace period in seconds |
|
(list) Array of tolerations object. Details are here |
|
(list) Pod topologySpreadConstraints |
|
(object) Pod affinity |
|
(object) StatefulSet/Deployment annotations |
|
(string) Container workdir |
|
(object) Empty dir configuration if persistence is disabled |
|
(bool) Enable deployment of vmstorage component. StatefulSet is used |
|
(list) Additional environment variables (ex.: secret tokens, flags). Check here for details |
|
(list) Specify alternative source for env variables |
|
(object) Additional vmstorage container arguments. Extra command line arguments for vmstorage component |
|
(list) Extra containers to run in a pod with vmstorage |
|
(list) Additional hostPath mounts |
|
(object) StatefulSet/Deployment additional labels |
|
(list) Extra secret mounts for vmstorage |
|
(list) Extra Volume Mounts for the container |
|
(list) Extra Volumes for the pod |
|
(string) Overrides the full name of vmstorage component |
|
(object) Behavior settings for scaling by the HPA |
|
(bool) Use HPA for vmstorage component |
|
(int) Maximum replicas for HPA to use to to scale the vmstorage component |
|
(list) Metric for HPA to use to scale the vmstorage component |
|
(int) Minimum replicas for HPA to use to scale the vmstorage component |
|
(string) Image pull policy |
|
(string) Image registry |
|
(string) Image repository |
|
(string) Image tag override Chart.AppVersion |
|
(string) Variant of the image to use. e.g. cluster, enterprise-cluster |
|
(list) Init containers for vmstorage |
|
(object) Specify pod lifecycle |
|
(int) |
|
(string) Override default |
|
(object) Pod’s node selector. Details are here |
|
(list) Array of access modes. Must match those of existing PV or dynamic provisioner. Details are here |
|
(object) Persistent volume annotations |
|
(bool) Create/use Persistent Volume Claim for vmstorage component. Empty dir if false. If true, vmstorage will create/use a Persistent Volume Claim |
|
(string) Existing Claim name. Requires vmstorage.persistentVolume.enabled: true. If defined, PVC must be created manually before volume will be bound |
|
(object) Persistent volume labels |
|
(string) Data root path. Vmstorage data Persistent Volume mount root path |
|
(string) |
|
(string) Size of the volume. |
|
(string) Storage class name. Will be empty if not set |
|
(string) Mount subpath |
|
(object) Pod’s annotations |
|
(object) See |
|
(object) Pod’s additional labels |
|
(string) Deploy order policy for StatefulSet pods |
|
(object) Pod’s security context. Details are here |
|
(string) VMStorage http port name |
|
(string) Name of Priority Class |
|
(object) Readiness probes |
|
(object) VMStorage readiness probe |
|
(object) VMStorage startup probe |
|
(int) Count of vmstorage pods |
|
(object) Resource object. Details are here |
|
(int) Data retention period. Possible units character: h(ours), d(ays), w(eeks), y(ears), if no unit character specified - month. The minimum retention period is 24h. See these docs |
|
(string) Use an alternate scheduler, e.g. “stork”. Check here for details |
|
(object) Pod’s security context. Details are here |
|
(object) Service annotations |
|
(string) Service ClusterIP |
|
(bool) |
|
(string) Service external traffic policy. Check here for details |
|
(list) Extra service ports |
|
(string) Health check node port for a service. Check here for details |
|
(list) List of service IP families. Check here for details. |
|
(string) Service IP family policy. Check here for details. |
|
(object) Service labels |
|
(int) Service port |
|
(string) Service type |
|
(int) Port for accepting connections from vminsert |
|
(int) Port for accepting connections from vmselect |
|
(object) Service Monitor annotations |
|
(object) Basic auth params for Service Monitor |
|
(bool) Enable deployment of Service Monitor for vmstorage component. This is Prometheus operator object |
|
(object) Service Monitor labels |
|
(list) Service Monitor metricRelabelings |
|
(string) Target namespace of ServiceMonitor manifest |
|
(list) Service Monitor relabelings |
|
(int) Pod’s termination grace period in seconds |
|
(list) Array of tolerations object. Node tolerations for server scheduling to nodes with taints. Details are here |
|
(list) Pod topologySpreadConstraints |
|
(string) Backup destination at S3, GCS or local filesystem. Pod name will be included to path! |
|
(bool) Disable daily backups |
|
(bool) Disable hourly backups |
|
(bool) Disable monthly backups |
|
(bool) Disable weekly backups |
|
(bool) Enable automatic creation of backup via vmbackupmanager. vmbackupmanager is part of Enterprise packages |
|
(list) Additional environment variables (ex.: secret tokens, flags). Check here for details |
|
(object) Extra command line arguments for container of component |
|
(list) Extra secret mounts for vmbackupmanager |
|
(string) VMBackupManager image registry |
|
(string) VMBackupManager image repository |
|
(string) VMBackupManager image tag override Chart.AppVersion |
|
(string) Variant of the image tag to use. e.g. enterprise. |
|
(object) Readiness & Liveness probes |
|
(object) VMBackupManager liveness probe |
|
(object) VMBackupManager readiness probe |
|
(object) VMBackupManager startup probe |
|
(object) Resource object. Details are here |
|
(object) Allows to enable restore options for pod. Check here for details |
|
(object) Backups’ retention settings |
|
(int) Keep last N daily backups. 0 means delete all existing daily backups. Specify -1 to turn off |
|
(int) Keep last N hourly backups. 0 means delete all existing hourly backups. Specify -1 to turn off |
|
(int) Keep last N monthly backups. 0 means delete all existing monthly backups. Specify -1 to turn off |
|
(int) Keep last N weekly backups. 0 means delete all existing weekly backups. Specify -1 to turn off |