Skip to content

GuanceDB Engine Deployment

Note

This article explains how to deploy the GuanceDB for Metrics component and the GuanceDB for Logs component. Both components use one Chart.

Architecture Diagram

  • The GuanceDB chart includes the GuanceDB for Metrics component and the GuanceDB for Logs component, both of which share guance-insert and guance-select services, providing a unified write and query interface.
  • Deploying the GuanceDB for Metrics component will also deploy the GuanceDB for Metrics Storage.

Core Components

1.Write Load Balancer (guance-insert)

  • Responsible for receiving raw data
  • Distributes data to storage nodes using consistent hashing algorithm
  • Supports high availability deployment

2.Query Engine (guance-select)

  • Supports DQL and PromQL query languages
  • Retrieves data from all storage nodes and calculates
  • Returns final query results

3.Storage Nodes (guance-storage)

  • Uses a share nothing architecture
  • No communication between nodes, no central coordination
  • Supports horizontal scaling

Prerequisites

  • Helm version requirement: 3.7+
  • Ensure that storage performance meets requirements
  • It is recommended to reserve sufficient system resources

Default Deployment Configuration Information

Service Name Address Port
guance-insert guance-insert.guancedb 8480
guance-select guance-select.guancedb 8481

Capacity Planning

1.Memory Reservation

  • All components should reserve at least 50% memory
  • Used to handle sudden writes, avoiding OOM

2.CPU Reservation

  • All components should reserve at least 50% CPU
  • Avoid slow writes and slow queries caused by sudden writes

3.Storage Space Reservation

  • Reserve 20% storage space for guance-storage nodes
  • Can be configured via the -storage.minFreeDiskSpaceBytes parameter

Reference Configuration

Taking 1 million time series as an example (write every 10 seconds, real-time write QPS 100k/s, query QPS 100, data retention for 1 month):

Component CPU Memory Disk
guance-insert 4c 4G -
guance-select 8c 8G -
guance-storage 16c 96G 500G

Note: In actual deployment, resource scale can be linearly adjusted based on the number of time series. Each component supports 2 instances by default.

GuanceDB Deployment

Note

There is a sequence relationship between deploying GuanceDB for Metrics and GuanceDB for Logs. You can first deploy GuanceDB for Metrics, then after Doris is deployed, configure Doris information to install GuanceDB for Logs. If you only want to deploy the GuanceDB for Logs component, set guance_storage.enabled=false.

Storage Class Settings

OpenEBS reference documentation: OpenEBS Deployment

If using a public cloud, refer to the public cloud storage block component

Deploy the following yaml configuration:

apiVersion: storage.k8s.io/v1
allowVolumeExpansion: true
kind: StorageClass
metadata:
  annotations:
    cas.openebs.io/config: |
      - name: StorageType
        value: "hostpath"
      - name: BasePath
        value: "/data"
  name: guancedb-cs
provisioner: openebs.io/local
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer

Ensure /data directory has enough disk capacity.

Deploy the following yaml configuration:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: guancedb-cs
provisioner: diskplugin.csi.alibabacloud.com
parameters:
  type: cloud_auto
  fstype: ext4
  # diskTags: "a:b,b:c"
  encrypted: "false"
  performanceLevel: PL1  # When using via cloud box, must be set to PL0.
  provisionedIops: "40000"
  burstingEnabled: "false"
volumeBindingMode: WaitForFirstConsumer
reclaimPolicy: Retain
allowVolumeExpansion: true

Deploy the following yaml configuration:

---
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: guancedb-cs
parameters:
  csi.storage.k8s.io/csi-driver-name: disk.csi.everest.io
  csi.storage.k8s.io/fstype: ext4
  everest.io/disk-volume-type: SSD    ## Modify disk type
  everest.io/passthrough: "true"
provisioner: everest-csi-provisioner
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

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

Download the chart package:

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

--untar means uncompressed, by default it is compressed

Configure and Install GuanceDB for Metrics

1.Configure GuanceDB for Metrics

Enter the guancedb directory and modify values.yaml

# Modify global storage class
global:
  storageClass: 'guancedb-cs'


# Disable scopedb switch
scopedb:
  enabled: false


guance_select:
  ...
  # Number of service replicas
  replicaCount: 2
  image:
    # If offline environment modify image address, no corresponding demand can leave unchanged
    repository: pubrepo.guance.com/guancedb/guance-select
  # Modify nodeSelector and tolerations to schedule guance-select containers, no corresponding demand can leave unchanged
  nodeSelector: {}
  tolerations:
    []
    # - key: "key"
    #   operator: "Equal|Exists"
    #   value: "value"
    #   effect: "NoSchedule|PreferNoSchedule"

guance_insert:
  ...
  # Number of service replicas
  replicaCount: 2
  image:
    # If offline environment modify image address, no corresponding demand can leave unchanged
    repository: pubrepo.guance.com/guancedb/guance-insert
  # Modify nodeSelector and tolerations to schedule guance-insert containers, no corresponding demand can leave unchanged
  nodeSelector: {}
  tolerations:
    []
    # - key: "key"
    #   operator: "Equal|Exists"
    #   value: "value"
    #   effect: "NoSchedule|PreferNoSchedule"

guance_storage:
  ...
  # Number of service replicas
  replicaCount: 2
  image:
    # If offline environment modify image address, no corresponding demand can leave unchanged
    repository: pubrepo.guance.com/guancedb/guance-storage
  # Modify nodeSelector and tolerations to schedule guance-storage containers, no corresponding demand can leave unchanged
  nodeSelector: {}
  tolerations:
    []
    # - key: "key"
    #   operator: "Equal|Exists"
    #   value: "value"
    #   effect: "NoSchedule|PreferNoSchedule"

2.Install GuanceDB for Metrics component

helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
   -n guancedb --create-namespace -f values.yaml

