Victoria Metrics Agent - collects metrics from various sources and stores them to VictoriaMetrics
- Install the follow packages:
git
,kubectl
,helm
,helm-docs
. See this tutorial.
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-agent
chart available to installation:
helm search repo vm/victoria-metrics-agent -l
Export default values of victoria-metrics-agent
chart to file values.yaml
:
helm show values vm/victoria-metrics-agent > values.yaml
Change the values according to the need of the environment in values.yaml
file.
Test the installation with command:
helm install vmagent vm/victoria-metrics-agent -f values.yaml -n NAMESPACE --debug --dry-run
Install chart with command:
helm install vmagent vm/victoria-metrics-agent -f values.yaml -n NAMESPACE
Get the pods lists by running this commands:
kubectl get pods -A | grep 'agent'
Get the application by running this command:
helm list -f vmagent -n NAMESPACE
See the history of versions of vmagent
application with command.
helm history vmagent -n NAMESPACE
Remove application with command.
helm uninstall vmagent -n NAMESPACE
Install helm-docs
following the instructions on this tutorial.
Generate docs with helm-docs
command.
cd charts/victoria-metrics-agent
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-agent/values.yaml
file.
Key | Type | Default | Description |
---|---|---|---|
affinity | object | {} |
|
annotations | object | {} |
|
config.global.scrape_interval | string | "10s" |
|
config.scrape_configs[0].job_name | string | "vmagent" |
|
config.scrape_configs[0].static_configs[0].targets[0] | string | "localhost:8429" |
|
config.scrape_configs[1].bearer_token_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/token" |
|
config.scrape_configs[1].job_name | string | "kubernetes-apiservers" |
|
config.scrape_configs[1].kubernetes_sd_configs[0].role | string | "endpoints" |
|
config.scrape_configs[1].relabel_configs[0].action | string | "keep" |
|
config.scrape_configs[1].relabel_configs[0].regex | string | "default;kubernetes;https" |
|
config.scrape_configs[1].relabel_configs[0].source_labels[0] | string | "__meta_kubernetes_namespace" |
|
config.scrape_configs[1].relabel_configs[0].source_labels[1] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[1].relabel_configs[0].source_labels[2] | string | "__meta_kubernetes_endpoint_port_name" |
|
config.scrape_configs[1].scheme | string | "https" |
|
config.scrape_configs[1].tls_config.ca_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" |
|
config.scrape_configs[1].tls_config.insecure_skip_verify | bool | true |
|
config.scrape_configs[2].bearer_token_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/token" |
|
config.scrape_configs[2].job_name | string | "kubernetes-nodes" |
|
config.scrape_configs[2].kubernetes_sd_configs[0].role | string | "node" |
|
config.scrape_configs[2].relabel_configs[0].action | string | "labelmap" |
|
config.scrape_configs[2].relabel_configs[0].regex | string | "__meta_kubernetes_node_label_(.+)" |
|
config.scrape_configs[2].relabel_configs[1].replacement | string | "kubernetes.default.svc:443" |
|
config.scrape_configs[2].relabel_configs[1].target_label | string | "__address__" |
|
config.scrape_configs[2].relabel_configs[2].regex | string | "(.+)" |
|
config.scrape_configs[2].relabel_configs[2].replacement | string | "/api/v1/nodes/$1/proxy/metrics" |
|
config.scrape_configs[2].relabel_configs[2].source_labels[0] | string | "__meta_kubernetes_node_name" |
|
config.scrape_configs[2].relabel_configs[2].target_label | string | "__metrics_path__" |
|
config.scrape_configs[2].scheme | string | "https" |
|
config.scrape_configs[2].tls_config.ca_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" |
|
config.scrape_configs[2].tls_config.insecure_skip_verify | bool | true |
|
config.scrape_configs[3].bearer_token_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/token" |
|
config.scrape_configs[3].honor_timestamps | bool | false |
|
config.scrape_configs[3].job_name | string | "kubernetes-nodes-cadvisor" |
|
config.scrape_configs[3].kubernetes_sd_configs[0].role | string | "node" |
|
config.scrape_configs[3].relabel_configs[0].action | string | "labelmap" |
|
config.scrape_configs[3].relabel_configs[0].regex | string | "__meta_kubernetes_node_label_(.+)" |
|
config.scrape_configs[3].relabel_configs[1].replacement | string | "kubernetes.default.svc:443" |
|
config.scrape_configs[3].relabel_configs[1].target_label | string | "__address__" |
|
config.scrape_configs[3].relabel_configs[2].regex | string | "(.+)" |
|
config.scrape_configs[3].relabel_configs[2].replacement | string | "/api/v1/nodes/$1/proxy/metrics/cadvisor" |
|
config.scrape_configs[3].relabel_configs[2].source_labels[0] | string | "__meta_kubernetes_node_name" |
|
config.scrape_configs[3].relabel_configs[2].target_label | string | "__metrics_path__" |
|
config.scrape_configs[3].scheme | string | "https" |
|
config.scrape_configs[3].tls_config.ca_file | string | "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt" |
|
config.scrape_configs[3].tls_config.insecure_skip_verify | bool | true |
|
config.scrape_configs[4].job_name | string | "kubernetes-service-endpoints" |
|
config.scrape_configs[4].kubernetes_sd_configs[0].role | string | "endpointslices" |
|
config.scrape_configs[4].relabel_configs[0].action | string | "drop" |
|
config.scrape_configs[4].relabel_configs[0].regex | bool | true |
|
config.scrape_configs[4].relabel_configs[0].source_labels[0] | string | "__meta_kubernetes_pod_container_init" |
|
config.scrape_configs[4].relabel_configs[10].source_labels[0] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[4].relabel_configs[10].target_label | string | "service" |
|
config.scrape_configs[4].relabel_configs[11].replacement | string | "${1}" |
|
config.scrape_configs[4].relabel_configs[11].source_labels[0] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[4].relabel_configs[11].target_label | string | "job" |
|
config.scrape_configs[4].relabel_configs[12].action | string | "replace" |
|
config.scrape_configs[4].relabel_configs[12].source_labels[0] | string | "__meta_kubernetes_pod_node_name" |
|
config.scrape_configs[4].relabel_configs[12].target_label | string | "node" |
|
config.scrape_configs[4].relabel_configs[1].action | string | "keep_if_equal" |
|
config.scrape_configs[4].relabel_configs[1].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_port" |
|
config.scrape_configs[4].relabel_configs[1].source_labels[1] | string | "__meta_kubernetes_pod_container_port_number" |
|
config.scrape_configs[4].relabel_configs[2].action | string | "keep" |
|
config.scrape_configs[4].relabel_configs[2].regex | bool | true |
|
config.scrape_configs[4].relabel_configs[2].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_scrape" |
|
config.scrape_configs[4].relabel_configs[3].action | string | "replace" |
|
config.scrape_configs[4].relabel_configs[3].regex | string | "(https?)" |
|
config.scrape_configs[4].relabel_configs[3].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_scheme" |
|
config.scrape_configs[4].relabel_configs[3].target_label | string | "__scheme__" |
|
config.scrape_configs[4].relabel_configs[4].action | string | "replace" |
|
config.scrape_configs[4].relabel_configs[4].regex | string | "(.+)" |
|
config.scrape_configs[4].relabel_configs[4].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_path" |
|
config.scrape_configs[4].relabel_configs[4].target_label | string | "__metrics_path__" |
|
config.scrape_configs[4].relabel_configs[5].action | string | "replace" |
|
config.scrape_configs[4].relabel_configs[5].regex | string | "([^:]+)(?::\\d+)?;(\\d+)" |
|
config.scrape_configs[4].relabel_configs[5].replacement | string | "$1:$2" |
|
config.scrape_configs[4].relabel_configs[5].source_labels[0] | string | "__address__" |
|
config.scrape_configs[4].relabel_configs[5].source_labels[1] | string | "__meta_kubernetes_service_annotation_prometheus_io_port" |
|
config.scrape_configs[4].relabel_configs[5].target_label | string | "__address__" |
|
config.scrape_configs[4].relabel_configs[6].action | string | "labelmap" |
|
config.scrape_configs[4].relabel_configs[6].regex | string | "__meta_kubernetes_service_label_(.+)" |
|
config.scrape_configs[4].relabel_configs[7].source_labels[0] | string | "__meta_kubernetes_pod_name" |
|
config.scrape_configs[4].relabel_configs[7].target_label | string | "pod" |
|
config.scrape_configs[4].relabel_configs[8].source_labels[0] | string | "__meta_kubernetes_pod_container_name" |
|
config.scrape_configs[4].relabel_configs[8].target_label | string | "container" |
|
config.scrape_configs[4].relabel_configs[9].source_labels[0] | string | "__meta_kubernetes_namespace" |
|
config.scrape_configs[4].relabel_configs[9].target_label | string | "namespace" |
|
config.scrape_configs[5].job_name | string | "kubernetes-service-endpoints-slow" |
|
config.scrape_configs[5].kubernetes_sd_configs[0].role | string | "endpointslices" |
|
config.scrape_configs[5].relabel_configs[0].action | string | "drop" |
|
config.scrape_configs[5].relabel_configs[0].regex | bool | true |
|
config.scrape_configs[5].relabel_configs[0].source_labels[0] | string | "__meta_kubernetes_pod_container_init" |
|
config.scrape_configs[5].relabel_configs[10].source_labels[0] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[5].relabel_configs[10].target_label | string | "service" |
|
config.scrape_configs[5].relabel_configs[11].replacement | string | "${1}" |
|
config.scrape_configs[5].relabel_configs[11].source_labels[0] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[5].relabel_configs[11].target_label | string | "job" |
|
config.scrape_configs[5].relabel_configs[12].action | string | "replace" |
|
config.scrape_configs[5].relabel_configs[12].source_labels[0] | string | "__meta_kubernetes_pod_node_name" |
|
config.scrape_configs[5].relabel_configs[12].target_label | string | "node" |
|
config.scrape_configs[5].relabel_configs[1].action | string | "keep_if_equal" |
|
config.scrape_configs[5].relabel_configs[1].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_port" |
|
config.scrape_configs[5].relabel_configs[1].source_labels[1] | string | "__meta_kubernetes_pod_container_port_number" |
|
config.scrape_configs[5].relabel_configs[2].action | string | "keep" |
|
config.scrape_configs[5].relabel_configs[2].regex | bool | true |
|
config.scrape_configs[5].relabel_configs[2].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_scrape_slow" |
|
config.scrape_configs[5].relabel_configs[3].action | string | "replace" |
|
config.scrape_configs[5].relabel_configs[3].regex | string | "(https?)" |
|
config.scrape_configs[5].relabel_configs[3].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_scheme" |
|
config.scrape_configs[5].relabel_configs[3].target_label | string | "__scheme__" |
|
config.scrape_configs[5].relabel_configs[4].action | string | "replace" |
|
config.scrape_configs[5].relabel_configs[4].regex | string | "(.+)" |
|
config.scrape_configs[5].relabel_configs[4].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_path" |
|
config.scrape_configs[5].relabel_configs[4].target_label | string | "__metrics_path__" |
|
config.scrape_configs[5].relabel_configs[5].action | string | "replace" |
|
config.scrape_configs[5].relabel_configs[5].regex | string | "([^:]+)(?::\\d+)?;(\\d+)" |
|
config.scrape_configs[5].relabel_configs[5].replacement | string | "$1:$2" |
|
config.scrape_configs[5].relabel_configs[5].source_labels[0] | string | "__address__" |
|
config.scrape_configs[5].relabel_configs[5].source_labels[1] | string | "__meta_kubernetes_service_annotation_prometheus_io_port" |
|
config.scrape_configs[5].relabel_configs[5].target_label | string | "__address__" |
|
config.scrape_configs[5].relabel_configs[6].action | string | "labelmap" |
|
config.scrape_configs[5].relabel_configs[6].regex | string | "__meta_kubernetes_service_label_(.+)" |
|
config.scrape_configs[5].relabel_configs[7].source_labels[0] | string | "__meta_kubernetes_pod_name" |
|
config.scrape_configs[5].relabel_configs[7].target_label | string | "pod" |
|
config.scrape_configs[5].relabel_configs[8].source_labels[0] | string | "__meta_kubernetes_pod_container_name" |
|
config.scrape_configs[5].relabel_configs[8].target_label | string | "container" |
|
config.scrape_configs[5].relabel_configs[9].source_labels[0] | string | "__meta_kubernetes_namespace" |
|
config.scrape_configs[5].relabel_configs[9].target_label | string | "namespace" |
|
config.scrape_configs[5].scrape_interval | string | "5m" |
|
config.scrape_configs[5].scrape_timeout | string | "30s" |
|
config.scrape_configs[6].job_name | string | "kubernetes-services" |
|
config.scrape_configs[6].kubernetes_sd_configs[0].role | string | "service" |
|
config.scrape_configs[6].metrics_path | string | "/probe" |
|
config.scrape_configs[6].params.module[0] | string | "http_2xx" |
|
config.scrape_configs[6].relabel_configs[0].action | string | "keep" |
|
config.scrape_configs[6].relabel_configs[0].regex | bool | true |
|
config.scrape_configs[6].relabel_configs[0].source_labels[0] | string | "__meta_kubernetes_service_annotation_prometheus_io_probe" |
|
config.scrape_configs[6].relabel_configs[1].source_labels[0] | string | "__address__" |
|
config.scrape_configs[6].relabel_configs[1].target_label | string | "__param_target" |
|
config.scrape_configs[6].relabel_configs[2].replacement | string | "blackbox" |
|
config.scrape_configs[6].relabel_configs[2].target_label | string | "__address__" |
|
config.scrape_configs[6].relabel_configs[3].source_labels[0] | string | "__param_target" |
|
config.scrape_configs[6].relabel_configs[3].target_label | string | "instance" |
|
config.scrape_configs[6].relabel_configs[4].action | string | "labelmap" |
|
config.scrape_configs[6].relabel_configs[4].regex | string | "__meta_kubernetes_service_label_(.+)" |
|
config.scrape_configs[6].relabel_configs[5].source_labels[0] | string | "__meta_kubernetes_namespace" |
|
config.scrape_configs[6].relabel_configs[5].target_label | string | "namespace" |
|
config.scrape_configs[6].relabel_configs[6].source_labels[0] | string | "__meta_kubernetes_service_name" |
|
config.scrape_configs[6].relabel_configs[6].target_label | string | "service" |
|
config.scrape_configs[7].job_name | string | "kubernetes-pods" |
|
config.scrape_configs[7].kubernetes_sd_configs[0].role | string | "pod" |
|
config.scrape_configs[7].relabel_configs[0].action | string | "drop" |
|
config.scrape_configs[7].relabel_configs[0].regex | bool | true |
|
config.scrape_configs[7].relabel_configs[0].source_labels[0] | string | "__meta_kubernetes_pod_container_init" |
|
config.scrape_configs[7].relabel_configs[1].action | string | "keep_if_equal" |
|
config.scrape_configs[7].relabel_configs[1].source_labels[0] | string | "__meta_kubernetes_pod_annotation_prometheus_io_port" |
|
config.scrape_configs[7].relabel_configs[1].source_labels[1] | string | "__meta_kubernetes_pod_container_port_number" |
|
config.scrape_configs[7].relabel_configs[2].action | string | "keep" |
|
config.scrape_configs[7].relabel_configs[2].regex | bool | true |
|
config.scrape_configs[7].relabel_configs[2].source_labels[0] | string | "__meta_kubernetes_pod_annotation_prometheus_io_scrape" |
|
config.scrape_configs[7].relabel_configs[3].action | string | "replace" |
|
config.scrape_configs[7].relabel_configs[3].regex | string | "(.+)" |
|
config.scrape_configs[7].relabel_configs[3].source_labels[0] | string | "__meta_kubernetes_pod_annotation_prometheus_io_path" |
|
config.scrape_configs[7].relabel_configs[3].target_label | string | "__metrics_path__" |
|
config.scrape_configs[7].relabel_configs[4].action | string | "replace" |
|
config.scrape_configs[7].relabel_configs[4].regex | string | "([^:]+)(?::\\d+)?;(\\d+)" |
|
config.scrape_configs[7].relabel_configs[4].replacement | string | "$1:$2" |
|
config.scrape_configs[7].relabel_configs[4].source_labels[0] | string | "__address__" |
|
config.scrape_configs[7].relabel_configs[4].source_labels[1] | string | "__meta_kubernetes_pod_annotation_prometheus_io_port" |
|
config.scrape_configs[7].relabel_configs[4].target_label | string | "__address__" |
|
config.scrape_configs[7].relabel_configs[5].action | string | "labelmap" |
|
config.scrape_configs[7].relabel_configs[5].regex | string | "__meta_kubernetes_pod_label_(.+)" |
|
config.scrape_configs[7].relabel_configs[6].source_labels[0] | string | "__meta_kubernetes_pod_name" |
|
config.scrape_configs[7].relabel_configs[6].target_label | string | "pod" |
|
config.scrape_configs[7].relabel_configs[7].source_labels[0] | string | "__meta_kubernetes_pod_container_name" |
|
config.scrape_configs[7].relabel_configs[7].target_label | string | "container" |
|
config.scrape_configs[7].relabel_configs[8].source_labels[0] | string | "__meta_kubernetes_namespace" |
|
config.scrape_configs[7].relabel_configs[8].target_label | string | "namespace" |
|
config.scrape_configs[7].relabel_configs[9].action | string | "replace" |
|
config.scrape_configs[7].relabel_configs[9].source_labels[0] | string | "__meta_kubernetes_pod_node_name" |
|
config.scrape_configs[7].relabel_configs[9].target_label | string | "node" |
|
configMap | string | "" |
|
containerWorkingDir | string | "/" |
|
deployment.enabled | bool | true |
|
deployment.strategy | object | {} |
|
env | list | [] |
Additional environment variables (ex.: secret tokens, flags) https://github.com/VictoriaMetrics/VictoriaMetrics#environment-variables |
extraArgs."envflag.enable" | string | "true" |
|
extraArgs."envflag.prefix" | string | "VM_" |
|
extraArgs.loggerFormat | string | "json" |
|
extraContainers | list | [] |
|
extraHostPathMounts | list | [] |
|
extraLabels | object | {} |
|
extraObjects | list | [] |
|
extraScrapeConfigs | list | [] |
Extra scrape configs that will be appended to config |
extraVolumeMounts | list | [] |
|
extraVolumes | list | [] |
|
fullnameOverride | string | "" |
|
image.pullPolicy | string | "IfNotPresent" |
|
image.repository | string | "victoriametrics/vmagent" |
|
image.tag | string | "" |
|
imagePullSecrets | list | [] |
|
ingress.annotations | object | {} |
|
ingress.enabled | bool | false |
|
ingress.extraLabels | object | {} |
|
ingress.hosts | list | [] |
|
ingress.pathType | string | "Prefix" |
pathType is only for k8s >= 1.1= |
ingress.tls | list | [] |
|
license | object | {"key":"","secret":{"key":"","name":""}} |
Enterprise license key configuration for VictoriaMetrics enterprise. Required only for VictoriaMetrics enterprise. Documentation - https://docs.victoriametrics.com/enterprise.html, for more information, visit https://victoriametrics.com/products/enterprise/ . To request a trial license, go to https://victoriametrics.com/products/enterprise/trial/ Supported starting from VictoriaMetrics v1.94.0 |
license.key | string | "" |
License key |
license.secret | object | {"key":"","name":""} |
Use existing secret with license key |
license.secret.key | string | "" |
Key in secret with license key |
license.secret.name | string | "" |
Existing secret name |
multiTenantUrls | list | [] |
|
nameOverride | string | "" |
|
nodeSelector | object | {} |
|
persistence.accessModes[0] | string | "ReadWriteOnce" |
|
persistence.annotations | object | {} |
|
persistence.enabled | bool | false |
|
persistence.existingClaim | string | "" |
|
persistence.extraLabels | object | {} |
|
persistence.matchLabels | object | {} |
Bind Persistent Volume by labels. Must match all labels of targeted PV. |
persistence.size | string | "10Gi" |
|
podAnnotations | object | {} |
|
podDisruptionBudget.enabled | bool | false |
|
podDisruptionBudget.labels | object | {} |
|
podLabels | object | {} |
|
podSecurityContext | object | {} |
|
priorityClassName | string | "" |
priority class to be assigned to the pod(s) |
rbac.annotations | object | {} |
|
rbac.create | bool | true |
|
rbac.extraLabels | object | {} |
|
rbac.namespaced | bool | false |
if true and rbac.enabled , will deploy a Role/Rolebinding instead of a ClusterRole/ClusterRoleBinding |
rbac.pspEnabled | bool | true |
|
remoteWriteUrls | list | [] |
|
replicaCount | int | 1 |
|
resources | object | {} |
|
securityContext | object | {} |
|
service.annotations | object | {} |
|
service.clusterIP | string | "" |
|
service.enabled | bool | false |
|
service.externalIPs | list | [] |
|
service.extraLabels | object | {} |
|
service.loadBalancerIP | string | "" |
|
service.loadBalancerSourceRanges | list | [] |
|
service.servicePort | int | 8429 |
|
service.type | string | "ClusterIP" |
|
serviceAccount.annotations | object | {} |
|
serviceAccount.create | bool | true |
|
serviceAccount.name | string | nil |
|
serviceMonitor.annotations | object | {} |
|
serviceMonitor.enabled | bool | false |
|
serviceMonitor.extraLabels | object | {} |
|
serviceMonitor.relabelings | list | [] |
|
statefulset.clusterMode | bool | false |
create cluster of vmagents. See https://docs.victoriametrics.com/vmagent.html#scraping-big-number-of-targets available since 1.77.2 version https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.77.2 |
statefulset.enabled | bool | false |
|
statefulset.replicationFactor | int | 1 |
replication factor for vmagent in cluster mode |
statefulset.updateStrategy | object | {} |
|
tolerations | list | [] |
|
topologySpreadConstraints | list | [] |