---
weight: 12
title: API Docs
menu:
docs:
parent: operator
weight: 12
aliases:
- /operator/api/
- /operator/api/index.html
- /operator/api.html
---
## Packages
- [operator.victoriametrics.com/v1beta1](#operatorvictoriametricscomv1beta1)
## operator.victoriametrics.com/v1beta1
Package v1beta1 contains API Schema definitions for the victoriametrics v1beta1 API group
### Resource Types
- [VLogs](#vlogs)
- [VMAgent](#vmagent)
- [VMAlert](#vmalert)
- [VMAlertmanager](#vmalertmanager)
- [VMAlertmanagerConfig](#vmalertmanagerconfig)
- [VMAuth](#vmauth)
- [VMCluster](#vmcluster)
- [VMNodeScrape](#vmnodescrape)
- [VMPodScrape](#vmpodscrape)
- [VMProbe](#vmprobe)
- [VMRule](#vmrule)
- [VMScrapeConfig](#vmscrapeconfig)
- [VMServiceScrape](#vmservicescrape)
- [VMSingle](#vmsingle)
- [VMStaticScrape](#vmstaticscrape)
- [VMUser](#vmuser)
#### APIServerConfig
APIServerConfig defines a host and auth methods to access apiserver.
_Appears in:_
- [VMAgentSpec](#vmagentspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authorization` | | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false |
| `bearerToken` | Bearer token for accessing apiserver. | _string_ | false |
| `bearerTokenFile` | File to read bearer token for accessing apiserver. | _string_ | false |
| `host` | Host of apiserver.
A valid string consisting of a hostname or IP followed by an optional port number | _string_ | true |
| `tlsConfig` | TLSConfig Config to use for accessing apiserver. | _[TLSConfig](#tlsconfig)_ | false |
#### AdditionalServiceSpec
ServiceSpec defines additional service for CRD with user-defined params.
by default, some of fields can be inherited from default service definition for the CRD:
labels,selector, ports.
if metadata.name is not defined, service will have format {{CRD_TYPE}}-{{CRD_NAME}}-additional-service.
if UseAsDefault is set to true, changes applied to the main service without additional service creation
_Appears in:_
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `metadata` | Refer to Kubernetes API documentation for fields of `metadata`. | _[EmbeddedObjectMetadata](#embeddedobjectmetadata)_ | false |
| `spec` | ServiceSpec describes the attributes that a user creates on a service.
More info: https://kubernetes.io/docs/concepts/services-networking/service/ | _[ServiceSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#servicespec-v1-core)_ | true |
| `useAsDefault` | UseAsDefault applies changes from given service definition to the main object Service
Changing from headless service to clusterIP or loadbalancer may break cross-component communication | _boolean_ | false |
#### AlertmanagerGossipConfig
AlertmanagerGossipConfig defines Gossip TLS configuration for alertmanager
_Appears in:_
- [VMAlertmanagerSpec](#vmalertmanagerspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `tls_client_config` | TLSClientConfig defines client TLS configuration for alertmanager | _[TLSClientConfig](#tlsclientconfig)_ | true |
| `tls_server_config` | TLSServerConfig defines server TLS configuration for alertmanager | _[TLSServerConfig](#tlsserverconfig)_ | true |
#### AlertmanagerHTTPConfig
AlertmanagerHTTPConfig defines http server configuration for alertmanager
_Appears in:_
- [AlertmanagerWebConfig](#alertmanagerwebconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `headers` | Headers defines list of headers that can be added to HTTP responses. | _object (keys:string, values:string)_ | false |
| `http2` | HTTP2 enables HTTP/2 support. Note that HTTP/2 is only supported with TLS.
This can not be changed on the fly. | _boolean_ | false |
#### AlertmanagerWebConfig
AlertmanagerWebConfig defines web server configuration for alertmanager
_Appears in:_
- [VMAlertmanagerSpec](#vmalertmanagerspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `basic_auth_users` | BasicAuthUsers Usernames and hashed passwords that have full access to the web server
Passwords must be hashed with bcrypt | _object (keys:string, values:string)_ | false |
| `http_server_config` | HTTPServerConfig defines http server configuration for alertmanager web server | _[AlertmanagerHTTPConfig](#alertmanagerhttpconfig)_ | false |
| `tls_server_config` | TLSServerConfig defines server TLS configuration for alertmanager | _[TLSServerConfig](#tlsserverconfig)_ | false |
#### ArbitraryFSAccessThroughSMsConfig
ArbitraryFSAccessThroughSMsConfig enables users to configure, whether
a service scrape selected by the vmagent instance is allowed to use
arbitrary files on the file system of the vmagent container. This is the case
when e.g. a service scrape specifies a BearerTokenFile in an endpoint. A
malicious user could create a service scrape selecting arbitrary secret files
in the vmagent container. Those secrets would then be sent with a scrape
request by vmagent to a malicious target. Denying the above would prevent the
attack, users can instead use the BearerTokenSecret field.
_Appears in:_
- [VMAgentSecurityEnforcements](#vmagentsecurityenforcements)
- [VMAgentSpec](#vmagentspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `deny` | | _boolean_ | true |
#### AttachMetadata
AttachMetadata configures metadata attachment
_Appears in:_
- [Endpoint](#endpoint)
- [KubernetesSDConfig](#kubernetessdconfig)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [VMPodScrapeSpec](#vmpodscrapespec)
- [VMServiceScrapeSpec](#vmservicescrapespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `node` | Node instructs vmagent to add node specific metadata from service discovery
Valid for roles: pod, endpoints, endpointslice. | _boolean_ | false |
#### Authorization
Authorization configures generic authorization params
_Appears in:_
- [APIServerConfig](#apiserverconfig)
- [ConsulSDConfig](#consulsdconfig)
- [DigitalOceanSDConfig](#digitaloceansdconfig)
- [Endpoint](#endpoint)
- [EndpointAuth](#endpointauth)
- [HTTPConfig](#httpconfig)
- [HTTPSDConfig](#httpsdconfig)
- [KubernetesSDConfig](#kubernetessdconfig)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [TargetEndpoint](#targetendpoint)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `credentials` | Reference to the secret with value for authorization | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true |
| `credentialsFile` | File with value for authorization | _string_ | false |
| `type` | Type of authorization, default to bearer | _string_ | false |
#### AzureSDConfig
AzureSDConfig allow retrieving scrape targets from Azure VMs.
See [here](https://docs.victoriametrics.com/sd_configs#azure_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authenticationMethod` | # The authentication method, either OAuth or ManagedIdentity.
See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview | _string_ | false |
| `clientID` | Optional client ID. Only required with the OAuth authentication method. | _string_ | false |
| `clientSecret` | Optional client secret. Only required with the OAuth authentication method. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `environment` | The Azure environment. | _string_ | false |
| `port` | The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule. | _integer_ | false |
| `resourceGroup` | Optional resource group name. Limits discovery to this resource group. | _string_ | false |
| `subscriptionID` | The subscription ID. Always required. | _string_ | true |
| `tenantID` | Optional tenant ID. Only required with the OAuth authentication method. | _string_ | false |
#### BasicAuth
BasicAuth allow an endpoint to authenticate over basic authentication
_Appears in:_
- [APIServerConfig](#apiserverconfig)
- [ConsulSDConfig](#consulsdconfig)
- [Endpoint](#endpoint)
- [EndpointAuth](#endpointauth)
- [HTTPAuth](#httpauth)
- [HTTPConfig](#httpconfig)
- [HTTPSDConfig](#httpsdconfig)
- [KubernetesSDConfig](#kubernetessdconfig)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [ProxyAuth](#proxyauth)
- [TargetEndpoint](#targetendpoint)
- [VMAgentRemoteWriteSpec](#vmagentremotewritespec)
- [VMAlertDatasourceSpec](#vmalertdatasourcespec)
- [VMAlertNotifierSpec](#vmalertnotifierspec)
- [VMAlertRemoteReadSpec](#vmalertremotereadspec)
- [VMAlertRemoteWriteSpec](#vmalertremotewritespec)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `password` | Password defines reference for secret with password value
The secret needs to be in the same namespace as scrape object | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `password_file` | PasswordFile defines path to password file at disk
must be pre-mounted | _string_ | false |
| `username` | Username defines reference for secret with username value
The secret needs to be in the same namespace as scrape object | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### BearerAuth
BearerAuth defines auth with bearer token
_Appears in:_
- [HTTPAuth](#httpauth)
- [VMAlertDatasourceSpec](#vmalertdatasourcespec)
- [VMAlertNotifierSpec](#vmalertnotifierspec)
- [VMAlertRemoteReadSpec](#vmalertremotereadspec)
- [VMAlertRemoteWriteSpec](#vmalertremotewritespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `bearerTokenFile` | Path to bearer token file | _string_ | false |
| `bearerTokenSecret` | Optional bearer auth token to use for -remoteWrite.url | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### CRDRef
CRDRef describe CRD target reference.
_Appears in:_
- [TargetRef](#targetref)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `kind` | Kind one of:
VMAgent,VMAlert, VMSingle, VMCluster/vmselect, VMCluster/vmstorage,VMCluster/vminsert or VMAlertManager | _string_ | true |
| `name` | Name target CRD object name | _string_ | true |
| `namespace` | Namespace target CRD object namespace. | _string_ | true |
#### Certs
Certs defines TLS certs configuration
_Appears in:_
- [TLSClientConfig](#tlsclientconfig)
- [TLSServerConfig](#tlsserverconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `cert_file` | CertFile defines path to the pre-mounted file with certificate
mutually exclusive with CertSecretRef | _string_ | false |
| `cert_secret_ref` | CertSecretRef defines reference for secret with certificate content under given key
mutually exclusive with CertFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `key_file` | KeyFile defines path to the pre-mounted file with certificate key
mutually exclusive with KeySecretRef | _string_ | false |
| `key_secret_ref` | Key defines reference for secret with certificate key content under given key
mutually exclusive with KeyFile | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### CommonApplicationDeploymentParams
CommonApplicationDeploymentParams defines common params
for deployment and statefulset specifications
_Appears in:_
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `affinity` | Affinity If specified, the pod's scheduling constraints. | _[Affinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#affinity-v1-core)_ | false |
| `configMaps` | ConfigMaps is a list of ConfigMaps in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/configs/CONFIGMAP_NAME folder | _string array_ | false |
| `containers` | Containers property allows to inject additions sidecars or to patch existing containers.
It can be useful for proxies, backup, etc. | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false |
| `dnsConfig` | Specifies the DNS parameters of a pod.
Parameters specified here will be merged to the generated DNS
configuration based on DNSPolicy. | _[PodDNSConfig](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#poddnsconfig-v1-core)_ | false |
| `dnsPolicy` | DNSPolicy sets DNS policy for the pod | _[DNSPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#dnspolicy-v1-core)_ | false |
| `extraArgs` | ExtraArgs that will be passed to the application container
for example remoteWrite.tmpDataPath: /tmp | _object (keys:string, values:string)_ | false |
| `extraEnvs` | ExtraEnvs that will be passed to the application container | _[EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#envvar-v1-core) array_ | false |
| `hostAliases` | HostAliases provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork. | _[HostAlias](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostalias-v1-core) array_ | false |
| `hostNetwork` | HostNetwork controls whether the pod may use the node network namespace | _boolean_ | false |
| `host_aliases` | HostAliasesUnderScore provides mapping for ip and hostname,
that would be propagated to pod,
cannot be used with HostNetwork.
Has Priority over hostAliases field | _[HostAlias](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#hostalias-v1-core) array_ | false |
| `imagePullSecrets` | ImagePullSecrets An optional list of references to secrets in the same namespace
to use for pulling images from registries
see https://kubernetes.io/docs/concepts/containers/images/#referring-to-an-imagepullsecrets-on-a-pod | _[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#localobjectreference-v1-core) array_ | false |
| `initContainers` | InitContainers allows adding initContainers to the pod definition.
Any errors during the execution of an initContainer will lead to a restart of the Pod.
More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ | _[Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#container-v1-core) array_ | false |
| `minReadySeconds` | MinReadySeconds defines a minim number os seconds to wait before starting update next pod
if previous in healthy state
Has no effect for VLogs and VMSingle | _integer_ | false |
| `nodeSelector` | NodeSelector Define which Nodes the Pods are scheduled on. | _object (keys:string, values:string)_ | false |
| `paused` | Paused If set to true all actions on the underlying managed objects are not
going to be performed, except for delete actions. | _boolean_ | false |
| `priorityClassName` | PriorityClassName class assigned to the Pods | _string_ | false |
| `readinessGates` | ReadinessGates defines pod readiness gates | _[PodReadinessGate](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#podreadinessgate-v1-core) array_ | true |
| `replicaCount` | ReplicaCount is the expected size of the Application. | _integer_ | false |
| `revisionHistoryLimitCount` | The number of old ReplicaSets to retain to allow rollback in deployment or
maximum number of revisions that will be maintained in the Deployment revision history.
Has no effect at StatefulSets
Defaults to 10. | _integer_ | false |
| `runtimeClassName` | RuntimeClassName - defines runtime class for kubernetes pod.
https://kubernetes.io/docs/concepts/containers/runtime-class/ | _string_ | false |
| `schedulerName` | SchedulerName - defines kubernetes scheduler name | _string_ | false |
| `secrets` | Secrets is a list of Secrets in the same namespace as the Application
object, which shall be mounted into the Application container
at /etc/vm/secrets/SECRET_NAME folder | _string array_ | false |
| `securityContext` | SecurityContext holds pod-level security attributes and common container settings.
This defaults to the default PodSecurityContext. | _[SecurityContext](#securitycontext)_ | false |
| `terminationGracePeriodSeconds` | TerminationGracePeriodSeconds period for container graceful termination | _integer_ | false |
| `tolerations` | Tolerations If specified, the pod's tolerations. | _[Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#toleration-v1-core) array_ | false |
| `topologySpreadConstraints` | TopologySpreadConstraints embedded kubernetes pod configuration option,
controls how pods are spread across your cluster among failure-domains
such as regions, zones, nodes, and other user-defined topology domains
https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/ | _[TopologySpreadConstraint](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#topologyspreadconstraint-v1-core) array_ | false |
| `volumeMounts` | VolumeMounts allows configuration of additional VolumeMounts on the output Deployment/StatefulSet definition.
VolumeMounts specified will be appended to other VolumeMounts in the Application container | _[VolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volumemount-v1-core) array_ | false |
| `volumes` | Volumes allows configuration of additional volumes on the output Deployment/StatefulSet definition.
Volumes specified will be appended to other volumes that are generated.
/ +optional | _[Volume](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#volume-v1-core) array_ | true |
#### CommonConfigReloaderParams
_Appears in:_
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthSpec](#vmauthspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `configReloaderExtraArgs` | ConfigReloaderExtraArgs that will be passed to VMAuths config-reloader container
for example resyncInterval: "30s" | _object (keys:string, values:string)_ | false |
| `configReloaderImageTag` | ConfigReloaderImageTag defines image:tag for config-reloader container | _string_ | false |
| `configReloaderResources` | ConfigReloaderResources config-reloader container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
if not defined default resources from operator config will be used | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false |
| `useVMConfigReloader` | UseVMConfigReloader replaces prometheus-like config-reloader
with vm one. It uses secrets watch instead of file watch
which greatly increases speed of config updates | _boolean_ | false |
#### CommonDefaultableParams
CommonDefaultableParams contains Application settings
with known values populated from operator configuration
_Appears in:_
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `disableSelfServiceScrape` | DisableSelfServiceScrape controls creation of VMServiceScrape by operator
for the application.
Has priority over `VM_DISABLESELFSERVICESCRAPECREATION` operator env variable | _boolean_ | false |
| `image` | Image - docker image settings
if no specified operator uses default version from operator config | _[Image](#image)_ | false |
| `port` | Port listen address | _string_ | false |
| `resources` | Resources container resource request and limits, https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
if not defined default resources from operator config will be used | _[ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#resourcerequirements-v1-core)_ | false |
| `useDefaultResources` | UseDefaultResources controls resource settings
By default, operator sets built-in resource requirements | _boolean_ | false |
| `useStrictSecurity` | UseStrictSecurity enables strict security mode for component
it restricts disk writes access
uses non-root user out of the box
drops not needed security permissions | _boolean_ | false |
#### ConfigMapKeyReference
ConfigMapKeyReference refers to a key in a ConfigMap.
_Appears in:_
- [VMAlertmanagerSpec](#vmalertmanagerspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `key` | The ConfigMap key to refer to. | _string_ | true |
| `name` | Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
TODO: Add other useful fields. apiVersion, kind, uid?
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Drop `kubebuilder:default` when controller-gen doesn't need it https://github.com/kubernetes-sigs/kubebuilder/issues/3896. | _string_ | false |
#### ConsulSDConfig
ConsulSDConfig defines a Consul service discovery configuration.
See [here](https://docs.victoriametrics.com/sd_configs/#consul_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `allowStale` | Allow stale Consul results (see https://developer.hashicorp.com/consul/api-docs/features/consistency). Will reduce load on Consul.
If unset, use its default value. | _boolean_ | false |
| `authorization` | Authorization header to use on every scrape request. | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth information to use on every scrape request. | _[BasicAuth](#basicauth)_ | false |
| `datacenter` | Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter. | _string_ | false |
| `followRedirects` | Configure whether HTTP requests follow HTTP 3xx redirects.
If unset, use its default value. | _boolean_ | false |
| `namespace` | Namespaces are only supported in Consul Enterprise. | _string_ | false |
| `nodeMeta` | Node metadata key/value pairs to filter nodes for a given service. | _object (keys:string, values:string)_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `partition` | Admin Partitions are only supported in Consul Enterprise. | _string_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `proxy_client_config` | ProxyClientConfig configures proxy auth settings for scraping
See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) | _[ProxyAuth](#proxyauth)_ | false |
| `scheme` | HTTP Scheme default "http" | _string_ | false |
| `server` | A valid string consisting of a hostname or IP followed by an optional port number. | _string_ | true |
| `services` | A list of services for which targets are retrieved. If omitted, all services are scraped. | _string array_ | false |
| `tagSeparator` | The string by which Consul tags are joined into the tag label.
If unset, use its default value. | _string_ | false |
| `tags` | An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list. | _string array_ | false |
| `tlsConfig` | TLS configuration to use on every scrape request | _[TLSConfig](#tlsconfig)_ | false |
| `tokenRef` | Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### ContainerSecurityContext
ContainerSecurityContext defines security context for each application container
_Appears in:_
- [SecurityContext](#securitycontext)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `allowPrivilegeEscalation` | AllowPrivilegeEscalation controls whether a process can gain more
privileges than its parent process. This bool directly controls if
the no_new_privs flag will be set on the container process.
AllowPrivilegeEscalation is true always when the container is:
1) run as Privileged
2) has CAP_SYS_ADMIN
Note that this field cannot be set when spec.os.name is windows. | _boolean_ | false |
| `capabilities` | The capabilities to add/drop when running containers.
Defaults to the default set of capabilities granted by the container runtime.
Note that this field cannot be set when spec.os.name is windows. | _[Capabilities](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#capabilities-v1-core)_ | false |
| `privileged` | Run containers in privileged mode.
Processes in privileged containers are essentially equivalent to root on the host.
Note that this field cannot be set when spec.os.name is windows. | _boolean_ | false |
| `procMount` | procMount denotes the type of proc mount to use for the containers.
The default is DefaultProcMount which uses the container runtime defaults for
readonly paths and masked paths.
This requires the ProcMountType feature flag to be enabled.
Note that this field cannot be set when spec.os.name is windows. | _[ProcMountType](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#procmounttype-v1-core)_ | false |
| `readOnlyRootFilesystem` | Whether this containers has a read-only root filesystem.
Default is false.
Note that this field cannot be set when spec.os.name is windows. | _boolean_ | false |
#### DNSSDConfig
DNSSDConfig allows specifying a set of DNS domain names which are periodically queried to discover a list of targets.
The DNS servers to be contacted are read from /etc/resolv.conf.
See [here](https://docs.victoriametrics.com/sd_configs#dns_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `names` | A list of DNS domain names to be queried. | _string array_ | true |
| `port` | The port number used if the query type is not SRV
Ignored for SRV records | _integer_ | false |
| `type` | | _string_ | false |
#### DigitalOceanSDConfig
DigitalOceanSDConfig allow retrieving scrape targets from DigitalOcean's Droplets API.
This service discovery uses the public IPv4 address by default, by that can be changed with relabeling.
See [here](https://docs.victoriametrics.com/sd_configs#digitalocean_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authorization` | Authorization header to use on every scrape request. | _[Authorization](#authorization)_ | false |
| `followRedirects` | Configure whether HTTP requests follow HTTP 3xx redirects. | _boolean_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `port` | The port to scrape metrics from. | _integer_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `proxy_client_config` | ProxyClientConfig configures proxy auth settings for scraping
See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) | _[ProxyAuth](#proxyauth)_ | false |
| `tlsConfig` | TLS configuration to use on every scrape request | _[TLSConfig](#tlsconfig)_ | false |
#### DiscordConfig
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `message` | The message body template | _string_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `title` | The message title template | _string_ | false |
| `webhook_url` | The discord webhook URL
one of `urlSecret` and `url` must be defined. | _string_ | false |
| `webhook_url_secret` | URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### DiscoverySelector
DiscoverySelector can be used at CRD components discovery
_Appears in:_
- [VMAlertNotifierSpec](#vmalertnotifierspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `labelSelector` | | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | true |
| `namespaceSelector` | | _[NamespaceSelector](#namespaceselector)_ | true |
#### EC2Filter
EC2Filter is the configuration for filtering EC2 instances.
_Appears in:_
- [EC2SDConfig](#ec2sdconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `name` | | _string_ | true |
| `values` | | _string array_ | true |
#### EC2SDConfig
EC2SDConfig allow retrieving scrape targets from AWS EC2 instances.
The private IP address is used by default, but may be changed to the public IP address with relabeling.
The IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets.
See [here](https://docs.victoriametrics.com/sd_configs#ec2_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `accessKey` | AccessKey is the AWS API key. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `filters` | Filters can be used optionally to filter the instance list by other criteria.
Available filter criteria can be found here:
https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html
Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html | _[EC2Filter](#ec2filter) array_ | false |
| `port` | The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule. | _integer_ | false |
| `region` | The AWS region | _string_ | false |
| `roleARN` | AWS Role ARN, an alternative to using AWS API keys. | _string_ | false |
| `secretKey` | SecretKey is the AWS API secret. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### EmailConfig
EmailConfig configures notifications via Email.
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `auth_identity` | The identity to use for authentication. | _string_ | false |
| `auth_password` | AuthPassword defines secret name and key at CRD namespace. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `auth_secret` | AuthSecret defines secrent name and key at CRD namespace.
It must contain the CRAM-MD5 secret. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `auth_username` | The username to use for authentication. | _string_ | false |
| `from` | The sender address.
fallback to global setting if empty | _string_ | false |
| `headers` | Further headers email header key/value pairs. Overrides any headers
previously set by the notification implementation. | _object (keys:string, values:string)_ | true |
| `hello` | The hostname to identify to the SMTP server. | _string_ | false |
| `html` | The HTML body of the email notification. | _string_ | false |
| `require_tls` | The SMTP TLS requirement.
Note that Go does not support unencrypted connections to remote SMTP endpoints. | _boolean_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `smarthost` | The SMTP host through which emails are sent.
fallback to global setting if empty | _string_ | false |
| `text` | The text body of the email notification. | _string_ | false |
| `tls_config` | TLS configuration | _[TLSConfig](#tlsconfig)_ | false |
| `to` | The email address to send notifications to. | _string_ | false |
#### EmbeddedHPA
EmbeddedHPA embeds HorizontalPodAutoScaler spec v2.
https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/horizontal-pod-autoscaler-v2/
_Appears in:_
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `behaviour` | | _[HorizontalPodAutoscalerBehavior](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerbehavior-v2beta2-autoscaling)_ | true |
| `maxReplicas` | | _integer_ | true |
| `metrics` | | _[MetricSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#metricspec-v2beta2-autoscaling) array_ | true |
| `minReplicas` | | _integer_ | true |
#### EmbeddedIngress
EmbeddedIngress describes ingress configuration options.
_Appears in:_
- [VMAuthSpec](#vmauthspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `annotations` | Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations | _object (keys:string, values:string)_ | false |
| `class_name` | ClassName defines ingress class name for VMAuth | _string_ | false |
| `extraRules` | ExtraRules - additional rules for ingress,
must be checked for correctness by user. | _[IngressRule](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#ingressrule-v1-networking) array_ | false |
| `extraTls` | ExtraTLS - additional TLS configuration for ingress
must be checked for correctness by user. | _[IngressTLS](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#ingresstls-v1-networking) array_ | false |
| `host` | Host defines ingress host parameter for default rule
It will be used, only if TlsHosts is empty | _string_ | false |
| `labels` | Labels Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels | _object (keys:string, values:string)_ | false |
| `name` | Name must be unique within a namespace. Is required when creating resources, although
some resources may allow a client to request the generation of an appropriate name
automatically. Name is primarily intended for creation idempotence and configuration
definition.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names | _string_ | false |
| `tlsHosts` | TlsHosts configures TLS access for ingress, tlsSecretName must be defined for it. | _string array_ | true |
| `tlsSecretName` | TlsSecretName defines secretname at the VMAuth namespace with cert and key
https://kubernetes.io/docs/concepts/services-networking/ingress/#tls | _string_ | false |
#### EmbeddedObjectMetadata
EmbeddedObjectMetadata contains a subset of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta
Only fields which are relevant to embedded resources are included.
_Appears in:_
- [AdditionalServiceSpec](#additionalservicespec)
- [EmbeddedIngress](#embeddedingress)
- [EmbeddedPersistentVolumeClaim](#embeddedpersistentvolumeclaim)
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `annotations` | Annotations is an unstructured key value map stored with a resource that may be
set by external tools to store and retrieve arbitrary metadata. They are not
queryable and should be preserved when modifying objects.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations | _object (keys:string, values:string)_ | false |
| `labels` | Labels Map of string keys and values that can be used to organize and categorize
(scope and select) objects. May match selectors of replication controllers
and services.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels | _object (keys:string, values:string)_ | false |
| `name` | Name must be unique within a namespace. Is required when creating resources, although
some resources may allow a client to request the generation of an appropriate name
automatically. Name is primarily intended for creation idempotence and configuration
definition.
Cannot be updated.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names | _string_ | false |
#### EmbeddedPersistentVolumeClaim
EmbeddedPersistentVolumeClaim is an embedded version of k8s.io/api/core/v1.PersistentVolumeClaim.
It contains TypeMeta and a reduced ObjectMeta.
_Appears in:_
- [StorageSpec](#storagespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `metadata` | Refer to Kubernetes API documentation for fields of `metadata`. | _[EmbeddedObjectMetadata](#embeddedobjectmetadata)_ | false |
| `spec` | Spec defines the desired characteristics of a volume requested by a pod author.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims | _[PersistentVolumeClaimSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#persistentvolumeclaimspec-v1-core)_ | false |
#### EmbeddedPodDisruptionBudgetSpec
_Appears in:_
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `maxUnavailable` | An eviction is allowed if at most "maxUnavailable" pods selected by
"selector" are unavailable after the eviction, i.e. even in absence of
the evicted pod. For example, one can prevent all voluntary evictions
by specifying 0. This is a mutually exclusive setting with "minAvailable". | _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#intorstring-intstr-util)_ | false |
| `minAvailable` | An eviction is allowed if at least "minAvailable" pods selected by
"selector" will still be available after the eviction, i.e. even in the
absence of the evicted pod. So for example you can prevent all voluntary
evictions by specifying "100%". | _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#intorstring-intstr-util)_ | false |
| `selectorLabels` | replaces default labels selector generated by operator
it's useful when you need to create custom budget | _object (keys:string, values:string)_ | false |
#### EmbeddedProbes
EmbeddedProbes - it allows to override some probe params.
its not necessary to specify all options,
operator will replace missing spec with default values.
_Appears in:_
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `livenessProbe` | LivenessProbe that will be added CRD pod | _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#probe-v1-core)_ | false |
| `readinessProbe` | ReadinessProbe that will be added CRD pod | _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#probe-v1-core)_ | false |
| `startupProbe` | StartupProbe that will be added to CRD pod | _[Probe](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#probe-v1-core)_ | false |
#### Endpoint
Endpoint defines a scrapeable endpoint serving metrics.
_Appears in:_
- [VMServiceScrapeSpec](#vmservicescrapespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `attach_metadata` | AttachMetadata configures metadata attaching from service discovery | _[AttachMetadata](#attachmetadata)_ | false |
| `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false |
| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false |
| `bearerTokenSecret` | Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false |
| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false |
| `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false |
| `interval` | Interval at which metrics should be scraped | _string_ | false |
| `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false |
| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false |
| `path` | HTTP path to scrape for metrics. | _string_ | false |
| `port` | Name of the port exposed at Service. | _string_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false |
| `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false |
| `scheme` | HTTP scheme to use for scraping. | _string_ | false |
| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false |
| `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false |
| `seriesLimit` | SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. | _integer_ | false |
| `targetPort` | TargetPort
Name or number of the pod port this endpoint refers to. Mutually exclusive with port. | _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#intorstring-intstr-util)_ | false |
| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false |
| `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false |
#### EndpointAuth
EndpointAuth defines target endpoint authorization options for scrapping
_Appears in:_
- [Endpoint](#endpoint)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [TargetEndpoint](#targetendpoint)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false |
| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false |
| `bearerTokenSecret` | Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false |
#### EndpointRelabelings
EndpointRelabelings defines service discovery and metrics relabeling configuration for endpoints
_Appears in:_
- [Endpoint](#endpoint)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [TargetEndpoint](#targetendpoint)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false |
| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false |
#### EndpointScrapeParams
ScrapeTargetParams defines common configuration params for all scrape endpoint targets
_Appears in:_
- [Endpoint](#endpoint)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [TargetEndpoint](#targetendpoint)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false |
| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false |
| `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false |
| `interval` | Interval at which metrics should be scraped | _string_ | false |
| `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false |
| `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false |
| `path` | HTTP path to scrape for metrics. | _string_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false |
| `scheme` | HTTP scheme to use for scraping. | _string_ | false |
| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false |
| `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false |
| `seriesLimit` | SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. | _integer_ | false |
| `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false |
#### ExternalConfig
ExternalConfig defines external source of configuration
_Appears in:_
- [VMAuthSpec](#vmauthspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `localPath` | LocalPath contains static path to a config, which is managed externally for cases
when using secrets is not applicable, e.g.: Vault sidecar. | _string_ | false |
| `secretRef` | SecretRef defines selector for externally managed secret which contains configuration | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### FileSDConfig
FileSDConfig defines a file service discovery configuration.
See [here](https://docs.victoriametrics.com/sd_configs#file_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `files` | List of files to be used for file discovery. | _string array_ | true |
#### GCESDConfig
GCESDConfig configures scrape targets from GCP GCE instances.
The private IP address is used by default, but may be changed to
the public IP address with relabeling.
See [here](https://docs.victoriametrics.com/sd_configs#gce_sd_configs)
The GCE service discovery will load the Google Cloud credentials
from the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable.
See https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `filter` | Filter can be used optionally to filter the instance list by other criteria
Syntax of this filter is described in the filter query parameter section:
https://cloud.google.com/compute/docs/reference/latest/instances/list | _string_ | false |
| `port` | The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule. | _integer_ | false |
| `project` | The Google Cloud Project ID | _string_ | true |
| `tagSeparator` | The tag separator is used to separate the tags on concatenation | _string_ | false |
| `zone` | The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs. | _string_ | true |
#### HTTPAuth
HTTPAuth generic auth used with http protocols
_Appears in:_
- [VMAlertDatasourceSpec](#vmalertdatasourcespec)
- [VMAlertNotifierSpec](#vmalertnotifierspec)
- [VMAlertRemoteReadSpec](#vmalertremotereadspec)
- [VMAlertRemoteWriteSpec](#vmalertremotewritespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `basicAuth` | | _[BasicAuth](#basicauth)_ | false |
| `headers` | Headers allow configuring custom http headers
Must be in form of semicolon separated header with value
e.g.
headerName:headerValue
vmalert supports it since 1.79.0 version | _string array_ | false |
| `oauth2` | | _[OAuth2](#oauth2)_ | false |
| `tlsConfig` | | _[TLSConfig](#tlsconfig)_ | false |
#### HTTPConfig
HTTPConfig defines a client HTTP configuration for VMAlertmanagerConfig objects
See https://prometheus.io/docs/alerting/latest/configuration/#http_config
_Appears in:_
- [DiscordConfig](#discordconfig)
- [MSTeamsConfig](#msteamsconfig)
- [OpsGenieConfig](#opsgenieconfig)
- [PagerDutyConfig](#pagerdutyconfig)
- [PushoverConfig](#pushoverconfig)
- [SlackConfig](#slackconfig)
- [SnsConfig](#snsconfig)
- [TelegramConfig](#telegramconfig)
- [VictorOpsConfig](#victoropsconfig)
- [WeChatConfig](#wechatconfig)
- [WebexConfig](#webexconfig)
- [WebhookConfig](#webhookconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authorization` | Authorization header configuration for the client.
This is mutually exclusive with BasicAuth and is only available starting from Alertmanager v0.22+. | _[Authorization](#authorization)_ | false |
| `basic_auth` | BasicAuth for the client. | _[BasicAuth](#basicauth)_ | false |
| `bearer_token_file` | BearerTokenFile defines filename for bearer token, it must be mounted to pod. | _string_ | false |
| `bearer_token_secret` | The secret's key that contains the bearer token
It must be at them same namespace as CRD | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `oauth2` | OAuth2 client credentials used to fetch a token for the targets. | _[OAuth2](#oauth2)_ | false |
| `proxyURL` | Optional proxy URL. | _string_ | false |
| `tls_config` | TLS configuration for the client. | _[TLSConfig](#tlsconfig)_ | false |
#### HTTPSDConfig
HTTPSDConfig defines a HTTP service discovery configuration.
See [here](https://docs.victoriametrics.com/sd_configs#http_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `authorization` | Authorization header to use on every scrape request. | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth information to use on every scrape request. | _[BasicAuth](#basicauth)_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `proxy_client_config` | ProxyClientConfig configures proxy auth settings for scraping
See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) | _[ProxyAuth](#proxyauth)_ | false |
| `tlsConfig` | TLS configuration to use on every scrape request | _[TLSConfig](#tlsconfig)_ | false |
| `url` | URL from which the targets are fetched. | _string_ | true |
#### Image
Image defines docker image settings
_Appears in:_
- [CommonDefaultableParams](#commondefaultableparams)
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMBackup](#vmbackup)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `pullPolicy` | PullPolicy describes how to pull docker image | _[PullPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#pullpolicy-v1-core)_ | true |
| `repository` | Repository contains name of docker image + it's repository if needed | _string_ | true |
| `tag` | Tag contains desired docker image version | _string_ | true |
#### ImageConfig
ImageConfig is used to attach images to the incident.
See https://developer.pagerduty.com/docs/ZG9jOjExMDI5NTgx-send-an-alert-event#the-images-property
for more information.
_Appears in:_
- [PagerDutyConfig](#pagerdutyconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `alt` | | _string_ | false |
| `href` | | _string_ | false |
| `source` | | _string_ | true |
#### InhibitRule
InhibitRule defines an inhibition rule that allows to mute alerts when other
alerts are already firing.
Note, it doesn't support deprecated alertmanager config options.
See https://prometheus.io/docs/alerting/latest/configuration/#inhibit_rule
_Appears in:_
- [VMAlertmanagerConfigSpec](#vmalertmanagerconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `equal` | Labels that must have an equal value in the source and target alert for
the inhibition to take effect. | _string array_ | false |
| `source_matchers` | SourceMatchers defines a list of matchers for which one or more alerts have
to exist for the inhibition to take effect. | _string array_ | false |
| `target_matchers` | TargetMatchers defines a list of matchers that have to be fulfilled by the target
alerts to be muted. | _string array_ | false |
#### InsertPorts
_Appears in:_
- [VMAgentSpec](#vmagentspec)
- [VMInsert](#vminsert)
- [VMSingleSpec](#vmsinglespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `graphitePort` | GraphitePort listen port | _string_ | false |
| `influxPort` | InfluxPort listen port | _string_ | false |
| `openTSDBHTTPPort` | OpenTSDBHTTPPort for http connections. | _string_ | false |
| `openTSDBPort` | OpenTSDBPort for tcp and udp listen | _string_ | false |
#### K8SSelectorConfig
K8SSelectorConfig is Kubernetes Selector Config
_Appears in:_
- [KubernetesSDConfig](#kubernetessdconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `field` | | _string_ | true |
| `label` | | _string_ | true |
| `role` | | _string_ | true |
#### KubernetesSDConfig
KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API.
See [here](https://docs.victoriametrics.com/sd_configs#kubernetes_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `apiServer` | The API server address consisting of a hostname or IP address followed
by an optional port number.
If left empty, assuming process is running inside
of the cluster. It will discover API servers automatically and use the pod's
CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/. | _string_ | false |
| `attach_metadata` | AttachMetadata configures metadata attaching from service discovery | _[AttachMetadata](#attachmetadata)_ | false |
| `authorization` | Authorization header to use on every scrape request. | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth information to use on every scrape request. | _[BasicAuth](#basicauth)_ | false |
| `followRedirects` | Configure whether HTTP requests follow HTTP 3xx redirects. | _boolean_ | false |
| `namespaces` | Optional namespace discovery. If omitted, discover targets across all namespaces. | _[NamespaceDiscovery](#namespacediscovery)_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `proxy_client_config` | ProxyClientConfig configures proxy auth settings for scraping
See [feature description](https://docs.victoriametrics.com/vmagent#scraping-targets-via-a-proxy) | _[ProxyAuth](#proxyauth)_ | false |
| `role` | Role of the Kubernetes entities that should be discovered. | _string_ | true |
| `selectors` | Selector to select objects. | _[K8SSelectorConfig](#k8sselectorconfig) array_ | false |
| `tlsConfig` | TLS configuration to use on every scrape request | _[TLSConfig](#tlsconfig)_ | false |
#### License
License holds license key for enterprise features.
Using license key is supported starting from VictoriaMetrics v1.94.0.
See [here](https://docs.victoriametrics.com/enterprise)
_Appears in:_
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAuthSpec](#vmauthspec)
- [VMClusterSpec](#vmclusterspec)
- [VMSingleSpec](#vmsinglespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `key` | Enterprise license key. This flag is available only in [VictoriaMetrics enterprise](https://docs.victoriametrics.com/enterprise).
To request a trial license, [go to](https://victoriametrics.com/products/enterprise/trial) | _string_ | true |
| `keyRef` | KeyRef is reference to secret with license key for enterprise features. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true |
#### LinkConfig
LinkConfig is used to attach text links to the incident.
See https://developer.pagerduty.com/docs/ZG9jOjExMDI5NTgx-send-an-alert-event#the-links-property
for more information.
_Appears in:_
- [PagerDutyConfig](#pagerdutyconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `href` | | _string_ | true |
| `text` | | _string_ | true |
#### MSTeamsConfig
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `text` | The text body of the teams notification. | _string_ | false |
| `title` | The title of the teams notification. | _string_ | false |
| `webhook_url` | The incoming webhook URL
one of `urlSecret` and `url` must be defined. | _string_ | false |
| `webhook_url_secret` | URLSecret defines secret name and key at the CRD namespace.
It must contain the webhook URL.
one of `urlSecret` and `url` must be defined. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### NamespaceDiscovery
NamespaceDiscovery is the configuration for discovering
Kubernetes namespaces.
_Appears in:_
- [KubernetesSDConfig](#kubernetessdconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `names` | List of namespaces where to watch for resources.
If empty and `ownNamespace` isn't true, watch for resources in all namespaces. | _string array_ | false |
| `ownNamespace` | Includes the namespace in which the pod exists to the list of watched namespaces. | _boolean_ | false |
#### NamespaceSelector
NamespaceSelector is a selector for selecting either all namespaces or a
list of namespaces.
_Appears in:_
- [DiscoverySelector](#discoveryselector)
- [ProbeTargetIngress](#probetargetingress)
- [VMPodScrapeSpec](#vmpodscrapespec)
- [VMServiceScrapeSpec](#vmservicescrapespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `any` | Boolean describing whether all namespaces are selected in contrast to a
list restricting them. | _boolean_ | false |
| `matchNames` | List of namespace names. | _string array_ | false |
#### OAuth2
OAuth2 defines OAuth2 configuration
_Appears in:_
- [ConsulSDConfig](#consulsdconfig)
- [DigitalOceanSDConfig](#digitaloceansdconfig)
- [Endpoint](#endpoint)
- [EndpointAuth](#endpointauth)
- [HTTPAuth](#httpauth)
- [HTTPConfig](#httpconfig)
- [KubernetesSDConfig](#kubernetessdconfig)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [TargetEndpoint](#targetendpoint)
- [VMAgentRemoteWriteSpec](#vmagentremotewritespec)
- [VMAlertDatasourceSpec](#vmalertdatasourcespec)
- [VMAlertNotifierSpec](#vmalertnotifierspec)
- [VMAlertRemoteReadSpec](#vmalertremotereadspec)
- [VMAlertRemoteWriteSpec](#vmalertremotewritespec)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `client_id` | The secret or configmap containing the OAuth2 client id | _[SecretOrConfigMap](#secretorconfigmap)_ | true |
| `client_secret` | The secret containing the OAuth2 client secret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `client_secret_file` | ClientSecretFile defines path for client secret file. | _string_ | false |
| `endpoint_params` | Parameters to append to the token URL | _object (keys:string, values:string)_ | false |
| `scopes` | OAuth2 scopes used for the token request | _string array_ | false |
| `token_url` | The URL to fetch the token from | _string_ | true |
#### OpenStackSDConfig
OpenStackSDConfig allow retrieving scrape targets from OpenStack Nova instances.
See [here](https://docs.victoriametrics.com/sd_configs#openstack_sd_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `allTenants` | Whether the service discovery should list all instances for all projects.
It is only relevant for the 'instance' role and usually requires admin permissions. | _boolean_ | false |
| `applicationCredentialId` | ApplicationCredentialID | _string_ | false |
| `applicationCredentialName` | The ApplicationCredentialID or ApplicationCredentialName fields are
required if using an application credential to authenticate. Some providers
allow you to create an application credential to authenticate rather than a
password. | _string_ | false |
| `applicationCredentialSecret` | The applicationCredentialSecret field is required if using an application
credential to authenticate. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `availability` | Availability of the endpoint to connect to. | _string_ | false |
| `domainID` | DomainID | _string_ | false |
| `domainName` | At most one of domainId and domainName must be provided if using username
with Identity V3. Otherwise, either are optional. | _string_ | false |
| `identityEndpoint` | IdentityEndpoint specifies the HTTP endpoint that is required to work with
the Identity API of the appropriate version. | _string_ | false |
| `password` | Password for the Identity V2 and V3 APIs. Consult with your provider's
control panel to discover your account's preferred method of authentication. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `port` | The port to scrape metrics from. If using the public IP address, this must
instead be specified in the relabeling rule. | _integer_ | false |
| `projectID` | ProjectID | _string_ | false |
| `projectName` | The ProjectId and ProjectName fields are optional for the Identity V2 API.
Some providers allow you to specify a ProjectName instead of the ProjectId.
Some require both. Your provider's authentication policies will determine
how these fields influence authentication. | _string_ | false |
| `region` | The OpenStack Region. | _string_ | true |
| `role` | The OpenStack role of entities that should be discovered. | _string_ | true |
| `tlsConfig` | TLS configuration to use on every scrape request | _[TLSConfig](#tlsconfig)_ | false |
| `userid` | UserID | _string_ | false |
| `username` | Username is required if using Identity V2 API. Consult with your provider's
control panel to discover your account's username.
In Identity V3, either userid or a combination of username
and domainId or domainName are needed | _string_ | false |
#### OpsGenieConfig
OpsGenieConfig configures notifications via OpsGenie.
See https://prometheus.io/docs/alerting/latest/configuration/#opsgenie_config
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `actions` | Comma separated list of actions that will be available for the alert. | _string_ | true |
| `apiURL` | The URL to send OpsGenie API requests to. | _string_ | false |
| `api_key` | The secret's key that contains the OpsGenie API key.
It must be at them same namespace as CRD
fallback to global setting if empty | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `description` | Description of the incident. | _string_ | false |
| `details` | A set of arbitrary key/value pairs that provide further detail about the incident. | _object (keys:string, values:string)_ | false |
| `entity` | Optional field that can be used to specify which domain alert is related to. | _string_ | true |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `message` | Alert text limited to 130 characters. | _string_ | false |
| `note` | Additional alert note. | _string_ | false |
| `priority` | Priority level of alert. Possible values are P1, P2, P3, P4, and P5. | _string_ | false |
| `responders` | List of responders responsible for notifications. | _[OpsGenieConfigResponder](#opsgenieconfigresponder) array_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `source` | Backlink to the sender of the notification. | _string_ | false |
| `tags` | Comma separated list of tags attached to the notifications. | _string_ | false |
| `update_alerts` | Whether to update message and description of the alert in OpsGenie if it already exists
By default, the alert is never updated in OpsGenie, the new message only appears in activity log. | _boolean_ | true |
#### OpsGenieConfigResponder
OpsGenieConfigResponder defines a responder to an incident.
One of `id`, `name` or `username` has to be defined.
_Appears in:_
- [OpsGenieConfig](#opsgenieconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `id` | ID of the responder. | _string_ | false |
| `name` | Name of the responder. | _string_ | false |
| `type` | Type of responder. | _string_ | true |
| `username` | Username of the responder. | _string_ | false |
#### PagerDutyConfig
PagerDutyConfig configures notifications via PagerDuty.
See https://prometheus.io/docs/alerting/latest/configuration/#pagerduty_config
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `class` | The class/type of the event. | _string_ | false |
| `client` | Client identification. | _string_ | false |
| `client_url` | Backlink to the sender of notification. | _string_ | false |
| `component` | The part or component of the affected system that is broken. | _string_ | false |
| `description` | Description of the incident. | _string_ | false |
| `details` | Arbitrary key/value pairs that provide further detail about the incident. | _object (keys:string, values:string)_ | false |
| `group` | A cluster or grouping of sources. | _string_ | false |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `images` | Images to attach to the incident. | _[ImageConfig](#imageconfig) array_ | false |
| `links` | Links to attach to the incident. | _[LinkConfig](#linkconfig) array_ | false |
| `routing_key` | The secret's key that contains the PagerDuty integration key (when using
Events API v2). Either this field or `serviceKey` needs to be defined.
It must be at them same namespace as CRD | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `service_key` | The secret's key that contains the PagerDuty service key (when using
integration type "Prometheus"). Either this field or `routingKey` needs to
be defined.
It must be at them same namespace as CRD | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `severity` | Severity of the incident. | _string_ | false |
| `url` | The URL to send requests to. | _string_ | false |
#### PodMetricsEndpoint
PodMetricsEndpoint defines a scrapeable endpoint of a Kubernetes Pod serving metrics.
_Appears in:_
- [VMPodScrapeSpec](#vmpodscrapespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `attach_metadata` | AttachMetadata configures metadata attaching from service discovery | _[AttachMetadata](#attachmetadata)_ | false |
| `authorization` | Authorization with http header Authorization | _[Authorization](#authorization)_ | false |
| `basicAuth` | BasicAuth allow an endpoint to authenticate over basic authentication | _[BasicAuth](#basicauth)_ | false |
| `bearerTokenFile` | File to read bearer token for scraping targets. | _string_ | false |
| `bearerTokenSecret` | Secret to mount to read bearer token for scraping targets. The secret
needs to be in the same namespace as the scrape object and accessible by
the victoria-metrics operator. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `filterRunning` | FilterRunning applies filter with pod status == running
it prevents from scrapping metrics at failed or succeed state pods.
enabled by default | _boolean_ | false |
| `follow_redirects` | FollowRedirects controls redirects for scraping. | _boolean_ | false |
| `honorLabels` | HonorLabels chooses the metric's labels on collisions with target labels. | _boolean_ | false |
| `honorTimestamps` | HonorTimestamps controls whether vmagent respects the timestamps present in scraped data. | _boolean_ | false |
| `interval` | Interval at which metrics should be scraped | _string_ | false |
| `max_scrape_size` | MaxScrapeSize defines a maximum size of scraped data for a job | _string_ | false |
| `metricRelabelConfigs` | MetricRelabelConfigs to apply to samples after scrapping. | _[RelabelConfig](#relabelconfig) array_ | false |
| `oauth2` | OAuth2 defines auth configuration | _[OAuth2](#oauth2)_ | false |
| `params` | Optional HTTP URL parameters | _object (keys:string, values:string array)_ | false |
| `path` | HTTP path to scrape for metrics. | _string_ | false |
| `port` | Name of the port exposed at Pod. | _string_ | false |
| `proxyURL` | ProxyURL eg http://proxyserver:2195 Directs scrapes to proxy through this endpoint. | _string_ | false |
| `relabelConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | false |
| `sampleLimit` | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | _integer_ | false |
| `scheme` | HTTP scheme to use for scraping. | _string_ | false |
| `scrapeTimeout` | Timeout after which the scrape is ended | _string_ | false |
| `scrape_interval` | ScrapeInterval is the same as Interval and has priority over it.
one of scrape_interval or interval can be used | _string_ | false |
| `seriesLimit` | SeriesLimit defines per-scrape limit on number of unique time series
a single target can expose during all the scrapes on the time window of 24h. | _integer_ | false |
| `targetPort` | TargetPort
Name or number of the pod port this endpoint refers to. Mutually exclusive with port. | _[IntOrString](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#intorstring-intstr-util)_ | false |
| `tlsConfig` | TLSConfig configuration to use when scraping the endpoint | _[TLSConfig](#tlsconfig)_ | false |
| `vm_scrape_params` | VMScrapeParams defines VictoriaMetrics specific scrape parameters | _[VMScrapeParams](#vmscrapeparams)_ | false |
#### ProbeTargetIngress
ProbeTargetIngress defines the set of Ingress objects considered for probing.
_Appears in:_
- [VMProbeTargets](#vmprobetargets)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `namespaceSelector` | Select Ingress objects by namespace. | _[NamespaceSelector](#namespaceselector)_ | true |
| `relabelingConfigs` | RelabelConfigs to apply to samples during service discovery. | _[RelabelConfig](#relabelconfig) array_ | true |
| `selector` | Select Ingress objects by labels. | _[LabelSelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#labelselector-v1-meta)_ | true |
#### ProxyAuth
ProxyAuth represent proxy auth config
Only VictoriaMetrics scrapers supports it.
See https://github.com/VictoriaMetrics/VictoriaMetrics/commit/a6a71ef861444eb11fe8ec6d2387f0fc0c4aea87
_Appears in:_
- [ConsulSDConfig](#consulsdconfig)
- [DigitalOceanSDConfig](#digitaloceansdconfig)
- [HTTPSDConfig](#httpsdconfig)
- [KubernetesSDConfig](#kubernetessdconfig)
- [VMScrapeParams](#vmscrapeparams)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `basic_auth` | | _[BasicAuth](#basicauth)_ | true |
| `bearer_token` | | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true |
| `bearer_token_file` | | _string_ | true |
| `tls_config` | | _[TLSConfig](#tlsconfig)_ | true |
#### PushoverConfig
PushoverConfig configures notifications via Pushover.
See https://prometheus.io/docs/alerting/latest/configuration/#pushover_config
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `expire` | How long your notification will continue to be retried for, unless the user
acknowledges the notification. | _string_ | false |
| `html` | Whether notification message is HTML or plain text. | _boolean_ | false |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `message` | Notification message. | _string_ | false |
| `priority` | Priority, see https://pushover.net/api#priority | _string_ | false |
| `retry` | How often the Pushover servers will send the same notification to the user.
Must be at least 30 seconds. | _string_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `sound` | The name of one of the sounds supported by device clients to override the user's default sound choice | _string_ | false |
| `title` | Notification title. | _string_ | false |
| `token` | The secret's key that contains the registered application’s API token, see https://pushover.net/apps.
It must be at them same namespace as CRD | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true |
| `url` | A supplementary URL shown alongside the message. | _string_ | false |
| `url_title` | A title for supplementary URL, otherwise just the URL is shown | _string_ | false |
| `user_key` | The secret's key that contains the recipient user’s user key.
It must be at them same namespace as CRD | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | true |
#### Receiver
Receiver defines one or more notification integrations.
_Appears in:_
- [VMAlertmanagerConfigSpec](#vmalertmanagerconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `discord_configs` | | _[DiscordConfig](#discordconfig) array_ | false |
| `email_configs` | EmailConfigs defines email notification configurations. | _[EmailConfig](#emailconfig) array_ | false |
| `msteams_configs` | | _[MSTeamsConfig](#msteamsconfig) array_ | false |
| `name` | Name of the receiver. Must be unique across all items from the list. | _string_ | true |
| `opsgenie_configs` | OpsGenieConfigs defines ops genie notification configurations. | _[OpsGenieConfig](#opsgenieconfig) array_ | false |
| `pagerduty_configs` | PagerDutyConfigs defines pager duty notification configurations. | _[PagerDutyConfig](#pagerdutyconfig) array_ | false |
| `pushover_configs` | PushoverConfigs defines push over notification configurations. | _[PushoverConfig](#pushoverconfig) array_ | false |
| `slack_configs` | SlackConfigs defines slack notification configurations. | _[SlackConfig](#slackconfig) array_ | false |
| `sns_configs` | | _[SnsConfig](#snsconfig) array_ | false |
| `telegram_configs` | | _[TelegramConfig](#telegramconfig) array_ | false |
| `victorops_configs` | VictorOpsConfigs defines victor ops notification configurations. | _[VictorOpsConfig](#victoropsconfig) array_ | false |
| `webex_configs` | | _[WebexConfig](#webexconfig) array_ | false |
| `webhook_configs` | WebhookConfigs defines webhook notification configurations. | _[WebhookConfig](#webhookconfig) array_ | false |
| `wechat_configs` | WeChatConfigs defines wechat notification configurations. | _[WeChatConfig](#wechatconfig) array_ | false |
#### RelabelConfig
RelabelConfig allows dynamic rewriting of the label set
More info: https://docs.victoriametrics.com/#relabeling
_Appears in:_
- [Endpoint](#endpoint)
- [EndpointRelabelings](#endpointrelabelings)
- [PodMetricsEndpoint](#podmetricsendpoint)
- [ProbeTargetIngress](#probetargetingress)
- [StreamAggrRule](#streamaggrrule)
- [TargetEndpoint](#targetendpoint)
- [VMAgentRemoteWriteSpec](#vmagentremotewritespec)
- [VMAgentSpec](#vmagentspec)
- [VMNodeScrapeSpec](#vmnodescrapespec)
- [VMProbeSpec](#vmprobespec)
- [VMProbeTargetStaticConfig](#vmprobetargetstaticconfig)
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `action` | Action to perform based on regex matching. Default is 'replace' | _string_ | false |
| `if` | If represents metricsQL match expression (or list of expressions): '\{__name__=~"foo_.*"\}' | _[StringOrArray](#stringorarray)_ | false |
| `labels` | Labels is used together with Match for `action: graphite` | _object (keys:string, values:string)_ | false |
| `match` | Match is used together with Labels for `action: graphite` | _string_ | false |
| `modulus` | Modulus to take of the hash of the source label values. | _integer_ | false |
| `regex` | Regular expression against which the extracted value is matched. Default is '(.*)'
victoriaMetrics supports multiline regex joined with \|
https://docs.victoriametrics.com/vmagent/#relabeling-enhancements | _[StringOrArray](#stringorarray)_ | false |
| `replacement` | Replacement value against which a regex replace is performed if the
regular expression matches. Regex capture groups are available. Default is '$1' | _string_ | false |
| `separator` | Separator placed between concatenated source label values. default is ';'. | _string_ | false |
| `sourceLabels` | The source labels select values from existing labels. Their content is concatenated
using the configured separator and matched against the configured regular expression
for the replace, keep, and drop actions. | _string array_ | false |
| `source_labels` | UnderScoreSourceLabels - additional form of source labels source_labels
for compatibility with original relabel config.
if set both sourceLabels and source_labels, sourceLabels has priority.
for details https://github.com/VictoriaMetrics/operator/issues/131 | _string array_ | false |
| `targetLabel` | Label to which the resulting value is written in a replace action.
It is mandatory for replace actions. Regex capture groups are available. | _string_ | false |
| `target_label` | UnderScoreTargetLabel - additional form of target label - target_label
for compatibility with original relabel config.
if set both targetLabel and target_label, targetLabel has priority.
for details https://github.com/VictoriaMetrics/operator/issues/131 | _string_ | false |
#### Route
Route defines a node in the routing tree.
_Appears in:_
- [SubRoute](#subroute)
- [VMAlertmanagerConfigSpec](#vmalertmanagerconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `active_time_intervals` | ActiveTimeIntervals Times when the route should be active
These must match the name at time_intervals | _string array_ | false |
| `continue` | Continue indicating whether an alert should continue matching subsequent
sibling nodes. It will always be true for the first-level route if disableRouteContinueEnforce for vmalertmanager not set. | _boolean_ | false |
| `group_by` | List of labels to group by. | _string array_ | false |
| `group_interval` | How long to wait before sending an updated notification. | _string_ | false |
| `group_wait` | How long to wait before sending the initial notification. | _string_ | false |
| `matchers` | List of matchers that the alert’s labels should match. For the first
level route, the operator adds a namespace: "CRD_NS" matcher.
https://prometheus.io/docs/alerting/latest/configuration/#matcher | _string array_ | false |
| `mute_time_intervals` | MuteTimeIntervals is a list of interval names that will mute matched alert | _string array_ | false |
| `receiver` | Name of the receiver for this route. | _string_ | true |
| `repeat_interval` | How long to wait before repeating the last notification. | _string_ | false |
| `routes` | Child routes.
https://prometheus.io/docs/alerting/latest/configuration/#route | _[JSON](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#json-v1-apiextensions-k8s-io) array_ | true |
#### Rule
Rule describes an alerting or recording rule.
_Appears in:_
- [RuleGroup](#rulegroup)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `alert` | Alert is a name for alert | _string_ | false |
| `annotations` | Annotations will be added to rule configuration | _object (keys:string, values:string)_ | false |
| `debug` | Debug enables logging for rule
it useful for tracking | _boolean_ | false |
| `expr` | Expr is query, that will be evaluated at dataSource | _string_ | false |
| `for` | For evaluation interval in time.Duration format
30s, 1m, 1h or nanoseconds | _string_ | false |
| `keep_firing_for` | KeepFiringFor will make alert continue firing for this long
even when the alerting expression no longer has results.
Use time.Duration format, 30s, 1m, 1h or nanoseconds | _string_ | false |
| `labels` | Labels will be added to rule configuration | _object (keys:string, values:string)_ | false |
| `record` | Record represents a query, that will be recorded to dataSource | _string_ | false |
| `update_entries_limit` | UpdateEntriesLimit defines max number of rule's state updates stored in memory.
Overrides `-rule.updateEntriesLimit` in vmalert. | _integer_ | false |
#### RuleGroup
RuleGroup is a list of sequentially evaluated recording and alerting rules.
_Appears in:_
- [VMRuleSpec](#vmrulespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `concurrency` | Concurrency defines how many rules execute at once. | _integer_ | false |
| `eval_alignment` | Optional
The evaluation timestamp will be aligned with group's interval,
instead of using the actual timestamp that evaluation happens at.
It is enabled by default to get more predictable results
and to visually align with graphs plotted via Grafana or vmui. | _boolean_ | true |
| `eval_delay` | Optional
Adjust the `time` parameter of group evaluation requests to compensate intentional query delay from the datasource. | _string_ | true |
| `eval_offset` | Optional
Group will be evaluated at the exact offset in the range of [0...interval]. | _string_ | true |
| `extra_filter_labels` | ExtraFilterLabels optional list of label filters applied to every rule's
request within a group. Is compatible only with VM datasource.
See more details [here](https://docs.victoriametrics.com/#prometheus-querying-api-enhancements)
Deprecated, use params instead | _object (keys:string, values:string)_ | false |
| `headers` | Headers contains optional HTTP headers added to each rule request
Must be in form `header-name: value`
For example:
headers:
- "CustomHeader: foo"
- "CustomHeader2: bar" | _string array_ | false |
| `interval` | evaluation interval for group | _string_ | false |
| `labels` | Labels optional list of labels added to every rule within a group.
It has priority over the external labels.
Labels are commonly used for adding environment
or tenant-specific tag. | _object (keys:string, values:string)_ | false |
| `limit` | Limit the number of alerts an alerting rule and series a recording
rule can produce | _integer_ | false |
| `name` | Name of group | _string_ | true |
| `notifier_headers` | NotifierHeaders contains optional HTTP headers added to each alert request which will send to notifier
Must be in form `header-name: value`
For example:
headers:
- "CustomHeader: foo"
- "CustomHeader2: bar" | _string array_ | false |
| `params` | Params optional HTTP URL parameters added to each rule request | _[Values](#values)_ | false |
| `rules` | Rules list of alert rules | _[Rule](#rule) array_ | true |
| `tenant` | Tenant id for group, can be used only with enterprise version of vmalert.
See more details [here](https://docs.victoriametrics.com/vmalert#multitenancy). | _string_ | false |
| `type` | Type defines datasource type for enterprise version of vmalert
possible values - prometheus,graphite,vlogs | _string_ | false |
#### SecretOrConfigMap
SecretOrConfigMap allows to specify data as a Secret or ConfigMap. Fields are mutually exclusive.
_Appears in:_
- [OAuth2](#oauth2)
- [TLSConfig](#tlsconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `configMap` | ConfigMap containing data to use for the targets. | _[ConfigMapKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#configmapkeyselector-v1-core)_ | false |
| `secret` | Secret containing data to use for the targets. | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### SecurityContext
SecurityContext extends PodSecurityContext with ContainerSecurityContext
It allows to globally configure security params for pod and all containers
_Appears in:_
- [CommonApplicationDeploymentParams](#commonapplicationdeploymentparams)
- [VLogsSpec](#vlogsspec)
- [VMAgentSpec](#vmagentspec)
- [VMAlertSpec](#vmalertspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMAuthLoadBalancerSpec](#vmauthloadbalancerspec)
- [VMAuthSpec](#vmauthspec)
- [VMInsert](#vminsert)
- [VMSelect](#vmselect)
- [VMSingleSpec](#vmsinglespec)
- [VMStorage](#vmstorage)
#### Sigv4Config
_Appears in:_
- [SnsConfig](#snsconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `access_key` | The AWS API keys. Both access_key and secret_key must be supplied or both must be blank.
If blank the environment variables `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are used. | _string_ | false |
| `access_key_selector` | secret key selector to get the keys from a Kubernetes Secret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `profile` | Named AWS profile used to authenticate | _string_ | false |
| `region` | AWS region, if blank the region from the default credentials chain is used | _string_ | false |
| `role_arn` | AWS Role ARN, an alternative to using AWS API keys | _string_ | false |
| `secret_key_selector` | secret key selector to get the keys from a Kubernetes Secret | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
#### SlackAction
SlackAction configures a single Slack action that is sent with each
notification.
See https://api.slack.com/docs/message-attachments#action_fields and
https://api.slack.com/docs/message-buttons for more information.
_Appears in:_
- [SlackConfig](#slackconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `confirm` | | _[SlackConfirmationField](#slackconfirmationfield)_ | false |
| `name` | | _string_ | false |
| `style` | | _string_ | false |
| `text` | | _string_ | true |
| `type` | | _string_ | true |
| `url` | | _string_ | false |
| `value` | | _string_ | false |
#### SlackConfig
SlackConfig configures notifications via Slack.
See https://prometheus.io/docs/alerting/latest/configuration/#slack_config
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `actions` | A list of Slack actions that are sent with each notification. | _[SlackAction](#slackaction) array_ | false |
| `api_url` | The secret's key that contains the Slack webhook URL.
It must be at them same namespace as CRD
fallback to global setting if empty | _[SecretKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#secretkeyselector-v1-core)_ | false |
| `callback_id` | | _string_ | false |
| `channel` | The channel or user to send notifications to. | _string_ | false |
| `color` | | _string_ | false |
| `fallback` | | _string_ | false |
| `fields` | A list of Slack fields that are sent with each notification. | _[SlackField](#slackfield) array_ | false |
| `footer` | | _string_ | false |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `icon_emoji` | | _string_ | false |
| `icon_url` | | _string_ | false |
| `image_url` | | _string_ | false |
| `link_names` | | _boolean_ | false |
| `mrkdwn_in` | | _string array_ | false |
| `pretext` | | _string_ | false |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `short_fields` | | _boolean_ | false |
| `text` | | _string_ | false |
| `thumb_url` | | _string_ | false |
| `title` | | _string_ | false |
| `title_link` | | _string_ | false |
| `username` | | _string_ | false |
#### SlackConfirmationField
SlackConfirmationField protect users from destructive actions or
particularly distinguished decisions by asking them to confirm their button
click one more time.
See https://api.slack.com/docs/interactive-message-field-guide#confirmation_fields
for more information.
_Appears in:_
- [SlackAction](#slackaction)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `dismiss_text` | | _string_ | false |
| `ok_text` | | _string_ | false |
| `text` | | _string_ | true |
| `title` | | _string_ | false |
#### SlackField
SlackField configures a single Slack field that is sent with each notification.
See https://api.slack.com/docs/message-attachments#fields for more information.
_Appears in:_
- [SlackConfig](#slackconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `short` | | _boolean_ | false |
| `title` | | _string_ | true |
| `value` | | _string_ | true |
#### SnsConfig
_Appears in:_
- [Receiver](#receiver)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `api_url` | The api URL | _string_ | false |
| `attributes` | SNS message attributes | _object (keys:string, values:string)_ | false |
| `http_config` | HTTP client configuration. | _[HTTPConfig](#httpconfig)_ | false |
| `message` | The message content of the SNS notification. | _string_ | false |
| `phone_number` | Phone number if message is delivered via SMS
Specify this, topic_arn or target_arn | _string_ | true |
| `send_resolved` | SendResolved controls notify about resolved alerts. | _boolean_ | false |
| `sigv4` | Configure the AWS Signature Verification 4 signing process | _[Sigv4Config](#sigv4config)_ | true |
| `subject` | The subject line if message is delivered to an email endpoint. | _string_ | false |
| `target_arn` | Mobile platform endpoint ARN if message is delivered via mobile notifications
Specify this, topic_arn or phone_number | _string_ | false |
| `topic_arn` | SNS topic ARN, either specify this, phone_number or target_arn | _string_ | false |
#### StaticConfig
StaticConfig defines a static configuration.
See [here](https://docs.victoriametrics.com/sd_configs#static_configs)
_Appears in:_
- [VMScrapeConfigSpec](#vmscrapeconfigspec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `labels` | Labels assigned to all metrics scraped from the targets. | _object (keys:string, values:string)_ | false |
| `targets` | List of targets for this static configuration. | _string array_ | false |
#### StaticRef
StaticRef - user-defined routing host address.
_Appears in:_
- [TargetRef](#targetref)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `url` | URL http url for given staticRef. | _string_ | true |
| `urls` | URLs allows setting multiple urls for load-balancing at vmauth-side. | _string array_ | false |
#### StatusMetadata
StatusMetadata holds metadata of application update status
_Appears in:_
- [VLogsStatus](#vlogsstatus)
- [VMAgentStatus](#vmagentstatus)
- [VMAlertStatus](#vmalertstatus)
- [VMAlertmanagerStatus](#vmalertmanagerstatus)
- [VMAuthStatus](#vmauthstatus)
- [VMClusterStatus](#vmclusterstatus)
- [VMSingleStatus](#vmsinglestatus)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `observedGeneration` | ObservedGeneration defines current generation picked by operator for the
reconcile | _integer_ | true |
| `reason` | Reason defines fail reason for reconcile process | _string_ | true |
| `updateStatus` | UpdateStatus defines a status for update rollout | _[UpdateStatus](#updatestatus)_ | true |
#### StorageSpec
StorageSpec defines the configured storage for a group Prometheus servers.
If neither `emptyDir` nor `volumeClaimTemplate` is specified, then by default an [EmptyDir](https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) will be used.
_Appears in:_
- [VMAgentSpec](#vmagentspec)
- [VMAlertmanagerSpec](#vmalertmanagerspec)
- [VMSelect](#vmselect)
- [VMStorage](#vmstorage)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `disableMountSubPath` | Deprecated: subPath usage will be disabled by default in a future release, this option will become unnecessary.
DisableMountSubPath allows to remove any subPath usage in volume mounts. | _boolean_ | false |
| `emptyDir` | EmptyDirVolumeSource to be used by the Prometheus StatefulSets. If specified, used in place of any volumeClaimTemplate. More
info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir | _[EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#emptydirvolumesource-v1-core)_ | false |
| `volumeClaimTemplate` | A PVC spec to be used by the VMAlertManager StatefulSets. | _[EmbeddedPersistentVolumeClaim](#embeddedpersistentvolumeclaim)_ | false |
#### StreamAggrConfig
StreamAggrConfig defines the stream aggregation config
_Appears in:_
- [VMAgentRemoteWriteSpec](#vmagentremotewritespec)
- [VMAgentSpec](#vmagentspec)
- [VMSingleSpec](#vmsinglespec)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `configmap` | ConfigMap with stream aggregation rules | _[ConfigMapKeySelector](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#configmapkeyselector-v1-core)_ | false |
| `dedupInterval` | Allows setting different de-duplication intervals per each configured remote storage | _string_ | false |
| `dropInput` | Allow drop all the input samples after the aggregation | _boolean_ | false |
| `dropInputLabels` | labels to drop from samples for aggregator before stream de-duplication and aggregation | _string array_ | false |
| `ignoreFirstIntervals` | IgnoreFirstIntervals instructs to ignore first interval | _integer_ | false |
| `ignoreOldSamples` | IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval. | _boolean_ | false |
| `keepInput` | Allows writing both raw and aggregate data | _boolean_ | false |
| `rules` | Stream aggregation rules | _[StreamAggrRule](#streamaggrrule) array_ | false |
#### StreamAggrRule
StreamAggrRule defines the rule in stream aggregation config
_Appears in:_
- [StreamAggrConfig](#streamaggrconfig)
| Field | Description | Scheme | Required |
| --- | --- | --- | --- |
| `by` | By is an optional list of labels for grouping input series.
See also Without.
If neither By nor Without are set, then the Outputs are calculated
individually per each input time series. | _string array_ | false |
| `dedup_interval` | DedupInterval is an optional interval for deduplication. | _string_ | false |
| `drop_input_labels` | DropInputLabels is an optional list with labels, which must be dropped before further processing of input samples.
Labels are dropped before de-duplication and aggregation. | _string_ | false |
| `flush_on_shutdown` | FlushOnShutdown defines whether to flush the aggregation state on process termination
or config reload. Is `false` by default.
It is not recommended changing this setting, unless unfinished aggregations states
are preferred to missing data points. | _boolean_ | false |
| `ignore_first_intervals` | | _integer_ | true |
| `ignore_old_samples` | IgnoreOldSamples instructs to ignore samples with old timestamps outside the current aggregation interval. | _boolean_ | false |
| `input_relabel_configs` | InputRelabelConfigs is an optional relabeling rules, which are applied on the input
before aggregation. | _[RelabelConfig](#relabelconfig) array_ | false |
| `interval` | Interval is the interval between aggregations. | _string_ | true |
| `keep_metric_names` | KeepMetricNames instructs to leave metric names as is for the output time series without adding any suffix. | _boolean_ | false |
| `match` | Match is a label selector (or list of label selectors) for filtering time series for the given selector.
If the match isn't set, then all the input time series are processed. | _[StringOrArray](#stringorarray)_ | false |
| `no_align_flush_to_interval` | NoAlignFlushToInterval disables aligning of flushes to multiples of Interval.
By default flushes are aligned to Interval. | _boolean_ | false |
| `output_relabel_configs` | OutputRelabelConfigs is an optional relabeling rules, which are applied
on the aggregated output before being sent to remote storage. | _[RelabelConfig](#relabelconfig) array_ | false |
| `outputs` | Outputs is a list of output aggregate functions to produce.
The following names are allowed:
- total - aggregates input counters
- increase - counts the increase over input counters
- count_series - counts the input series
- count_samples - counts the input samples
- sum_samples - sums the input samples
- last - the last biggest sample value
- min - the minimum sample value
- max - the maximum sample value
- avg - the average value across all the samples
- stddev - standard deviation across all the samples
- stdvar - standard variance across all the samples
- histogram_bucket - creates VictoriaMetrics histogram for input samples
- quantiles(phi1, ..., phiN) - quantiles' estimation for phi in the range [0..1]
The output time series will have the following names:
input_name:aggr__