3.Check Status {#helm-check}

> kubectl get pod -n guancedb -l app.kubernetes.io/instance=guancedb
NAME                            READY   STATUS    RESTARTS   AGE
guance-insert-0                 1/1     Running   0          107s
guance-select-db5dfb66b-qsncr   1/1     Running   0          84s
guance-storage-0                1/1     Running   0          44s
guance-storage-1                1/1     Running   0          28s

Configure and Install GuanceDB for Logs

Note

If the GuanceDB for Metrics component has already been deployed, installing GuanceDB for Logs will not add new services but only add startup parameters to the services.

1.Configure GuanceDB for Logs

Enter the guancedb directory and modify values.yaml

Note

values.yaml is the file used to configure GuanceDB for Metrics. If values.yaml is lost, you can execute helm get values -n guancedb guancedb > values.yaml to retrieve it.

...
doris:
  # Enable GuanceDB for Logs
  enabled: true
  # Add Doris fe nodes
  feIPs: []
  # ["xx.xx.xx.xx","xx.xx.xx.xx"]
  # Doris root password
  rootPassword: ''
  # Doris normal user password
  userReadPassword: ''
  # memory size for cache data
  cacheSizeLimit: 4Gi

guance_throttler:
  # Enable 
  enabled: true
  ...

2.Install GuanceDB for Logs

helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
   -n guancedb --create-namespace -f values.yaml

3.Check Status {#helm-check-logs}

> kubectl get pod -n guancedb -l app.kubernetes.io/instance=guancedb
NAME                            READY   STATUS    RESTARTS   AGE
guance-insert-0                 1/1     Running   0          107s
guance-select-db5dfb66b-qsncr   1/1     Running   0          84s
guance-storage-0                1/1     Running   0          44s
guance-storage-1                1/1     Running   0          28s

Uninstall

helm uninstall -n guancedb guancedb

Others

Modify Component Parameters

1.Modify values.yaml

guance_storage:
  ...
  # You can add storage parameters here
  extraArgs:
    retentionFilters.config: http://kodo.forethought-kodo:9527/v1/workspace_retention
    envflag.enable: 'true'
    loggerFormat: json
    loggerMaxArgLen: '10000'
    loggerTimezone: Asia/Shanghai

guance_insert:
  ...
  # You can add insert parameters here  
  extraArgs:
    envflag.enable: 'true'
    loggerFormat: json
    loggerMaxArgLen: '10000'
    loggerTimezone: Asia/Shanghai
    streamaggr.insertVerify: 'true'

guance_select:
  # You can add select parameters here  
  ...
  extraArgs:
    envflag.enable: 'true'
    loggerFormat: json
    loggerMaxArgLen: '10000'
    loggerTimezone: Asia/Shanghai
    http.disableResponseCompression: 'true'
    search.denyPartialResponse: true
    search.maxQueryDuration: 110s
    slowQueryDuration: 1ms
    streamaggr.selectVerify: 'true'

2.Update Deployment:

helm upgrade -i guancedb oci://pubrepo.guance.com.com/guancedb/guancedb \
   -n guancedb --create-namespace -f values.yaml

Service Parameter Description

Guance Select Parameter Description

Parameter Name Type Default Value English Explanation
-blockcache.missesBeforeCaching int 2 The number of cache misses before a cache block is placed in the cache. Higher values may reduce indexdb/dataBlocks cache size but increase CPU and disk read operations.
-cacheDataPath string "/tmp/guance-select" Cache file directory path. Not saved if empty.
-cacheExpireDuration duration 30m0s Memory cache items are removed after not being accessed for a specified period. Lower values reduce memory usage but increase CPU usage.
-dedup.minScrapeInterval duration 1ms Only keeps the last sample for each time series within each discrete time interval, preventing duplicates.
-denyQueryTracing bool Whether to disable query tracing functionality.
-doris.coldDataTierOnly bool Use cold storage only.
-doris.disableBFOnNewTables bool Do not use Bloom filters for new tables.
-doris.disableUnicodeTokenizer bool Use Chinese tokenizer instead of Unicode tokenizer.
-doris.enableBFOnOldTables bool Use Bloom filters for old tables.
-doris.enableFileCacheTTL bool Use data cache with TTL for SelectDB version databases.
-doris.enableWarmDataTier bool Use warm-hot storage rather than hot-cold storage.
-doris.indexCacheTTL duration 30m0s Doris index cache expiration time.
-doris.onlyQueryFE bool Query data only from FE nodes after enabling.
-doris.onlyWriteFE bool Write data only to FE nodes after enabling.
-doris.replicationFactor int 1 Replication factor for Doris tables.
-doris.storageResource string "s3_default" Resource name used for storage strategy.
-doris.variantSchemaMode string Supported values: 'none', 'minimal', 'full'.
-dorisCluster string "default_cluster" Doris cluster name.
-dorisFENode array List of Doris FE node addresses, comma-separated.
-dorisHTTPPort int 8030 Doris HTTP port.
-dorisMySQLPort int 9030 Doris MySQL port.
-dorisPassword string Doris password.
-dorisUsername string "root" Doris username.
-enableTCP6 bool Whether to enable IPv6 listening and dialing. Default uses only IPv4.
-envflag.enable bool Whether to allow reading parameters from environment variables, command-line parameters take precedence.
-envflag.prefix string Environment variable prefix, effective only when environment variable reading is enabled.
-filestream.disableFadvise bool Whether to disable fadvise() system call, reduces CPU usage when reading large files but generally not recommended.
-flagsAuthKey value Authentication key for /flags endpoint. Can be read from a file or URL.
-fs.disableMmap bool Whether to use pread() instead of mmap() to read data files. Defaults to mmap() on 64-bit architectures and pread() on 32-bit.
-globalReplicationFactor int 1 Number of replicas per sample in vmstorage groups. Supports high availability.
-http.connTimeout duration 2m0s HTTP connection timeout, closes connection after timeout. 0 means no closure.
-http.disableResponseCompression bool Whether to disable HTTP response compression to save CPU. Default enables compression to save bandwidth.
-http.header.csp string Set Content-Security-Policy header, recommended: "default-src 'self'".
-http.header.frameOptions string Set X-Frame-Options header.
-http.header.hsts string Set Strict-Transport-Security header, recommended: 'max-age=31536000; includeSubDomains'.
-http.idleConnTimeout duration 1m0s HTTP idle connection timeout.
-http.maxGracefulShutdownDuration duration 7s Maximum graceful shutdown duration for HTTP server.
-http.pathPrefix string Prefix for all HTTP paths, suitable for proxy paths.
-http.shutdownDelay duration Delay before HTTP server shutdown, during which /health returns non-OK, facilitating load balancer request switching.
-httpAuth.password value HTTP basic authentication password, supports reading from a file or URL.
-httpAuth.username string HTTP basic authentication username, disables authentication if empty.
-httpListenAddr array List of HTTP listening addresses, supports multiple values or comma-separated values.
-httpListenAddr.useProxyProtocol array Specify whether to enable proxy protocol for listening addresses, cannot provide standard /metrics endpoint after enabling.
-insert.maxFutureTimeDrift duration 1h0m0s Reject events with timestamps exceeding current time plus this value.
-insert.maxPastTimeDrift duration Reject events with timestamps earlier than current time minus this value.
-insertNode array List of Guance-insert node addresses, comma-separated.
-internStringCacheExpireDuration duration 6m0s Interned string cache expiration time.
-internStringDisableCache bool Whether to disable interned string cache, disabling reduces memory but increases CPU usage.
-internStringMaxLen int 500 Maximum length of interned strings, lower values reduce memory but increase CPU usage.
-loggerDisableTimestamps bool false Whether to disable timestamp writing in logs
-loggerErrorsPerSecondLimit int 0 Error log limit per second, errors exceeding the limit are suppressed, 0 indicates no limit
-loggerFormat string "default" Log format, options "default" or "json"
-loggerJSONFields string - Rename JSON log fields, such as "ts:timestamp,msg:message"
-loggerLevel string "INFO" Minimum log level, supports INFO, WARN, ERROR, FATAL, PANIC
-loggerMaxArgLen int 1000 Maximum length of single log parameter, exceeding part is replaced with prefixes and suffixes
-loggerOutput string "stderr" Log output location, supports stderr and stdout
-loggerTimezone string "UTC" Timezone used for log timestamps, must be valid IANA timezone name
-loggerWarnsPerSecondLimit int 0 Warning log limit per second, warnings exceeding the limit are suppressed, 0 indicates no limit
-memory.allowedBytes size 0 System memory size allowed for VictoriaMetrics cache, overrides -memory.allowedPercent when set
-memory.allowedPercent float 60 Percentage of system memory allowed for VictoriaMetrics cache
-metrics.exposeMetadata bool false Whether to expose TYPE and HELP metadata on /metrics page
-metricsAuthKey value - Authentication key for /metrics endpoint, supports reading from a file or URL
-pprofAuthKey value - Authentication key for /debug/pprof/* endpoints, supports reading from a file or URL
-prevCacheRemovalPercent float 0.1 Remove cache entries when service requests ratio in previous cache is below this value, improves memory efficiency but increases CPU usage
-pushmetrics.disableCompression bool false Whether to disable request body compression when pushing metrics
-pushmetrics.extraLabel array - Additional labels when pushing metrics, such as instance="foo"
-pushmetrics.header array - Additional HTTP request headers when pushing metrics
-pushmetrics.interval duration 10s Interval for pushing metrics
-pushmetrics.url array - Specified list of URLs for pushing metrics
-queryPermitRatio float 1 Allowed query request ratio
-replicationFactor array 1 Number of replicas per sample, supports key:value form
-retentionFilters.cleanInterval duration 360h Interval for cleaning expired data
-retentionFilters.config string - Retention filter configuration file path
-retentionFilters.configCheckInterval duration 1h Interval for checking changes in retention filter configuration file
-scopeDB.dbName string "scopedb" ScopeDB database name
-scopeDB.dumpIngestBody bool false Whether to print ingestion content on failure
-scopeDB.ensureJob bool false Whether to enable ensure job functionality
-scopeDB.indexCacheTTL duration 5m ScopeDB index cache TTL
-scopeDB.maxConcurrentIndexRequests int 32 Maximum concurrent index requests
-scopeDB.node array - ScopeDB node address list
-scopeDB.nodegroup.ctl string "query-meta" Control plane node group name
-scopeDB.nodegroup.detailQuery string "detail-query" Non-aggregated query node group name
-scopeDB.nodegroup.job string "job" Job execution node group name
-scopeDB.nodegroup.largeQuery string "large-query" Large query node group name
-scopeDB.nodegroup.query string "query" Normal query node group name
-scopeDB.nodegroup.systemQuery string "system-query" System query node group name for referrers like "func" and "kodo"
-scopeDB.nodesUpdateInterval duration 10s Node update interval
-scopeDB.onlyUseBootstrapNodes bool false Whether to use bootstrap nodes only
-scopeDB.password string - ScopeDB password
-scopeDB.port uint 6543 ScopeDB port
-scopeDB.storage.accessKeyID string - ScopeDB storage access Key ID
-scopeDB.storage.bucket string - ScopeDB storage bucket
-scopeDB.storage.endpoint string - ScopeDB storage service endpoint
-scopeDB.storage.prefix string - ScopeDB storage prefix
-scopeDB.storage.region string - ScopeDB storage region
-scopeDB.storage.secretAccessKey string - ScopeDB storage Secret access key
-scopeDB.storage.type string - ScopeDB storage type
-scopeDB.username string - ScopeDB username
-search.cacheTimestampOffset duration 5m Maximum time offset for query response data to avoid gaps due to clock synchronization issues
-search.compatibleMode bool false Enable Prometheus compatible mode
-search.debugThrottler bool false Debug throttler
-search.denyPartialResponse bool false Whether to deny partial responses in exchange for data consistency
-search.disableCache bool false Disable response caching, suitable for backfilling historical data
-search.disableImplicitConversion bool false Disable implicit subquery conversion related queries
-search.dorisColdQueryCPULimit int 4 CPU limit for cold data SQL queries
-search.dorisDisableADBC bool false Prefer Thrift over ADBC
-search.dorisDisableSampling bool false Disable sampling
-search.dorisEnableSmallColdGroup bool false Use dedicated workgroups for small cold queries
-search.dorisLargeColdQueryRowCount int - Deprecated, use search.minRowsForLargeQuery instead
-search.dorisMaxCursorRows int 50000000 Maximum scanned rows for cursor queries
-search.dorisMaxLiteralArraySize int 1000 Maximum number of elements in array literals
-search.dorisMaxOrderingRows int - Maximum scanned rows for custom ordering queries
-search.dorisMaxRowsForOrder int - Maximum number of rows used for non-time column ORDER BY
-search.dorisMaxSamplingRows int - Deprecated, use search.numRowsToSample instead
-search.dorisThrottlerURL string - Throttler API address
-search.latencyOffset duration 30s Delay time for data points to become visible in query results after collection. Can be overridden by query parameter latency_offset. Too small values may result in incomplete final data points in query results.
-search.logImplicitConversion bool - Whether to log implicit subquery conversions. See Implicit Conversion Documentation. Can be disabled with -search.disableImplicitConversion.
-search.logQueryMemoryUsage size 524288000 (500MB) Log queries consuming more than this amount of memory, facilitating detection and optimization of large queries. Default is off. Supports KB, MB, GB units.
-search.maxConcurrentRequestsPerTenant int 5 Maximum concurrent query requests per tenant. High values lead to CPU and memory resource tension.
-search.maxExportDuration duration 720h (30 days) Maximum call duration for /api/v1/export interface.
-search.maxGroups int 100000 Maximum number of groups allowed in query results.
-search.maxLabelsAPIDuration duration 5s Maximum response duration for /api/v1/labels, /api/v1/label/.../values, and /api/v1/series interfaces.
-search.maxLimit int 10000 Maximum number of rows allowed in query results.
-search.maxLookback duration Dynamic detection Synonymous with Prometheus's -search.lookback-delta. Can be overridden by max_lookback parameter. Affects query lookback window.
-search.maxMemoryPerQuery size 0 Maximum memory allowed per query, queries exceeding this limit are rejected. Supports KB, MB, GB units.
-search.maxMetrics int 10000000 Deprecated, migrated to -search.maxShowUniqueTimeseries and -search.maxQueryUniqueTimeseries.
-search.maxPointsPerTimeseries int 30000 Maximum data points returned per time series by /api/v1/query_range, mainly limits client plotting points.
-search.maxPointsSubqueryPerTimeseries int 100000 Maximum generated data points per time series for subqueries. See related blog posts.
-search.maxQueryDuration duration 30s Maximum query execution duration.
-search.maxQueryLen size 16384 (16KB) Maximum query statement length. Supports KB, MB units.
-search.maxQueryUniqueTimeseries int 300000 Maximum unique time series allowed to be selected in /api/v1/query. Limits memory usage.
-search.maxQueueDuration duration 10s Maximum queue wait time when maximum concurrent requests limit is reached.
-search.maxResponseSeries int 0 (unlimited) Maximum time series returned by /api/v1/query and /api/v1/query_range, 0 means unlimited.
-search.maxSamplesPerQuery int 1000000000 Maximum raw samples scanned per query. Prevents excessive queries from exhausting resources.
-search.maxSamplesPerSeries int 30000000 Maximum raw samples scanned per time series.
-search.maxSeriesPerAggrFunc int 1000000 Maximum time series generated by aggregation functions.
-search.maxShowUniqueTimeseries int 10000000 Maximum time series shown by show function, limits memory usage.
-search.maxStalenessInterval duration Dynamically calculated Maximum staleness calculation interval, defaults to automatic median sample interval calculation.
-search.maxStatusRequestDuration duration 5m0s Maximum response time for /api/v1/status/* requests.
-search.maxStepForPointsAdjustment duration 1m0s Maximum step for /api/v1/query_range interface to adjust points closer to current time than latencyOffset.
-search.maxWorkersPerQuery int 2 Maximum CPU cores allowed per query. Adjustable to optimize performance, cannot exceed physical CPU cores.
-search.minRowsForLargeQuery int 10000000 Minimum number of rows scanned for large queries.
-search.minStalenessInterval duration - Minimum staleness interval for calculations, removes irregular sampling intervals leading to chart breakpoints.
-search.minTimeRangeForLargeQuery duration 12h0m0s Minimum time range for large queries.
-search.minWindowForInstantRollupOptimization duration 3h Minimum window value for enabling cache optimization for instant queries with lookback windows.
-search.noStaleMarkers bool false If there are no Prometheus stale markers in the database, setting to true saves CPU resources.
-search.queryStats.lastQueriesCount int 20000 Number of recent queries tracked by /api/v1/status/top_queries, 0 disables tracking.
-search.queryStats.minQueryDuration duration 1ms Shortest query duration threshold recorded in statistics, queries below this duration are ignored.
-search.resetRollupResultCacheOnStartup bool false Whether to reset rollup result cache on startup.
-search.rowsToSample int 10000000 Maximum number of rows scanned for sampling queries.
-search.rowsToSampleForFacet int 10000000 Maximum number of rows scanned for show_x_field or distinct queries.
-search.scopeDB.firstCursorScanRows int 10000000 Maximum number of rows scanned initially for cursor pagination queries.
-search.scopeDB.logQuery bool true Whether to log scopeDB queries.
-search.scopeDB.maxLiteralArraySize int 1000 Maximum number of elements in array literals.
-search.scopeDB.maxRowsForOrder int 100000 Maximum number of rows for non-time columns order by.
-search.scopeDB.maxTimeRange duration - Maximum time range for queries.
-search.setLookbackToStep bool false Whether to fix lookback to step parameter, adjusting query model to resemble InfluxDB. Disables -search.maxLookback and -search.maxStalenessInterval when enabled.
-search.skipSlowReplicas bool false Whether to skip the slowest vmstorage nodes in replication factor during queries, potentially improving speed but risking incomplete data.
-search.treatDotsAsIsInRegexps bool false Whether to filter dot characters in regular expressions. This option is deprecated, recommend using graphite syntax.
-slowQueryDuration duration 1s Queries exceeding this duration are recorded as slow queries.
-storageNode array - Array of guance-storage node addresses, separated by commas or specified multiple times.
-streamaggr.cleanupInterval duration 10m0s Expiration query cleanup interval.
-streamaggr.dataBlocksCacheSize int 157286400 (150MB) Data blocks cache size.
-streamaggr.ignoreContinuousCheck bool false Whether to ignore continuity checks.
-streamaggr.indexBlocksCacheSize int 52428800 (50MB) Index blocks cache size.
-streamaggr.queryRetentionPeriod duration 168h0m0s (7 days) Query retention period.
-streamaggr.retentionMonths int 6 Number of months for stream aggregation data retention.
-streamaggr.selectVerify bool false Whether to validate stream aggregation results.
-tls array No Whether to enable TLS for specified -httpListenAddr (i.e., HTTPS). Must set -tlsCertFile and -tlsKeyFile simultaneously. Supports multiple comma-separated values or repeated settings. Empty value treated as false.
-tlsCertFile array No Path to TLS certificate file for corresponding -httpListenAddr. Suggest using ECDSA certificates over RSA certificates due to slower RSA certificates. Certificate files re-read automatically every second, allowing dynamic updates. Supports multiple values.
-tlsCipherSuites array No Optional list of TLS cipher suites for HTTPS requests when enabling TLS. Supports multiple values. Detailed supported list see: https://pkg.go.dev/crypto/tls#pkg-constants
-tlsKeyFile array No Path to TLS key file for corresponding -httpListenAddr. Key files re-read automatically every second, allowing dynamic updates. Supports multiple values.
-tlsMinVersion array No Minimum TLS version restriction (optional). Supports TLS10, TLS11, TLS12, TLS13. Supports multiple values.
-version No parameter No Show VictoriaMetrics version information.
-vmstorageDialTimeout duration 3s Timeout for establishing RPC connections between vmselect and vmstorage. See -vmstorageUserTimeout for details.
-vmstorageUserTimeout duration 3s Network timeout for RPC connections between vmselect and vmstorage (Linux only). Lower values reduce maximum query duration during network failures. See TCP_USER_TIMEOUT explanation.
-zipkin.batchSize int 100 Maximum number of Spans sent in a single batch.
-zipkin.bufferSize int 10000 Maximum number of Spans buffered.
-zipkin.endpoint string No Zipkin collector endpoint URL, e.g., http://localhost:9529.
-zipkin.flushPeriod duration 1s Maximum flush interval time.
-zipkin.serviceName string guance-select Service name used in Zipkin Span.

Guance Insert Parameter Description

Parameter Name Type Default Value English Explanation
-blockcache.missesBeforeCaching int 2 Number of cache misses before placing the cache block into the cache. Higher values may reduce cache size but increase CPU and disk read pressure.
-cacheExpireDuration duration 30m0s Data in memory cache will be removed if not accessed for a period of time. Smaller values reduce memory usage but increase CPU usage.
-denyQueryTracing None None Whether to disable query tracing functionality. See: https://docs.victoriametrics.com/#query-tracing
-disableInflux None true Whether to disable support for Influx format.
-disableRerouting None true Whether to disable data rerouting. Triggered when some vmstorage writes are slow, disabling this feature reduces active time series during rolling restarts.
-disableReroutingOnUnavailable None None Whether to disable rerouting when vmstorage nodes are unavailable. Disabling this stops data writing if a node is unavailable, reducing impact during restarts or sequence changes.
-doris.cacheDataPath string /data/file-queue Cache file path.
-doris.coldDataTierOnly None None Use cold data storage layer only.
-doris.debugIndexName string default IndexName requiring additional debug logs.
-doris.debugMeasurement string None Measurement requiring additional debug logs.
-doris.debugNamespace string None Namespace requiring additional debug logs.
-doris.debugTenantID uint None Tenant ID (accountID) requiring additional debug logs.
-doris.disableBFOnNewTables None None Do not enable Bloom filters on newly created tables.
-doris.disableKeepAlives None None Disable keep-alive in stream load.
-doris.disableUnicodeTokenizer None None Use Chinese tokenizer instead of Unicode tokenizer.
-doris.enableBFOnOldTables None None Enable Bloom filters for old tables.
-doris.enableFileCacheTTL None None Enable cloud database SelectDB data cache: https://help.aliyun.com/document_detail/2638759.html
-doris.enableWarmDataTier None None Enable warm-hot storage mode, replacing hot-cold mode.
-doris.forceFlushInterval duration 30s Non-event data forced flush interval.
-doris.indexCacheTTL duration 30m0s Doris index cache TTL.
-doris.loadToSingleTablet None None Use load_to_single_tablet header in stream load requests.
-doris.maxCacheSize size 0 Deprecated, use fileQueue.maxTotalSize instead. Maximum byte size for total cached data.
-doris.maxConcurrentInserts int None Deprecated, use fileQueue.workers instead.
-doris.maxFieldCount size 512 Maximum field count allowed per measurement. Supports KB, MB, GB units.
-doris.maxFieldSize size 33554432 Maximum byte size per field. Supports KB, MB, GB units.
-doris.maxSizePerRequest size 0 Deprecated, use fileQueue.maxFileSize instead. Maximum size per line in single parsing.
-doris.onlyQueryFE None None Only query data from FE nodes after enabling, no direct access to BE.
-doris.onlyWriteFE None None Only write data to FE nodes after enabling, no direct writes to BE.
-doris.replicationFactor int 1 Replication factor for Doris tables.
-doris.sampleIndexName string None Sample index name.
-doris.sampleInsertRatio int None Sample insertion ratio.
-doris.sampleInterval value 1s Sample interval time, supports s/m/h/d/w/y as units. Defaults monthly.
-doris.sampleNamespace string None Sample namespace.
-doris.sampleTenantID string None Sample tenant ID.
-doris.storageResource string s3_default Resource name for Doris storage strategy.
-doris.variantSchemaMode string None Schema mode, supports 'none', 'minimal', 'full'.
-dorisCluster string default_cluster Doris cluster name.
-dorisFENode array None Doris-FE node addresses (multiple separated by commas).
-dorisHTTPPort int 8030 Doris HTTP port.
-dorisMySQLPort int 9030 Doris MySQL port.
-dorisPassword string None Password for connecting to Doris.
-dorisUsername string root Username for connecting to Doris.
-dropSamplesOnOverload None None If vmstorage nodes are overloaded or unavailable, whether to drop samples to ensure cluster availability. Note that this operation executes before replication, use with caution.
-enableTCP6 None None Whether to enable IPv6 listening and dialing. Default only enables IPv4.
-envflag.enable None None Whether to allow reading parameters from environment variables. Command-line parameters take precedence. See: https://docs.victoriametrics.com/#environment-variables
-envflag.prefix string None Environment variable prefix (use with -envflag.enable).
-fileQueue.maxFileSize size 104857600 Maximum size of a single file in file queue (default 100MB).
-fileQueue.maxTotalSize size 3758096384 Upper limit for total file queue size (default 3.5GB).
-fileQueue.workers int 8 Maximum number of concurrent threads for inserting into ScopeDB or Doris.
-filedb.maxFileSize int 10485760 Maximum file size for filedb (default 10MB).
-filestream.disableFadvise None None Whether to disable fadvise() system call to prevent OS cache eviction of recent data while reading large files.
-flagsAuthKey value None Authentication key for /flags interface. Can be read from a file or URL.
-fs.disableMmap None None Whether to disable mmap(), using pread() instead to read data files. Default enables mmap() on 64-bit systems.
-gcolumnCompressLevel int None Compression level for guance column protocol. Higher values compress better but consume more CPU; negative values reduce CPU usage but increase network transmission.
-http.connTimeout duration 2m0s HTTP connection timeout. Helps load balancers distribute traffic more evenly. 0 means no timeout.
-http.disableResponseCompression None None Whether to disable HTTP response compression to save CPU. Default enables compression to save network bandwidth.
-http.header.csp string None Set Content-Security-Policy header value, recommended value: "default-src 'self'"
-http.header.frameOptions string None Set X-Frame-Options header value.
-http.header.hsts string None Set Strict-Transport-Security header value, recommended value: "max-age=31536000; includeSubDomains"
-http.idleConnTimeout duration 1m0s Idle HTTP connection timeout.
-http.maxGracefulShutdownDuration duration 7s Longest wait time for graceful shutdown of HTTP service. High-load servers may require higher values.
-http.pathPrefix string None Prefix for all HTTP paths, e.g., setting to /foo/bar makes all paths start with it, facilitating reverse proxy.
-http.shutdownDelay duration None Delay before HTTP service shutdown. During this period, /health returns non-OK to notify load balancers to switch traffic.
-httpAuth.password value None HTTP Basic Auth password. Usernames empty disables it. Supports loading from a file or URL.
-httpAuth.username string None HTTP Basic Auth username. Empty disables it, must be used with -httpAuth.password.
-httpListenAddr array None HTTP service listening address. Supports multiple addresses.
-httpListenAddr.useProxyProtocol array false Whether to use proxy protocol for connections received by -httpListenAddr. After enabling, HTTP server cannot provide /metrics endpoint, use -pushmetrics.url for metrics pushing. Supports comma-separated or repeated settings. Empty value treated as false.
-influx.defaultBatchLinesCount size 16 Default number of lines per batch when parsing InfluxDB. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB.
-influx.defaultBatchSize size 1048576 Default byte size per batch when parsing InfluxDB. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB.
-insert.maxFutureTimeDrift duration 1h0m0s If event timestamp exceeds current time plus this value, the data will be rejected.
-insert.maxPastTimeDrift duration If event timestamp is earlier than current time minus this value, the data will be rejected.
-insertNode array Specify guance-insert node addresses, multiple separated by commas, supports quoted or bracketed values.
-internStringCacheExpireDuration duration 6m0s Expiration time for interned string cache. For details see: https://en.wikipedia.org/wiki/String_interning.
-internStringDisableCache false Whether to disable interned string cache. May reduce memory usage but increase CPU usage.
-internStringMaxLen int 500 Maximum length of interned strings. Setting smaller values may reduce memory usage but increase CPU usage.
-loggerDisableTimestamps false Whether to disable timestamp logging in logs.
-loggerErrorsPerSecondLimit int Maximum number of ERROR logs allowed per second, excess logs will be suppressed. Set to 0 for unlimited.
-loggerFormat string default Log format, options: default, json.
-loggerJSONFields string Rename fields in JSON logs, e.g., "ts:timestamp,msg:message". Supported fields: ts, level, caller, msg.
-loggerLevel string INFO Minimum log level for output, options: INFO, WARN, ERROR, FATAL, PANIC.
-loggerMaxArgLen int 1000 Maximum length of a single log parameter. Exceeding part will be truncated as 'arg_start..arg_end'.
-loggerOutput string stderr Log output target, supports: stderr, stdout.
-loggerTimezone string UTC Timezone used for timestamps in logs, must be valid IANA timezone format, such as America/New_York, Etc/GMT+3 or Local.
-loggerWarnsPerSecondLimit int Maximum number of WARN logs allowed per second, excess logs will be suppressed. Set to 0 for unlimited.
-maxConcurrentInserts int 24 Maximum number of concurrent insert requests allowed. Default value suits most cases, can be increased for slower networks.
-maxInsertRequestSize size 134217728 Maximum byte size per single gcolumn insert request. Supports unit suffixes: KB, MB, GB, TB, KiB, MiB, GiB, TiB.
-maxLabelValueLen int 16384 Maximum length of label values in received time series. Excess parts will be truncated, and the metric vm_too_long_label_values_total in /metrics page will increase.
-maxLabelsPerTimeseries int 256 Maximum labels allowed per time series. Extra labels will be discarded, and the metric vm_metrics_with_dropped_labels_total in /metrics page will increase.
-memory.allowedBytes size 0 Maximum system memory (bytes) allowed for VictoriaMetrics cache. This value overrides -memory.allowedPercent if non-zero. Setting too low increases cache miss rate, setting too high affects OS page cache.
-memory.allowedPercent float 60 Percentage of system memory allowed for VictoriaMetrics cache. Setting too low may increase CPU and disk IO, setting too high affects page cache.
-metrics.exposeMetadata false Whether to expose TYPE and HELP metadata on /metrics page, required by some systems (e.g., Google Cloud's Managed Prometheus).
-metricsAuthKey value Authentication key for /metrics endpoint, passed via authKey query parameter. Supports reading key from a file or URL.
-pprofAuthKey value Authentication key for /debug/pprof/* endpoints, passed via authKey query parameter. Supports reading key from a file or URL.
-prevCacheRemovalPercent float 0.1 When hit rate of old cache falls below this value, entries are removed. Higher values reduce memory usage but may increase CPU usage.
-pushmetrics.disableCompression false Whether to disable request body compression when pushing metrics to each -pushmetrics.url.
-pushmetrics.extraLabel array Additional labels for each -pushmetrics.url push, e.g., instance="foo". Supports commas, quotes, and brackets.
-pushmetrics.header array HTTP Headers carried in each -pushmetrics.url push request, e.g., Authorization: Basic foobar. Supports commas, quotes, and brackets.
-pushmetrics.interval duration 10s Interval for pushing metrics to each -pushmetrics.url.
-pushmetrics.url array Target addresses for pushing /metrics page data. Not pushed by default. Supports multiple addresses and complex syntax.
-relabelConfig string Path to relabeling rules configuration file (local or http address), automatically reloaded upon receiving SIGHUP signal. See: https://docs.victoriametrics.com/#relabeling
-replicationFactor int 1 Number of replicas for data, i.e., copies per data item across different -storageNode instances. If greater than 1, vmselect must set -dedup.minScrapeInterval=1ms for deduplication.
-retentionFilters.cleanInterval duration 360h0m0s Interval for cleaning expired data.
-retentionFilters.config string Retention policy configuration file path.
-retentionFilters.configCheckInterval duration 1h0m0s Interval for checking updates to retention policy configuration file.
-rpc.disableCompression false Whether to disable compression when sending data from vminsert to vmstorage. Disabling reduces CPU usage but increases network bandwidth.
-scopeDB.dbName string scopedb ScopeDB database name.
-scopeDB.dumpIngestBody false Whether to output request body content on ingestion failure.
-scopeDB.ensureJob false Whether to enable ensure job.
-scopeDB.indexCacheTTL duration 5m0s ScopeDB index cache TTL
-scopeDB.maxConcurrentIndexRequests int 32 Maximum concurrent index requests allowed by ScopeDB
-scopeDB.maxFieldCount size 512 Maximum fields per index
-scopeDB.maxFieldSize size 33554432 Maximum byte size per gcolumn field
-scopeDB.node array List of ScopeDB node addresses, supports various formats
-scopeDB.nodegroup.ctl string ingest-meta Control plane ScopeDB node group
-scopeDB.nodegroup.ingest string ingest ScopeDB node group for data ingestion
-scopeDB.nodesUpdateInterval duration 10s Interval for updating ScopeDB node information
-scopeDB.onlyUseBootstrapNodes bool false Whether to use bootstrap nodes only
-scopeDB.password string ScopeDB access password
-scopeDB.port uint 6543 ScopeDB access port
-scopeDB.username string ScopeDB username
-search.debugThrottler bool false Debug throttler
-search.denyPartialResponse bool false Whether to deny partial responses (improves consistency at the cost of availability)
-search.dorisColdQueryCPULimit int 4 CPU limit for cold data queries using Doris
-search.dorisDisableADBC bool false Whether to disable ADBC (prefer Thrift)
-search.dorisDisableSampling bool false Whether to disable sampling
-search.dorisEnableSmallColdGroup bool false Enable dedicated workgroups for small cold queries
-search.dorisMaxCursorRows int 50000000 Maximum rows scanned in cursor queries
-search.dorisMaxLiteralArraySize int 1000 Maximum elements in literal arrays
-search.dorisMaxOrderingRows int Maximum rows scanned in custom ordering queries
-search.dorisMaxRowsForOrder int Maximum rows for ordering by non-time columns
-search.dorisThrottlerURL string Throttler API address
-search.logQueryMemoryUsage size 524288000 Log queries using more than specified memory
-search.maxExportDuration duration 720h0m0s Maximum duration for /api/v1/export requests
-search.maxGroups int 100000 Maximum groups allowed in query results
-search.maxLabelsAPIDuration duration 5s Maximum duration for /api/v1/labels, /api/v1/label/.../values, and /api/v1/series requests
-search.maxLimit int 10000 Maximum rows allowed in query results
-search.maxMemoryPerQuery size 0 Maximum memory allowed per query, queries exceeding this limit are rejected
-search.maxQueryDuration duration 30s Maximum duration for query execution
-search.maxStatusRequestDuration duration 5m0s Maximum duration for /api/v1/status/* requests
-search.minTimeRangeForLargeQuery duration 12h0m0s Minimum scan duration for large queries
-search.scopeDB.firstCursorScanRows int 10000000 Rows scanned in cursor pagination queries
-search.scopeDB.logQuery bool true Whether to log ScopeDB queries
-search.scopeDB.maxLiteralArraySize int 1000 Maximum elements in literal arrays
-search.scopeDB.maxRowsForOrder int 100000 Maximum rows for ordering by non-time columns
-search.scopeDB.maxTimeRange duration Maximum time range for queries
-sortLabels bool false Whether to sort labels written to storage, reduces memory usage but may lower write performance
-storageNode array List of guance-storage node addresses, supports various formats
-streamaggr.cleanupInterval duration 10m0s Interval for cleaning up expired queries
-streamaggr.dataBlocksCacheSize int 157286400 Data blocks cache size (bytes)
-streamaggr.ignoreContinuousCheck bool false Whether to ignore continuous checks
-streamaggr.indexBlocksCacheSize int 52428800 Index blocks cache size (bytes)
-streamaggr.insertVerify bool false Enable streamaggr verification mode
-streamaggr.queryRetentionPeriod duration 168h0m0s Query retention period
-streamaggr.replay bool false Enable streamaggr replay mode
-streamaggr.retentionMonths int 6 Number of months for stream aggregation data retention
-streamaggrDataPath string Storage data path
-tls array Whether to enable TLS for specified httpListenAddr, requires setting -tlsCertFile and -tlsKeyFile
-tlsCertFile array Path to TLS certificate file, supports dynamic updates
-tlsCipherSuites array Optional list of TLS cipher suites
-tlsKeyFile array Path to TLS key file, supports dynamic updates
-tlsMinVersion array Minimum TLS version (TLS10, TLS11, TLS12, TLS13)
-usePromCompatibleNaming bool false Whether to replace unsupported Prometheus characters with underscores
-version bool false Show VictoriaMetrics version information
-vmstorageDialTimeout duration 3s Timeout for vminsert to establish RPC connection to vmstorage
-vmstorageUserTimeout duration 3s Network timeout for vminsert to vmstorage (Linux specific)
-zipkin.batchSize int 100 Maximum span count per batch when sending to Zipkin
-zipkin.bufferSize int 10000 Maximum span count in buffer when sending to Zipkin
-zipkin.endpoint string Zipkin collector endpoint URL
-zipkin.flushPeriod duration 1s Maximum flush interval for sending spans to Zipkin
-zipkin.serviceName string guance-insert Service name used in Zipkin Span

Guance Stroage Parameter Description

Parameter Name Type Default Value English Explanation
-bigMergeConcurrency int None Deprecated: This parameter no longer takes effect.
-blockcache.missesBeforeCaching int 2 Number of cache misses before placing cache block into cache. Higher values may reduce indexdb/dataBlocks cache size but increase CPU and disk read operations.
-cacheExpireDuration duration 30m0s Memory cache items are removed after not being accessed for this duration. Lower values may reduce memory usage but increase CPU usage. See -prevCacheRemovalPercent.
-dedup.minScrapeInterval duration None Each time series retains only the last sample within a specified discrete interval, must be set greater than 0. See deduplication documentation.
-denyQueriesOutsideRetention bool false Whether to deny queries for data outside the configured -retentionPeriod range. After enabling, /api/v1/query_range returns 503 error for out-of-range queries.
-denyQueryTracing bool false Whether to disable query tracing functionality. See query tracing documentation.
-enableTCP6 bool false Whether to enable IPv6 for listening and dialing, default only enables IPv4.
-envflag.enable bool false Whether to enable reading parameters from environment variables, command-line parameters take precedence. If not enabled, only reads from command-line. See environment variables documentation.
-envflag.prefix string None Environment variable prefix when -envflag.enable is enabled.
-filestream.disableFadvise bool false Whether to disable fadvise() system call when reading large files. Prevents recently accessed data from being evicted by system cache, sometimes disabling can reduce CPU usage.
-finalMergeDelay duration None Deprecated: This parameter no longer takes effect.
-flagsAuthKey value None Authentication key for /flags endpoint, must be passed via authKey query parameter. Supports reading key from a file or HTTP(S) URL.
-forceFlushAuthKey value None Authentication key required for /internal/force_flush page, supports reading from a file or HTTP(S) URL.
-forceMergeAuthKey value None Authentication key required for /internal/force_merge page, supports reading from a file or HTTP(S) URL.
-fs.disableMmap bool false Whether to use pread() instead of mmap() to read data files. Defaults to mmap() on 64-bit architectures and pread() on 32-bit architectures. mmap() is faster for small data blocks.
-http.connTimeout duration 2m0s Connection timeout close time for -httpListenAddr. Helps load balancer distribute requests evenly. 0 disables timeout closure.
-http.disableResponseCompression bool false Whether to disable HTTP response compression, default enables compression to save network bandwidth, disabling saves CPU.
-http.header.csp string "default-src 'self'" Set HTTP header Content-Security-Policy, recommended value "default-src 'self'".
-http.header.frameOptions string None Set HTTP header X-Frame-Options.
-http.header.hsts string "max-age=31536000; includeSubDomains" Set HTTP header Strict-Transport-Security, recommended value as shown.
-http.idleConnTimeout duration 1m0s HTTP idle connection timeout close time.
-http.maxGracefulShutdownDuration duration 7s Maximum wait time for graceful shutdown of HTTP server, recommend increasing this value for high-load servers.
-http.pathPrefix string None Prefix all HTTP paths with, e.g., for accessing paths via proxy. See relevant documentation.
-http.shutdownDelay duration None Delay before HTTP server shutdown. During this period, /health returns non-OK status to facilitate load balancer transferring requests.
-httpAuth.password value None HTTP basic authentication password. Authentication disabled if username not set. Supports reading from a file or HTTP(S) URL.
-httpAuth.username string None HTTP basic authentication username, authentication disabled if not set.
-httpListenAddr array None HTTP listening addresses, can be passed via commas or multiple parameters, supports complex formats.
-httpListenAddr.useProxyProtocol array false Whether to enable Proxy Protocol for specified listening addresses, cannot use standard /metrics endpoint after enabling. See HAProxy documentation.
-inmemoryDataFlushInterval duration 5s Interval for persisting in-memory data to disk, preserves data in case of abnormal shutdown. Larger intervals extend flash lifespan, smaller intervals increase disk IO load. Minimum 1 second.
-insert.maxQueueDuration duration 1m0s Maximum wait time in queue when maximum concurrent inserts are reached.
-internStringCacheExpireDuration duration 6m0s Interned string cache expiration time, see string interning mechanism.
-internStringDisableCache bool false Whether to disable interned string cache, disabling reduces memory but increases CPU usage.
-internStringMaxLen int 500 Maximum length of interned strings, lower values save memory but increase CPU usage.
-logNewSeries bool false Whether to log new time series, used only for debugging, may affect performance.
-loggerDisableTimestamps bool None Whether to disable timestamp writing in logs.
-loggerErrorsPerSecondLimit int 0 Maximum number of ERROR messages allowed per second. Errors exceeding this limit will be suppressed. 0 indicates unlimited.
-loggerFormat string "default" Log format. Options: default, json (default "default").
-loggerJSONFields string None Rename fields in JSON format logs. For example, "ts:timestamp,msg:message" renames "ts" to "timestamp". Supports fields: ts, level, caller, msg.
-loggerLevel string "INFO" Minimum log level. Options: INFO, WARN, ERROR, FATAL, PANIC (default "INFO").
-loggerMaxArgLen int 1000 Maximum length of single log parameter. Parameters exceeding this length are displayed as 'arg_start..arg_end', where front and back parts do not exceed -loggerMaxArgLen / 2.
-loggerOutput string "stderr" Log output location. Options: stderr, stdout (default "stderr").
-loggerTimezone string "UTC" Timezone used for log timestamps. Must be valid IANA timezone name, such as America/New_York, Europe/Berlin, Etc/GMT+3 or Local (default "UTC").
-loggerWarnsPerSecondLimit int 0 Maximum number of WARN messages allowed per second. Warnings exceeding this limit will be suppressed. 0 indicates unlimited.
-maxConcurrentInserts int 4 Maximum concurrent insert requests. Can be increased for clients with slow networks. Default value is set based on CPU cores, generally suitable. See -insert.maxQueueDuration.
-memory.allowedBytes size 0 System memory size allowed for VictoriaMetrics cache (bytes). Non-zero value overrides -memory.allowedPercent. Low values increase cache miss rate, resulting in higher CPU and disk IO. Supports unit suffixes KB, MB, GB, etc.
-memory.allowedPercent float 60 Percentage of system memory allowed for VictoriaMetrics cache. See -memory.allowedBytes. Low values increase cache miss rate, high values may result in more disk IO.
-metrics.exposeMetadata bool None Whether to expose TYPE and HELP metadata on /metrics page. Some systems (such as Google Cloud Managed Prometheus) require this information.
-metricsAuthKey string None Authentication key for /metrics endpoint. Passed via authKey query parameter, takes precedence over httpAuth.* settings. Can be read from a file or HTTP/HTTPS URL.
-pprofAuthKey string None Authentication key for /debug/pprof/* endpoint. Passed via authKey query parameter, takes precedence over httpAuth.* settings. Can be read from a file or HTTP/HTTPS URL.
-precisionBits int 64 Number of precision bits stored per value. Lower bit numbers increase compression rate but lose precision. (Default 64)
-prevCacheRemovalPercent float 0.1 Threshold percentage for removing entries from previous cache when current cache service request ratio is below this value. Increasing this value reduces memory usage but increases CPU usage. See -cacheExpireDuration.
-pushmetrics.disableCompression bool None Whether to disable request body compression when pushing to all -pushmetrics.url.
-pushmetrics.extraLabel array None Add extra labels to metrics pushed to all -pushmetrics.url. For example, -pushmetrics.extraLabel='instance="foo"'. Supports arrays and multiple settings.
-pushmetrics.header array None HTTP request headers sent to all -pushmetrics.url. For example, -pushmetrics.header='Authorization: Basic foobar'. Supports arrays and multiple settings.
-pushmetrics.interval duration 10s Interval for pushing metrics to all -pushmetrics.url.
-loggerDisableTimestamps bool false Whether to disable writing timestamps in logs.
-loggerErrorsPerSecondLimit int 0 Maximum number of ERROR messages allowed per second. Errors exceeding this limit are suppressed. 0 indicates unlimited.
-loggerFormat string "default" Log format. Options: default, json.
-loggerJSONFields string "" Rename fields in JSON logs, e.g., "ts:timestamp,msg:message" renames "ts" to "timestamp". Supports fields: ts, level, caller, msg.
-loggerLevel string "INFO" Minimum log output level. Options: INFO, WARN, ERROR, FATAL, PANIC.
-loggerMaxArgLen int 1000 Maximum length of a single log parameter. Parameters exceeding this length are truncated to 'arg_start..arg_end'.
-loggerOutput string "stderr" Log output location. Options: stderr, stdout.
-loggerTimezone string "UTC" Timezone used for log timestamps. Must be a valid IANA timezone name, e.g., America/New_York.
-loggerWarnsPerSecondLimit int 0 Maximum number of WARN messages allowed per second. Warnings exceeding this limit are suppressed. 0 indicates unlimited.
-maxConcurrentInserts int 4 Maximum number of concurrent write requests. Automatically set based on CPU cores by default.
-memory.allowedBytes size 0 System memory size available for VictoriaMetrics cache, takes precedence over -memory.allowedPercent. Supports units KB, MB, GB, etc.
-memory.allowedPercent float 60 Percentage of system memory available for VictoriaMetrics cache.
-metrics.exposeMetadata bool false Whether to expose TYPE and HELP metadata on /metrics page.
-metricsAuthKey string "" Authentication key for /metrics endpoint access. Can be read from a file or URL.
-pprofAuthKey string "" Authentication key for /debug/pprof/* endpoint access. Can be read from a file or URL.
-precisionBits int 64 Number of precision bits stored per value. Lower values increase compression but reduce precision.
-prevCacheRemovalPercent float 0.1 Threshold percentage for removing entries from the previous cache when current cache service request ratio falls below this value. Higher values reduce memory usage but increase CPU usage.
-pushmetrics.disableCompression bool false Whether to disable request body compression when pushing metrics.
-pushmetrics.extraLabel array [] Array of additional labels added to pushed metrics, such as instance="foo".
-pushmetrics.header array [] Additional HTTP headers attached when pushing metrics, such as Authorization.
-pushmetrics.interval duration 10s Interval for pushing metrics.
-pushmetrics.url array [] List of remote URLs to which metrics need to be pushed. Default does not push.
-retentionFilters.cleanInterval duration 360h Interval for cleaning expired data.
-retentionFilters.config string "" Retention filter configuration file path.
-retentionFilters.configCheckInterval duration 1h Interval for checking changes in retention filter configuration file.
-retentionPeriod value 1 Data retention period, data older than this period is automatically deleted, supports units s,m,h,d,w,y.
-retentionTimezoneOffset duration 0 Timezone offset for indexdb rotation execution, 0 means UTC 4 o'clock.
-rpc.disableCompression bool false Whether to disable data compression between vmstorage and vmselect, disabling reduces CPU but increases network bandwidth.
-search.maxConcurrentRequests int 4 Maximum number of concurrent requests that vmstorage can handle from vmselect.
-search.maxQueueDuration duration 10s Maximum wait time for queued requests.
-search.maxTagKeys int 100000 Maximum number of tag keys returned in a single search.
-search.maxTagValues int 100000 Maximum number of tag values returned in a single search.
-search.maxUniqueTimeseries int 0 Maximum number of unique time series that can be scanned during queries, 0 means unlimited.
-smallMergeConcurrency int (Deprecated) Deprecated, currently has no effect.
-snapshotAuthKey string "" Authentication key for /snapshot* page access, supports reading from a file or URL.
-snapshotCreateTimeout duration (Deprecated) Deprecated, has no effect.
-snapshotsMaxAge value 0 Automatically delete snapshots older than this time, supports units s,m,h,d,w,y.
-storage.cacheSizeIndexDBDataBlocks size 0 Maximum size for indexdb/dataBlocks cache.
-storage.cacheSizeIndexDBIndexBlocks size 0 Maximum size for indexdb/indexBlocks cache.
-storage.cacheSizeIndexDBTagFilters size 0 Maximum size for indexdb/tagFiltersToMetricIDs cache.
-storage.cacheSizeStorageTSID size 0 Maximum size for storage/tsid cache.
-storage.maxDailySeries int 0 Maximum number of unique series that can be added within 24 hours, exceeding series will be discarded and logged.
-storage.maxHourlySeries int 0 Maximum number of unique series that can be added within an hour, exceeding series will be discarded and logged.
-storage.maxSeriesPerSecond int 2000 Maximum number of series that can be created per second, exceeding limits will be discarded and logged.
-storage.minFreeDiskSpaceBytes size 10000000 Minimum free disk space required for storage paths, data reception stops if below this value.
-storage.vminsertConnsShutdownDuration duration 25s Duration needed for graceful shutdown of vminsert connections, controls shutdown speed to reduce load fluctuations.
-storageDataPath string "vmstorage-data" Storage data path.
-tls array [] Whether to enable TLS for specified HTTP listening addresses, must also set certificate and key files simultaneously.
-tlsCertFile array [] Path to TLS certificate file, supports dynamic updates.
-tlsCipherSuites array [] List of TLS cipher suites.
-tlsKeyFile array [] Path to TLS key file, supports dynamic updates.
-tlsMinVersion array [] Minimum TLS version requirement, supports TLS10, TLS11, TLS12, TLS13.
-version bool false Show VictoriaMetrics version.
-vminsertAddr string ":8400" Listening address for vminsert service.
-vmselectAddr string ":8401" Listening address for vmselect service.

Feedback

Is this page helpful? ×