# Set the command-line arguments to pass to the server.
ARGS="-storageDataPath=/var/lib/victoria-metrics"

# VictoriaMetrics supports the following options.
#  -bigMergeConcurrency int
#        The maximum number of CPU cores to use for big merges.
#        Default value is used if set to 0.
#  -csvTrimTimestamp duration
#        Trim timestamps when importing csv data to this duration.
#        Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be
#        used for reducing disk space usage for timestamp data (default 1ms).
#  -dedup.minScrapeInterval duration
#        Remove superflouos samples from time series if they are located closer
#        to each other than this duration. This may be useful for reducing
#        overhead when multiple identically configured Prometheus instances
#        write data to the same VictoriaMetrics. Deduplication is disabled if
#        the -dedup.minScrapeInterval is 0.
#  -deleteAuthKey string
#        authKey for metrics' deletion via /api/v1/admin/tsdb/delete_series.
#  -denyQueriesOutsideRetention
#        Whether to deny queries outside of the configured -retentionPeriod.
#        When set, then /api/v1/query_range would return '503 Service
#        Unavailable' error for queries with 'from' value outside
#        -retentionPeriod. This may be useful when multiple data sources with
#        distinct retentions are hidden behind query-tee.
#  -dryRun
#        Whether to check only -promscrape.config and then exit. Unknown config
#        entries are allowed in -promscrape.config by default. This can be
#        changed with -promscrape.config.strictParse.
#  -enableTCP6
#        Whether to enable IPv6 for listening and dialing. By default only
#        IPv4 TCP is used.
#  -envflag.enable
#        Whether to enable reading flags from environment variables
#        additionally to command line. Command line flag values have priority
#        over values from environment vars. Flags are read only from command
#        line if this flag isn't set.
#  -envflag.prefix string
#        Prefix for environment variables if -envflag.enable is set.
#  -finalMergeDelay duration
#        The delay before starting final merge for per-month partition after
#        no new data is ingested into it. Query speed and disk space usage is
#        usually reduced after the final merge is complete. Too low delay for
#        final merge may result in increased disk IO usage and CPU usage
#        (default 30s).
#  -forceFlushAuthKey string
#        authKey, which must be passed in query string to /internal/force_flush
#        pages.
#  -forceMergeAuthKey string
#        authKey, which must be passed in query string to /internal/force_merge
#        pages.
#  -fs.disableMmap
#        Whether to use pread() instead of mmap() for reading data files.
#        By default mmap() is used for 64-bit arches and pread() is used for
#        32-bit arches, since they cannot read data files bigger than 2^32
#        bytes in memory. mmap() is usually faster for reading small data
#        chunks than pread().
#  -graphiteListenAddr string
#        TCP and UDP address to listen for Graphite plaintext data.
#        Usually :2003 must be set. Doesn't work if empty.
#  -graphiteTrimTimestamp duration
#        Trim timestamps for Graphite data to this duration. Minimum practical
#        duration is 1s. Higher duration (i.e. 1m) may be used for reducing
#        disk space usage for timestamp data (default 1s).
#  -http.connTimeout duration
#        Incoming http connections are closed after the configured timeout.
#        This may help spreading incoming load among a cluster of services
#        behind load balancer (default 2m0s).
#  -http.disableResponseCompression
#        Disable compression of HTTP responses for saving CPU resources.
#        By default compression is enabled to save network bandwidth.
#  -http.idleConnTimeout duration
#        Timeout for incoming idle http connections (default 1m0s).
#  -http.maxGracefulShutdownDuration duration
#        The maximum duration for graceful shutdown of HTTP server. Highly
#        loaded server may require increased value for graceful shutdown
#        (default 7s).
#  -http.pathPrefix string
#        An optional prefix to add to all the paths handled by http server. For
#        example, if '-http.pathPrefix=/foo/bar' is set, then all the http
#        requests will be handled on '/foo/bar/*' paths. This may be useful for
#        proxied requests.
#        See https://www.robustperception.io/using-external-urls-and-proxies-with-prometheus.
#  -http.shutdownDelay duration
#        Optional delay before http server shutdown. During this dealy the
#        servier returns non-OK responses from /health page, so load balancers
#        can route new requests to other servers.
#  -httpAuth.password string
#        Password for HTTP Basic Auth. The authentication is disabled if
#        -httpAuth.username is empty.
#  -httpAuth.username string
#        Username for HTTP Basic Auth. The authentication is disabled if empty.
#        See also -httpAuth.password.
#  -httpListenAddr string
#        TCP address to listen for http connections (default ":8428").
#  -import.maxLineLen value
#        The maximum length in bytes of a single line accepted by
#        /api/v1/import.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 104857600).
#  -influx.maxLineSize value
#        The maximum size in bytes for a single Influx line during parsing.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 262144).
#  -influxListenAddr http://<victoriametrics>:8428/write
#        TCP and UDP address to listen for Influx line protocol data.
#        Usually :8189 must be set. Doesn't work if empty. This flag isn't
#        needed when ingesting data over HTTP - just send it to
#        http://<victoriametrics>:8428/write.
#  -influxMeasurementFieldSeparator string
#        Separator for '{measurement}{separator}{field_name}' metric name when
#        inserted via Influx line protocol (default "_").
#  -influxSkipMeasurement
#        Uses '{field_name}' as a metric name while ignoring '{measurement}'
#        and '-influxMeasurementFieldSeparator'.
#  -influxSkipSingleField
#        Uses '{measurement}' instead of '{measurement}{separator}{field_name}'
#        for metic name if Influx line contains only a single field.
#  -influxTrimTimestamp duration
#        Trim timestamps for Influx line protocol data to this duration.
#        Minimum practical duration is 1ms. Higher duration (i.e. 1s) may be
#        used for reducing disk space usage for timestamp data (default 1ms).
#  -insert.maxQueueDuration duration
#        The maximum duration for waiting in the queue for insert requests due
#        to -maxConcurrentInserts (default 1m0s).
#  -loggerDisableTimestamps
#        Whether to disable writing timestamps in logs.
#  -loggerErrorsPerSecondLimit int
#        Per-second limit on the number of ERROR messages. If more than the
#        given number of errors are emitted per second, then the remaining
#        errors are suppressed. Zero value disables the rate limit (default 10).
#  -loggerFormat string
#        Format for logs. Possible values: default, json (default "default").
#  -loggerLevel string
#        Minimum level of errors to log.
#        Possible values: INFO, WARN, ERROR, FATAL, PANIC (default "INFO").
#  -loggerOutput string
#        Output for the logs. Supported values: stderr, stdout
#        (default "stderr").
#  -loggerTimezone string
#        Timezone to use for timestamps in logs. Local timezone can be used
#        (default "UTC").
#  -loggerWarnsPerSecondLimit int
#        Per-second limit on the number of WARN messages. If more than the
#        given number of warns are emitted per second, then the remaining
#        warns are suppressed. Zero value disables the rate limit.
#  -maxConcurrentInserts int
#        The maximum number of concurrent inserts. Default value should work
#        for most cases, since it minimizes the overhead for concurrent inserts.
#        This option is tigthly coupled with -insert.maxQueueDuration
#        (default 8).
#  -maxInsertRequestSize value
#        The maximum size in bytes of a single Prometheus remote_write API
#        request.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 33554432).
#  -maxLabelsPerTimeseries int
#        The maximum number of labels accepted per time series. Superflouos
#        labels are dropped (default 30).
#  -memory.allowedBytes value
#        Allowed size of system memory VictoriaMetrics caches may occupy. This
#        option overrides -memory.allowedPercent if set to non-zero value. Too
#        low value may increase cache miss rate, which usually results in
#        higher CPU and disk IO usage. Too high value may evict too much data
#        from OS page cache, which will result in higher disk IO usage.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 0).
#  -memory.allowedPercent float
#        Allowed percent of system memory VictoriaMetrics caches may occupy.
#        See also -memory.allowedBytes. Too low value may increase cache miss
#        rate, which usually results in higher CPU and disk IO usage. Too high
#        value may evict too much data from OS page cache, which will result
#        in higher disk IO usage (default 60).
#  -metricsAuthKey string
#        Auth key for /metrics. It overrides httpAuth settings.
#  -opentsdbHTTPListenAddr string
#        TCP address to listen for OpentTSDB HTTP put requests.
#        Usually :4242 must be set. Doesn't work if empty.
#  -opentsdbListenAddr string
#        TCP and UDP address to listen for OpentTSDB metrics. Telnet put
#        messages and HTTP /api/put messages are simultaneously served on
#        TCP port. Usually :4242 must be set. Doesn't work if empty.
#  -opentsdbTrimTimestamp duration
#        Trim timestamps for OpenTSDB 'telnet put' data to this duration.
#        Minimum practical duration is 1s. Higher duration (i.e. 1m) may be
#        used for reducing disk space usage for timestamp data (default 1s).
#  -opentsdbhttp.maxInsertRequestSize value
#        The maximum size of OpenTSDB HTTP put request.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 33554432).
#  -opentsdbhttpTrimTimestamp duration
#        Trim timestamps for OpenTSDB HTTP data to this duration. Minimum
#        practical duration is 1ms. Higher duration (i.e. 1s) may be used for
#        reducing disk space usage for timestamp data (default 1ms).
#  -pprofAuthKey string
#        Auth key for /debug/pprof. It overrides httpAuth settings.
#  -precisionBits int
#        The number of precision bits to store per each value. Lower precision
#        bits improves data compression at the cost of precision loss
#        (default 64).
#  -promscrape.config string
#        Optional path to Prometheus config file with 'scrape_configs' section
#        containing targets to scrape.
#        See https://victoriametrics.github.io/#how-to-scrape-prometheus-exporters-such-as-node-exporter
#        for details.
#  -promscrape.config.dryRun
#        Checks -promscrape.config file for errors and unsupported fields and
#        then exits. Returns non-zero exit code on parsing errors and emits
#        these errors to stderr. Pass -loggerLevel=ERROR if you don't need to
#        see info messages in the output.
#  -promscrape.config.strictParse
#        Whether to allow only supported fields in '-promscrape.config'. This
#        option may be used for errors detection in '-promscrape.config' file.
#  -promscrape.configCheckInterval duration
#        Interval for checking for changes in '-promscrape.config' file. By
#        default the checking is disabled. Send SIGHUP signal in order to force
#        config check for changes.
#  -promscrape.consulSDCheckInterval consul_sd_configs
#        Interval for checking for changes in consul. This works only if
#        consul_sd_configs is configured in '-promscrape.config' file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config
#        for details (default 30s).
#  -promscrape.disableCompression
#        Whether to disable sending 'Accept-Encoding: gzip' request headers to
#        all the scrape targets. This may reduce CPU usage on scrape targets at
#        the cost of higher network bandwidth utilization. It is possible to
#        set 'disable_compression: true' individually per each 'scrape_config'
#        section in '-promscrape.config' for fine grained control.
#  -promscrape.disableKeepAlive disable_keepalive: true
#        Whether to disable HTTP keep-alive connections when scraping all the
#        targets. This may be useful when targets has no support for HTTP
#        keep-alive connection. It is possible to set disable_keepalive:
#        true individually per each 'scrape_config` section in
#        '-promscrape.config' for fine grained control. Note that disabling
#        HTTP keep-alive may increase load on both vmagent and scrape targets.
#  -promscrape.discovery.concurrency int
#        The maximum number of concurrent requests to Prometheus autodiscovery
#        API (Consul, Kubernetes, etc.) (default 100).
#  -promscrape.discovery.concurrentWaitTime duration
#        The maximum duration for waiting to perform API requests if more than
#        -promscrape.discovery.concurrency requests are simultaneously
#        performed (default 1m0s).
#  -promscrape.dnsSDCheckInterval dns_sd_configs
#        Interval for checking for changes in dns. This works only if
#        dns_sd_configs is configured in '-promscrape.config' file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dns_sd_config
#        for details (default 30s).
#  -promscrape.dockerswarmSDCheckInterval dockerswarm_sd_configs
#        Interval for checking for changes in dockerswarm. This works only if
#        do ckerswarm_sd_configs is configured in '-promscrape.config' file.
#        See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dockerswarm_sd_config
#        for details (default 30s).
#  -promscrape.dropOriginalLabels
#        Whether to drop original labels for scrape targets at /targets and
#        /api/v1/targets pages. This may be needed for reducing memory usage
#        when original labels for big number of scrape targets occupy big
#        amounts of memory. Note that this reduces debuggability for improper
#        per-target relabeling configs.
#  -promscrape.ec2SDCheckInterval ec2_sd_configs
#        Interval for checking for changes in ec2. This works only if
#        ec2_sd_configs is configured in '-promscrape.config' file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config
#        for details (default 1m0s).
#  -promscrape.eurekaSDCheckInterval eureka_sd_configs
#        Interval for checking for changes in eureka. This works only if
#        eureka_sd_configs is configured in '-promscrape.config' file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#eureka_sd_config
#        for details (default 30s).
#  -promscrape.fileSDCheckInterval duration
#        Interval for checking for changes in 'file_sd_config'. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config
#        for details (default 30s).
#  -promscrape.gceSDCheckInterval gce_sd_configs
#        Interval for checking for changes in gce. This works only if
#        gce_sd_configs is configured in '-promscrape.config' file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config
#        for details (default 1m0s).
#  -promscrape.kubernetesSDCheckInterval kubernetes_sd_configs
#        Interval for checking for changes in Kubernetes API server. This works
#        only if kubernetes_sd_configs is configured in '-promscrape.config'
#        file.
#        See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
#        for details (default 30s).
#  -promscrape.maxDroppedTargets droppedTargets
#        The maximum number of droppedTargets shown at /api/v1/targets page.
#        Increase this value if your setup drops more scrape targets during
#        relabeling and you need investigating labels for all the dropped
#        targets. Note that the increased number of tracked dropped targets
#        may result in increased memory usage (default 1000).
#  -promscrape.maxScrapeSize value
#        The maximum size of scrape response in bytes to process from
#        Prometheus targets. Bigger responses are rejected.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 16777216).
#  -promscrape.openstackSDCheckInterval openstack_sd_configs
#        Interval for checking for changes in openstack API server. This works
#        only if openstack_sd_configs is configured in '-promscrape.config'
#        file. See
#        https://prometheus.io/docs/prometheus/latest/configuration/configuration/#openstack_sd_config
#        for details (default 30s).
#  -promscrape.streamParse stream_parse: true
#        Whether to enable stream parsing for metrics obtained from scrape
#        targets. This may be useful for reducing memory usage when millions
#        of metrics are exposed per each scrape target. It is posible to set
#        stream_parse: true individually per each `scrape_config` section in
#        `-promscrape.config` for fine grained control.
#  -promscrape.suppressDuplicateScrapeTargetErrors duplicate scrape target
#        Whether to suppress duplicate scrape target errors; see
#        https://victoriametrics.github.io/vmagent.html#troubleshooting for
#        details.
#  -promscrape.suppressScrapeErrors
#        Whether to suppress scrape errors logging. The last error for each
#        target is always available at '/targets' page even if scrape errors
#        logging is suppressed.
#  -relabelConfig string
#        Optional path to a file with relabeling rules, which are applied to
#        all the ingested metrics. See
#        https://victoriametrics.github.io/#relabeling for details.
#  -retentionPeriod int
#        Retention period in months (default 1).
#  -search.cacheTimestampOffset duration
#        The maximum duration since the current time for response data, which
#        is always queried from the original raw data, without using the
#        response cache. Increase this value if you see gaps in responses due
#        to time synchronization issues between VictoriaMetrics and data
#        sources (default 5m0s).
#  -search.disableCache
#        Whether to disable response caching. This may be useful during data
#        backfilling.
#  -search.latencyOffset duration
#        The time when data points become visible in query results after the
#        colection. Too small value can result in incomplete last points for
#        query results (default 30s).
#  -search.logSlowQueryDuration duration
#        Log queries with execution time exceeding this value. Zero disables
#        slow query logging (default 5s).
#  -search.maxConcurrentRequests int
#        The maximum number of concurrent search requests. It shouldn't be
#        high, since a single request can saturate all the CPU cores. See
#        also -search.maxQueueDuration (default 4).
#  -search.maxExportDuration duration
#        The maximum duration for /api/v1/export call (default 720h0m0s).
#  -search.maxLookback duration
#        Synonim to -search.lookback-delta from Prometheus. The value is
#        dynamically detected from interval between time series datapoints if
#        not set. It can be overridden on per-query basis via max_lookback arg.
#        See also '-search.maxStalenessInterval' flag, which has the same
#        meaining due to historical reasons.
#  -search.maxPointsPerTimeseries int
#        The maximum points per a single timeseries returned from the search
#        (default 30000).
#  -search.maxQueryDuration duration
#        The maximum duration for search query execution (default 30s).
#  -search.maxQueryLen value
#        The maximum search query length in bytes.
#        Supports the following optional suffixes for values: KB, MB, GB, KiB,
#        MiB, GiB (default 16384).
#  -search.maxQueueDuration duration
#        The maximum time the request waits for execution when
#        -search.maxConcurrentRequests limit is reached (default 10s).
#  -search.maxStalenessInterval duration
#        The maximum interval for staleness calculations. By default it is
#        automatically calculated from the median interval between samples.
#        This flag could be useful for tuning Prometheus data model closer
#        to Influx-style data model. See
#        https://prometheus.io/docs/prometheus/latest/querying/basics/#staleness
#        for details. See also '-search.maxLookback' flag, which has the same
#        meanining due to historical reasons.
#  -search.maxStepForPointsAdjustment duration
#        The maximum step when /api/v1/query_range handler adjusts points with
#        timestamps closer than -search.latencyOffset to the current time. The
#        adjustment is needed because such points may contain incomplete data
#        (default 1m0s).
#  -search.maxTagKeys int
#        The maximum number of tag keys returned per search (default 100000).
#  -search.maxTagValueSuffixesPerSearch int
#        The maximum number of tag value suffixes returned from /metrics/find
#        (default 100000).
#  -search.maxTagValues int
#        The maximum number of tag values returned per search (default 100000).
#  -search.maxUniqueTimeseries int
#        The maximum number of unique time series each search can scan
#        (default 300000).
#  -search.minStalenessInterval duration
#        The mimimum interval for staleness calculations. This flag could be
#        useful for removing gaps on graphs generated from time series with
#        irregular intervals between samples. See also
#        '-search.maxStalenessInterval'.
#  -search.queryStats.lastQueriesCount /api/v1/status/top_queries
#        Query stats for /api/v1/status/top_queries is tracked on this number
#        of last queries. Zero value disables query stats tracking
#        (default 20000).
#  -search.queryStats.minQueryDuration /api/v1/status/top_queries
#        The minimum duration for queries to track in query stats at
#        /api/v1/status/top_queries. Queries with lower duration are ignored
#        in query stats.
#  -search.resetCacheAuthKey string
#        Optional authKey for resetting rollup cache via /internal/resetRollupResultCache
#        call.
#  -search.treatDotsAsIsInRegexps
#        Whether to treat dots as is in regexp label filters used in queries.
#        For example, foo{bar=~"a.b.c"} will be automatically converted to
#        foo{bar=~"a\\.b\\.c"}, i.e. all the dots in regexp filters will be
#        automatically escaped in order to match only dot char instead of
#        matching any char. Dots in ".+", ".*" and ".{n}" regexps aren't
#        escaped. Such escaping can be useful when querying Graphite data.
#  -selfScrapeInstance string
#        Value for 'instance' label, which is added to self-scraped metrics
#        (default "self").
#  -selfScrapeInterval duration
#        Interval for self-scraping own metrics at /metrics page.
#  -selfScrapeJob string
#        Value for 'job' label, which is added to self-scraped metrics
#        (default "victoria-metrics").
#  -smallMergeConcurrency int
#        The maximum number of CPU cores to use for small merges.
#        Default value is used if set to 0.
#  -snapshotAuthKey string
#        authKey, which must be passed in query string to /snapshot* pages.
#  -storageDataPath string
#        Path to storage data (default "victoria-metrics-data").
#  -tls
#        Whether to enable TLS (aka HTTPS) for incoming requests.
#        -tlsCertFile and -tlsKeyFile must be set if -tls is set.
#  -tlsCertFile string
#        Path to file with TLS certificate. Used only if -tls is set.
#        Prefer ECDSA certs instead of RSA certs, since RSA certs are slow.
#  -tlsKeyFile string
#        Path to file with TLS key. Used only if -tls is set.
