GuanceDB Engine Deployment¶
Note
This article explains how to deploy the GuanceDB for Metrics component and the GuanceDB for Logs component. Both components use one Chart.
Architecture Diagram¶
- The GuanceDB chart includes the GuanceDB for Metrics component and the GuanceDB for Logs component, both of which share guance-insert and guance-select services, providing a unified write and query interface.
- Deploying the GuanceDB for Metrics component will also deploy the GuanceDB for Metrics Storage.
Core Components¶
1.Write Load Balancer (guance-insert)
- Responsible for receiving raw data
- Distributes data to storage nodes using consistent hashing algorithm
- Supports high availability deployment
2.Query Engine (guance-select)
- Supports DQL and PromQL query languages
- Retrieves data from all storage nodes and calculates
- Returns final query results
3.Storage Nodes (guance-storage)
- Uses a share nothing architecture
- No communication between nodes, no central coordination
- Supports horizontal scaling
Prerequisites¶
- Helm version requirement: 3.7+
- Ensure that storage performance meets requirements
- It is recommended to reserve sufficient system resources
Default Deployment Configuration Information¶
Service Name | Address | Port |
---|---|---|
guance-insert | guance-insert.guancedb | 8480 |
guance-select | guance-select.guancedb | 8481 |
Capacity Planning¶
1.Memory Reservation
- All components should reserve at least 50% memory
- Used to handle sudden writes, avoiding OOM
2.CPU Reservation
- All components should reserve at least 50% CPU
- Avoid slow writes and slow queries caused by sudden writes
3.Storage Space Reservation
- Reserve 20% storage space for guance-storage nodes
- Can be configured via the
-storage.minFreeDiskSpaceBytes
parameter
Reference Configuration¶
Taking 1 million time series as an example (write every 10 seconds, real-time write QPS 100k/s, query QPS 100, data retention for 1 month):
Component | CPU | Memory | Disk |
---|---|---|---|
guance-insert | 4c | 4G | - |
guance-select | 8c | 8G | - |
guance-storage | 16c | 96G | 500G |
Note: In actual deployment, resource scale can be linearly adjusted based on the number of time series. Each component supports 2 instances by default.
GuanceDB Deployment¶
Note
There is a sequence relationship between deploying GuanceDB for Metrics and GuanceDB for Logs. You can first deploy GuanceDB for Metrics, then after Doris is deployed, configure Doris information to install GuanceDB for Logs. If you only want to deploy the GuanceDB for Logs component, set guance_storage.enabled=false
.
Storage Class Settings¶
OpenEBS reference documentation: OpenEBS Deployment
If using a public cloud, refer to the public cloud storage block component
Deploy the following yaml configuration:
apiVersion: storage.k8s.io/v1
allowVolumeExpansion: true
kind: StorageClass
metadata:
annotations:
cas.openebs.io/config: |
- name: StorageType
value: "hostpath"
- name: BasePath
value: "/data"
name: guancedb-cs
provisioner: openebs.io/local
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer
Ensure
/data
directory has enough disk capacity.
Deploy the following yaml configuration:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: guancedb-cs
provisioner: diskplugin.csi.alibabacloud.com
parameters:
type: cloud_auto
fstype: ext4
# diskTags: "a:b,b:c"
encrypted: "false"
performanceLevel: PL1 # When using via cloud box, must be set to PL0.
provisionedIops: "40000"
burstingEnabled: "false"
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Retain
allowVolumeExpansion: true
Deploy the following yaml configuration:
---
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: guancedb-cs
parameters:
csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
csi.storage.k8s.io/fstype: ext4
everest.io/disk-volume-type: SSD ## Modify disk type
everest.io/passthrough: "true"
provisioner: everest-csi-provisioner
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
Download Chart¶
Download the chart package:
--untar means uncompressed, by default it is compressed
Configure and Install GuanceDB for Metrics¶
1.Configure GuanceDB for Metrics
Enter the guancedb directory and modify values.yaml
# Modify global storage class
global:
storageClass: 'guancedb-cs'
# Disable scopedb switch
scopedb:
enabled: false
guance_select:
...
# Number of service replicas
replicaCount: 2
image:
# If offline environment modify image address, no corresponding demand can leave unchanged
repository: pubrepo.guance.com/guancedb/guance-select
# Modify nodeSelector and tolerations to schedule guance-select containers, no corresponding demand can leave unchanged
nodeSelector: {}
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule"
guance_insert:
...
# Number of service replicas
replicaCount: 2
image:
# If offline environment modify image address, no corresponding demand can leave unchanged
repository: pubrepo.guance.com/guancedb/guance-insert
# Modify nodeSelector and tolerations to schedule guance-insert containers, no corresponding demand can leave unchanged
nodeSelector: {}
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule"
guance_storage:
...
# Number of service replicas
replicaCount: 2
image:
# If offline environment modify image address, no corresponding demand can leave unchanged
repository: pubrepo.guance.com/guancedb/guance-storage
# Modify nodeSelector and tolerations to schedule guance-storage containers, no corresponding demand can leave unchanged
nodeSelector: {}
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule"
2.Install GuanceDB for Metrics component
helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
-n guancedb --create-namespace -f values.yaml
3.Check Status {#helm-check}
> kubectl get pod -n guancedb -l app.kubernetes.io/instance=guancedb
NAME READY STATUS RESTARTS AGE
guance-insert-0 1/1 Running 0 107s
guance-select-db5dfb66b-qsncr 1/1 Running 0 84s
guance-storage-0 1/1 Running 0 44s
guance-storage-1 1/1 Running 0 28s
Configure and Install GuanceDB for Logs¶
Note
If the GuanceDB for Metrics component has already been deployed, installing GuanceDB for Logs will not add new services but only add startup parameters to the services.
1.Configure GuanceDB for Logs
Enter the guancedb directory and modify values.yaml
Note
values.yaml is the file used to configure GuanceDB for Metrics. If values.yaml is lost, you can execute helm get values -n guancedb guancedb > values.yaml
to retrieve it.
...
doris:
# Enable GuanceDB for Logs
enabled: true
# Add Doris fe nodes
feIPs: []
# ["xx.xx.xx.xx","xx.xx.xx.xx"]
# Doris root password
rootPassword: ''
# Doris normal user password
userReadPassword: ''
# memory size for cache data
cacheSizeLimit: 4Gi
guance_throttler:
# Enable
enabled: true
...
2.Install GuanceDB for Logs
helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
-n guancedb --create-namespace -f values.yaml
3.Check Status {#helm-check-logs}
> kubectl get pod -n guancedb -l app.kubernetes.io/instance=guancedb
NAME READY STATUS RESTARTS AGE
guance-insert-0 1/1 Running 0 107s
guance-select-db5dfb66b-qsncr 1/1 Running 0 84s
guance-storage-0 1/1 Running 0 44s
guance-storage-1 1/1 Running 0 28s
Uninstall¶
Others¶
Modify Component Parameters¶
1.Modify values.yaml
guance_storage:
...
# You can add storage parameters here
extraArgs:
retentionFilters.config: http://kodo.forethought-kodo:9527/v1/workspace_retention
envflag.enable: 'true'
loggerFormat: json
loggerMaxArgLen: '10000'
loggerTimezone: Asia/Shanghai
guance_insert:
...
# You can add insert parameters here
extraArgs:
envflag.enable: 'true'
loggerFormat: json
loggerMaxArgLen: '10000'
loggerTimezone: Asia/Shanghai
streamaggr.insertVerify: 'true'
guance_select:
# You can add select parameters here
...
extraArgs:
envflag.enable: 'true'
loggerFormat: json
loggerMaxArgLen: '10000'
loggerTimezone: Asia/Shanghai
http.disableResponseCompression: 'true'
search.denyPartialResponse: true
search.maxQueryDuration: 110s
slowQueryDuration: 1ms
streamaggr.selectVerify: 'true'
2.Update Deployment:
helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
-n guancedb --create-namespace -f values.yaml
Service Parameter Description¶
Guance Select Parameter Description¶
Parameter Name | Type | Default Value | English Explanation |
---|---|---|---|
-blockcache.missesBeforeCaching | int | 2 | The number of cache misses before a cache block is placed in the cache. Higher values may reduce indexdb/dataBlocks cache size but increase CPU and disk read operations. |
-cacheDataPath | string | "/tmp/guance-select" | Cache file directory path. Not saved if empty. |
-cacheExpireDuration | duration | 30m0s | Memory cache items are removed after not being accessed for a specified period. Lower values reduce memory usage but increase CPU usage. |
-dedup.minScrapeInterval | duration | 1ms | Only keeps the last sample for each time series within each discrete time interval, preventing duplicates. |
-denyQueryTracing | bool | Whether to disable query tracing functionality. | |
-doris.coldDataTierOnly | bool | Use cold storage only. | |
-doris.disableBFOnNewTables | bool | Do not use Bloom filters for new tables. | |
-doris.disableUnicodeTokenizer | bool | Use Chinese tokenizer instead of Unicode tokenizer. | |
-doris.enableBFOnOldTables | bool | Use Bloom filters for old tables. | |
-doris.enableFileCacheTTL | bool | Use data cache with TTL for SelectDB version databases. | |
-doris.enableWarmDataTier | bool | Use warm-hot storage rather than hot-cold storage. | |
-doris.indexCacheTTL | duration | 30m0s | Doris index cache expiration time. |
-doris.onlyQueryFE | bool | Query data only from FE nodes after enabling. | |
-doris.onlyWriteFE | bool | Write data only to FE nodes after enabling. | |
-doris.replicationFactor | int | 1 | Replication factor for Doris tables. |
-doris.storageResource | string | "s3_default" | Resource name used for storage strategy. |
-doris.variantSchemaMode | string | Supported values: 'none', 'minimal', 'full'. | |
-dorisCluster | string | "default_cluster" | Doris cluster name. |
-dorisFENode | array | List of Doris FE node addresses, comma-separated. | |
-dorisHTTPPort | int | 8030 | Doris HTTP port. |
-dorisMySQLPort | int | 9030 | Doris MySQL port. |
-dorisPassword | string | Doris password. | |
-dorisUsername | string | "root" | Doris username. |
-enableTCP6 | bool | Whether to enable IPv6 listening and dialing. Default uses only IPv4. | |
-envflag.enable | bool | Whether to allow reading parameters from environment variables, command-line parameters take precedence. | |
-envflag.prefix | string | Environment variable prefix, effective only when environment variable reading is enabled. | |
-filestream.disableFadvise | bool | Whether to disable fadvise() system call, reduces CPU usage when reading large files but generally not recommended. | |
-flagsAuthKey | value | Authentication key for /flags endpoint. Can be read from a file or URL. | |
-fs.disableMmap | bool | Whether to use pread() instead of mmap() to read data files. Defaults to mmap() on 64-bit architectures and pread() on 32-bit. | |
-globalReplicationFactor | int | 1 | Number of replicas per sample in vmstorage groups. Supports high availability. |
-http.connTimeout | duration | 2m0s | HTTP connection timeout, closes connection after timeout. 0 means no closure. |
-http.disableResponseCompression | bool | Whether to disable HTTP response compression to save CPU. Default enables compression to save bandwidth. | |
-http.header.csp | string | Set Content-Security-Policy header, recommended: "default-src 'self'". | |
-http.header.frameOptions | string | Set X-Frame-Options header. | |
-http.header.hsts | string | Set Strict-Transport-Security header, recommended: 'max-age=31536000; includeSubDomains'. | |
-http.idleConnTimeout | duration | 1m0s | HTTP idle connection timeout. |
-http.maxGracefulShutdownDuration | duration | 7s | Maximum graceful shutdown duration for HTTP server. |
-http.pathPrefix | string | Prefix for all HTTP paths, suitable for proxy paths. | |
-http.shutdownDelay | duration | Delay before HTTP server shutdown, during which /health returns non-OK, facilitating load balancer request switching. | |
-httpAuth.password | value | HTTP basic authentication password, supports reading from a file or URL. | |
-httpAuth.username | string | HTTP basic authentication username, disables authentication if empty. | |
-httpListenAddr | array | List of HTTP listening addresses, supports multiple values or comma-separated values. | |
-httpListenAddr.useProxyProtocol | array | Specify whether to enable proxy protocol for listening addresses, cannot provide standard /metrics endpoint after enabling. | |
-insert.maxFutureTimeDrift | duration | 1h0m0s | Reject events with timestamps exceeding current time plus this value. |
-insert.maxPastTimeDrift | duration | Reject events with timestamps earlier than current time minus this value. | |
-insertNode | array | List of Guance-insert node addresses, comma-separated. | |
-internStringCacheExpireDuration | duration | 6m0s | Interned string cache expiration time. |
-internStringDisableCache | bool | Whether to disable interned string cache, disabling reduces memory but increases CPU usage. | |
-internStringMaxLen | int | 500 | Maximum length of interned strings, lower values reduce memory but increase CPU usage. |
-loggerDisableTimestamps | bool | false | Whether to disable timestamp writing in logs |
-loggerErrorsPerSecondLimit | int | 0 | Error log limit per second, errors exceeding the limit are suppressed, 0 indicates no limit |
-loggerFormat | string | "default" | Log format, options "default" or "json" |
-loggerJSONFields | string | - | Rename JSON log fields, such as "ts:timestamp,msg:message" |
-loggerLevel | string | "INFO" | Minimum log level, supports INFO, WARN, ERROR, FATAL, PANIC |
-loggerMaxArgLen | int | 1000 | Maximum length of single log parameter, exceeding part is replaced with prefixes and suffixes |
-loggerOutput | string | "stderr" | Log output location, supports stderr and stdout |
-loggerTimezone | string | "UTC" | Timezone used for log timestamps, must be valid IANA timezone name |
-loggerWarnsPerSecondLimit | int | 0 | Warning log limit per second, warnings exceeding the limit are suppressed, 0 indicates no limit |
-memory.allowedBytes | size | 0 | System memory size allowed for VictoriaMetrics cache, overrides -memory.allowedPercent when set |
-memory.allowedPercent | float | 60 | Percentage of system memory allowed for VictoriaMetrics cache |
-metrics.exposeMetadata | bool | false | Whether to expose TYPE and HELP metadata on /metrics page |
-metricsAuthKey | value | - | Authentication key for /metrics endpoint, supports reading from a file or URL |
-pprofAuthKey | value | - | Authentication key for /debug/pprof/* endpoints, supports reading from a file or URL |
-prevCacheRemovalPercent | float | 0.1 | Remove cache entries when service requests ratio in previous cache is below this value, improves memory efficiency but increases CPU usage |
-pushmetrics.disableCompression | bool | false | Whether to disable request body compression when pushing metrics |
-pushmetrics.extraLabel | array | - | Additional labels when pushing metrics, such as instance="foo" |
-pushmetrics.header | array | - | Additional HTTP request headers when pushing metrics |
-pushmetrics.interval | duration | 10s | Interval for pushing metrics |
-pushmetrics.url | array | - | Specified list of URLs for pushing metrics |
-queryPermitRatio | float | 1 | Allowed query request ratio |
-replicationFactor | array | 1 | Number of replicas per sample, supports key:value form |
-retentionFilters.cleanInterval | duration | 360h | Interval for cleaning expired data |
-retentionFilters.config | string | - | Retention filter configuration file path |
-retentionFilters.configCheckInterval | duration | 1h | Interval for checking changes in retention filter configuration file |
-scopeDB.dbName | string | "scopedb" | ScopeDB database name |
-scopeDB.dumpIngestBody | bool | false | Whether to print ingestion content on failure |
-scopeDB.ensureJob | bool | false | Whether to enable ensure job functionality |
-scopeDB.indexCacheTTL | duration | 5m | ScopeDB index cache TTL |
-scopeDB.maxConcurrentIndexRequests | int | 32 | Maximum concurrent index requests |
-scopeDB.node | array | - | ScopeDB node address list |
-scopeDB.nodegroup.ctl | string | "query-meta" | Control plane node group name |
-scopeDB.nodegroup.detailQuery | string | "detail-query" | Non-aggregated query node group name |
-scopeDB.nodegroup.job | string | "job" | Job execution node group name |
-scopeDB.nodegroup.largeQuery | string | "large-query" | Large query node group name |
-scopeDB.nodegroup.query | string | "query" | Normal query node group name |
-scopeDB.nodegroup.systemQuery | string | "system-query" | System query node group name for referrers like "func" and "kodo" |
-scopeDB.nodesUpdateInterval | duration | 10s | Node update interval |
-scopeDB.onlyUseBootstrapNodes | bool | false | Whether to use bootstrap nodes only |
-scopeDB.password | string | - | ScopeDB password |
-scopeDB.port | uint | 6543 | ScopeDB port |
-scopeDB.storage.accessKeyID | string | - | ScopeDB storage access Key ID |
-scopeDB.storage.bucket | string | - | ScopeDB storage bucket |
-scopeDB.storage.endpoint | string | - | ScopeDB storage service endpoint |
-scopeDB.storage.prefix | string | - | ScopeDB storage prefix |
-scopeDB.storage.region | string | - | ScopeDB storage region |
-scopeDB.storage.secretAccessKey | string | - | ScopeDB storage Secret access key |
-scopeDB.storage.type | string | - | ScopeDB storage type |
-scopeDB.username | string | - | ScopeDB username |
-search.cacheTimestampOffset | duration | 5m | Maximum time offset for query response data to avoid gaps due to clock synchronization issues |
-search.compatibleMode | bool | false | Enable Prometheus compatible mode |
-search.debugThrottler | bool | false | Debug throttler |
-search.denyPartialResponse | bool | false | Whether to deny partial responses in exchange for data consistency |
-search.disableCache | bool | false | Disable response caching, suitable for backfilling historical data |
-search.disableImplicitConversion | bool | false | Disable implicit subquery conversion related queries |
-search.dorisColdQueryCPULimit | int | 4 | CPU limit for cold data SQL queries |
-search.dorisDisableADBC | bool | false | Prefer Thrift over ADBC |
-search.dorisDisableSampling | bool | false | Disable sampling |
-search.dorisEnableSmallColdGroup | bool | false | Use dedicated workgroups for small cold queries |
-search.dorisLargeColdQueryRowCount | int | - | Deprecated, use search.minRowsForLargeQuery instead |
-search.dorisMaxCursorRows | int | 50000000 | Maximum scanned rows for cursor queries |
-search.dorisMaxLiteralArraySize | int | 1000 | Maximum number of elements in array literals |
-search.dorisMaxOrderingRows | int | - | Maximum scanned rows for custom ordering queries |
-search.dorisMaxRowsForOrder | int | - | Maximum number of rows used for non-time column ORDER BY |
-search.dorisMaxSamplingRows | int | - | Deprecated, use search.numRowsToSample instead |
-search.dorisThrottlerURL | string | - | Throttler API address |
-search.latencyOffset | duration | 30s | Delay time for data points to become visible in query results after collection. Can be overridden by query parameter latency_offset. Too small values may result in incomplete final data points in query results. |
-search.logImplicitConversion | bool | - | Whether to log implicit subquery conversions. See Implicit Conversion Documentation. Can be disabled with -search.disableImplicitConversion. |
-search.logQueryMemoryUsage | size | 524288000 (500MB) | Log queries consuming more than this amount of memory, facilitating detection and optimization of large queries. Default is off. Supports KB, MB, GB units. |
-search.maxConcurrentRequestsPerTenant | int | 5 | Maximum concurrent query requests per tenant. High values lead to CPU and memory resource tension. |
-search.maxExportDuration | duration | 720h (30 days) | Maximum call duration for /api/v1/export interface. |
-search.maxGroups | int | 100000 | Maximum number of groups allowed in query results. |
-search.maxLabelsAPIDuration | duration | 5s | Maximum response duration for /api/v1/labels, /api/v1/label/.../values, and /api/v1/series interfaces. |
-search.maxLimit | int | 10000 | Maximum number of rows allowed in query results. |
-search.maxLookback | duration | Dynamic detection | Synonymous with Prometheus's -search.lookback-delta. Can be overridden by max_lookback parameter. Affects query lookback window. |
-search.maxMemoryPerQuery | size | 0 | Maximum memory allowed per query, queries exceeding this limit are rejected. Supports KB, MB, GB units. |
-search.maxMetrics | int | 10000000 | Deprecated, migrated to -search.maxShowUniqueTimeseries and -search.maxQueryUniqueTimeseries. |
-search.maxPointsPerTimeseries | int | 30000 | Maximum data points returned per time series by /api/v1/query_range, mainly limits client plotting points. |
-search.maxPointsSubqueryPerTimeseries | int | 100000 | Maximum generated data points per time series for subqueries. See related blog posts. |
-search.maxQueryDuration | duration | 30s | Maximum query execution duration. |
-search.maxQueryLen | size | 16384 (16KB) | Maximum query statement length. Supports KB, MB units. |
-search.maxQueryUniqueTimeseries | int | 300000 | Maximum unique time series allowed to be selected in /api/v1/query. Limits memory usage. |
-search.maxQueueDuration | duration | 10s | Maximum queue wait time when maximum concurrent requests limit is reached. |
-search.maxResponseSeries | int | 0 (unlimited) | Maximum time series returned by /api/v1/query and /api/v1/query_range, 0 means unlimited. |
-search.maxSamplesPerQuery | int | 1000000000 | Maximum raw samples scanned per query. Prevents excessive queries from exhausting resources. |
-search.maxSamplesPerSeries | int | 30000000 | Maximum raw samples scanned per time series. |
-search.maxSeriesPerAggrFunc | int | 1000000 | Maximum time series generated by aggregation functions. |
-search.maxShowUniqueTimeseries | int | 10000000 | Maximum time series shown by show function, limits memory usage. |
-search.maxStalenessInterval | duration | Dynamically calculated | Maximum staleness calculation interval, defaults to automatic median sample interval calculation. |
-search.maxStatusRequestDuration | duration | 5m0s | Maximum response time for /api/v1/status/* requests. |
-search.maxStepForPointsAdjustment | duration | 1m0s | Maximum step for /api/v1/query_range interface to adjust points closer to current time than latencyOffset. |
-search.maxWorkersPerQuery | int | 2 | Maximum CPU cores allowed per query. Adjustable to optimize performance, cannot exceed physical CPU cores. |
-search.minRowsForLargeQuery | int | 10000000 | Minimum number of rows scanned for large queries. |
-search.minStalenessInterval | duration | - | Minimum staleness interval for calculations, removes irregular sampling intervals leading to chart breakpoints. |
-search.minTimeRangeForLargeQuery | duration | 12h0m0s | Minimum time range for large queries. |
-search.minWindowForInstantRollupOptimization | duration | 3h | Minimum window value for enabling cache optimization for instant queries with lookback windows. |
-search.noStaleMarkers | bool | false | If there are no Prometheus stale markers in the database, setting to true saves CPU resources. |
-search.queryStats.lastQueriesCount | int | 20000 | Number of recent queries tracked by /api/v1/status/top_queries, 0 disables tracking. |
-search.queryStats.minQueryDuration | duration | 1ms | Shortest query duration threshold recorded in statistics, queries below this duration are ignored. |
-search.resetRollupResultCacheOnStartup | bool | false | Whether to reset rollup result cache on startup. |
-search.rowsToSample | int | 10000000 | Maximum number of rows scanned for sampling queries. |
-search.rowsToSampleForFacet | int | 10000000 | Maximum number of rows scanned for show_x_field or distinct queries. |
-search.scopeDB.firstCursorScanRows | int | 10000000 | Maximum number of rows scanned initially for cursor pagination queries. |
-search.scopeDB.logQuery | bool | true | Whether to log scopeDB queries. |
-search.scopeDB.maxLiteralArraySize | int | 1000 | Maximum number of elements in array literals. |
-search.scopeDB.maxRowsForOrder | int | 100000 | Maximum number of rows for non-time columns order by. |
-search.scopeDB.maxTimeRange | duration | - | Maximum time range for queries. |
-search.setLookbackToStep | bool | false | Whether to fix lookback to step parameter, adjusting query model to resemble InfluxDB. Disables -search.maxLookback and -search.maxStalenessInterval when enabled. |
-search.skipSlowReplicas | bool | false | Whether to skip the slowest vmstorage nodes in replication factor during queries, potentially improving speed but risking incomplete data. |
-search.treatDotsAsIsInRegexps | bool | false | Whether to filter dot characters in regular expressions. This option is deprecated, recommend using graphite syntax. |
-slowQueryDuration | duration | 1s | Queries exceeding this duration are recorded as slow queries. |
-storageNode | array | - | Array of guance-storage node addresses, separated by commas or specified multiple times. |
-streamaggr.cleanupInterval | duration | 10m0s | Expiration query cleanup interval. |
-streamaggr.dataBlocksCacheSize | int | 157286400 (150MB) | Data blocks cache size. |
-streamaggr.ignoreContinuousCheck | bool | false | Whether to ignore continuity checks. |
-streamaggr.indexBlocksCacheSize | int | 52428800 (50MB) | Index blocks cache size. |
-streamaggr.queryRetentionPeriod | duration | 168h0m0s (7 days) | Query retention period. |
-streamaggr.retentionMonths | int | 6 | Number of months for stream aggregation data retention. |
-streamaggr.selectVerify | bool | false | Whether to validate stream aggregation results. |
-tls | array | No | Whether to enable TLS for specified -httpListenAddr (i.e., HTTPS). Must set -tlsCertFile and -tlsKeyFile simultaneously. Supports multiple comma-separated values or repeated settings. Empty value treated as false. |
-tlsCertFile | array | No | Path to TLS certificate file for corresponding -httpListenAddr. Suggest using ECDSA certificates over RSA certificates due to slower RSA certificates. Certificate files re-read automatically every second, allowing dynamic updates. Supports multiple values. |
-tlsCipherSuites | array | No | Optional list of TLS cipher suites for HTTPS requests when enabling TLS. Supports multiple values. Detailed supported list see: https://pkg.go.dev/crypto/tls#pkg-constants |
-tlsKeyFile | array | No | Path to TLS key file for corresponding -httpListenAddr. Key files re-read automatically every second, allowing dynamic updates. Supports multiple values. |
-tlsMinVersion | array | No | Minimum TLS version restriction (optional). Supports TLS10, TLS11, TLS12, TLS13. Supports multiple values. |
-version | No parameter | No | Show VictoriaMetrics version information. |
-vmstorageDialTimeout | duration | 3s | Timeout for establishing RPC connections between vmselect and vmstorage. See -vmstorageUserTimeout for details. |
-vmstorageUserTimeout | duration | 3s | Network timeout for RPC connections between vmselect and vmstorage (Linux only). Lower values reduce maximum query duration during network failures. See TCP_USER_TIMEOUT explanation. |
-zipkin.batchSize | int | 100 | Maximum number of Spans sent in a single batch. |
-zipkin.bufferSize | int | 10000 | Maximum number of Spans buffered. |
-zipkin.endpoint | string | No | Zipkin collector endpoint URL, e.g., http://localhost:9529. |
-zipkin.flushPeriod | duration | 1s | Maximum flush interval time. |
-zipkin.serviceName | string | guance-select | Service name used in Zipkin Span. |
Guance Insert Parameter Description¶
Parameter Name | Type | Default Value | English Explanation |
---|---|---|---|
-blockcache.missesBeforeCaching | int | 2 | Number of cache misses before placing the cache block into the cache. Higher values may reduce cache size but increase CPU and disk read pressure. |
-cacheExpireDuration | duration | 30m0s | Data in memory cache will be removed if not accessed for a period of time. Smaller values reduce memory usage but increase CPU usage. |
-denyQueryTracing | None | None | Whether to disable query tracing functionality. See: https://docs.victoriametrics.com/#query-tracing |
-disableInflux | None | true | Whether to disable support for Influx format. |
-disableRerouting | None | true | Whether to disable data rerouting. Triggered when some vmstorage writes are slow, disabling this feature reduces active time series during rolling restarts. |
-disableReroutingOnUnavailable | None | None | Whether to disable rerouting when vmstorage nodes are unavailable. Disabling this stops data writing if a node is unavailable, reducing impact during restarts or sequence changes. |
-doris.cacheDataPath | string | /data/file-queue | Cache file path. |
-doris.coldDataTierOnly | None | None | Use cold data storage layer only. |
-doris.debugIndexName | string | default | IndexName requiring additional debug logs. |
-doris.debugMeasurement | string | None | Measurement requiring additional debug logs. |
-doris.debugNamespace | string | None | Namespace requiring additional debug logs. |
-doris.debugTenantID | uint | None | Tenant ID (accountID) requiring additional debug logs. |
-doris.disableBFOnNewTables | None | None | Do not enable Bloom filters on newly created tables. |
-doris.disableKeepAlives | None | None | Disable keep-alive in stream load. |
-doris.disableUnicodeTokenizer | None | None | Use Chinese tokenizer instead of Unicode tokenizer. |
-doris.enableBFOnOldTables | None | None | Enable Bloom filters for old tables. |
-doris.enableFileCacheTTL | None | None | Enable cloud database SelectDB data cache: https://help.aliyun.com/document_detail/2638759.html |
-doris.enableWarmDataTier | None | None | Enable warm-hot storage mode, replacing hot-cold mode. |
-doris.forceFlushInterval | duration | 30s | Non-event data forced flush interval. |
-doris.indexCacheTTL | duration | 30m0s | Doris index cache TTL. |
-doris.loadToSingleTablet | None | None | Use load_to_single_tablet header in stream load requests. |
-doris.maxCacheSize | size | 0 | Deprecated, use fileQueue.maxTotalSize instead. Maximum byte size for total cached data. |
-doris.maxConcurrentInserts | int | None | Deprecated, use fileQueue.workers instead. |
-doris.maxFieldCount | size | 512 | Maximum field count allowed per measurement. Supports KB, MB, GB units. |
-doris.maxFieldSize | size | 33554432 | Maximum byte size per field. Supports KB, MB, GB units. |
-doris.maxSizePerRequest | size | 0 | Deprecated, use fileQueue.maxFileSize instead. Maximum size per line in single parsing. |
-doris.onlyQueryFE | None | None | Only query data from FE nodes after enabling, no direct access to BE. |
-doris.onlyWriteFE | None | None | Only write data to FE nodes after enabling, no direct writes to BE. |
-doris.replicationFactor | int | 1 | Replication factor for Doris tables. |
-doris.sampleIndexName | string | None | Sample index name. |
-doris.sampleInsertRatio | int | None | Sample insertion ratio. |
-doris.sampleInterval | value | 1s | Sample interval time, supports s/m/h/d/w/y as units. Defaults monthly. |
-doris.sampleNamespace | string | None | Sample namespace. |
-doris.sampleTenantID | string | None | Sample tenant ID. |
-doris.storageResource | string | s3_default | Resource name for Doris storage strategy. |
-doris.variantSchemaMode | string | None | Schema mode, supports 'none', 'minimal', 'full'. |
-dorisCluster | string | default_cluster | Doris cluster name. |
-dorisFENode | array | None | Doris-FE node addresses (multiple separated by commas). |
-dorisHTTPPort | int | 8030 | Doris HTTP port. |
-dorisMySQLPort | int | 9030 | Doris MySQL port. |
-dorisPassword | string | None | Password for connecting to Doris. |
-dorisUsername | string | root | Username for connecting to Doris. |
-dropSamplesOnOverload | None | None | If vmstorage nodes are overloaded or unavailable, whether to drop samples to ensure cluster availability. Note that this operation executes before replication, use with caution. |
-enableTCP6 | None | None | Whether to enable IPv6 listening and dialing. Default only enables IPv4. |
-envflag.enable | None | None | Whether to allow reading parameters from environment variables. Command-line parameters take precedence. See: https://docs.victoriametrics.com/#environment-variables |
-envflag.prefix | string | None | Environment variable prefix (use with -envflag.enable). |
-fileQueue.maxFileSize | size | 104857600 | Maximum size of a single file in file queue (default 100MB). |
-fileQueue.maxTotalSize | size | 3758096384 | Upper limit for total file queue size (default 3.5GB). |
-fileQueue.workers | int | 8 | Maximum number of concurrent threads for inserting into ScopeDB or Doris. |
-filedb.maxFileSize | int | 10485760 | Maximum file size for filedb (default 10MB). |
-filestream.disableFadvise | None | None | Whether to disable fadvise() system call to prevent OS cache eviction of recent data while reading large files. |
-flagsAuthKey | value | None | Authentication key for /flags interface. Can be read from a file or URL. |
-fs.disableMmap | None | None | Whether to disable mmap(), using pread() instead to read data files. Default enables mmap() on 64-bit systems. |
-gcolumnCompressLevel | int | None | Compression level for guance column protocol. Higher values compress better but consume more CPU; negative values reduce CPU usage but increase network transmission. |
-http.connTimeout | duration | 2m0s | HTTP connection timeout. Helps load balancers distribute traffic more evenly. 0 means no timeout. |
-http.disableResponseCompression | None | None | Whether to disable HTTP response compression to save CPU. Default enables compression to save network bandwidth. |
-http.header.csp | string | None | Set Content-Security-Policy header value, recommended value: "default-src 'self'" |
-http.header.frameOptions | string | None | Set X-Frame-Options header value. |
-http.header.hsts | string | None | Set Strict-Transport-Security header value, recommended value: "max-age=31536000; includeSubDomains" |
-http.idleConnTimeout | duration | 1m0s | Idle HTTP connection timeout. |
-http.maxGracefulShutdownDuration | duration | 7s | Longest wait time for graceful shutdown of HTTP service. High-load servers may require higher values. |
-http.pathPrefix | string | None | Prefix for all HTTP paths, e.g., setting to /foo/bar makes all paths start with it, facilitating reverse proxy. |
-http.shutdownDelay | duration | None | Delay before HTTP service shutdown. During this period, /health returns non-OK to notify load balancers to switch traffic. |
-httpAuth.password | value | None | HTTP Basic Auth password. Usernames empty disables it. Supports loading from a file or URL. |
-httpAuth.username | string | None | HTTP Basic Auth username. Empty disables it, must be used with -httpAuth.password. |
-httpListenAddr | array | None | HTTP service listening address. Supports multiple addresses. |
-httpListenAddr.useProxyProtocol | array | false | Whether to use proxy protocol for connections received by -httpListenAddr . After enabling, HTTP server cannot provide /metrics endpoint, use -pushmetrics.url for metrics pushing. Supports comma-separated or repeated settings. Empty value treated as false. |
-influx.defaultBatchLinesCount | size | 16 | Default number of lines per batch when parsing InfluxDB. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB. |
-influx.defaultBatchSize | size | 1048576 | Default byte size per batch when parsing InfluxDB. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB. |
-insert.maxFutureTimeDrift | duration | 1h0m0s | If event timestamp exceeds current time plus this value, the data will be rejected. |
-insert.maxPastTimeDrift | duration | If event timestamp is earlier than current time minus this value, the data will be rejected. | |
-insertNode | array | Specify guance-insert node addresses, multiple separated by commas, supports quoted or bracketed values. | |
-internStringCacheExpireDuration | duration | 6m0s | Expiration time for interned string cache. For details see: https://en.wikipedia.org/wiki/String_interning. |
-internStringDisableCache | false | Whether to disable interned string cache. May reduce memory usage but increase CPU usage. | |
-internStringMaxLen | int | 500 | Maximum length of interned strings. Setting smaller values may reduce memory usage but increase CPU usage. |
-loggerDisableTimestamps | false | Whether to disable timestamp logging in logs. | |
-loggerErrorsPerSecondLimit | int | Maximum number of ERROR logs allowed per second, excess logs will be suppressed. Set to 0 for unlimited. | |
-loggerFormat | string | default | Log format, options: default, json. |
-loggerJSONFields | string | Rename fields in JSON logs, e.g., "ts:timestamp,msg:message". Supported fields: ts, level, caller, msg. | |
-loggerLevel | string | INFO | Minimum log level for output, options: INFO, WARN, ERROR, FATAL, PANIC. |
-loggerMaxArgLen | int | 1000 | Maximum length of a single log parameter. Exceeding part will be truncated as 'arg_start..arg_end'. |
-loggerOutput | string | stderr | Log output target, supports: stderr, stdout. |
-loggerTimezone | string | UTC | Timezone used for timestamps in logs, must be valid IANA timezone format, such as America/New_York, Etc/GMT+3 or Local. |
-loggerWarnsPerSecondLimit | int | Maximum number of WARN logs allowed per second, excess logs will be suppressed. Set to 0 for unlimited. | |
-maxConcurrentInserts | int | 24 | Maximum number of concurrent insert requests allowed. Default value suits most cases, can be increased for slower networks. |
-maxInsertRequestSize | size | 134217728 | Maximum byte size per single gcolumn insert request. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB. |
-maxLabelValueLen | int | 16384 | Maximum length of label values in received time series. Excess parts will be truncated, and the metric vm_too_long_label_values_total in /metrics page will increase. |
-maxLabelsPerTimeseries | int | 256 | Maximum labels allowed per time series. Extra labels will be discarded, and the metric vm_metrics_with_dropped_labels_total in /metrics page will increase. |
-memory.allowedBytes | size | 0 | Maximum system memory (bytes) allowed for VictoriaMetrics cache. This value overrides -memory.allowedPercent if non-zero. Setting too low increases cache miss rate, setting too high affects OS page cache. |
-memory.allowedPercent | float | 60 | Percentage of system memory allowed for VictoriaMetrics cache. Setting too low may increase CPU and disk IO, setting too high affects page cache. |
-metrics.exposeMetadata | false | Whether to expose TYPE and HELP metadata on /metrics page, required by some systems (e.g., Google Cloud's Managed Prometheus). | |
-metricsAuthKey | value | Authentication key for /metrics endpoint, passed via authKey query parameter. Supports reading key from a file or URL. | |
-pprofAuthKey | value | Authentication key for /debug/pprof/* endpoints, passed via authKey query parameter. Supports reading key from a file or URL. | |
-prevCacheRemovalPercent | float | 0.1 | When hit rate of old cache falls below this value, entries are removed. Higher values reduce memory usage but may increase CPU usage. |
-pushmetrics.disableCompression | false | Whether to disable request body compression when pushing metrics to each -pushmetrics.url. | |
-pushmetrics.extraLabel | array | Additional labels for each -pushmetrics.url push, e.g., instance="foo" . Supports commas, quotes, and brackets. |
|
-pushmetrics.header | array | HTTP Headers carried in each -pushmetrics.url push request, e.g., Authorization: Basic foobar . Supports commas, quotes, and brackets. |
|
-pushmetrics.interval | duration | 10s | Interval for pushing metrics to each -pushmetrics.url. |
-pushmetrics.url | array | Target addresses for pushing /metrics page data. Not pushed by default. Supports multiple addresses and complex syntax. | |
-relabelConfig | string | Path to relabeling rules configuration file (local or http address), automatically reloaded upon receiving SIGHUP signal. See: https://docs.victoriametrics.com/#relabeling | |
-replicationFactor | int | 1 | Number of replicas for data, i.e., copies per data item across different -storageNode instances. If greater than 1, vmselect must set -dedup.minScrapeInterval=1ms for deduplication. |
-retentionFilters.cleanInterval | duration | 360h0m0s | Interval for cleaning expired data. |
-retentionFilters.config | string | Retention policy configuration file path. | |
-retentionFilters.configCheckInterval | duration | 1h0m0s | Interval for checking updates to retention policy configuration file. |
-rpc.disableCompression | false | Whether to disable compression when sending data from vminsert to vmstorage. Disabling reduces CPU usage but increases network bandwidth. | |
-scopeDB.dbName | string | scopedb | ScopeDB database name. |
-scopeDB.dumpIngestBody | false | Whether to output request body content on ingestion failure. | |
-scopeDB.ensureJob | false | Whether to enable ensure job. | |
-scopeDB.indexCacheTTL | duration | 5m0s | ScopeDB index cache TTL |
-scopeDB.maxConcurrentIndexRequests | int | 32 | Maximum concurrent index requests allowed by ScopeDB |
-scopeDB.maxFieldCount | size | 512 | Maximum fields per index |
-scopeDB.maxFieldSize | size | 33554432 | Maximum byte size per gcolumn field |
-scopeDB.node | array | List of ScopeDB node addresses, supports various formats | |
-scopeDB.nodegroup.ctl | string | ingest-meta | Control plane ScopeDB node group |
-scopeDB.nodegroup.ingest | string | ingest | ScopeDB node group for data ingestion |
-scopeDB.nodesUpdateInterval | duration | 10s | Interval for updating ScopeDB node information |
-scopeDB.onlyUseBootstrapNodes | bool | false | Whether to use bootstrap nodes only |
-scopeDB.password | string | ScopeDB access password | |
-scopeDB.port | uint | 6543 | ScopeDB access port |
-scopeDB.username | string | ScopeDB username | |
-search.debugThrottler | bool | false | Debug throttler |
-search.denyPartialResponse | bool | false | Whether to deny partial responses (improves consistency at the cost of availability) |
-search.dorisColdQueryCPULimit | int | 4 | CPU limit for cold data queries using Doris |
-search.dorisDisableADBC | bool | false | Whether to disable ADBC (prefer Thrift) |
-search.dorisDisableSampling | bool | false | Whether to disable sampling |
-search.dorisEnableSmallColdGroup | bool | false | Enable dedicated workgroups for small cold queries |
-search.dorisMaxCursorRows | int | 50000000 | Maximum rows scanned in cursor queries |
-search.dorisMaxLiteralArraySize | int | 1000 | Maximum elements in literal arrays |
-search.dorisMaxOrderingRows | int | Maximum rows scanned in custom ordering queries | |
-search.dorisMaxRowsForOrder | int | Maximum rows for ordering by non-time columns | |
-search.dorisThrottlerURL | string | Throttler API address | |
-search.logQueryMemoryUsage | size | 524288000 | Log queries using more than specified memory |
-search.maxExportDuration | duration | 720h0m0s | Maximum duration for /api/v1/export requests |
-search.maxGroups | int | 100000 | Maximum groups allowed in query results |
-search.maxLabelsAPIDuration | duration | 5s | Maximum duration for /api/v1/labels, /api/v1/label/.../values, and /api/v1/series requests |
-search.maxLimit | int | 10000 | Maximum rows allowed in query results |
-search.maxMemoryPerQuery | size | 0 | Maximum memory allowed per query, queries exceeding this limit are rejected |
-search.maxQueryDuration | duration | 30s | Maximum duration for query execution |
-search.maxStatusRequestDuration | duration | 5m0s | Maximum duration for /api/v1/status/* requests |
-search.minTimeRangeForLargeQuery | duration | 12h0m0s | Minimum scan duration for large queries |
-search.scopeDB.firstCursorScanRows | int | 10000000 | Rows scanned in cursor pagination queries |
-search.scopeDB.logQuery | bool | true | Whether to log ScopeDB queries |
-search.scopeDB.maxLiteralArraySize | int | 1000 | Maximum elements in literal arrays |
-search.scopeDB.maxRowsForOrder | int | 100000 | Maximum rows for ordering by non-time columns |
-search.scopeDB.maxTimeRange | duration | Maximum time range for queries | |
-sortLabels | bool | false | Whether to sort labels written to storage, reduces memory usage but may lower write performance |
-storageNode | array | List of guance-storage node addresses, supports various formats | |
-streamaggr.cleanupInterval | duration | 10m0s | Interval for cleaning up expired queries |
-streamaggr.dataBlocksCacheSize | int | 157286400 | Data blocks cache size (bytes) |
-streamaggr.ignoreContinuousCheck | bool | false | Whether to ignore continuous checks |
-streamaggr.indexBlocksCacheSize | int | 52428800 | Index blocks cache size (bytes) |
-streamaggr.insertVerify | bool | false | Enable streamaggr verification mode |
-streamaggr.queryRetentionPeriod | duration | 168h0m0s | Query retention period |
-streamaggr.replay | bool | false | Enable streamaggr replay mode |
-streamaggr.retentionMonths | int | 6 | Number of months for stream aggregation data retention |
-streamaggrDataPath | string | Storage data path | |
-tls | array | Whether to enable TLS for specified httpListenAddr, requires setting -tlsCertFile and -tlsKeyFile | |
-tlsCertFile | array | Path to TLS certificate file, supports dynamic updates | |
-tlsCipherSuites | array | Optional list of TLS cipher suites | |
-tlsKeyFile | array | Path to TLS key file, supports dynamic updates | |
-tlsMinVersion | array | Minimum TLS version (TLS10, TLS11, TLS12, TLS13) | |
-usePromCompatibleNaming | bool | false | Whether to replace unsupported Prometheus characters with underscores |
-version | bool | false | Show VictoriaMetrics version information |
-vmstorageDialTimeout | duration | 3s | Timeout for vminsert to establish RPC connection to vmstorage |
-vmstorageUserTimeout | duration | 3s | Network timeout for vminsert to vmstorage (Linux specific) |
-zipkin.batchSize | int | 100 | Maximum span count per batch when sending to Zipkin |
-zipkin.bufferSize | int | 10000 | Maximum span count in buffer when sending to Zipkin |
-zipkin.endpoint | string | Zipkin collector endpoint URL | |
-zipkin.flushPeriod | duration | 1s | Maximum flush interval for sending spans to Zipkin |
-zipkin.serviceName | string | guance-insert | Service name used in Zipkin Span |
Guance Stroage Parameter Description¶
Parameter Name | Type | Default Value | English Explanation |
---|---|---|---|
-bigMergeConcurrency | int | None | Deprecated: This parameter no longer takes effect. |
-blockcache.missesBeforeCaching | int | 2 | Number of cache misses before placing cache block into cache. Higher values may reduce indexdb/dataBlocks cache size but increase CPU and disk read operations. |
-cacheExpireDuration | duration | 30m0s | Memory cache items are removed after not being accessed for this duration. Lower values may reduce memory usage but increase CPU usage. See -prevCacheRemovalPercent. |
-dedup.minScrapeInterval | duration | None | Each time series retains only the last sample within a specified discrete interval, must be set greater than 0. See deduplication documentation. |
-denyQueriesOutsideRetention | bool | false | Whether to deny queries for data outside the configured -retentionPeriod range. After enabling, /api/v1/query_range returns 503 error for out-of-range queries. |
-denyQueryTracing | bool | false | Whether to disable query tracing functionality. See query tracing documentation. |
-enableTCP6 | bool | false | Whether to enable IPv6 for listening and dialing, default only enables IPv4. |
-envflag.enable | bool | false | Whether to enable reading parameters from environment variables, command-line parameters take precedence. If not enabled, only reads from command-line. See environment variables documentation. |
-envflag.prefix | string | None | Environment variable prefix when -envflag.enable is enabled. |
-filestream.disableFadvise | bool | false | Whether to disable fadvise() system call when reading large files. Prevents recently accessed data from being evicted by system cache, sometimes disabling can reduce CPU usage. |
-finalMergeDelay | duration | None | Deprecated: This parameter no longer takes effect. |
-flagsAuthKey | value | None | Authentication key for /flags endpoint, must be passed via authKey query parameter. Supports reading key from a file or HTTP(S) URL. |
-forceFlushAuthKey | value | None | Authentication key required for /internal/force_flush page, supports reading from a file or HTTP(S) URL. |
-forceMergeAuthKey | value | None | Authentication key required for /internal/force_merge page, supports reading from a file or HTTP(S) URL. |
-fs.disableMmap | bool | false | Whether to use pread() instead of mmap() to read data files. Defaults to mmap() on 64-bit architectures and pread() on 32-bit architectures. mmap() is faster for small data blocks. |
-http.connTimeout | duration | 2m0s | Connection timeout close time for -httpListenAddr. Helps load balancer distribute requests evenly. 0 disables timeout closure. |
-http.disableResponseCompression | bool | false | Whether to disable HTTP response compression, default enables compression to save network bandwidth, disabling saves CPU. |
-http.header.csp | string | "default-src 'self'" | Set HTTP header Content-Security-Policy, recommended value "default-src 'self'". |
-http.header.frameOptions | string | None | Set HTTP header X-Frame-Options. |
-http.header.hsts | string | "max-age=31536000; includeSubDomains" | Set HTTP header Strict-Transport-Security, recommended value as shown. |
-http.idleConnTimeout | duration | 1m0s | HTTP idle connection timeout close time. |
-http.maxGracefulShutdownDuration | duration | 7s | Maximum wait time for graceful shutdown of HTTP server, recommend increasing this value for high-load servers. |
-http.pathPrefix | string | None | Prefix all HTTP paths with, e.g., for accessing paths via proxy. See relevant documentation. |
-http.shutdownDelay | duration | None | Delay before HTTP server shutdown. During this period, /health returns non-OK status to facilitate load balancer transferring requests. |
-httpAuth.password | value | None | HTTP basic authentication password. Authentication disabled if username not set. Supports reading from a file or HTTP(S) URL. |
-httpAuth.username | string | None | HTTP basic authentication username, authentication disabled if not set. |
-httpListenAddr | array | None | HTTP listening addresses, can be passed via commas or multiple parameters, supports complex formats. |
-httpListenAddr.useProxyProtocol | array | false | Whether to enable Proxy Protocol for specified listening addresses, cannot use standard /metrics endpoint after enabling. See HAProxy documentation. |
-inmemoryDataFlushInterval | duration | 5s | Interval for persisting in-memory data to disk, preserves data in case of abnormal shutdown. Larger intervals extend flash lifespan, smaller intervals increase disk IO load. Minimum 1 second. |
-insert.maxQueueDuration | duration | 1m0s | Maximum wait time in queue when maximum concurrent inserts are reached. |
-internStringCacheExpireDuration | duration | 6m0s | Interned string cache expiration time, see string interning mechanism. |
-internStringDisableCache | bool | false | Whether to disable interned string cache, disabling reduces memory but increases CPU usage. |
-internStringMaxLen | int | 500 | Maximum length of interned strings, lower values save memory but increase CPU usage. |
-logNewSeries | bool | false | Whether to log new time series, used only for debugging, may affect performance. |
-loggerDisableTimestamps | bool | None | Whether to disable timestamp writing in logs. |
-loggerErrorsPerSecondLimit | int | 0 | Maximum number of ERROR messages allowed per second. Errors exceeding this limit will be suppressed. 0 indicates unlimited. |
-loggerFormat | string | "default" | Log format. Options: default, json (default "default"). |
-loggerJSONFields | string | None | Rename fields in JSON format logs. For example, "ts:timestamp,msg:message" renames "ts" to "timestamp". Supports fields: ts, level, caller, msg. |
-loggerLevel | string | "INFO" | Minimum log level. Options: INFO, WARN, ERROR, FATAL, PANIC (default "INFO"). |
-loggerMaxArgLen | int | 1000 | Maximum length of single log parameter. Parameters exceeding this length are displayed as 'arg_start..arg_end', where front and back parts do not exceed -loggerMaxArgLen / 2. |
-loggerOutput | string | "stderr" | Log output location. Options: stderr, stdout (default "stderr"). |
-loggerTimezone | string | "UTC" | Timezone used for log timestamps. Must be valid IANA timezone name, such as America/New_York, Europe/Berlin, Etc/GMT+3 or Local (default "UTC"). |
-loggerWarnsPerSecondLimit | int | 0 | Maximum number of WARN messages allowed per second. Warnings exceeding this limit will be suppressed. 0 indicates unlimited. |
-maxConcurrentInserts | int | 4 | Maximum concurrent insert requests. Can be increased for clients with slow networks. Default value is set based on CPU cores, generally suitable. See -insert.maxQueueDuration. |
-memory.allowedBytes | size | 0 | System memory size allowed for VictoriaMetrics cache (bytes). Non-zero value overrides -memory.allowedPercent. Low values increase cache miss rate, resulting in higher CPU and disk IO. Supports unit suffixes KB, MB, GB, etc. |
-memory.allowedPercent | float | 60 | Percentage of system memory allowed for VictoriaMetrics cache. See -memory.allowedBytes. Low values increase cache miss rate, high values may result in more disk IO. |
-metrics.exposeMetadata | bool | None | Whether to expose TYPE and HELP metadata on /metrics page. Some systems (such as Google Cloud Managed Prometheus) require this information. |
-metricsAuthKey | string | None | Authentication key for /metrics endpoint. Passed via authKey query parameter, takes precedence over httpAuth.* settings. Can be read from a file or HTTP/HTTPS URL. |
-pprofAuthKey | string | None | Authentication key for /debug/pprof/* endpoint. Passed via authKey query parameter, takes precedence over httpAuth.* settings. Can be read from a file or HTTP/HTTPS URL. |
-precisionBits | int | 64 | Number of precision bits stored per value. Lower bit numbers increase compression rate but lose precision. (Default 64) |
-prevCacheRemovalPercent | float | 0.1 | Threshold percentage for removing entries from previous cache when current cache service request ratio is below this value. Increasing this value reduces memory usage but increases CPU usage. See -cacheExpireDuration. |
-pushmetrics.disableCompression | bool | None | Whether to disable request body compression when pushing to all -pushmetrics.url. |
-pushmetrics.extraLabel | array | None | Add extra labels to metrics pushed to all -pushmetrics.url. For example, -pushmetrics.extraLabel='instance="foo"'. Supports arrays and multiple settings. |
-pushmetrics.header | array | None | HTTP request headers sent to all -pushmetrics.url. For example, -pushmetrics.header='Authorization: Basic foobar'. Supports arrays and multiple settings. |
-pushmetrics.interval | duration | 10s | Interval for pushing metrics to all -pushmetrics.url. |
-loggerDisableTimestamps | bool | false | Whether to disable writing timestamps in logs. |
-loggerErrorsPerSecondLimit | int | 0 | Maximum number of ERROR messages allowed per second. Errors exceeding this limit are suppressed. 0 indicates unlimited. |
-loggerFormat | string | "default" | Log format. Options: default, json. |
-loggerJSONFields | string | "" | Rename fields in JSON logs, e.g., "ts:timestamp,msg:message" renames "ts" to "timestamp". Supports fields: ts, level, caller, msg. |
-loggerLevel | string | "INFO" | Minimum log output level. Options: INFO, WARN, ERROR, FATAL, PANIC. |
-loggerMaxArgLen | int | 1000 | Maximum length of a single log parameter. Parameters exceeding this length are truncated to 'arg_start..arg_end'. |
-loggerOutput | string | "stderr" | Log output location. Options: stderr, stdout. |
-loggerTimezone | string | "UTC" | Timezone used for log timestamps. Must be a valid IANA timezone name, e.g., America/New_York. |
-loggerWarnsPerSecondLimit | int | 0 | Maximum number of WARN messages allowed per second. Warnings exceeding this limit are suppressed. 0 indicates unlimited. |
-maxConcurrentInserts | int | 4 | Maximum number of concurrent write requests. Automatically set based on CPU cores by default. |
-memory.allowedBytes | size | 0 | System memory size available for VictoriaMetrics cache, takes precedence over -memory.allowedPercent. Supports units KB, MB, GB, etc. |
-memory.allowedPercent | float | 60 | Percentage of system memory available for VictoriaMetrics cache. |
-metrics.exposeMetadata | bool | false | Whether to expose TYPE and HELP metadata on /metrics page. |
-metricsAuthKey | string | "" | Authentication key for /metrics endpoint access. Can be read from a file or URL. |
-pprofAuthKey | string | "" | Authentication key for /debug/pprof/* endpoint access. Can be read from a file or URL. |
-precisionBits | int | 64 | Number of precision bits stored per value. Lower values increase compression but reduce precision. |
-prevCacheRemovalPercent | float | 0.1 | Threshold percentage for removing entries from the previous cache when current cache service request ratio falls below this value. Higher values reduce memory usage but increase CPU usage. |
-pushmetrics.disableCompression | bool | false | Whether to disable request body compression when pushing metrics. |
-pushmetrics.extraLabel | array | [] | Array of additional labels added to pushed metrics, such as instance="foo". |
-pushmetrics.header | array | [] | Additional HTTP headers attached when pushing metrics, such as Authorization. |
-pushmetrics.interval | duration | 10s | Interval for pushing metrics. |
-pushmetrics.url | array | [] | List of remote URLs to which metrics need to be pushed. Default does not push. |
-retentionFilters.cleanInterval | duration | 360h | Interval for cleaning expired data. |
-retentionFilters.config | string | "" | Retention filter configuration file path. |
-retentionFilters.configCheckInterval | duration | 1h | Interval for checking changes in retention filter configuration file. |
-retentionPeriod | value | 1 | Data retention period, data older than this period is automatically deleted, supports units s,m,h,d,w,y. |
-retentionTimezoneOffset | duration | 0 | Timezone offset for indexdb rotation execution, 0 means UTC 4 o'clock. |
-rpc.disableCompression | bool | false | Whether to disable data compression between vmstorage and vmselect, disabling reduces CPU but increases network bandwidth. |
-search.maxConcurrentRequests | int | 4 | Maximum number of concurrent requests that vmstorage can handle from vmselect. |
-search.maxQueueDuration | duration | 10s | Maximum wait time for queued requests. |
-search.maxTagKeys | int | 100000 | Maximum number of tag keys returned in a single search. |
-search.maxTagValues | int | 100000 | Maximum number of tag values returned in a single search. |
-search.maxUniqueTimeseries | int | 0 | Maximum number of unique time series that can be scanned during queries, 0 means unlimited. |
-smallMergeConcurrency | int | (Deprecated) | Deprecated, currently has no effect. |
-snapshotAuthKey | string | "" | Authentication key for /snapshot* page access, supports reading from a file or URL. |
-snapshotCreateTimeout | duration | (Deprecated) | Deprecated, has no effect. |
-snapshotsMaxAge | value | 0 | Automatically delete snapshots older than this time, supports units s,m,h,d,w,y. |
-storage.cacheSizeIndexDBDataBlocks | size | 0 | Maximum size for indexdb/dataBlocks cache. |
-storage.cacheSizeIndexDBIndexBlocks | size | 0 | Maximum size for indexdb/indexBlocks cache. |
-storage.cacheSizeIndexDBTagFilters | size | 0 | Maximum size for indexdb/tagFiltersToMetricIDs cache. |
-storage.cacheSizeStorageTSID | size | 0 | Maximum size for storage/tsid cache. |
-storage.maxDailySeries | int | 0 | Maximum number of unique series that can be added within 24 hours, exceeding series will be discarded and logged. |
-storage.maxHourlySeries | int | 0 | Maximum number of unique series that can be added within an hour, exceeding series will be discarded and logged. |
-storage.maxSeriesPerSecond | int | 2000 | Maximum number of series that can be created per second, exceeding limits will be discarded and logged. |
-storage.minFreeDiskSpaceBytes | size | 10000000 | Minimum free disk space required for storage paths, data reception stops if below this value. |
-storage.vminsertConnsShutdownDuration | duration | 25s | Duration needed for graceful shutdown of vminsert connections, controls shutdown speed to reduce load fluctuations. |
-storageDataPath | string | "vmstorage-data" | Storage data path. |
-tls | array | [] | Whether to enable TLS for specified HTTP listening addresses, must also set certificate and key files simultaneously. |
-tlsCertFile | array | [] | Path to TLS certificate file, supports dynamic updates. |
-tlsCipherSuites | array | [] | List of TLS cipher suites. |
-tlsKeyFile | array | [] | Path to TLS key file, supports dynamic updates. |
-tlsMinVersion | array | [] | Minimum TLS version requirement, supports TLS10, TLS11, TLS12, TLS13. |
-version | bool | false | Show VictoriaMetrics version. |
-vminsertAddr | string | ":8400" | Listening address for vminsert service. |
-vmselectAddr | string | ":8401" | Listening address for vmselect service. |