GuanceDB Engine Deployment¶
Note
This article introduces how to deploy the GuanceDB for Metrics component and the GuanceDB for Logs component. Both components use a single Chart for deployment.
Architecture Diagram¶
- The GuanceDB chart includes two components: GuanceDB for Metrics and GuanceDB for Logs. These two components share the 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 component.
Core Components¶
1.Write Load Balancer (guance-insert)
- Responsible for receiving raw data
- Distributes data to storage nodes via consistent hashing
- Supports high availability deployment
2.Query Engine (guance-select)
- Supports DQL and PromQL query languages
- Retrieves data from all storage nodes and performs calculations
- Returns final query results
3.Storage Nodes (guance-storage)
- Uses a share-nothing architecture
- No communication between nodes, no central coordination required
- Supports horizontal scaling
Prerequisites¶
- Helm version requirement: 3.7+
- Ensure storage performance meets requirements
- It is recommended to reserve sufficient system resources
Default Configuration Information for Deployment¶
Service Name | Address | Port |
---|---|---|
guance-insert | guance-insert.guancedb | 8480 |
guance-select | guance-select.guancedb | 8481 |
Capacity Planning¶
1.Memory Reservation
- Reserve at least 50% memory for all components
- Used to handle sudden writes, avoiding OOM
2.CPU Reservation
- Reserve at least 50% CPU for all components
- Prevents slow writes and queries caused by sudden bursts
3.Storage Space Reservation
- Reserve 20% storage space for guance-storage nodes
- Configurable via
-storage.minFreeDiskSpaceBytes
parameter
Reference Configuration¶
Using 1 million time series as an example (writing once every 10 seconds, real-time write QPS 100k/s, query QPS 100, data retention 1 month):
Component | CPU | Memory | Disk |
---|---|---|---|
guance-insert | 4c | 4G | - |
guance-select | 8c | 8G | - |
guance-storage | 16c | 96G | 500G |
Note: In actual deployment, resource scales can be adjusted linearly based on the number of time series. Each component supports up to 2 instances by default.
GuanceDB Engine Deployment¶
Note
There is a sequence relationship between deploying GuanceDB for Metrics and GuanceDB for Logs. You can first deploy GuanceDB for Metrics, then configure Doris information after Doris deployment is complete 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 public cloud, refer to public cloud storage block components
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 that the
/data
directory has sufficient 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 through the cloud box, it needs to 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¶
Note
It is recommended to use Git to maintain values.yaml, include the values.yaml file in Git management to ensure each configuration change is recorded, facilitating tracking and rollback.
Download chart package:
--untar means uncompressed, default 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: 3
image:
# If in an offline environment, modify the image address if needed; otherwise, no modification is necessary
repository: pubrepo.guance.com/guancedb/guance-select
# Modify nodeSelector and tolerations to schedule the guance-select container; no modification needed if there are no specific requirements
nodeSelector: {}
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule"
guance_insert:
...
# Number of service replicas
replicaCount: 3
image:
# If in an offline environment, modify the image address if needed; otherwise, no modification is necessary
repository: pubrepo.guance.com/guancedb/guance-insert
# Modify nodeSelector and tolerations to schedule the guance-insert container; no modification needed if there are no specific requirements
nodeSelector: {}
tolerations:
[]
# - key: "key"
# operator: "Equal|Exists"
# value: "value"
# effect: "NoSchedule|PreferNoSchedule"
guance_storage:
...
# Number of service replicas
replicaCount: 2
image:
# If in an offline environment, modify the image address if needed; otherwise, no modification is necessary
repository: pubrepo.guance.com/guancedb/guance-storage
# Modify nodeSelector and tolerations to schedule the guance-storage container; no modification needed if there are no specific requirements
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/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 existing 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, 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 regular 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/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:
...
# 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:
...
# Add insert parameters here
extraArgs:
envflag.enable: 'true'
loggerFormat: json
loggerMaxArgLen: '10000'
loggerTimezone: Asia/Shanghai
streamaggr.insertVerify: 'true'
guance_select:
# 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/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 | Number of cache misses before caching blocks. Higher values reduce indexdb/dataBlocks cache size but increase CPU and disk read operations. |
-cacheDataPath | string | "/tmp/guance-select" | Cache file directory path. Empty means no cache persistence. |
-cacheExpireDuration | duration | 30m0s | Memory cache items are removed when not accessed within this time. Lower values reduce memory usage but increase CPU usage. |
-dedup.minScrapeInterval | duration | 1ms | Retains only the last sample for each time series in 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 on new tables. | |
-doris.disableUnicodeTokenizer | bool | Use Chinese tokenizer instead of Unicode tokenizer. | |
-doris.enableBFOnOldTables | bool | Use bloom filters on old tables. | |
-doris.enableFileCacheTTL | bool | Use cloud database SelectDB version's data cache. | |
-doris.enableWarmDataTier | bool | Use warm storage instead of hot and cold storage. | |
-doris.indexCacheTTL | duration | 30m0s | Doris index cache expiration time. |
-doris.onlyQueryFE | bool | After enabling, do not directly query data from the backend (be). | |
-doris.onlyWriteFE | bool | After enabling, do not directly write data to the backend (be). | |
-doris.replicationFactor | int | 1 | Replication factor for Doris tables. |
-doris.storageResource | string | "s3_default" | Resource name used by the 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 reading from environment variables is enabled. | |
-filestream.disableFadvise | bool | Whether to disable the 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() for reading data files. Default uses mmap() on 64-bit architectures, pread() on 32-bit. | |
-globalReplicationFactor | int | 1 | Number of replicas for each sample in the vmstorage group. Supports high availability. |
-http.connTimeout | duration | 2m0s | HTTP connection timeout time, 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 | Sets Content-Security-Policy header, recommended: "default-src 'self'"'. | |
-http.header.frameOptions | string | Sets X-Frame-Options header. | |
-http.header.hsts | string | Sets 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 the HTTP server. |
-http.pathPrefix | string | Adds a prefix to all HTTP paths, suitable for proxy paths. | |
-http.shutdownDelay | duration | Delay before the HTTP server shuts down, during which /health returns non-OK, facilitating load balancer request switching. | |
-httpAuth.password | value | HTTP basic authentication password, can be read from a file or URL. | |
-httpAuth.username | string | HTTP basic authentication username, empty disables authentication. | |
-httpListenAddr | array | List of HTTP listen addresses, supports multiple values or comma-separated lists. | |
-httpListenAddr.useProxyProtocol | array | Specifies whether to enable proxy protocol for the listen address, disabling standard /metrics endpoint when enabled. | |
-insert.maxFutureTimeDrift | duration | 1h0m0s | Rejects events with timestamps exceeding current time plus this value. |
-insert.maxPastTimeDrift | duration | Rejects 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 | Limit of error logs per second, errors exceeding this limit will be suppressed, 0 means unlimited |
-loggerFormat | string | "default" | Log format, options are "default" or "json" |
-loggerJSONFields | string | - | Renaming JSON log fields, e.g., "ts:timestamp,msg:message" |
-loggerLevel | string | "INFO" | Minimum log level, supported levels are INFO, WARN, ERROR, FATAL, PANIC |
-loggerMaxArgLen | int | 1000 | Maximum length of a single log parameter, parts exceeding this will be 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 a valid IANA timezone name |
-loggerWarnsPerSecondLimit | int | 0 | Limit of warning logs per second, warnings exceeding this limit will be suppressed, 0 means unlimited |
-memory.allowedBytes | size | 0 | VictoriaMetrics cache usable system memory size, overrides -memory.allowedPercent if set |
-memory.allowedPercent | float | 60 | Percentage of system memory usable by VictoriaMetrics cache |
-metrics.exposeMetadata | bool | false | Whether to expose TYPE and HELP metadata on /metrics page |
-metricsAuthKey | value | - | Authentication key for /metrics endpoint, can be read from a file or URL |
-pprofAuthKey | value | - | Authentication key for /debug/pprof/* endpoints, can be read from a file or URL |
-prevCacheRemovalPercent | float | 0.1 | Removes cache entries when the hit ratio of the previous cache is below this value, improving memory efficiency but increasing CPU usage |
-pushmetrics.disableCompression | bool | false | Whether to disable request body compression when pushing metrics |
-pushmetrics.extraLabel | array | - | Additional labels attached when pushing metrics, such as instance="foo" |
-pushmetrics.header | array | - | Additional HTTP request headers attached when pushing metrics |
-pushmetrics.interval | duration | 10s | Interval for pushing metrics |
-pushmetrics.url | array | - | Specified 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 | - | Path to retention filter configuration file |
-retentionFilters.configCheckInterval | duration | 1h | Interval for checking changes in the retention filter configuration file |
-scopeDB.dbName | string | "scopedb" | ScopeDB database name |
-scopeDB.dumpIngestBody | bool | false | Whether to print ingest content on failure |
-scopeDB.ensureJob | bool | false | Whether to enable ensure job feature |
-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" | Task execution node group name |
-scopeDB.nodegroup.largeQuery | string | "large-query" | Large query node group name |
-scopeDB.nodegroup.query | string | "query" | Regular query node group name |
-scopeDB.nodegroup.systemQuery | string | "system-query" | System query node group name from 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, avoids response gaps due to clock synchronization issues |
-search.compatibleMode | bool | false | Enables Prometheus-compatible mode |
-search.debugThrottler | bool | false | Debug throttler |
-search.denyPartialResponse | bool | false | Deny partial responses to exchange data consistency |
-search.disableCache | bool | false | Disables response cache, suitable for backfilling historical data |
-search.disableImplicitConversion | bool | false | Disables implicit subquery conversion related queries |
-search.dorisColdQueryCPULimit | int | 4 | Cold data query SQL variable CPU limit |
-search.dorisDisableADBC | bool | false | Prioritizes Thrift over ADBC |
-search.dorisDisableSampling | bool | false | Disables sampling |
-search.dorisEnableSmallColdGroup | bool | false | Uses 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 elements in literal arrays |
-search.dorisMaxOrderingRows | int | - | Maximum scanned rows for custom ordering queries |
-search.dorisMaxRowsForOrder | int | - | Maximum rows used for ORDER BY on non-time columns |
-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 the latency_offset query parameter. Too small values may result in incomplete final data points in query results. |
-search.logImplicitConversion | bool | - | Whether to log implicitly converted queries. See Implicit Conversion Documentation. Available via -search.disableImplicitConversion to disable. |
-search.logQueryMemoryUsage | size | 524288000 (500MB) | Logs queries consuming more than this amount of memory, useful for detecting and optimizing large queries. Default is disabled. Supports KB, MB, GB units. |
-search.maxConcurrentRequestsPerTenant | int | 5 | Maximum concurrent query requests per tenant. High values may cause CPU and memory resource strain. |
-search.maxExportDuration | duration | 720h (30 days) | Maximum duration for /api/v1/export calls. |
-search.maxGroups | int | 100000 | Maximum allowed groups 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 allowed rows in query results. |
-search.maxLookback | duration | Dynamic detection | Equivalent to Prometheus’s -search.lookback-delta. Can be overridden by max_lookback parameter. Affects query lookback time window. |
-search.maxMemoryPerQuery | size | 0 | Maximum memory allowed per query, rejects execution if exceeded. 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 in /api/v1/query_range, mainly limits client plotting points. |
-search.maxPointsSubqueryPerTimeseries | int | 100000 | Maximum generated data points per time series in subqueries. Details see relevant blogs. |
-search.maxQueryDuration | duration | 30s | Maximum query execution duration. |
-search.maxQueryLen | size | 16384 (16KB) | Maximum length of query statements. Supports KB, MB units. |
-search.maxQueryUniqueTimeseries | int | 300000 | Maximum unique time series allowed in /api/v1/query queries. Limits memory usage. |
-search.maxQueueDuration | duration | 10s | Maximum queue wait time when reaching maximum concurrent request limits. |
-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 overly large 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, automatically calculated based on median sample interval by default. |
-search.maxStatusRequestDuration | duration | 5m0s | Maximum response time for /api/v1/status/* requests. |
-search.maxStepForPointsAdjustment | duration | 1m0s | Maximum step for adjusting points closer to current time than latencyOffset in /api/v1/query_range interface. |
-search.maxWorkersPerQuery | int | 2 | Maximum CPU cores allowed per query. Adjustable to optimize performance, cannot exceed physical CPU cores. |
-search.minRowsForLargeQuery | int | 10000000 | Minimum scan rows for large queries. |
-search.minStalenessInterval | duration | - | Minimum staleness interval, used to remove irregular sampling intervals causing 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 the database lacks Prometheus stale markers, 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 scan rows for sampling queries. |
-search.rowsToSampleForFacet | int | 10000000 | Maximum scan rows for show_x_field or distinct queries. |
-search.scopeDB.firstCursorScanRows | int | 10000000 | Maximum scan rows for the first cursor pagination query. |
-search.scopeDB.logQuery | bool | true | Whether to log scopeDB query statements. |
-search.scopeDB.maxLiteralArraySize | int | 1000 | Maximum elements in literal arrays. |
-search.scopeDB.maxRowsForOrder | int | 100000 | Maximum rows for order by on non-time columns. |
-search.scopeDB.maxTimeRange | duration | - | Maximum time range for queries. |
-search.setLookbackToStep | bool | false | Whether to fix lookback to step parameter, adjusts query model to resemble InfluxDB. Enabling ignores -search.maxLookback and -search.maxStalenessInterval. |
-search.skipSlowReplicas | bool | false | Whether to skip the slowest vmstorage nodes in replication factor during queries, potentially faster but risks 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 will be logged as slow queries. |
-storageNode | array | - | Array of guance-storage node addresses, separated by commas or specified multiple times. |
-streamaggr.cleanupInterval | duration | 10m0s | Expiry query cleanup interval. |
-streamaggr.dataBlocksCacheSize | int | 157286400 (150MB) | Data block cache size. |
-streamaggr.ignoreContinuousCheck | bool | false | Whether to ignore continuity checks. |
-streamaggr.indexBlocksCacheSize | int | 52428800 (50MB) | Index block cache size. |
-streamaggr.queryRetentionPeriod | duration | 168h0m0s (7 days) | Query retention period. |
-streamaggr.retentionMonths | int | 6 | Stream aggregation data retention months. |
-streamaggr.selectVerify | bool | false | Whether to verify stream aggregation results. |
-tls | array | None | Whether to enable TLS (HTTPS) for specified -httpListenAddr. Must set -tlsCertFile and -tlsKeyFile simultaneously when setting this parameter. Multiple values or repeated settings supported. Empty value treated as false. |
-tlsCertFile | array | None | TLS certificate file path corresponding to -httpListenAddr. ECDSA certificates recommended over RSA due to slower RSA performance. Certificate files auto-reloaded every second for dynamic updates. Multiple values supported. |
-tlsCipherSuites | array | None | Optional list of TLS cipher suites for HTTPS requests when TLS is enabled. Multiple values supported. Detailed supported list available at: https://pkg.go.dev/crypto/tls#pkg-constants |
-tlsKeyFile | array | None | TLS key file path corresponding to -httpListenAddr. Key files auto-reloaded every second for dynamic updates. Multiple values supported. |
-tlsMinVersion | array | None | TLS minimum version limit (optional). Supports TLS10, TLS11, TLS12, TLS13. Multiple values supported. |
-version | No parameters | None | Displays VictoriaMetrics version information. |
-vmstorageDialTimeout | duration | 3s | RPC connection timeout for vmselect to establish with 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 description. |
-zipkin.batchSize | int | 100 | Maximum number of Spans per single batch send. |
-zipkin.bufferSize | int | 10000 | Maximum number of Spans buffered. |
-zipkin.endpoint | string | None | 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 Spans. |
Guance Insert Parameter Description¶
Parameter Name | Type | Default Value | English Explanation |
---|---|---|---|
-blockcache.missesBeforeCaching | int | 2 | Number of cache misses before caching blocks. Higher values may reduce cache size but increase CPU and disk read pressure. |
-cacheExpireDuration | duration | 30m0s | Data in memory cache is removed if not accessed within a certain period. Smaller values can lower 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 Influx format support. |
-disableRerouting | none | true | Whether to disable data rerouting. Triggered by slow writes to some vmstorages, disabling this feature reduces active timeseries during rolling restarts. |
-disableReroutingOnUnavailable | none | none | Whether to disable rerouting when vmstorage nodes are unavailable. Disabling it stops data writing if a node is unavailable, reducing the impact of restarts or severe sequence changes. |
-doris.cacheDataPath | string | /data/file-queue | Cache file path. |
-doris.coldDataTierOnly | none | none | Use cold data storage tier only. |
-doris.debugIndexName | string | default | IndexName that requires adding debug logs. |
-doris.debugMeasurement | string | none | Measurement that requires adding debug logs. |
-doris.debugNamespace | string | none | Namespace that requires adding debug logs. |
-doris.debugTenantID | uint | none | Tenant ID (accountID) that requires adding debug logs. |
-doris.disableBFOnNewTables | none | none | Do not enable bloom filters on new 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 on 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 instead of hot+cold storage mode. |
-doris.forceFlushInterval | duration | 30s | Forced flush interval for non-event data. |
-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. Total maximum byte size for cached data. |
-doris.maxConcurrentInserts | int | none | Deprecated, use fileQueue.workers instead. |
-doris.maxFieldCount | size | 512 | Maximum allowed fields 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 | After enabling, query data only from FE nodes without directly accessing BE. |
-doris.onlyWriteFE | none | none | After enabling, write data only to FE nodes without directly writing to BE. |
-doris.replicationFactor | int | 1 | Doris table replication factor. |
-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 to monthly. |
-doris.sampleNamespace | string | none | Sample namespace. |
-doris.sampleTenantID | string | none | Sample tenant ID. |
-doris.storageResource | string | s3_default | Doris storage strategy resource name. |
-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 occurs before replication, use with caution. |
-enableTCP6 | none | none | Whether to enable IPv6 listening and dialing. Default enables only 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 | Prefix for environment variables (to be used with -envflag.enable). |
-fileQueue.maxFileSize | size | 104857600 | Maximum file size per 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 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, preventing OS from evicting 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 for reading data files. For 64-bit systems, mmap() is enabled by default. |
-gcolumnCompressLevel | int | none | Compression level for guance column protocol. Higher values result in better compression but higher CPU usage; negative values reduce CPU usage but increase network transmission. |
-http.connTimeout | duration | 2m0s | HTTP connection timeout time. 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 | Sets the value for Content-Security-Policy header, recommended value: "default-src 'self'". |
-http.header.frameOptions | string | none | Sets the value for X-Frame-Options header. |
-http.header.hsts | string | none | Sets the value for Strict-Transport-Security header, recommended value: "max-age=31536000; includeSubDomains". |
-http.idleConnTimeout | duration | 1m0s | Idle HTTP connection timeout time. |
-http.maxGracefulShutdownDuration | duration | 7s | Longest wait time for graceful HTTP service shutdown. High-load servers might need higher values. |
-http.pathPrefix | string | none | Prefix for all HTTP paths, e.g., setting to /foo/bar makes all paths start with this prefix, facilitating reverse proxy. |
-http.shutdownDelay | duration | none | Delay before HTTP service shutdown. During this time, /health returns non-OK to notify load balancers to switch traffic. |
-httpAuth.password | value | none | HTTP Basic Auth password. When username is empty, authentication is disabled. Supports loading from files or URLs. |
-httpAuth.username | string | none | HTTP Basic Auth username. Empty means disabled. Must be used with -httpAuth.password. |
-httpListenAddr | array | none | HTTP service listen address. Supports multiple addresses. |
-httpListenAddr.useProxyProtocol | array | false | Whether to use proxy protocol for connections received by -httpListenAddr . After enabling, the HTTP server cannot provide /metrics endpoints. Push metrics via -pushmetrics.url . Supports comma-separated or repeated settings. Empty value treated as false. |
-influx.defaultBatchLinesCount | size | 16 | Default number of lines per batch in InfluxDB parsing. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB. |
-influx.defaultBatchSize | size | 1048576 | Default byte size per batch in InfluxDB parsing. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB. |
-insert.maxFutureTimeDrift | duration | 1h0m0s | Inserts will be rejected if event timestamps are greater than current time plus this value. |
-insert.maxPastTimeDrift | duration | Inserts will be rejected if event timestamps are less than current time minus this value. | |
-insertNode | array | Specifies the addresses of guance-insert nodes, multiple separated by commas, supports quoted or bracketed values. | |
-internStringCacheExpireDuration | duration | 6m0s | Expiry time for interned string cache. 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 for interned strings. Setting a smaller value 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 | Renames fields in JSON logs, e.g., "ts:timestamp,msg:message". Supported fields: ts, level, caller, msg. | |
-loggerLevel | string | INFO | Minimum log output level, options: INFO, WARN, ERROR, FATAL, PANIC. |
-loggerMaxArgLen | int | 1000 | Maximum length for a single log parameter. Exceeding parts will be truncated and displayed as 'arg_start..arg_end'. |
-loggerOutput | string | stderr | Log output target, supports: stderr, stdout. |
-loggerTimezone | string | UTC | Timezone used for log timestamps, must be an IANA standard 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 in 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. Exceeding 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. Excess 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 allowed for VictoriaMetrics cache (bytes). 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, needed by some systems (such as Google Cloud's Managed Prometheus). | |
-metricsAuthKey | value | Authentication key for /metrics endpoint, passed via authKey query parameter. Supports reading key from files or URLs. | |
-pprofAuthKey | value | Authentication key for /debug/pprof/* endpoints, passed via authKey query parameter. Supports reading key from files or URLs. | |
-prevCacheRemovalPercent | float | 0.1 | When hit rate of previous 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 pushed to each -pushmetrics.url, e.g., instance="foo" . Supports commas, quotes, and brackets. |
|
-pushmetrics.header | array | HTTP headers carried in push requests to each -pushmetrics.url, 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 | Specifies target addresses for pushing /metrics page data. Default does not push. Supports multiple addresses and complex syntax. | |
-relabelConfig | string | Path to rewrite rule 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 of each data item across different -storageNodes. If this value >1, vmselect must set -dedup.minScrapeInterval=1ms for deduplication. |
-retentionFilters.cleanInterval | duration | 360h0m0s | Interval for cleaning expired data. |
-retentionFilters.config | string | Path to retention policy configuration file. | |
-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 usage. | |
-scopeDB.dbName | string | scopedb | ScopeDB database name. |
-scopeDB.dumpIngestBody | false | Whether to output request body content on insertion 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 used |
-scopeDB.nodegroup.ingest | string | ingest | ScopeDB node group used 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 | Access password for ScopeDB | |
-scopeDB.port | uint | 6543 | Access port for ScopeDB |
-scopeDB.username | string | Username for ScopeDB | |
-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 (preferring 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 | API address for throttler | |
-search.logQueryMemoryUsage | size | 524288000 | Logs queries consuming more than specified memory size |
-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, rejects query if exceeded |
-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 first cursor pagination queries |
-search.scopeDB.logQuery | bool | true | Whether to log ScopeDB query statements |
-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 tags 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 | Expiry cleanup interval for queries |
-streamaggr.dataBlocksCacheSize | int | 157286400 | Data block cache size (bytes) |
-streamaggr.ignoreContinuousCheck | bool | false | Whether to ignore continuous checks |
-streamaggr.indexBlocksCacheSize | int | 52428800 | Index block cache size (bytes) |
-streamaggr.insertVerify | bool | false | Enables streamaggr verification mode |
-streamaggr.queryRetentionPeriod | duration | 168h0m0s | Query retention period |
-streamaggr.replay | bool | false | Enables streamaggr replay mode |
-streamaggr.retentionMonths | int | 6 | Number of months to retain stream aggregation data |
-streamaggrDataPath | string | Storage data path | |
-tls | array | Whether to enable TLS for specified httpListenAddr, requires setting -tlsCertFile and -tlsKeyFile | |
-tlsCertFile | array | TLS certificate file path, supports dynamic updates | |
-tlsCipherSuites | array | Optional list of TLS cipher suites | |
-tlsKeyFile | array | TLS key file path, 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 | Displays VictoriaMetrics version information |
-vmstorageDialTimeout | duration | 3s | RPC connection timeout for vminsert to vmstorage |
-vmstorageUserTimeout | duration | 3s | Network timeout for vminsert to vmstorage (Linux-specific) |
-zipkin.batchSize | int | 100 | Maximum spans per batch sent |
-zipkin.bufferSize | int | 10000 | Maximum spans buffered |
-zipkin.endpoint | string | Zipkin collector endpoint URL | |
-zipkin.flushPeriod | duration | 1s | Maximum flush interval |
-zipkin.serviceName | string | guance-insert | Service name used in Zipkin Spans |
Guance Storage 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 caching blocks. Higher values may reduce indexdb/dataBlocks cache size but increase CPU and disk read operations. |
-cacheExpireDuration | duration | 30m0s | Items in memory cache are removed after not being accessed for this time. Lower values may reduce memory usage but increase CPU usage. See -prevCacheRemovalPercent for details. |
-dedup.minScrapeInterval | duration | none | Retains only the last sample for each time series in the specified discrete interval, must be set greater than 0. See deduplication documentation. |
-denyQueriesOutsideRetention | bool | false | Whether to reject 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, reads only from command-line. See environment variable documentation for details. |
-envflag.prefix | string | none | Environment variable prefix when -envflag.enable is enabled. |
-filestream.disableFadvise | bool | false | Whether to disable the fadvise() system call when reading large files. This prevents recently accessed data from being evicted by the system cache, partially disabling it can reduce CPU usage in some cases. |
-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 from files or HTTP(S) URLs. |
-forceFlushAuthKey | value | none | Authentication key required for /internal/force_flush page, supports reading from files or HTTP(S) URLs. |
-forceMergeAuthKey | value | none | Authentication key required for /internal/force_merge page, supports reading from files or HTTP(S) URLs. |
-fs.disableMmap | bool | false | Whether to use pread() instead of mmap() for reading data files. Default uses mmap() on 64-bit architectures, pread() on 32-bit architectures. mmap() is faster for reading small data blocks. |
-http.connTimeout | duration | 2m0s | Connection timeout closure time for -httpListenAddr. Helps load balancers 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'" | Sets the HTTP header Content-Security-Policy, recommended value is "default-src 'self'". |
-http.header.frameOptions | string | none | Sets the HTTP header X-Frame-Options. |
-http.header.hsts | string | "max-age=31536000; includeSubDomains" | Sets the HTTP header Strict-Transport-Security, recommended value as shown. |
-http.idleConnTimeout | duration | 1m0s | HTTP idle connection timeout closure time. |
-http.maxGracefulShutdownDuration | duration | 7s | Maximum wait time for graceful HTTP server shutdown, high-load servers should increase this value. |
-http.pathPrefix | string | none | Adds a prefix to all HTTP paths, e.g., for proxy access path prefixes. See related documentation. |
-http.shutdownDelay | duration | none | Delay before HTTP server shutdown, during which /health returns non-OK status, facilitating load balancer request transfer. |
-httpAuth.password | value | none | HTTP basic authentication password. Authentication is ineffective when username is unset. Supports reading from files or HTTP(S) URLs. |
-httpAuth.username | string | none | HTTP basic authentication username, unset disables authentication. |
-httpListenAddr | array | none | HTTP listen addresses, supports complex formats via commas or multiple parameters. |
-httpListenAddr.useProxyProtocol | array | false | Whether to enable Proxy Protocol for specified listen addresses, disables regular /metrics endpoint when enabled. See HAProxy documentation. |
-inmemoryDataFlushInterval | duration | 5s | Interval for persisting memory data to disk to prevent data loss during abnormal shutdowns. Larger intervals extend flash lifespan, smaller intervals increase disk IO load. Minimum 1 second. |
-insert.maxQueueDuration | duration | 1m0s | Maximum wait time for insert requests in the queue when maximum concurrency is reached. |
-internStringCacheExpireDuration | duration | 6m0s | Expiration time for interned string cache, 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 for interned strings, lower values save memory but increase CPU usage. |
-logNewSeries | bool | false | Whether to log new time series, 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 means unlimited. |
-loggerFormat | string | "default" | Log format. Options: default, json (default "default"). |
-loggerJSONFields | string | none | Renames fields in JSON formatted logs. For example, "ts:timestamp,msg:message" renames "ts" to "timestamp" and "msg" to "message". 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 for a single log parameter. Parameters exceeding this length will be truncated and displayed as 'arg_start..arg_end', with front and back parts not exceeding -loggerMaxArgLen / 2. |
-loggerOutput | string | "stderr" | Log output location. Options: stderr, stdout (default "stderr"). |
-loggerTimezone | string | "UTC" | Timezone used for log timestamps. Must be a 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 means unlimited. |
-maxConcurrentInserts | int | 4 | Maximum concurrent insert requests. Clients with slow networks can increase this value. Default value is set based on CPU cores, generally suitable. See -insert.maxQueueDuration for details. |
-memory.allowedBytes | size | 0 | System memory size usable by VictoriaMetrics cache (bytes). Non-zero value overrides -memory.allowedPercent. Low values increase cache miss rates, leading to higher CPU and disk IO. Supports KB, MB, GB units. |
-memory.allowedPercent | float | 60 | Percentage of system memory usable by VictoriaMetrics cache. See -memory.allowedBytes. Low values increase cache miss rates, high values may lead to more disk IO. |
-metrics.exposeMetadata | bool | none | Whether to expose TYPE and HELP metadata on /metrics page. Some systems (like 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 files or HTTP/HTTPS URLs. |
-pprofAuthKey | string | none | Authentication key for /debug/pprof/* endpoints. Passed via authKey query parameter, takes precedence over httpAuth.* settings. Can be read from files or HTTP/HTTPS URLs. |
-precisionBits | int | 64 | Precision bits stored per value. Lower bit numbers improve compression but lose precision. (Default 64) |
-prevCacheRemovalPercent | float | 0.1 | Threshold percentage for removing entries from the previous cache when the current cache service request ratio falls below this value. Increasing this value reduces memory usage but increases CPU usage. See -cacheExpireDuration for details. |
-pushmetrics.disableCompression | bool | none | Whether to disable request body compression when pushing to all -pushmetrics.url. |
-pushmetrics.extraLabel | array | none | Additional labels added to metrics pushed to all -pushmetrics.url. Example -pushmetrics.extraLabel='instance="foo"'. Supports arrays and multiple settings. |
-pushmetrics.header | array | none | HTTP request headers attached when pushing to all -pushmetrics.url. 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 timestamp writing in logs. |
-loggerErrorsPerSecondLimit | int | 0 | Maximum ERROR message outputs per second, errors exceeding this limit will be suppressed. 0 means unlimited. |
-loggerFormat | string | "default" | Log format. Options: default, json. |
-loggerJSONFields | string | "" | Renaming JSON log fields,for example, "ts:timestamp,msg:message" renames "ts" to "timestamp". Supported 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 will be truncated as '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, such as America/New_York. |
-loggerWarnsPerSecondLimit | int | 0 | Maximum WARN message outputs per second, warnings exceeding this limit will be suppressed. 0 means unlimited. |
-maxConcurrentInserts | int | 4 | Maximum concurrent write request counts, automatically set based on CPU cores by default. |
-memory.allowedBytes | size | 0 | System memory size usable by VictoriaMetrics cache, takes precedence over -memory.allowedPercent. Supports units KB, MB, GB, etc. |
-memory.allowedPercent | float | 60 | Percentage of system memory usable by VictoriaMetrics cache. |
-metrics.exposeMetadata | bool | false | Whether to expose TYPE and HELP metadata on /metrics page. |
-metricsAuthKey | string | "" | Authentication key for accessing /metrics endpoint. Can be read from files or URLs. |
-pprofAuthKey | string | "" | Authentication key for accessing /debug/pprof/* endpoints. Can be read from files or URLs. |
-precisionBits | int | 64 | Precision bits stored per value, lower values improve compression but reduce precision. |
-prevCacheRemovalPercent | float | 0.1 | Threshold percentage for removing entries from the previous cache, 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 request headers attached when pushing metrics, such as Authorization. |
-pushmetrics.interval | duration | 10s | Interval for pushing metrics. |
-pushmetrics.url | array | [] | List of remote URLs to push metrics to. Default does not push. |
-retentionFilters.cleanInterval | duration | 360h | Interval for cleaning expired data. |
-retentionFilters.config | string | "" | Path to retention filter configuration file. |
-retentionFilters.configCheckInterval | duration | 1h | Interval for checking changes in retention filter configuration file. |
-retentionPeriod | value | 1 | Data retention period, data beyond 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 concurrent requests that vmstorage can handle from vmselect. |
-search.maxQueueDuration | duration | 10s | Maximum wait time for queued requests. |
-search.maxTagKeys | int | 100000 | Maximum tag keys returned per search. |
-search.maxTagValues | int | 100000 | Maximum tag values returned per search. |
-search.maxUniqueTimeseries | int | 0 | Maximum unique time series scanned during queries, 0 means no limit. |
-smallMergeConcurrency | int | (Deprecated) | Deprecated, currently has no effect. |
-snapshotAuthKey | string | "" | Authentication key for accessing /snapshot* pages, supports reading from files or URLs. |
-snapshotCreateTimeout | duration | (Deprecated) | Deprecated, has no effect. |
-snapshotsMaxAge | value | 0 | Automatically deletes 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 unique series additions within 24 hours, series exceeding this limit will be discarded and logged. |
-storage.maxHourlySeries | int | 0 | Maximum unique series additions within one hour, series exceeding this limit will be discarded and logged. |
-storage.maxSeriesPerSecond | int | 2000 | Maximum series creations per second, exceeding this limit will discard and log. |
-storage.minFreeDiskSpaceBytes | size | 10000000 | Minimum free disk space required for storage paths, data reception stops if below this value. |
-storage.vminsertConnsShutdownDuration | duration | 25s | Graceful shutdown duration for 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 listen addresses, requires setting certificate and key files simultaneously. |
-tlsCertFile | array | [] | TLS certificate file path, supports dynamic updates. |
-tlsCipherSuites | array | [] | List of TLS cipher suites. |
-tlsKeyFile | array | [] | TLS key file path, supports dynamic updates. |
-tlsMinVersion | array | [] | Minimum TLS version requirement, supports TLS10, TLS11, TLS12, TLS13. |
-version | bool | false | Displays VictoriaMetrics version. |
-vminsertAddr | string | ":8400" | Listen address for vminsert service. |
-vmselectAddr | string | ":8401" | Listen address for vmselect service. |