VMAgent
vmagent¶
| Field | Description | Scheme |
|---|---|---|
| install | Allows to enable or disable deploy vmagent. | boolean |
| image | A Docker image to deploy the vmagent. | string |
| resources | The resources that describe the compute resource requests and limits for single pods. | v1.ResourceRequirements |
| securityContext | SecurityContext holds pod-level security attributes. Default for Kubernetes, securityContext:{ runAsUser: 2000, fsGroup: 2000 }. |
*v1.PodSecurityContext |
| containers | Containers property allows to inject additions sidecars or to patch existing containers. It can be useful for proxies, backup, etc. | []v1.Container |
| paused | Set paused to reconciliation for vmagent | boolean |
| tolerations | Tolerations allow the pods to schedule onto nodes with matching taints. | []v1.Toleration |
| nodeSelector | Defines which nodes the pods are scheduled on. Specified just as map[string]string. For example: \"type: compute\" | map[string]string |
| affinity | If specified, the pod's scheduling constraints | *v1.Affinity |
| labels | Map of string keys and values that can be used to organize and categorize (scope and select) objects. Specified just as map[string]string. For example: "label-key: label-value" | map[string]string |
| annotations | Map of string keys and values stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. Specified just as map[string]string. For example: "annotations-key: annotation-value" | map[string]string |
| ingress | Ingress allows to create Ingress for the vmagent UI. | *Ingress |
| scrapeInterval | Defines how often scrape targets by default. | string |
| additionalScrape | The additionalScrape allows you to monitor hosts outside the cloud (balancers, graylog server, jenkins...) | *v1.SecretKeySelector, Victoria Metrics Config |
| vmAgentExternalLabelName | Name of vmAgent external label used to denote VmAgent instance name. Defaults to the value of vmagent. External label will not be added when value is set to empty string (""). |
string |
| externalLabels | The labels to add to any time series scraped by vmagent. It doesn't affect metrics ingested directly by push API's | map[string]string |
| remoteWriteSettings | Defines global settings for all remoteWrite urls. For more information, refer to https://docs.victoriametrics.com/vmagent.html | *v1beta1.VMAgentRemoteWriteSettings |
| remoteWriteSettings.maxDiskUsagePerURL | The maximum file-based buffer size in bytes at -remoteWrite.tmpDataPath for each -remoteWrite.url. Disk usage is unlimited if the value is set to 0. For more information, refer to https://docs.victoriametrics.com/vmagent.html | string |
| remoteWriteSettings.showURL | Whether to show -remoteWrite.url in the exported metrics. It is hidden by default, since it can contain sensitive auth info | string |
| remoteWriteSettings.label | Optional labels in the form 'name=value' to add to all the metrics before sending them | string |
| remoteWrite | RemoteWriteSpec defines the remote_write configuration for vmagent. The remote_write allows to transparently send samples to a long term storage. For more information, refer to https://docs.victoriametrics.com/vmagent.html |
[]v1beta1.VMAgentRemoteWriteSpec |
| remoteWrite.url | URL of the endpoint to send samples to. | string |
| remoteWrite.basicAuth | Allow an endpoint to authenticate over basic authentication. | *v1beta1.BasicAuth |
| remoteWrite.basicAuth.createSecret | Allow create secret for basic authentification automatically. | map[string]string |
| remoteWrite.basicAuth.createSecret.secretName | Name of the secret with which will be created. | string |
| remoteWrite.basicAuth.createSecret.username | Username for basic authentification. | string |
| remoteWrite.basicAuth.createSecret.password | Password for basic authentification. | string |
| remoteWrite.bearerTokenSecret | Optional bearer auth token to use for -remoteWrite.url. | *v1.SecretKeySelector |
| remoteWrite.oauth2 | Defines auth configuration. | *v1beta1.OAuth2 |
| remoteWrite.tlsConfig | Describes tls configuration for remote write target. | *v1beta1.OAuth2 |
| remoteWrite.urlRelabelConfig | ConfigMap with relabeling config which is applied to metrics before sending them to the corresponding -remoteWrite.url https://github.com/cybozu-go/VictoriaMetrics-operator/blob/master/docs/relabeling.MD | *v1.ConfigMapKeySelector |
| remoteWrite.inlineUrlRelabelConfig | Defines relabeling config for remoteWriteURL, it can be defined at crd spec. https://github.com/cybozu-go/VictoriaMetrics-operator/blob/master/docs/relabeling.MD | []RelabelConfig |
| urlRelabelConfig | ConfigMap with global relabel config -remoteWrite.relabelConfig. This relabeling is applied to all the collected metrics before sending them to remote storage. https://github.com/cybozu-go/VictoriaMetrics-operator/blob/master/docs/relabeling.MD | *v1.ConfigMapKeySelector |
| inlineUrlRelabelConfig | Defines GlobalRelabelConfig for vmagent, can be defined directly at CRD. https://github.com/cybozu-go/VictoriaMetrics-operator/blob/master/docs/relabeling.MD | []RelabelConfig |
| podMonitorNamespaceSelector | Defines Namespaces to be selected for VMPodScrape discovery. | *metav1.LabelSelector |
| serviceMonitorNamespaceSelector | Defines Namespaces to be selected for VMServiceScrape discovery. | *metav1.LabelSelector |
| podMonitorSelector | Defines PodScrapes to be selected for target discovery. | *metav1.LabelSelector |
| serviceMonitorSelector | Defines ServiceScrapes to be selected for target discovery. | *metav1.LabelSelector |
| extraArgs | List of key-value with additional arguments which will be passed to VMAgent pod https://docs.victoriametrics.com/#list-of-command-line-flags | map[string]string |
| extraEnvs | Allow to set extra system environment variables for vmagent. | []v1.EnvVar |
| secrets | Secrets is a list of Secrets in the same namespace as the VMSingle object, which shall be mounted into the vmagent pods | []string |
| volumes | Volumes allows configuration of additional volumes on the output deploy definition. Volumes specified will be appended to other volumes that are generated as a result of StorageSpec objects | []v1.Volume |
| volumeMounts | VolumeMounts allows configuration of additional VolumeMounts on the output deploy definition. VolumeMounts specified will be appended to other VolumeMounts in the vmsingle container that are generated as a result of StorageSpec objects | []v1.VolumeMount |
| maxScrapeInterval | MaxScrapeInterval allows limiting maximum scrape interval for VMServiceScrape, VMPodScrape and other scrapes | string |
| minScrapeInterval | MinScrapeInterval allows limiting minimal scrape interval for VMServiceScrape, VMPodScrape and other scrapes | string |
| priorityClassName | PriorityClassName assigned to the Pods to prevent them from evicting | string |
| tlsConfig | TLS configuration for VMAgent. Must be specified if victoriametrics.tlsEnabled is set to true |
TLSConfig |
Example:
vmAgent:
install: true
route:
install: true
host: vmagent.test.org
logLevel: WARN
serviceMonitor:
interval: 29s
scrapeTimeout: 9s
extraArgs:
loggerFormat: default
remoteWriteSettings:
label:
project: development
environment: qa-kuber-test
cluster: qa-kuber-test
team: test_team-test
showURL: true
remoteWrite:
- url: https://remotehost-1:8429/api/v1/write
basicAuth:
username:
key: username
name: vmsecret
password:
key: password
name: vmsecret
tlsConfig:
insecureSkipVerify: true
urlRelabelConfig:
name: "vmagent-relabel"
key: "target-1-relabel.yaml"
inlineUrlRelabelConfig:
- source_labels: [__name__]
separator: ;
regex: kube.*
replacement: $1
action: keep
- url: https://remotehost-2:8429/api/v1/write
basicAuth:
createSecret:
username: user
password: pass
secretName: vmsecret-basicauth
tlsConfig:
insecureSkipVerify: true
urlRelabelConfig:
name: "vmagent-relabel"
key: "target-1-relabel.yaml"
inlineUrlRelabelConfig:
- source_labels: [__name__]
separator: ;
regex: kube.*
replacement: $1
action: keep
nodeSelector:
role: compute
labels:
label: label_vmagent
annotations:
annotation: test_vmagent
secrets:
- kube-etcd-client-certs
If TLS is enabled for Victoriametrics:
victoriametrics:
tlsEnabled: true
clusterIssuerName: dev-cluster-issuer
vmAgent:
install: true
route:
install: true
host: vmagent.test.org
logLevel: WARN
serviceMonitor:
interval: 29s
scrapeTimeout: 9s
extraArgs:
loggerFormat: default
remoteWriteSettings:
label:
project: development
environment: qa-kuber-test
cluster: qa-kuber-test
team: test_team-test
showURL: true
remoteWrite:
- url: https://remotehost-1:8429/api/v1/write
basicAuth:
username:
key: username
name: vmsecret
password:
key: password
name: vmsecret
tlsConfig:
insecureSkipVerify: true
urlRelabelConfig:
name: "vmagent-relabel"
key: "target-1-relabel.yaml"
inlineUrlRelabelConfig:
- source_labels: [__name__]
separator: ;
regex: kube.*
replacement: $1
action: keep
- url: https://remotehost-2:8429/api/v1/write
basicAuth:
createSecret:
username: user
password: pass
secretName: vmsecret-basicauth
tlsConfig:
insecureSkipVerify: true
urlRelabelConfig:
name: "vmagent-relabel"
key: "target-1-relabel.yaml"
inlineUrlRelabelConfig:
- source_labels: [__name__]
separator: ;
regex: kube.*
replacement: $1
action: keep
nodeSelector:
role: compute
labels:
label: label_vmagent
annotations:
annotation: test_vmagent
secrets:
- kube-etcd-client-certs
tlsConfig:
generateCerts:
enabled: false
createSecret:
secretName: "vmagent-tls-secret"
ca: |-
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
key: |-
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
cert: |-
-----BEGIN CERTIFICATE-----
...
------END CERTIFICATE-----