Skip to content

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

Deploy the following yaml configuration:

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: guancedb-cs
provisioner: ebs.csi.aws.com
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:

helm pull oci://pubrepo.guance.com/guancedb/guancedb --untar

--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

helm uninstall -n guancedb guancedb

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.

Feedback

Is this page helpful? ×