diff --git a/README.md b/README.md index 8524cbc42..c193f61d5 100644 --- a/README.md +++ b/README.md @@ -374,8 +374,8 @@ VictoriaMetrics provides an ability to explore time series cardinality at `Explo may show lower than expected number of unique label values for labels with small number of unique values. This is because of [implementation limits](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/5a6e617b5e41c9170e7c562aecd15ee0c901d489/app/vmselect/netstorage/netstorage.go#L1039-L1045). -By default cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. -By default all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series +By default, cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. +By default, all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series matching the specified [series selector](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors). Cardinality explorer is built on top of [/api/v1/status/tsdb](#tsdb-stats). @@ -852,7 +852,7 @@ VictoriaMetrics supports the following handlers from [Graphite Metrics API](http VictoriaMetrics accepts the following additional query args at `/metrics/find` and `/metrics/expand`: -* `label` - for selecting arbitrary label values. By default `label=__name__`, i.e. metric names are selected. +* `label` - for selecting arbitrary label values. By default, `label=__name__`, i.e. metric names are selected. * `delimiter` - for using different delimiters in metric name hierarchy. For example, `/metrics/find?delimiter=_&query=node_*` would return all the metric name prefixes that start with `node_`. By default `delimiter=.`. @@ -978,7 +978,7 @@ Note that background merges may never occur for data from previous months, so st In this case [forced merge](#forced-merge) may help freeing up storage space. It is recommended verifying which metrics will be deleted with the call to `http://:8428/api/v1/series?match[]=` -before actually deleting the metrics. By default this query will only scan series in the past 5 minutes, so you may need to +before actually deleting the metrics. By default, this query will only scan series in the past 5 minutes, so you may need to adjust `start` and `end` to a suitable range to achieve match hits. The `/api/v1/admin/tsdb/delete_series` handler may be protected with `authKey` if `-deleteAuthKey` command-line flag is set. @@ -1391,7 +1391,7 @@ See also [resource usage limits docs](#resource-usage-limits). ## Resource usage limits -By default VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: +By default, VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: - `-memory.allowedPercent` and `-memory.allowedBytes` limit the amounts of memory, which may be used for various internal caches at VictoriaMetrics. Note that VictoriaMetrics may use more memory, since these flags don't limit additional memory, which may be needed on a per-query basis. - `-search.maxMemoryPerQuery` limits the amounts of memory, which can be used for processing a single query. Queries, which need more memory, are rejected. Heavy queries, which select big number of time series, may exceed the per-query memory limit by a small percent. The total memory limit for concurrently executed queries can be estimated as `-search.maxMemoryPerQuery` multiplied by `-search.maxConcurrentRequests`. @@ -1511,8 +1511,8 @@ for fast block lookups, which belong to the given `TSID` and cover the given tim Newly added `parts` either successfully appear in the storage or fail to appear. The newly added `part` is atomically registered in the `parts.json` file under the corresponding partition after it is fully written and [fsynced](https://man7.org/linux/man-pages/man2/fsync.2.html) to the storage. -Thanks to this alogrithm, storage never contains partially created parts, even if hardware power off -occurrs in the middle of writing the `part` to disk - such incompletely written `parts` +Thanks to this algorithm, storage never contains partially created parts, even if hardware power off +occurs in the middle of writing the `part` to disk - such incompletely written `parts` are automatically deleted on the next VictoriaMetrics start. The same applies to merge process — `parts` are either fully merged into a new `part` or fail to merge, @@ -1539,14 +1539,14 @@ Retention is configured with the `-retentionPeriod` command-line flag, which tak Data is split in per-month partitions inside `<-storageDataPath>/data/{small,big}` folders. Data partitions outside the configured retention are deleted on the first day of the new month. -Each partition consists of one or more data parts. Data parts outside of the configured retention are eventually deleted during +Each partition consists of one or more data parts. Data parts outside the configured retention are eventually deleted during [background merge](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282). The maximum disk space usage for a given `-retentionPeriod` is going to be (`-retentionPeriod` + 1) months. For example, if `-retentionPeriod` is set to 1, data for January is deleted on March 1st. Please note, the time range covered by data part is not limited by retention period unit. Hence, data part may contain data -for multiple days and will be deleted only when fully outside of the configured retention. +for multiple days and will be deleted only when fully outside the configured retention. It is safe to extend `-retentionPeriod` on existing data. If `-retentionPeriod` is set to a lower value than before, then data outside the configured period will be eventually deleted. @@ -1590,7 +1590,7 @@ For example, the following config sets 3 days retention for time series with `te Important notes: -- The data outside of the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). +- The data outside the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). - The `-retentionFilter` doesn't remove old data from `indexdb` (aka inverted index) until the configured [-retentionPeriod](#retention). So the `indexdb` size can grow big under [high churn rate](https://docs.victoriametrics.com/FAQ.html#what-is-high-churn-rate) even for small retentions configured via `-retentionFilter`. @@ -2044,9 +2044,9 @@ Enterprise binaries can be downloaded and evaluated for free from [the releases A single-node VictoriaMetrics is capable of proxying requests to [vmalert](https://docs.victoriametrics.com/vmalert.html) when `-vmalert.proxyURL` flag is set. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through single-node VictoriaMetrics Web interface. +* for accessing vmalerts UI through single-node VictoriaMetrics Web interface. -For accessing vmalert's UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit +For accessing vmalerts UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit `http://:8428/vmalert/` link. ## Benchmarks @@ -2194,7 +2194,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -deleteAuthKey string authKey for metrics' deletion via /api/v1/admin/tsdb/delete_series and /tags/delSeries -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 + Whether to deny queries outside 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 -denyQueryTracing Whether to disable the ability to trace queries. See https://docs.victoriametrics.com/#query-tracing -downsampling.period array @@ -2203,7 +2203,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -dryRun Whether to check config files without running VictoriaMetrics. The following config files are checked: -promscrape.config, -relabelConfig and -streamAggr.config. Unknown config entries aren't allowed in -promscrape.config by default. This can be changed with -promscrape.config.strictParse=false command-line flag -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -2219,7 +2219,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -2229,7 +2229,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -2266,7 +2266,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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 InfluxDB line contains only a single field + Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field -influxTrimTimestamp duration Trim timestamps for InfluxDB 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) -inmemoryDataFlushInterval duration @@ -2274,7 +2274,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -insert.maxQueueDuration duration The maximum duration to wait in the queue when -maxConcurrentInserts concurrent insert requests are executed (default 1m0s) -internStringCacheExpireDuration duration - The expire duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) + The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) -internStringDisableCache Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen -internStringMaxLen int @@ -2337,9 +2337,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.azureSDCheckInterval duration Interval for checking for changes in Azure. This works only if azure_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs for details (default 1m0s) -promscrape.cluster.memberNum string - The number of number in the cluster of scrapers. It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") + The number of number in the cluster of scrapers. It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") -promscrape.cluster.membersCount int - The number of members in a cluster of scrapers. Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets + The number of members in a cluster of scrapers. Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets -promscrape.cluster.name string Optional name of the cluster. If multiple vmagent clusters scrape the same targets, then each cluster must have unique name in order to properly de-duplicate samples received from these clusters. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2679 -promscrape.cluster.replicationFactor int @@ -2351,7 +2351,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.config.strictParse Whether to deny unsupported fields in -promscrape.config . Set to false in order to silently skip unsupported fields (default true) -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 + 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.consul.waitTime duration Wait time used by Consul service discovery. Default value is used if not set -promscrape.consulSDCheckInterval duration @@ -2359,9 +2359,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.digitaloceanSDCheckInterval duration Interval for checking for changes in digital ocean. This works only if digitalocean_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#digitalocean_sd_configs for details (default 1m0s) -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 + 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 - 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 + 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 @@ -2412,7 +2412,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.seriesLimitPerTarget int Optional limit on the number of unique time series a single scrape target can expose. See https://docs.victoriametrics.com/vmagent.html#cardinality-limiter for more info -promscrape.streamParse - 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control + 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control -promscrape.suppressDuplicateScrapeTargetErrors Whether to suppress 'duplicate scrape target' errors; see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details -promscrape.suppressScrapeErrors @@ -2427,7 +2427,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -relabelConfig string Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal @@ -2467,7 +2467,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxGraphiteSeries int The maximum number of time series, which can be scanned during queries to Graphite Render API. See https://docs.victoriametrics.com/#graphite-render-api-usage (default 300000) -search.maxLookback duration - Synonym 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 + Synonym 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 meaning due to historical reasons -search.maxMemoryPerQuery size The maximum amounts of memory a single query may consume. Queries requiring more memory are rejected. The total memory limit for concurrently executed queries can be estimated as -search.maxMemoryPerQuery multiplied by -search.maxConcurrentRequests . See also -search.logQueryMemoryUsage Supports the following optional suffixes for size values: KB, MB, GB, TB, KiB, MiB, GiB, TiB (default 0) @@ -2491,7 +2491,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxSeriesPerAggrFunc int The maximum number of time series an aggregate MetricsQL function can generate (default 1000000) -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.setLookbackToStep' flag + 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.setLookbackToStep' flag -search.maxStatusRequestDuration duration The maximum duration for /api/v1/status/* requests (default 5m0s) -search.maxStepForPointsAdjustment duration @@ -2563,7 +2563,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -streamAggr.dedupInterval duration Input samples are de-duplicated with this interval before being aggregated. Only the last sample per each time series per each interval is aggregated if the interval is greater than zero -streamAggr.keepInput - Whether to keep input samples after the aggregation with -streamAggr.config. By default the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html + Whether to keep input samples after the aggregation with -streamAggr.config. By default, the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html -tls Whether to enable TLS for incoming HTTP requests at -httpListenAddr (aka https). -tlsCertFile and -tlsKeyFile must be set if -tls is set -tlsCertFile string diff --git a/app/vmagent/README.md b/app/vmagent/README.md index 59d2a4ae8..2882b3121 100644 --- a/app/vmagent/README.md +++ b/app/vmagent/README.md @@ -13,7 +13,7 @@ See [Quick Start](#quick-start) for details. While VictoriaMetrics provides an efficient solution to store and observe metrics, our users needed something fast and RAM friendly to scrape metrics from Prometheus-compatible exporters into VictoriaMetrics. -Also, we found that our user's infrastructure are like snowflakes in that no two are alike. Therefore we decided to add more flexibility +Also, we found that our user's infrastructure are like snowflakes in that no two are alike. Therefore, we decided to add more flexibility to `vmagent` such as the ability to [accept metrics via popular push protocols](#how-to-push-data-to-vmagent) additionally to [discovering Prometheus-compatible targets and scraping metrics from them](#how-to-collect-metrics-in-prometheus-format). @@ -56,7 +56,7 @@ and sending the data to the Prometheus-compatible remote storage: In this case `vmagent` ignores unsupported sections. See [the list of unsupported sections](#unsupported-prometheus-config-sections). * `-remoteWrite.url` with Prometheus-compatible remote storage endpoint such as VictoriaMetrics. -Example command for writing the data recieved via [supported push-based protocols](#how-to-push-data-to-vmagent) +Example command for writing the data received via [supported push-based protocols](#how-to-push-data-to-vmagent) to [single-node VictoriaMetrics](https://docs.victoriametrics.com/) located at `victoria-metrics-host:8428`: ```console @@ -151,7 +151,7 @@ to other remote storage systems, which support Prometheus `remote_write` protoco `vmagent` replicates the collected metrics among multiple remote storage instances configured via `-remoteWrite.url` args. If a single remote storage instance temporarily is out of service, then the collected data remains available in another remote storage instance. -`vmagent` buffers the collected data in files at `-remoteWrite.tmpDataPath` until the remote storage becomes available again +`vmagent` buffers the collected data in files at `-remoteWrite.tmpDataPath` until the remote storage becomes available again, and then it sends the buffered data to the remote storage in order to prevent data gaps. [VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html) already supports replication, @@ -170,7 +170,7 @@ Please see [these docs](#relabeling) for details. `vmagent` supports splitting the collected data between multiple destinations with the help of `-remoteWrite.urlRelabelConfig`, which is applied independently for each configured `-remoteWrite.url` destination. For example, it is possible to replicate or split data among long-term remote storage, short-term remote storage and a real-time analytical system [built on top of Kafka](https://github.com/Telefonica/prometheus-kafka-adapter). -Note that each destination can receive it's own subset of the collected data due to per-destination relabeling via `-remoteWrite.urlRelabelConfig`. +Note that each destination can receive its own subset of the collected data due to per-destination relabeling via `-remoteWrite.urlRelabelConfig`. ### Prometheus remote_write proxy @@ -182,7 +182,7 @@ Also, Basic Auth can be enabled for the incoming `remote_write` requests with `- ### remote_write for clustered version While `vmagent` can accept data in several supported protocols (OpenTSDB, Influx, Prometheus, Graphite) and scrape data from various targets, -writes are always performed in Promethes remote_write protocol. Therefore for the [clustered version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html), +writes are always performed in Prometheus remote_write protocol. Therefore, for the [clustered version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html), the `-remoteWrite.url` command-line flag should be configured as `://:8480/insert//prometheus/api/v1/write` according to [these docs](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#url-format). There is also support for multitenant writes. See [these docs](#multitenancy). @@ -236,7 +236,7 @@ This allows using a single `vmagent` instance in front of multiple VictoriaMetri If `-remoteWrite.multitenantURL` command-line flag is set and `vmagent` is configured to scrape Prometheus-compatible targets (e.g. if `-promscrape.config` command-line flag is set) then `vmagent` reads tenantID from `__tenant_id__` label for the discovered targets and routes all the metrics from this target to the given `__tenant_id__`, -e.g. to the url `<-remoteWrite.multitnenatURL>/insert/<__tenant_id__>/prometheus/api/v1/write`. +e.g. to the url `<-remoteWrite.multitenantURL>/insert/<__tenant_id__>/prometheus/api/v1/write`. For example, the following relabeling rule instructs sending metrics to tenantID defined in the `prometheus.io/tenant` annotation of Kubernetes pod deployment: @@ -282,14 +282,14 @@ scrape_configs: - "My-Auth: TopSecret" ``` -* `disable_compression: true` for disabling response compression on a per-job basis. By default `vmagent` requests compressed responses +* `disable_compression: true` for disabling response compression on a per-job basis. By default, `vmagent` requests compressed responses from scrape targets for saving network bandwidth. * `disable_keepalive: true` for disabling [HTTP keep-alive connections](https://en.wikipedia.org/wiki/HTTP_persistent_connection) - on a per-job basis. By default `vmagent` uses keep-alive connections to scrape targets for reducing overhead on connection re-establishing. + on a per-job basis. By default, `vmagent` uses keep-alive connections to scrape targets for reducing overhead on connection re-establishing. * `series_limit: N` for limiting the number of unique time series a single scrape target can expose. See [these docs](#cardinality-limiter). * `stream_parse: true` for scraping targets in a streaming manner. This may be useful when targets export big number of metrics. See [these docs](#stream-parsing-mode). * `scrape_align_interval: duration` for aligning scrapes to the given interval instead of using random offset - in the range `[0 ... scrape_interval]` for scraping each target. The random offset helps spreading scrapes evenly in time. + in the range `[0 ... scrape_interval]` for scraping each target. The random offset helps to spread scrapes evenly in time. * `scrape_offset: duration` for specifying the exact offset for scraping instead of using random offset in the range `[0 ... scrape_interval]`. See [scrape_configs docs](https://docs.victoriametrics.com/sd_configs.html#scrape_configs) for more details on all the supported options. @@ -338,7 +338,7 @@ There is no need in specifying top-level `scrape_configs` section in these files The list of supported service discovery types is available [here](#how-to-collect-metrics-in-prometheus-format). -Additionally `vmagent` doesn't support `refresh_interval` option at service discovery sections. +Additionally, `vmagent` doesn't support `refresh_interval` option at service discovery sections. This option is substituted with `-promscrape.*CheckInterval` command-line options, which are specific per each service discovery type. See [the full list of command-line flags for vmagent](#advanced-usage). @@ -460,7 +460,7 @@ VictoriaMetrics components support [Prometheus-compatible relabeling](https://pr with [additional enhancements](#relabeling-enhancements). The relabeling can be defined in the following places processed by `vmagent`: * At the `scrape_config -> relabel_configs` section in `-promscrape.config` file. - This relabeling is used for modifying labels in discovered targets and for dropping unneded targets. + This relabeling is used for modifying labels in discovered targets and for dropping unneeded targets. See [relabeling cookbook](https://docs.victoriametrics.com/relabeling.html) for details. This relabeling can be debugged by clicking the `debug` link at the corresponding target on the `http://vmagent:8429/targets` page @@ -547,7 +547,7 @@ The following articles contain useful information about Prometheus relabeling: * VictoriaMetrics provides the following additional relabeling actions on top of standard actions from the [Prometheus relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config): - * `replace_all` replaces all of the occurrences of `regex` in the values of `source_labels` with the `replacement` + * `replace_all` replaces all the occurrences of `regex` in the values of `source_labels` with the `replacement` and stores the results in the `target_label`. For example, the following relabeling config replaces all the occurrences of `-` char in metric names with `_` char (e.g. `foo-bar-baz` metric name is transformed into `foo_bar_baz`): @@ -559,7 +559,7 @@ The following articles contain useful information about Prometheus relabeling: replacement: "_" ``` - * `labelmap_all` replaces all of the occurrences of `regex` in all the label names with the `replacement`. + * `labelmap_all` replaces all the occurrences of `regex` in all the label names with the `replacement`. For example, the following relabeling config replaces all the occurrences of `-` char in all the label names with `_` char (e.g. `foo-bar-baz` label name is transformed into `foo_bar_baz`): @@ -679,7 +679,7 @@ e.g. it sets `scrape_series_added` metric to zero. See [these docs](#automatical ## Stream parsing mode -By default `vmagent` reads the full response body from scrape target into memory, then parses it, applies [relabeling](#relabeling) +By default, `vmagent` reads the full response body from scrape target into memory, then parses it, applies [relabeling](#relabeling) and then pushes the resulting metrics to the configured `-remoteWrite.url`. This mode works good for the majority of cases when the scrape target exposes small number of metrics (e.g. less than 10 thousand). But this mode may take big amounts of memory when the scrape target exposes big number of metrics. In this case it is recommended enabling stream parsing mode. @@ -707,8 +707,8 @@ scrape_configs: stream_parse: true static_configs: - targets: - - big-prometeus1 - - big-prometeus2 + - big-prometheus1 + - big-prometheus2 honor_labels: true metrics_path: /federate params: @@ -716,7 +716,7 @@ scrape_configs: ``` Note that `vmagent` in stream parsing mode stores up to `sample_limit` samples to the configured `-remoteStorage.url` -instead of droping all the samples read from the target, because the parsed data is sent to the remote storage +instead of dropping all the samples read from the target, because the parsed data is sent to the remote storage as soon as it is parsed in stream parsing mode. ## Scraping big number of targets @@ -736,7 +736,7 @@ spread scrape targets among a cluster of two `vmagent` instances: The `-promscrape.cluster.memberNum` can be set to a StatefulSet pod name when `vmagent` runs in Kubernetes. The pod name must end with a number in the range `0 ... promscrape.cluster.memberNum-1`. For example, `-promscrape.cluster.memberNum=vmagent-0`. -By default each scrape target is scraped only by a single `vmagent` instance in the cluster. If there is a need for replicating scrape targets among multiple `vmagent` instances, +By default, each scrape target is scraped only by a single `vmagent` instance in the cluster. If there is a need for replicating scrape targets among multiple `vmagent` instances, then `-promscrape.cluster.replicationFactor` command-line flag must be set to the desired number of replicas. For example, the following commands start a cluster of three `vmagent` instances, where each target is scraped by two `vmagent` instances: @@ -802,7 +802,7 @@ scrape_configs: ## Cardinality limiter -By default `vmagent` doesn't limit the number of time series each scrape target can expose. +By default, `vmagent` doesn't limit the number of time series each scrape target can expose. The limit can be enforced in the following places: * Via `-promscrape.seriesLimitPerTarget` command-line option. This limit is applied individually @@ -830,7 +830,7 @@ These metrics allow building the following alerting rules: See also `sample_limit` option at [scrape_config section](https://docs.victoriametrics.com/sd_configs.html#scrape_configs). -By default `vmagent` doesn't limit the number of time series written to remote storage systems specified at `-remoteWrite.url`. +By default, `vmagent` doesn't limit the number of time series written to remote storage systems specified at `-remoteWrite.url`. The limit can be enforced by setting the following command-line flags: * `-remoteWrite.maxHourlySeries` - limits the number of unique time series `vmagent` can write to remote storage systems during the last hour. @@ -873,7 +873,7 @@ If you have suggestions for improvements or have found a bug - please open an is * `http://vmagent-host:8429/api/v1/targets`. This handler returns JSON response compatible with [the corresponding page from Prometheus API](https://prometheus.io/docs/prometheus/latest/querying/api/#targets). * `http://vmagent-host:8429/ready`. This handler returns http 200 status code when `vmagent` finishes - it's initialization for all the [service_discovery configs](https://docs.victoriametrics.com/sd_configs.html). + its initialization for all the [service_discovery configs](https://docs.victoriametrics.com/sd_configs.html). It may be useful to perform `vmagent` rolling update without any scrape loss. ## Troubleshooting @@ -901,9 +901,9 @@ If you have suggestions for improvements or have found a bug - please open an is * The `/service-discovery` page could be useful for debugging relabeling process for scrape targets. This page contains original labels for targets dropped during relabeling. - By default the `-promscrape.maxDroppedTargets` targets are shown here. If your setup drops more targets during relabeling, + By default, the `-promscrape.maxDroppedTargets` targets are shown here. If your setup drops more targets during relabeling, then increase `-promscrape.maxDroppedTargets` command-line flag value to see all the dropped targets. - Note that tracking each dropped target requires up to 10Kb of RAM. Therefore big values for `-promscrape.maxDroppedTargets` + Note that tracking each dropped target requires up to 10Kb of RAM. Therefore, big values for `-promscrape.maxDroppedTargets` may result in increased memory usage if a big number of scrape targets are dropped during relabeling. * We recommend you increase `-remoteWrite.queues` if `vmagent_remotewrite_pending_data_bytes` metric exported @@ -913,7 +913,7 @@ If you have suggestions for improvements or have found a bug - please open an is * If you see gaps in the data pushed by `vmagent` to remote storage when `-remoteWrite.maxDiskUsagePerURL` is set, try increasing `-remoteWrite.queues`. Such gaps may appear because `vmagent` cannot keep up with sending the collected data to remote storage. - Therefore it starts dropping the buffered data if the on-disk buffer size exceeds `-remoteWrite.maxDiskUsagePerURL`. + Therefore, it starts dropping the buffered data if the on-disk buffer size exceeds `-remoteWrite.maxDiskUsagePerURL`. * `vmagent` drops data blocks if remote storage replies with `400 Bad Request` and `409 Conflict` HTTP responses. The number of dropped blocks can be monitored via `vmagent_remotewrite_packets_dropped_total` metric exported at [/metrics page](#monitoring). @@ -979,7 +979,7 @@ See also [troubleshooting docs](https://docs.victoriametrics.com/Troubleshooting * [Writing metrics to Kafka](#writing-metrics-to-kafka) The enterprise version of vmagent is available for evaluation at [releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases) page -in `vmutils-...-enteprise.tar.gz` archives and in [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. +in `vmutils-...-enterprise.tar.gz` archives and in [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. ### Reading metrics from Kafka @@ -1027,7 +1027,7 @@ data_format = "influx" These command-line flags are available only in [enterprise](https://docs.victoriametrics.com/enterprise.html) version of `vmagent`, which can be downloaded for evaluation from [releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases) page -(see `vmutils-...-enteprise.tar.gz` archives) and from [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. +(see `vmutils-...-enterprise.tar.gz` archives) and from [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. ``` -kafka.consumer.topic array @@ -1163,7 +1163,7 @@ It is safe sharing the collected profiles from security point of view, since the ## Advanced usage -`vmagent` can be fine-tuned with various command-line flags. Run `./vmagent -help` in order to see the full list of these flags with their desciptions and default values: +`vmagent` can be fine-tuned with various command-line flags. Run `./vmagent -help` in order to see the full list of these flags with their descriptions and default values: ``` ./vmagent -help @@ -1188,7 +1188,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -dryRun Whether to check config files without running vmagent. The following files are checked: -promscrape.config, -remoteWrite.relabelConfig, -remoteWrite.urlRelabelConfig, -remoteWrite.streamAggr.config . Unknown config entries aren't allowed in -promscrape.config by default. This can be changed by passing -promscrape.config.strictParse=false command-line flag -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -1198,7 +1198,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -1208,7 +1208,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -1245,13 +1245,13 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -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 InfluxDB line contains only a single field + Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field -influxTrimTimestamp duration Trim timestamps for InfluxDB 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 to wait in the queue when -maxConcurrentInserts concurrent insert requests are executed (default 1m0s) -internStringCacheExpireDuration duration - The expire duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) + The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) -internStringDisableCache Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen -internStringMaxLen int @@ -1332,9 +1332,9 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.azureSDCheckInterval duration Interval for checking for changes in Azure. This works only if azure_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs for details (default 1m0s) -promscrape.cluster.memberNum string - The number of number in the cluster of scrapers. It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") + The number of number in the cluster of scrapers. It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") -promscrape.cluster.membersCount int - The number of members in a cluster of scrapers. Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets + The number of members in a cluster of scrapers. Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets -promscrape.cluster.name string Optional name of the cluster. If multiple vmagent clusters scrape the same targets, then each cluster must have unique name in order to properly de-duplicate samples received from these clusters. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2679 -promscrape.cluster.replicationFactor int @@ -1346,7 +1346,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.config.strictParse Whether to deny unsupported fields in -promscrape.config . Set to false in order to silently skip unsupported fields (default true) -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 + 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.consul.waitTime duration Wait time used by Consul service discovery. Default value is used if not set -promscrape.consulSDCheckInterval duration @@ -1356,9 +1356,9 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.digitaloceanSDCheckInterval duration Interval for checking for changes in digital ocean. This works only if digitalocean_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#digitalocean_sd_configs for details (default 1m0s) -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 + 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 - 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 + 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 @@ -1409,7 +1409,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.seriesLimitPerTarget int Optional limit on the number of unique time series a single scrape target can expose. See https://docs.victoriametrics.com/vmagent.html#cardinality-limiter for more info -promscrape.streamParse - 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control + 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control -promscrape.suppressDuplicateScrapeTargetErrors Whether to suppress 'duplicate scrape target' errors; see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details -promscrape.suppressScrapeErrors @@ -1424,7 +1424,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.aws.accessKey array Optional AWS AccessKey to use for the corresponding -remoteWrite.url if -remoteWrite.aws.useSigv4 is set @@ -1516,14 +1516,14 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -remoteWrite.queues int The number of concurrent queues to each -remoteWrite.url. Set more queues if default number of queues isn't enough for sending high volume of collected data to remote storage. Default value is 2 * numberOfAvailableCPUs (default 8) -remoteWrite.rateLimit array - Optional rate limit in bytes per second for data sent to the corresponding -remoteWrite.url. By default the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data is sent after temporary unavailability of the remote storage + Optional rate limit in bytes per second for data sent to the corresponding -remoteWrite.url. By default, the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data is sent after temporary unavailability of the remote storage Supports array of values separated by comma or specified via multiple flags. -remoteWrite.relabelConfig string Optional path to file with relabeling configs, which are applied to all the metrics before sending them to -remoteWrite.url. See also -remoteWrite.urlRelabelConfig. The path can point either to local file or to http url. See https://docs.victoriametrics.com/vmagent.html#relabeling -remoteWrite.keepDanglingQueues Keep persistent queues contents at -remoteWrite.tmpDataPath in case there are no matching -remoteWrite.url. Useful when -remoteWrite.url is changed temporarily and persistent queue files will be needed later on. -remoteWrite.roundDigits array - Round metric values to this number of decimal digits after the point before writing them to remote storage. Examples: -remoteWrite.roundDigits=2 would round 1.236 to 1.24, while -remoteWrite.roundDigits=-1 would round 126.78 to 130. By default digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. This option may be used for improving data compression for the stored metrics + Round metric values to this number of decimal digits after the point before writing them to remote storage. Examples: -remoteWrite.roundDigits=2 would round 1.236 to 1.24, while -remoteWrite.roundDigits=-1 would round 126.78 to 130. By default, digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. This option may be used for improving data compression for the stored metrics Supports array of values separated by comma or specified via multiple flags. -remoteWrite.sendTimeout array Timeout for sending a single block of data to the corresponding -remoteWrite.url @@ -1540,10 +1540,10 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . Input samples are de-duplicated with this interval before being aggregated. Only the last sample per each time series per each interval is aggregated if the interval is greater than zero Supports array of values separated by comma or specified via multiple flags. -remoteWrite.streamAggr.keepInput array - Whether to keep input samples after the aggregation with -remoteWrite.streamAggr.config. By default the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. See https://docs.victoriametrics.com/stream-aggregation.html + Whether to keep input samples after the aggregation with -remoteWrite.streamAggr.config. By default, the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. See https://docs.victoriametrics.com/stream-aggregation.html Supports array of values separated by comma or specified via multiple flags. -remoteWrite.tlsCAFile array - Optional path to TLS CA file to use for verifying connections to the corresponding -remoteWrite.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to the corresponding -remoteWrite.url. By default, system CA is used Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tlsCertFile array Optional path to client-side TLS certificate file to use when connecting to the corresponding -remoteWrite.url @@ -1555,7 +1555,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . Optional path to client-side TLS certificate key to use when connecting to the corresponding -remoteWrite.url Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tlsServerName array - Optional TLS server name to use for connections to the corresponding -remoteWrite.url. By default the server name from -remoteWrite.url is used + Optional TLS server name to use for connections to the corresponding -remoteWrite.url. By default, the server name from -remoteWrite.url is used Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tmpDataPath string Path to directory where temporary data for remote write component is stored. See also -remoteWrite.maxDiskUsagePerURL (default "vmagent-remotewrite-data") diff --git a/app/vmagent/influx/request_handler.go b/app/vmagent/influx/request_handler.go index 7ff651d5b..26f508cbe 100644 --- a/app/vmagent/influx/request_handler.go +++ b/app/vmagent/influx/request_handler.go @@ -22,7 +22,7 @@ import ( var ( measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via InfluxDB line protocol") - skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if InfluxDB line contains only a single field") + skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field") skipMeasurement = flag.Bool("influxSkipMeasurement", false, "Uses '{field_name}' as a metric name while ignoring '{measurement}' and '-influxMeasurementFieldSeparator'") dbLabel = flag.String("influxDBLabel", "db", "Default label for the DB name sent over '?db={db_name}' query parameter") ) diff --git a/app/vmagent/remotewrite/client.go b/app/vmagent/remotewrite/client.go index bb5a1e67e..3a19cca8e 100644 --- a/app/vmagent/remotewrite/client.go +++ b/app/vmagent/remotewrite/client.go @@ -27,7 +27,7 @@ var ( "to the corresponding -remoteWrite.url . See https://docs.victoriametrics.com/vmagent.html#victoriametrics-remote-write-protocol") rateLimit = flagutil.NewArrayInt("remoteWrite.rateLimit", "Optional rate limit in bytes per second for data sent to the corresponding -remoteWrite.url. "+ - "By default the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data "+ + "By default, the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data "+ "is sent after temporary unavailability of the remote storage") sendTimeout = flagutil.NewArrayDuration("remoteWrite.sendTimeout", "Timeout for sending a single block of data to the corresponding -remoteWrite.url") proxyURL = flagutil.NewArrayString("remoteWrite.proxyURL", "Optional proxy URL for writing data to the corresponding -remoteWrite.url. "+ @@ -38,9 +38,9 @@ var ( "to the corresponding -remoteWrite.url") tlsKeyFile = flagutil.NewArrayString("remoteWrite.tlsKeyFile", "Optional path to client-side TLS certificate key to use when connecting to the corresponding -remoteWrite.url") tlsCAFile = flagutil.NewArrayString("remoteWrite.tlsCAFile", "Optional path to TLS CA file to use for verifying connections to the corresponding -remoteWrite.url. "+ - "By default system CA is used") + "By default, system CA is used") tlsServerName = flagutil.NewArrayString("remoteWrite.tlsServerName", "Optional TLS server name to use for connections to the corresponding -remoteWrite.url. "+ - "By default the server name from -remoteWrite.url is used") + "By default, the server name from -remoteWrite.url is used") headers = flagutil.NewArrayString("remoteWrite.headers", "Optional HTTP headers to send with each request to the corresponding -remoteWrite.url. "+ "For example, -remoteWrite.headers='My-Auth:foobar' would send 'My-Auth: foobar' HTTP header with every request to the corresponding -remoteWrite.url. "+ diff --git a/app/vmagent/remotewrite/remotewrite.go b/app/vmagent/remotewrite/remotewrite.go index 0b2828e4f..779e48f62 100644 --- a/app/vmagent/remotewrite/remotewrite.go +++ b/app/vmagent/remotewrite/remotewrite.go @@ -54,7 +54,7 @@ var ( "This option may be used for improving data compression for the stored metrics. See also -remoteWrite.roundDigits") roundDigits = flagutil.NewArrayInt("remoteWrite.roundDigits", "Round metric values to this number of decimal digits after the point before writing them to remote storage. "+ "Examples: -remoteWrite.roundDigits=2 would round 1.236 to 1.24, while -remoteWrite.roundDigits=-1 would round 126.78 to 130. "+ - "By default digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. "+ + "By default, digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. "+ "This option may be used for improving data compression for the stored metrics") sortLabels = flag.Bool("sortLabels", false, `Whether to sort labels for incoming samples before writing them to all the configured remote storage systems. `+ `This may be needed for reducing memory usage at remote storage when the order of labels in incoming samples is random. `+ @@ -69,7 +69,7 @@ var ( "See https://docs.victoriametrics.com/stream-aggregation.html . "+ "See also -remoteWrite.streamAggr.keepInput and -remoteWrite.streamAggr.dedupInterval") streamAggrKeepInput = flagutil.NewArrayBool("remoteWrite.streamAggr.keepInput", "Whether to keep input samples after the aggregation with -remoteWrite.streamAggr.config. "+ - "By default the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. "+ + "By default, the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. "+ "See https://docs.victoriametrics.com/stream-aggregation.html") streamAggrDedupInterval = flagutil.NewArrayDuration("remoteWrite.streamAggr.dedupInterval", "Input samples are de-duplicated with this interval before being aggregated. "+ "Only the last sample per each time series per each interval is aggregated if the interval is greater than zero") diff --git a/app/vmalert/README.md b/app/vmalert/README.md index aa5dd6611..75d73fefa 100644 --- a/app/vmalert/README.md +++ b/app/vmalert/README.md @@ -14,7 +14,7 @@ or [cluster version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.ht of VictoriaMetrics are capable of proxying requests to vmalert via `-vmalert.proxyURL` command-line flag. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through VictoriaMetrics Web interface. +* for accessing vmalerts UI through VictoriaMetrics Web interface. ## Features @@ -23,7 +23,7 @@ Use this feature for the following cases: support and expressions validation; * Prometheus [alerting rules definition format](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#defining-alerting-rules) support; -* Integration with [Alertmanager](https://github.com/prometheus/alertmanager) starting from [Alertmanager v0.16.0-aplha](https://github.com/prometheus/alertmanager/releases/tag/v0.16.0-alpha.0); +* Integration with [Alertmanager](https://github.com/prometheus/alertmanager) starting from [Alertmanager v0.16.0-alpha](https://github.com/prometheus/alertmanager/releases/tag/v0.16.0-alpha.0); * Keeps the alerts [state on restarts](#alerts-state-on-restarts); * Graphite datasource can be used for alerting and recording rules. See [these docs](#graphite); * Recording and Alerting rules backfilling (aka `replay`). See [these docs](#rules-backfilling); @@ -271,7 +271,7 @@ Additionally, `vmalert` provides some extra templating functions listed [here](# query at `-datasource.url` and returns the first result. - `queryEscape` - escapes the input string, so it can be safely put inside [query arg](https://en.wikipedia.org/wiki/Percent-encoding) part of URL. - `quotesEscape` - escapes the input string, so it can be safely embedded into JSON string. -- `reReplaceAll regex repl` - replaces all the occurences of the `regex` in input string with the `repl`. +- `reReplaceAll regex repl` - replaces all the occurrences of the `regex` in input string with the `repl`. - `safeHtml` - marks the input string as safe to use in HTML context without the need to html-escape it. - `sortByLabel name` - sorts the input query results by the label with the given `name`. - `stripDomain` - leaves the first part of the domain. For example, `foo.bar.baz` is converted to `foo`. @@ -483,7 +483,7 @@ Cluster mode could have multiple `vminsert` and `vmselect` components. vmalert cluster In case when you want to spread the load on these components - add balancers before them and configure -`vmalert` with balancer's addresses. Please, see more about VM's cluster architecture +`vmalert` with balancer addresses. Please, see more about VM's cluster architecture [here](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#architecture-overview). #### HA vmalert @@ -508,7 +508,7 @@ Alertmanagers. To avoid recording rules results and alerts state duplication in VictoriaMetrics server don't forget to configure [deduplication](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#deduplication). -The recommended value for `-dedup.minScrapeInterval` must be greater or equal to vmalert's `evaluation_interval`. +The recommended value for `-dedup.minScrapeInterval` must be greater or equal to vmalert `evaluation_interval`. If you observe inconsistent or "jumping" values in series produced by vmalert, try disabling `-datasource.queryTimeAlignment` command line flag. Because of alignment, two or more vmalert HA pairs will produce results with the same timestamps. But due of backfilling (data delivered to the datasource with some delay) values of such results may differ, @@ -518,7 +518,7 @@ Alertmanager will automatically deduplicate alerts with identical labels, so ens all `vmalert`s are having the same config. Don't forget to configure [cluster mode](https://prometheus.io/docs/alerting/latest/alertmanager/) -for Alertmanagers for better reliability. List all Alertmanager URLs in vmalert's `-notifier.url` +for Alertmanagers for better reliability. List all Alertmanager URLs in vmalert `-notifier.url` to ensure [high availability](https://github.com/prometheus/alertmanager#high-availability). This example uses single-node VM server for the sake of simplicity. @@ -610,7 +610,7 @@ or time series modification via [relabeling](https://docs.victoriametrics.com/vm `vmalert` web UI can be accessed from [single-node version of VictoriaMetrics](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html) and from [cluster version of VictoriaMetrics](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html). -This may be used for better integraion with Grafana unified alerting system. See the following docs for details: +This may be used for better integration with Grafana unified alerting system. See the following docs for details: * [How to query vmalert from single-node VictoriaMetrics](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#vmalert) * [How to query vmalert from VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#vmalert) @@ -762,11 +762,11 @@ Try the following recommendations to reduce the chance of hitting the data delay [time series resolution](https://docs.victoriametrics.com/keyConcepts.html#time-series-resolution). For example, if expression is `rate(my_metric[2m]) > 0` then ensure that `my_metric` resolution is at least `1m` or better `30s`. If you use VictoriaMetrics as datasource, `[duration]` can be omitted and VictoriaMetrics will adjust it automatically. -* If you know in advance, that data in datasource is delayed - try changing vmalert's `-datasource.lookback` +* If you know in advance, that data in datasource is delayed - try changing vmalerts `-datasource.lookback` command-line flag to add a time shift for evaluations. Or extend `[duration]` to tolerate the delay. For example, `max_over_time(errors_total[10m]) > 0` will be active even if there is no data in datasource for last `9m`. * If [time series resolution](https://docs.victoriametrics.com/keyConcepts.html#time-series-resolution) -in datasource is inconsistent or `>=5min` - try changing vmalert's `-datasource.queryStep` command-line flag to specify +in datasource is inconsistent or `>=5min` - try changing vmalerts `-datasource.queryStep` command-line flag to specify how far search query can lookback for the recent datapoint. The recommendation is to have the step at least two times bigger than the resolution. @@ -818,8 +818,8 @@ and vmalert will start printing additional log messages: vmalert can detect if alert's expression doesn't match any time series in runtime. This problem usually happens when alerting expression selects time series which aren't present in the datasource (i.e. wrong `job` label) or there is a typo in the series selector (i.e. `env=rpod`). Such alerting rules will be marked with special icon in -vmalert's UI and exposed via `vmalert_alerting_rules_last_evaluation_series_fetched` metric. The metric's value will -show how many time series were matched before the filtering by rule's expression. If metric's value is `-1`, then +vmalerts UI and exposed via `vmalert_alerting_rules_last_evaluation_series_fetched` metric. The metric value will +show how many time series were matched before the filtering by rule's expression. If metric value is `-1`, then this feature is not supported by the datasource (old versions of VictoriaMetrics). The following expression can be used to detect rules matching no series: ``` @@ -872,7 +872,7 @@ The shortlist of configuration flags is the following: -clusterMode If clusterMode is enabled, then vmalert automatically adds the tenant specified in config groups to -datasource.url, -remoteWrite.url and -remoteRead.url. See https://docs.victoriametrics.com/vmalert.html#multitenancy . This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise.html -configCheckInterval duration - Interval for checking for changes in '-rule' or '-notifier.config' files. By default the checking is disabled. Send SIGHUP signal in order to force config check for changes. + Interval for checking for changes in '-rule' or '-notifier.config' files. By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes. -datasource.appendTypePrefix Whether to add type prefix to -datasource.url based on the query type. Set to true if sending different query types to the vmselect URL. -datasource.basicAuth.password string @@ -906,7 +906,7 @@ The shortlist of configuration flags is the following: -datasource.queryStep duration How far a value can fallback to when evaluating queries. For example, if -datasource.queryStep=15s then param "step" with value "15s" will be added to every query. If set to 0, rule's evaluation interval will be used instead. (default 5m0s) -datasource.queryTimeAlignment - Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) + Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) -datasource.roundDigits int Adds "round_digits" GET param to datasource requests. In VM "round_digits" limits the number of digits after the decimal point in response values. -datasource.showURL @@ -932,7 +932,7 @@ The shortlist of configuration flags is the following: -dryRun Whether to check only config files without running vmalert. The rules file are validated. The -rule flag must be specified. -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -951,11 +951,11 @@ The shortlist of configuration flags is the following: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -1036,7 +1036,7 @@ The shortlist of configuration flags is the following: -notifier.suppressDuplicateTargetErrors Whether to suppress 'duplicate target' errors during discovery -notifier.tlsCAFile array - Optional path to TLS CA file to use for verifying connections to -notifier.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -notifier.url. By default, system CA is used Supports an array of values separated by comma or specified via multiple flags. -notifier.tlsCertFile array Optional path to client-side TLS certificate file to use when connecting to -notifier.url @@ -1048,7 +1048,7 @@ The shortlist of configuration flags is the following: Optional path to client-side TLS certificate key to use when connecting to -notifier.url Supports an array of values separated by comma or specified via multiple flags. -notifier.tlsServerName array - Optional TLS server name to use for connections to -notifier.url. By default the server name from -notifier.url is used + Optional TLS server name to use for connections to -notifier.url. By default, the server name from -notifier.url is used Supports an array of values separated by comma or specified via multiple flags. -notifier.url array Prometheus Alertmanager URL, e.g. http://127.0.0.1:9093. List all Alertmanager URLs if it runs in the cluster mode to ensure high availability. @@ -1071,7 +1071,7 @@ The shortlist of configuration flags is the following: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -remoteRead.basicAuth.password string Optional basic auth password for -remoteRead.url @@ -1104,7 +1104,7 @@ The shortlist of configuration flags is the following: -remoteRead.showURL Whether to show -remoteRead.url in the exported metrics. It is hidden by default, since it can contain sensitive info such as auth key -remoteRead.tlsCAFile string - Optional path to TLS CA file to use for verifying connections to -remoteRead.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -remoteRead.url. By default, system CA is used -remoteRead.tlsCertFile string Optional path to client-side TLS certificate file to use when connecting to -remoteRead.url -remoteRead.tlsInsecureSkipVerify @@ -1112,7 +1112,7 @@ The shortlist of configuration flags is the following: -remoteRead.tlsKeyFile string Optional path to client-side TLS certificate key to use when connecting to -remoteRead.url -remoteRead.tlsServerName string - Optional TLS server name to use for connections to -remoteRead.url. By default the server name from -remoteRead.url is used + Optional TLS server name to use for connections to -remoteRead.url. By default, the server name from -remoteRead.url is used -remoteRead.url vmalert Optional URL to datasource compatible with Prometheus HTTP API. It can be single node VictoriaMetrics or vmselect.Remote read is used to restore alerts state.This configuration makes sense only if vmalert was configured with `remoteWrite.url` before and has been successfully persisted its state. E.g. http://127.0.0.1:8428. See also '-remoteRead.disablePathAppend', '-remoteRead.showURL'. -remoteWrite.basicAuth.password string @@ -1134,7 +1134,7 @@ The shortlist of configuration flags is the following: -remoteWrite.headers string Optional HTTP headers to send with each request to the corresponding -remoteWrite.url. For example, -remoteWrite.headers='My-Auth:foobar' would send 'My-Auth: foobar' HTTP header with every request to the corresponding -remoteWrite.url. Multiple headers must be delimited by '^^': -remoteWrite.headers='header1:value1^^header2:value2' -remoteWrite.maxBatchSize int - Defines defines max number of timeseries to be flushed at once (default 1000) + Defines max number of timeseries to be flushed at once (default 1000) -remoteWrite.maxQueueSize int Defines the max number of pending datapoints to remote write endpoint (default 100000) -remoteWrite.oauth2.clientID string @@ -1152,7 +1152,7 @@ The shortlist of configuration flags is the following: -remoteWrite.showURL Whether to show -remoteWrite.url in the exported metrics. It is hidden by default, since it can contain sensitive info such as auth key -remoteWrite.tlsCAFile string - Optional path to TLS CA file to use for verifying connections to -remoteWrite.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -remoteWrite.url. By default, system CA is used -remoteWrite.tlsCertFile string Optional path to client-side TLS certificate file to use when connecting to -remoteWrite.url -remoteWrite.tlsInsecureSkipVerify @@ -1160,7 +1160,7 @@ The shortlist of configuration flags is the following: -remoteWrite.tlsKeyFile string Optional path to client-side TLS certificate key to use when connecting to -remoteWrite.url -remoteWrite.tlsServerName string - Optional TLS server name to use for connections to -remoteWrite.url. By default the server name from -remoteWrite.url is used + Optional TLS server name to use for connections to -remoteWrite.url. By default, the server name from -remoteWrite.url is used -remoteWrite.url string Optional URL to VictoriaMetrics or vminsert where to persist alerts state and recording rules results in form of timeseries. For example, if -remoteWrite.url=http://127.0.0.1:8428 is specified, then the alerts state will be written to http://127.0.0.1:8428/api/v1/write . See also -remoteWrite.disablePathAppend, '-remoteWrite.showURL'. -replay.disableProgressBar @@ -1170,7 +1170,7 @@ The shortlist of configuration flags is the following: -replay.ruleRetryAttempts int Defines how many retries to make before giving up on rule if request for it returns an error. (default 5) -replay.rulesDelay duration - Delay between rules evaluation within the group. Could be important if there are chained rules inside of the groupand processing need to wait for previous rule results to be persisted by remote storage before evaluating the next rule.Keep it equal or bigger than -remoteWrite.flushInterval. (default 1s) + Delay between rules evaluation within the group. Could be important if there are chained rules inside the group and processing need to wait for previous rule results to be persisted by remote storage before evaluating the next rule.Keep it equal or bigger than -remoteWrite.flushInterval. (default 1s) -replay.timeFrom string The time filter in RFC3339 format to select time series with timestamp equal or higher than provided value. E.g. '2020-01-01T20:07:00Z' -replay.timeTo string @@ -1193,7 +1193,7 @@ The shortlist of configuration flags is the following: Supports an array of values separated by comma or specified via multiple flags. -rule.configCheckInterval duration - Interval for checking for changes in '-rule' files. By default the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead + Interval for checking for changes in '-rule' files. By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead -rule.maxResolveDuration duration Limits the maximum duration for automatic alert expiration, which by default is 4 times evaluationInterval of the parent group. -rule.resendDelay duration @@ -1208,7 +1208,7 @@ The shortlist of configuration flags is the following: -rule.templates="dir/**/*.tpl". Includes all the .tpl files in "dir" subfolders recursively. Supports an array of values separated by comma or specified via multiple flags. -rule.updateEntriesLimit int - Defines the max number of rule's state updates stored in-memory. Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overriden per rule via update_entries_limit param. (default 20) + Defines the max number of rule's state updates stored in-memory. Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overridden per rule via update_entries_limit param. (default 20) -rule.validateExpressions Whether to validate rules expressions via MetricsQL engine (default true) -rule.validateTemplates diff --git a/app/vmalert/datasource/init.go b/app/vmalert/datasource/init.go index 8868361d0..d4cd3d1c1 100644 --- a/app/vmalert/datasource/init.go +++ b/app/vmalert/datasource/init.go @@ -47,7 +47,7 @@ var ( "For example, if -datasource.queryStep=15s then param \"step\" with value \"15s\" will be added to every query. "+ "If set to 0, rule's evaluation interval will be used instead.") queryTimeAlignment = flag.Bool("datasource.queryTimeAlignment", true, `Whether to align "time" parameter with evaluation interval.`+ - "Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257") + "Alignment supposed to produce deterministic results despite number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257") maxIdleConnections = flag.Int("datasource.maxIdleConnections", 100, `Defines the number of idle (keep-alive connections) to each configured datasource. Consider setting this value equal to the value: groups_total * group.concurrency. Too low a value may result in a high number of sockets in TIME_WAIT state.`) disableKeepAlive = flag.Bool("datasource.disableKeepAlive", false, `Whether to disable long-lived connections to the datasource. `+ `If true, disables HTTP keep-alives and will only use the connection to the server for a single HTTP request.`) diff --git a/app/vmalert/main.go b/app/vmalert/main.go index 19524b1e9..9758e9aca 100644 --- a/app/vmalert/main.go +++ b/app/vmalert/main.go @@ -55,10 +55,10 @@ absolute path to all .tpl files in root. `) rulesCheckInterval = flag.Duration("rule.configCheckInterval", 0, "Interval for checking for changes in '-rule' files. "+ - "By default the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead") + "By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead") configCheckInterval = flag.Duration("configCheckInterval", 0, "Interval for checking for changes in '-rule' or '-notifier.config' files. "+ - "By default the checking is disabled. Send SIGHUP signal in order to force config check for changes.") + "By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes.") httpListenAddr = flag.String("httpListenAddr", ":8880", "Address to listen for http connections. See also -httpListenAddr.useProxyProtocol") useProxyProtocol = flag.Bool("httpListenAddr.useProxyProtocol", false, "Whether to use proxy protocol for connections accepted at -httpListenAddr . "+ @@ -72,7 +72,7 @@ absolute path to all .tpl files in root. "which by default is 4 times evaluationInterval of the parent group.") resendDelay = flag.Duration("rule.resendDelay", 0, "Minimum amount of time to wait before resending an alert to notifier") ruleUpdateEntriesLimit = flag.Int("rule.updateEntriesLimit", 20, "Defines the max number of rule's state updates stored in-memory. "+ - "Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overriden per rule via update_entries_limit param.") + "Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overridden per rule via update_entries_limit param.") externalURL = flag.String("external.url", "", "External URL is used as alert's source for sent alerts to the notifier") externalAlertSource = flag.String("external.alert.source", "", `External Alert Source allows to override the Source link for alerts sent to AlertManager `+ diff --git a/app/vmalert/notifier/init.go b/app/vmalert/notifier/init.go index 4ec773fbf..8157b7c9a 100644 --- a/app/vmalert/notifier/init.go +++ b/app/vmalert/notifier/init.go @@ -31,9 +31,9 @@ var ( tlsCertFile = flagutil.NewArrayString("notifier.tlsCertFile", "Optional path to client-side TLS certificate file to use when connecting to -notifier.url") tlsKeyFile = flagutil.NewArrayString("notifier.tlsKeyFile", "Optional path to client-side TLS certificate key to use when connecting to -notifier.url") tlsCAFile = flagutil.NewArrayString("notifier.tlsCAFile", "Optional path to TLS CA file to use for verifying connections to -notifier.url. "+ - "By default system CA is used") + "By default, system CA is used") tlsServerName = flagutil.NewArrayString("notifier.tlsServerName", "Optional TLS server name to use for connections to -notifier.url. "+ - "By default the server name from -notifier.url is used") + "By default, the server name from -notifier.url is used") oauth2ClientID = flagutil.NewArrayString("notifier.oauth2.clientID", "Optional OAuth2 clientID to use for -notifier.url. "+ "If multiple args are set, then they are applied independently for the corresponding -notifier.url") diff --git a/app/vmalert/remoteread/init.go b/app/vmalert/remoteread/init.go index ae352b08b..417462b7c 100644 --- a/app/vmalert/remoteread/init.go +++ b/app/vmalert/remoteread/init.go @@ -34,9 +34,9 @@ var ( tlsCertFile = flag.String("remoteRead.tlsCertFile", "", "Optional path to client-side TLS certificate file to use when connecting to -remoteRead.url") tlsKeyFile = flag.String("remoteRead.tlsKeyFile", "", "Optional path to client-side TLS certificate key to use when connecting to -remoteRead.url") tlsCAFile = flag.String("remoteRead.tlsCAFile", "", "Optional path to TLS CA file to use for verifying connections to -remoteRead.url. "+ - "By default system CA is used") + "By default, system CA is used") tlsServerName = flag.String("remoteRead.tlsServerName", "", "Optional TLS server name to use for connections to -remoteRead.url. "+ - "By default the server name from -remoteRead.url is used") + "By default, the server name from -remoteRead.url is used") oauth2ClientID = flag.String("remoteRead.oauth2.clientID", "", "Optional OAuth2 clientID to use for -remoteRead.url.") oauth2ClientSecret = flag.String("remoteRead.oauth2.clientSecret", "", "Optional OAuth2 clientSecret to use for -remoteRead.url.") diff --git a/app/vmalert/remotewrite/init.go b/app/vmalert/remotewrite/init.go index 98030113f..6285c56ba 100644 --- a/app/vmalert/remotewrite/init.go +++ b/app/vmalert/remotewrite/init.go @@ -29,7 +29,7 @@ var ( bearerTokenFile = flag.String("remoteWrite.bearerTokenFile", "", "Optional path to bearer token file to use for -remoteWrite.url.") maxQueueSize = flag.Int("remoteWrite.maxQueueSize", 1e5, "Defines the max number of pending datapoints to remote write endpoint") - maxBatchSize = flag.Int("remoteWrite.maxBatchSize", 1e3, "Defines defines max number of timeseries to be flushed at once") + maxBatchSize = flag.Int("remoteWrite.maxBatchSize", 1e3, "Defines max number of timeseries to be flushed at once") concurrency = flag.Int("remoteWrite.concurrency", 1, "Defines number of writers for concurrent writing into remote querier") flushInterval = flag.Duration("remoteWrite.flushInterval", 5*time.Second, "Defines interval of flushes to remote write endpoint") @@ -37,9 +37,9 @@ var ( tlsCertFile = flag.String("remoteWrite.tlsCertFile", "", "Optional path to client-side TLS certificate file to use when connecting to -remoteWrite.url") tlsKeyFile = flag.String("remoteWrite.tlsKeyFile", "", "Optional path to client-side TLS certificate key to use when connecting to -remoteWrite.url") tlsCAFile = flag.String("remoteWrite.tlsCAFile", "", "Optional path to TLS CA file to use for verifying connections to -remoteWrite.url. "+ - "By default system CA is used") + "By default, system CA is used") tlsServerName = flag.String("remoteWrite.tlsServerName", "", "Optional TLS server name to use for connections to -remoteWrite.url. "+ - "By default the server name from -remoteWrite.url is used") + "By default, the server name from -remoteWrite.url is used") oauth2ClientID = flag.String("remoteWrite.oauth2.clientID", "", "Optional OAuth2 clientID to use for -remoteWrite.url.") oauth2ClientSecret = flag.String("remoteWrite.oauth2.clientSecret", "", "Optional OAuth2 clientSecret to use for -remoteWrite.url.") diff --git a/app/vmalert/replay.go b/app/vmalert/replay.go index 998d0a9c1..1f3763a24 100644 --- a/app/vmalert/replay.go +++ b/app/vmalert/replay.go @@ -22,7 +22,7 @@ var ( replayTo = flag.String("replay.timeTo", "", "The time filter in RFC3339 format to select timeseries with timestamp equal or lower than provided value. E.g. '2020-01-01T20:07:00Z'") replayRulesDelay = flag.Duration("replay.rulesDelay", time.Second, - "Delay between rules evaluation within the group. Could be important if there are chained rules inside of the group"+ + "Delay between rules evaluation within the group. Could be important if there are chained rules inside the group "+ "and processing need to wait for previous rule results to be persisted by remote storage before evaluating the next rule."+ "Keep it equal or bigger than -remoteWrite.flushInterval.") replayMaxDatapoints = flag.Int("replay.maxDatapointsPerQuery", 1e3, diff --git a/app/vmauth/README.md b/app/vmauth/README.md index 70f66d8f0..873ace577 100644 --- a/app/vmauth/README.md +++ b/app/vmauth/README.md @@ -334,7 +334,7 @@ See the docs at https://docs.victoriametrics.com/vmauth.html . -configCheckInterval duration Interval for config file re-read. Zero value disables config re-reading. By default, refreshing is disabled, send SIGHUP for config refresh. -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -344,11 +344,11 @@ See the docs at https://docs.victoriametrics.com/vmauth.html . -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 diff --git a/app/vmbackup/README.md b/app/vmbackup/README.md index bd73b0410..ca63572a7 100644 --- a/app/vmbackup/README.md +++ b/app/vmbackup/README.md @@ -82,7 +82,7 @@ The command will upload only changed data to `gs:///latest`. Where `` is the snapshot for the last day ``. -This apporach saves network bandwidth costs on hourly backups (since they are incremental) and allows recovering data from either the last hour (`latest` backup) +This approach saves network bandwidth costs on hourly backups (since they are incremental) and allows recovering data from either the last hour (`latest` backup) or from any day (`YYYYMMDD` backups). Note that hourly backup shouldn't run when creating daily backup. Do not forget to remove old backups when they are no longer needed in order to save storage costs. @@ -103,7 +103,7 @@ The backup algorithm is the following: 7. Delete the created snapshot. The algorithm splits source files into 1 GiB chunks in the backup. Each chunk is stored as a separate file in the backup. -Such splitting balances between the number of files in the backup and the amounts of data that needs to be re-transfered after temporary errors. +Such splitting balances between the number of files in the backup and the amounts of data that needs to be re-transferred after temporary errors. `vmbackup` relies on [instant snapshot](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282) properties: @@ -190,7 +190,7 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- Where to put the backup on the remote storage. Example: gs://bucket/path/to/backup, s3://bucket/path/to/backup, azblob://container/path/to/backup or fs:///path/to/local/backup/dir -dst can point to the previous backup. In this case incremental backup is performed, i.e. only changed data is uploaded -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -200,11 +200,11 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -255,7 +255,7 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) diff --git a/app/vmbackupmanager/README.md b/app/vmbackupmanager/README.md index 56af3501e..3fbde047e 100644 --- a/app/vmbackupmanager/README.md +++ b/app/vmbackupmanager/README.md @@ -48,7 +48,7 @@ Backup manager uploads only the data that has been changed or created since the This reduces the consumed network traffic and the time needed for performing the backup. See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time-series-databases-533c1a927883) for details. -*Please take into account that the first backup upload could take a significant amount of time as it needs to upload all of the data.* +*Please take into account that the first backup upload could take a significant amount of time as it needs to upload all the data.* There are two flags which could help with performance tuning: @@ -377,7 +377,7 @@ command-line flags: -dst string The root folder of Victoria Metrics backups. Example: gs://bucket/path/to/backup/dir, s3://bucket/path/to/backup/dir or fs:///path/to/local/backup/dir -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -387,11 +387,11 @@ command-line flags: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -447,16 +447,16 @@ command-line flags: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -runOnStart - Upload backups immediately after start of the service. Otherwise the backup starts on new hour + Upload backups immediately after start of the service. Otherwise, the backup starts on new hour -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) -snapshot.createURL string VictoriaMetrics create snapshot url. When this is given a snapshot will automatically be created during backup.Example: http://victoriametrics:8428/snapshot/create -snapshot.deleteURL string - VictoriaMetrics delete snapshot url. Optional. Will be generated from snapshot.createURL if not provided. All created snaphosts will be automatically deleted.Example: http://victoriametrics:8428/snapshot/delete + VictoriaMetrics delete snapshot url. Optional. Will be generated from snapshot.createURL if not provided. All created snapshots will be automatically deleted.Example: http://victoriametrics:8428/snapshot/delete -storageDataPath string Path to VictoriaMetrics data. Must match -storageDataPath from VictoriaMetrics or vmstorage (default "victoria-metrics-data") -tls diff --git a/app/vmctl/README.md b/app/vmctl/README.md index b463b8f9a..b8b892994 100644 --- a/app/vmctl/README.md +++ b/app/vmctl/README.md @@ -93,7 +93,7 @@ OpenTSDB migration works like so: - e.g. `curl -Ss "http://opentsdb:4242/api/search/lookup?m=system.load5&limit=1000000"` -Here `results` return field should not be empty. Otherwise it means that meta tables are absent and needs to be turned on previously. +Here `results` return field should not be empty. Otherwise, it means that meta tables are absent and needs to be turned on previously. 3. Download data for each series in chunks defined in the CLI switches @@ -146,7 +146,7 @@ Retention strings essentially define the two levels of aggregation for our colle First-order aggregation addresses how to aggregate any un-mentioned tags. -This is, conceptually, directly opposite to how PromQL deals with tags. In OpenTSDB, if a tag isn't explicitly mentioned, all values assocaited with that tag will be aggregated. +This is, conceptually, directly opposite to how PromQL deals with tags. In OpenTSDB, if a tag isn't explicitly mentioned, all values associated with that tag will be aggregated. It is recommended to use `sum` for the first aggregation because it is relatively quick and should not cause any changes to the incoming data (because we collect each individual series). @@ -154,9 +154,9 @@ It is recommended to use `sum` for the first aggregation because it is relativel Second-order aggregation (`1m-avg` in our example) defines any windowing that should occur before returning the data -It is recommended to match the stat collection interval so we again avoid transforming incoming data. +It is recommended to match the stat collection interval, so we again avoid transforming incoming data. -We do not allow for defining the "null value" portion of the rollup window (e.g. in the aggreagtion, `1m-avg-none`, the user cannot change `none`), as the goal of this tool is to avoid modifying incoming data. +We do not allow for defining the "null value" portion of the rollup window (e.g. in the aggregation, `1m-avg-none`, the user cannot change `none`), as the goal of this tool is to avoid modifying incoming data. #### Windows @@ -173,9 +173,9 @@ The window `1h` means that each individual query to OpenTSDB should only span 1 It is important to ensure this window somewhat matches the row size in HBase to help improve query times. -For example, if the query is hitting a rollup table with a 4 hour row size, we should set a chunk size of a multiple of 4 hours (e.g. `4h`, `8h`, etc.) to avoid requesting data across row boundaries. Landing on row boundaries allows for more consistent request times to HBase. +For example, if the query is hitting a rollup table with a 4-hour row size, we should set a chunk size of a multiple of 4 hours (e.g. `4h`, `8h`, etc.) to avoid requesting data across row boundaries. Landing on row boundaries allows for more consistent request times to HBase. -The default table created in HBase for OpenTSDB has a 1 hour row size, so if you aren't sure on a correct row size to use, `1h` is a reasonable choice. +The default table created in HBase for OpenTSDB has a 1-hour row size, so if you aren't sure on a correct row size to use, `1h` is a reasonable choice. ##### Time range @@ -197,7 +197,7 @@ Chunking the data like this means each individual query returns faster, so we ca ### Restarting OpenTSDB migrations -One important note for OpenTSDB migration: Queries/HBase scans can "get stuck" within OpenTSDB itself. This can cause instability and performance issues within an OpenTSDB cluster, so stopping the migrator to deal with it may be necessary. Because of this, we provide the timstamp we started collecting data from at thebeginning of the run. You can stop and restart the importer using this "hard timestamp" to ensure you collect data from the same time range over multiple runs. +One important note for OpenTSDB migration: Queries/HBase scans can "get stuck" within OpenTSDB itself. This can cause instability and performance issues within an OpenTSDB cluster, so stopping the migrator to deal with it may be necessary. Because of this, we provide the timestamp we started collecting data from at the beginning of the run. You can stop and restart the importer using this "hard timestamp" to ensure you collect data from the same time range over multiple runs. ## Migrating data from InfluxDB (1.x) @@ -376,7 +376,7 @@ The configuration flags should contain self-explanatory descriptions. The filtering consists of three parts: by timeseries and time. Filtering by time may be configured via flags `--prom-filter-time-start` and `--prom-filter-time-end` -in in RFC3339 format. This filter applied twice: to drop blocks out of range and to filter timeseries in blocks with +in RFC3339 format. This filter applied twice: to drop blocks out of range and to filter timeseries in blocks with overlapping time range. Example of applying time filter: @@ -403,7 +403,7 @@ since this is heavy operation and will be done during import process. Filtering by timeseries is configured with following flags: - `--prom-filter-label` - the label name, e.g. `__name__` or `instance`; -- `--prom-filter-label-value` - the regular expression to filter the label value. By default matches all `.*` +- `--prom-filter-label-value` - the regular expression to filter the label value. By default, matches all `.*` For example: @@ -659,7 +659,7 @@ requires an Authentication header like `X-Scope-OrgID`. You can define it via th ## Migrating data from Mimir -Mimir has similar implemintation as Cortex and also support of the Prometheus remote read protocol. That means +Mimir has similar implementation as Cortex and also support of the Prometheus remote read protocol. That means `vmctl` in mode `remote-read` may also be used for Mimir historical data migration. These instructions may vary based on the details of your Mimir configuration. Please read carefully and verify as you go. @@ -995,7 +995,7 @@ to number of free CPU cores. The flag `--vm-concurrency` controls the number of concurrent workers that process the input from InfluxDB query results. Please note that each import request can load up to a single vCPU core on VictoriaMetrics. So try to set it according -to allocated CPU resources of your VictoriMetrics installation. +to allocated CPU resources of your VictoriaMetrics installation. The flag `--vm-batch-size` controls max amount of samples collected before sending the import request. For example, if `--influx-chunk-size=500` and `--vm-batch-size=2000` then importer will process not more @@ -1040,7 +1040,7 @@ according to [information theory](https://en.wikipedia.org/wiki/Information_theo `vmctl` provides the following flags for improving data compression: - `--vm-round-digits` flag for rounding processed values to the given number of decimal digits after the point. - For example, `--vm-round-digits=2` would round `1.2345` to `1.23`. By default the rounding is disabled. + For example, `--vm-round-digits=2` would round `1.2345` to `1.23`. By default, the rounding is disabled. - `--vm-significant-figures` flag for limiting the number of significant figures in processed values. It takes no effect if set to 0 (by default), but set `--vm-significant-figures=5` and `102.342305` will be rounded to `102.34`. @@ -1050,7 +1050,7 @@ results such as `average`, `rate`, etc. ### Adding extra labels - `vmctl` allows to add extra labels to all imported series. It can be achived with flag `--vm-extra-label label=value`. + `vmctl` allows to add extra labels to all imported series. It can be achieved with flag `--vm-extra-label label=value`. If multiple labels needs to be added, set flag for each label, for example, `--vm-extra-label label1=value1 --vm-extra-label label2=value2`. If timeseries already have label, that must be added with `--vm-extra-label` flag, flag has priority and will override label value from timeseries. diff --git a/app/vmctl/flags.go b/app/vmctl/flags.go index 0edced6a4..772b02130 100644 --- a/app/vmctl/flags.go +++ b/app/vmctl/flags.go @@ -113,7 +113,7 @@ var ( &cli.Int64Flag{ Name: vmRateLimit, Usage: "Optional data transfer rate limit in bytes per second.\n" + - "By default the rate limit is disabled. It can be useful for limiting load on configured via '--vmAddr' destination.", + "By default, the rate limit is disabled. It can be useful for limiting load on configured via '--vmAddr' destination.", }, &cli.BoolFlag{ Name: vmDisableProgressBar, @@ -431,7 +431,7 @@ var ( &cli.Int64Flag{ Name: vmRateLimit, Usage: "Optional data transfer rate limit in bytes per second.\n" + - "By default the rate limit is disabled. It can be useful for limiting load on source or destination databases.", + "By default, the rate limit is disabled. It can be useful for limiting load on source or destination databases.", }, &cli.BoolFlag{ Name: vmInterCluster, @@ -503,7 +503,7 @@ var ( }, &cli.BoolFlag{ Name: remoteReadUseStream, - Usage: "Defines whether to use SAMPLES or STREAMED_XOR_CHUNKS mode. By default is uses SAMPLES mode. See https://prometheus.io/docs/prometheus/latest/querying/remote_read_api/#streamed-chunks", + Usage: "Defines whether to use SAMPLES or STREAMED_XOR_CHUNKS mode. By default, is uses SAMPLES mode. See https://prometheus.io/docs/prometheus/latest/querying/remote_read_api/#streamed-chunks", Value: false, }, &cli.StringFlag{ diff --git a/app/vmgateway/README.md b/app/vmgateway/README.md index 2eeae6f75..3a86c9a13 100644 --- a/app/vmgateway/README.md +++ b/app/vmgateway/README.md @@ -44,7 +44,7 @@ jwt token must be in following format: Where: * `exp` - required, expire time in unix_timestamp. If the token expires then `vmgateway` rejects the request. -* `vm_access` - required, dict with claim info, minimum form: `{"vm_access": {"tenand_id": {}}` +* `vm_access` - required, dict with claim info, minimum form: `{"vm_access": {"tenant_id": {}}` * `tenant_id` - optional, for cluster mode, routes requests to the corresponding tenant. * `extra_labels` - optional, key-value pairs for label filters added to the ingested or selected metrics. Multiple filters are added with `and` operation. If defined, `extra_label` from original request removed. * `extra_filters` - optional, [series selectors](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors) added to the select query requests. Multiple selectors are added with `or` operation. If defined, `extra_filter` from original request removed. @@ -144,7 +144,7 @@ EOF ./bin/vmselect -eula -storageNode 127.0.0.1:8401 ./bin/vminsert -eula -storageNode 127.0.0.1:8400 -# create base rate limitng config: +# create base rate limiting config: cat << EOF > limit.yaml limits: - type: queries @@ -310,7 +310,7 @@ The shortlist of configuration flags include the following: -datasource.queryStep duration How far a value can fallback to when evaluating queries. For example, if -datasource.queryStep=15s then param "step" with value "15s" will be added to every query. If set to 0, rule's evaluation interval will be used instead. (default 5m0s) -datasource.queryTimeAlignment - Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) + Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) -datasource.roundDigits int Adds "round_digits" GET param to datasource requests. In VM "round_digits" limits the number of digits after the decimal point in response values. -datasource.showURL @@ -332,7 +332,7 @@ The shortlist of configuration flags include the following: -enable.rateLimit enables rate limiter -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -342,11 +342,11 @@ The shortlist of configuration flags include the following: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -396,7 +396,7 @@ The shortlist of configuration flags include the following: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -ratelimit.config string path for configuration file. Accepts url address diff --git a/app/vminsert/common/streamaggr.go b/app/vminsert/common/streamaggr.go index d45cf86d8..af4fa4609 100644 --- a/app/vminsert/common/streamaggr.go +++ b/app/vminsert/common/streamaggr.go @@ -23,7 +23,7 @@ var ( "See https://docs.victoriametrics.com/stream-aggregation.html . "+ "See also -remoteWrite.streamAggr.keepInput and -streamAggr.dedupInterval") streamAggrKeepInput = flag.Bool("streamAggr.keepInput", false, "Whether to keep input samples after the aggregation with -streamAggr.config. "+ - "By default the input is dropped after the aggregation, so only the aggregate data is stored. "+ + "By default, the input is dropped after the aggregation, so only the aggregate data is stored. "+ "See https://docs.victoriametrics.com/stream-aggregation.html") streamAggrDedupInterval = flag.Duration("streamAggr.dedupInterval", 0, "Input samples are de-duplicated with this interval before being aggregated. "+ "Only the last sample per each time series per each interval is aggregated if the interval is greater than zero") diff --git a/app/vminsert/influx/request_handler.go b/app/vminsert/influx/request_handler.go index 34b5a5b86..572b8f71f 100644 --- a/app/vminsert/influx/request_handler.go +++ b/app/vminsert/influx/request_handler.go @@ -21,7 +21,7 @@ import ( var ( measurementFieldSeparator = flag.String("influxMeasurementFieldSeparator", "_", "Separator for '{measurement}{separator}{field_name}' metric name when inserted via InfluxDB line protocol") - skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metic name if InfluxDB line contains only a single field") + skipSingleField = flag.Bool("influxSkipSingleField", false, "Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field") skipMeasurement = flag.Bool("influxSkipMeasurement", false, "Uses '{field_name}' as a metric name while ignoring '{measurement}' and '-influxMeasurementFieldSeparator'") dbLabel = flag.String("influxDBLabel", "db", "Default label for the DB name sent over '?db={db_name}' query parameter") ) diff --git a/app/vmrestore/README.md b/app/vmrestore/README.md index 28295537f..f0079eb14 100644 --- a/app/vmrestore/README.md +++ b/app/vmrestore/README.md @@ -94,7 +94,7 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -customS3Endpoint string Custom S3 endpoint for use with S3-compatible storages (e.g. MinIO). S3 is used if not set -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -104,11 +104,11 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -157,7 +157,7 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) diff --git a/app/vmselect/prometheus/prometheus.go b/app/vmselect/prometheus/prometheus.go index a6a3f949e..9dd67ede2 100644 --- a/app/vmselect/prometheus/prometheus.go +++ b/app/vmselect/prometheus/prometheus.go @@ -35,9 +35,9 @@ var ( maxQueryLen = flagutil.NewBytes("search.maxQueryLen", 16*1024, "The maximum search query length in bytes") maxLookback = flag.Duration("search.maxLookback", 0, "Synonym 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") + "See also '-search.maxStalenessInterval' flag, which has the same meaning due to historical reasons") maxStalenessInterval = flag.Duration("search.maxStalenessInterval", 0, "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 "+ + "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.setLookbackToStep' flag") setLookbackToStep = flag.Bool("search.setLookbackToStep", false, "Whether to fix lookback interval to 'step' query arg value. "+ diff --git a/app/vmstorage/main.go b/app/vmstorage/main.go index 432b9262c..95f31e731 100644 --- a/app/vmstorage/main.go +++ b/app/vmstorage/main.go @@ -48,7 +48,7 @@ var ( logNewSeries = flag.Bool("logNewSeries", false, "Whether to log new series. This option is for debug purposes only. It can lead to performance issues "+ "when big number of new series are ingested into VictoriaMetrics") - denyQueriesOutsideRetention = flag.Bool("denyQueriesOutsideRetention", false, "Whether to deny queries outside of the configured -retentionPeriod. "+ + denyQueriesOutsideRetention = flag.Bool("denyQueriesOutsideRetention", false, "Whether to deny queries outside 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") maxHourlySeries = flag.Int("storage.maxHourlySeries", 0, "The maximum number of unique series can be added to the storage during the last hour. "+ diff --git a/docs/BestPractices.md b/docs/BestPractices.md index e911778be..d76633b95 100644 --- a/docs/BestPractices.md +++ b/docs/BestPractices.md @@ -28,7 +28,7 @@ mkfs.ext4 ... -O 64bit,huge_file,extent -T huge VictoriaMetrics should work OK with other filesystems too. -## Operation System +## Operating System VictoriaMetrics is production-ready for the following operating systems: @@ -70,7 +70,7 @@ VictoriaMetrics supports backups via [vmbackup](https://docs.victoriametrics.com There are the following channels for providing technical support for VictoriaMetrics: -* [Github issues](https://github.com/VictoriaMetrics/VictoriaMetrics/issues) +* [GitHub issues](https://github.com/VictoriaMetrics/VictoriaMetrics/issues) * [Slack channel](https://slack.victoriametrics.com/) * [Telegram channel](https://t.me/VictoriaMetrics_en) diff --git a/docs/Cluster-VictoriaMetrics.md b/docs/Cluster-VictoriaMetrics.md index 76f2be147..e07a0e652 100644 --- a/docs/Cluster-VictoriaMetrics.md +++ b/docs/Cluster-VictoriaMetrics.md @@ -100,7 +100,7 @@ The `vm_account_id` and `vm_project_id` labels are extracted after applying the set via `-relabelConfig` command-line flag, so these labels can be set at this stage. **Security considerations:** it is recommended restricting access to `multitenant` endpoints only to trusted sources, -since untrusted source may break per-tenant data by writing unwanted samples to aribtrary tenants. +since untrusted source may break per-tenant data by writing unwanted samples to arbitrary tenants. ## Binaries @@ -156,7 +156,7 @@ Run `make package`. It will build the following docker images locally: `` is auto-generated image tag, which depends on source code in [the repository](https://github.com/VictoriaMetrics/VictoriaMetrics). The `` may be manually set via `PKG_TAG=foobar make package`. -By default images are built on top of [alpine](https://hub.docker.com/_/scratch) image in order to improve debuggability. +By default, images are built on top of [alpine](https://hub.docker.com/_/scratch) image in order to improve debuggability. It is possible to build an image on top of any other base image by setting it via `` environment variable. For example, the following command builds images on top of [scratch](https://hub.docker.com/_/scratch) image: @@ -174,7 +174,7 @@ A minimal cluster must contain the following nodes: - a single `vminsert` node with `-storageNode=` - a single `vmselect` node with `-storageNode=` -[Enterprise version of VictoriaMetrics](https://docs.victoriametrics.com/enterprise.html) supports automatic discoverying and updating of `vmstorage` nodes. +[Enterprise version of VictoriaMetrics](https://docs.victoriametrics.com/enterprise.html) supports automatic discovering and updating of `vmstorage` nodes. See [these docs](#automatic-vmstorage-discovery) for details. It is recommended to run at least two nodes for each service for high availability purposes. In this case the cluster continues working when a single node is temporarily unavailable and the remaining nodes can handle the increased workload. The node may be temporarily unavailable when the underlying hardware breaks, during software upgrades, migration or other maintenance tasks. @@ -196,7 +196,7 @@ The following tools can simplify cluster setup: - [Helm charts for VictoriaMetrics](https://github.com/VictoriaMetrics/helm-charts) - [Kubernetes operator for VictoriaMetrics](https://github.com/VictoriaMetrics/operator) -It is possible manualy setting up a toy cluster on a single host. In this case every cluster component - `vminsert`, `vmselect` and `vmstorage` - must have distinct values for `-httpListenAddr` command-line flag. This flag specifies http address for accepting http requests for [monitoring](#monitoring) and [profiling](#profiling). `vmstorage` node must have distinct values for the following additional command-line flags in order to prevent resource usage clash: +It is possible manually setting up a toy cluster on a single host. In this case every cluster component - `vminsert`, `vmselect` and `vmstorage` - must have distinct values for `-httpListenAddr` command-line flag. This flag specifies http address for accepting http requests for [monitoring](#monitoring) and [profiling](#profiling). `vmstorage` node must have distinct values for the following additional command-line flags in order to prevent resource usage clash: - `-storageDataPath` - every `vmstorage` node must have a dedicated data storage. - `-vminsertAddr` - every `vmstorage` node must listen for a distinct tcp address for accepting data from `vminsert` nodes. - `-vmselectAddr` - every `vmstorage` node must listen for a distinct tcp address for accepting requests from `vmselect` nodes. @@ -272,7 +272,7 @@ By default `vminsert` and `vmselect` nodes use unencrypted connections to `vmsto The following optional command-line flags related to mTLS are supported: - `-cluster.tlsInsecureSkipVerify` can be set at `vminsert`, `vmselect` and `vmstorage` in order to disable peer certificate verification. Note that this breaks security. -- `-cluster.tlsCAFile` can be set at `vminsert`, `vmselect` and `vmstorage` for verifying peer certificates issued with custom [certificate authority](https://en.wikipedia.org/wiki/Certificate_authority). By default system-wide certificate authority is used for peer certificate verification. +- `-cluster.tlsCAFile` can be set at `vminsert`, `vmselect` and `vmstorage` for verifying peer certificates issued with custom [certificate authority](https://en.wikipedia.org/wiki/Certificate_authority). By default, system-wide certificate authority is used for peer certificate verification. - `-cluster.tlsCipherSuites` can be set to the list of supported TLS cipher suites at `vmstorage`. See [the list of supported TLS cipher suites](https://pkg.go.dev/crypto/tls#pkg-constants). When `vmselect` runs with `-clusternativeListenAddr` command-line option, then it can be configured with `-clusternative.tls*` options similar to `-cluster.tls*` for accepting `mTLS` connections from top-level `vmselect` nodes in [multi-level cluster setup](#multi-level-cluster-setup). @@ -284,7 +284,7 @@ See [these docs](https://gist.github.com/f41gh7/76ed8e5fb1ebb9737fe746bae9175ee6 ## Monitoring All the cluster components expose various metrics in Prometheus-compatible format at `/metrics` page on the TCP port set in `-httpListenAddr` command-line flag. -By default the following TCP ports are used: +By default, the following TCP ports are used: - `vminsert` - 8480 - `vmselect` - 8481 @@ -391,7 +391,7 @@ Check practical examples of VictoriaMetrics API [here](https://docs.victoriametr - URL for listing [tenants](#multitenancy) with the ingested data on the given time range: `http://:8481/admin/tenants?start=...&end=...` . The `start` and `end` query args are optional. If they are missing, then all the tenants with at least one sample stored in VictoriaMetrics are returned. -- URL for accessing [vmalert's](https://docs.victoriametrics.com/vmalert.html) UI: `http://:8481/select//prometheus/vmalert/`. +- URL for accessing [vmalerts](https://docs.victoriametrics.com/vmalert.html) UI: `http://:8481/select//prometheus/vmalert/`. This URL works only when `-vmalert.proxyURL` flag is set. See more about vmalert [here](#vmalert). - `vmstorage` nodes provide the following HTTP endpoints on `8482` port: @@ -399,7 +399,7 @@ The `start` and `end` query args are optional. If they are missing, then all the - `/snapshot/create` - create [instant snapshot](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282), which can be used for backups in background. Snapshots are created in `/snapshots` folder, where `` is the corresponding command-line flag value. - - `/snapshot/list` - list available snasphots. + - `/snapshot/list` - list available snapshots. - `/snapshot/delete?snapshot=` - delete the given snapshot. - `/snapshot/delete_all` - delete all the snapshots. @@ -448,7 +448,7 @@ It is recommended restarting the nodes in the following order: This strategy allows upgrading the cluster without downtime if the following conditions are met: - The cluster has at least a pair of nodes of each type - `vminsert`, `vmselect` and `vmstorage`, - so it can continue accept new data and serve incoming requests when a single node is temporary unavailable + so it can continue to accept new data and serve incoming requests when a single node is temporary unavailable during its restart. See [cluster availability docs](#cluster-availability) for details. - The cluster has enough compute resources (CPU, RAM, network bandwidth, disk IO) for processing the current workload when a single node of any type (`vminsert`, `vmselect` or `vmstorage`) @@ -467,14 +467,14 @@ This strategy allows upgrading the cluster without downtime if the following con The cluster is unavailable for data ingestion and querying when performing the steps above. The downtime is minimized by restarting cluster nodes in parallel at every step above. -The `minimum downtime` strategy has the following benefits comparing to `no downtime` startegy: +The `minimum downtime` strategy has the following benefits comparing to `no downtime` strategy: - It allows performing config update / version upgrade with minimum disruption when the previous config / version is incompatible with the new config / version. -- It allows perorming config update / version upgrade with minimum disruption +- It allows performing config update / version upgrade with minimum disruption when the cluster has no enough compute resources (CPU, RAM, disk IO, network bandwidth) for rolling upgrade. -- It allows minimizing the duration of config update / version ugprade for clusters with big number of nodes +- It allows minimizing the duration of config update / version upgrade for clusters with big number of nodes of for clusters with big `vmstorage` nodes, which may take long time for graceful restart. ## Cluster availability @@ -533,7 +533,7 @@ Data replication can be used for increasing storage durability. See [these docs] VictoriaMetrics uses lower amounts of CPU, RAM and storage space on production workloads compared to competing solutions (Prometheus, Thanos, Cortex, TimescaleDB, InfluxDB, QuestDB, M3DB) according to [our case studies](https://docs.victoriametrics.com/CaseStudies.html). -Each node type - `vminsert`, `vmselect` and `vmstorage` - can run on the most suitable hardware. Cluster capacity scales linearly with the available resources. The needed amounts of CPU and RAM per each node type highly depends on the workload - the number of [active time series](https://docs.victoriametrics.com/FAQ.html#what-is-an-active-time-series), [series churn rate](https://docs.victoriametrics.com/FAQ.html#what-is-high-churn-rate), query types, query qps, etc. It is recommended setting up a test VictoriaMetrics cluster for your production workload and iteratively scaling per-node resources and the number of nodes per node type until the cluster becomes stable. It is recommended setting up [monitoring for the cluster](#monitoring). It helps determining bottlenecks in cluster setup. It is also recommended following [the troubleshooting docs](https://docs.victoriametrics.com/#troubleshooting). +Each node type - `vminsert`, `vmselect` and `vmstorage` - can run on the most suitable hardware. Cluster capacity scales linearly with the available resources. The needed amounts of CPU and RAM per each node type highly depends on the workload - the number of [active time series](https://docs.victoriametrics.com/FAQ.html#what-is-an-active-time-series), [series churn rate](https://docs.victoriametrics.com/FAQ.html#what-is-high-churn-rate), query types, query qps, etc. It is recommended setting up a test VictoriaMetrics cluster for your production workload and iteratively scaling per-node resources and the number of nodes per node type until the cluster becomes stable. It is recommended setting up [monitoring for the cluster](#monitoring). It helps to determine bottlenecks in cluster setup. It is also recommended following [the troubleshooting docs](https://docs.victoriametrics.com/#troubleshooting). The needed storage space for the given retention (the retention is set via `-retentionPeriod` command-line flag at `vmstorage`) can be extrapolated from disk space usage in a test run. For example, if the storage space usage is 10GB after a day-long test run on a production workload, then it will need at least `10GB*100=1TB` of disk space for `-retentionPeriod=100d` (100-days retention period). Storage space usage can be monitored with [the official Grafana dashboard for VictoriaMetrics cluster](#monitoring). @@ -557,7 +557,7 @@ See also [resource usage limits docs](#resource-usage-limits). ## Resource usage limits -By default cluster components of VictoriaMetrics are tuned for an optimal resource usage under typical workloads. +By default, cluster components of VictoriaMetrics are tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: - `-memory.allowedPercent` and `-memory.allowedBytes` limit the amounts of memory, which may be used for various internal caches @@ -626,7 +626,7 @@ This improves cluster performance and availability. It isn't recommended spreadi across multiple availability zones, since cross-AZ network usually has lower bandwidth, higher latency and higher error rates comparing the network inside a single AZ. -If you need multi-AZ setup, then it is recommended running independed clusters in each AZ and setting up +If you need multi-AZ setup, then it is recommended running independent clusters in each AZ and setting up [vmagent](https://docs.victoriametrics.com/vmagent.html) in front of these clusters, so it could replicate incoming data into all the cluster - see [these docs](https://docs.victoriametrics.com/vmagent.html#multitenancy) for details. Then an additional `vmselect` nodes can be configured for reading the data from multiple clusters according to [these docs](#multi-level-cluster-setup). @@ -641,7 +641,7 @@ Then an additional `vmselect` nodes can be configured for reading the data from The multi-level cluster setup for `vminsert` nodes has the following shortcomings because of synchronous replication and data sharding: * Data ingestion speed is limited by the slowest link to AZ. -* `vminsert` nodes at top level re-route incoming data to the remaining AZs when some AZs are temporariliy unavailable. This results in data gaps at AZs which were temporarily unavailable. +* `vminsert` nodes at top level re-route incoming data to the remaining AZs when some AZs are temporarily unavailable. This results in data gaps at AZs which were temporarily unavailable. These issues are addressed by [vmagent](https://docs.victoriametrics.com/vmagent.html) when it runs in [multitenancy mode](https://docs.victoriametrics.com/vmagent.html#multitenancy). `vmagent` buffers data, which must be sent to a particular AZ, when this AZ is temporarily unavailable. The buffer is stored on disk. The buffered data is sent to AZ as soon as it becomes available. @@ -657,7 +657,7 @@ It is available in the [helm-charts](https://github.com/VictoriaMetrics/helm-cha ## Replication and data safety -By default VictoriaMetrics offloads replication to the underlying storage pointed by `-storageDataPath` such as [Google compute persistent disk](https://cloud.google.com/compute/docs/disks#pdspecs), which guarantees data durability. VictoriaMetrics supports application-level replication if replicated durable persistent disks cannot be used for some reason. +By default, VictoriaMetrics offloads replication to the underlying storage pointed by `-storageDataPath` such as [Google compute persistent disk](https://cloud.google.com/compute/docs/disks#pdspecs), which guarantees data durability. VictoriaMetrics supports application-level replication if replicated durable persistent disks cannot be used for some reason. The replication can be enabled by passing `-replicationFactor=N` command-line flag to `vminsert`. This instructs `vminsert` to store `N` copies for every ingested sample on `N` distinct `vmstorage` nodes. This guarantees that all the stored data remains available for querying if up to `N-1` `vmstorage` nodes are unavailable. @@ -673,7 +673,7 @@ Note that the replication increases resource usage - CPU, RAM, disk space, netwo Cluster version of VictoriaMetrics supports data deduplication in the same way as single-node version do. See [these docs](https://docs.victoriametrics.com/#deduplication) for details. The only difference is that the same `-dedup.minScrapeInterval` command-line flag value must be passed to both `vmselect` and `vmstorage` nodes because of the following aspects: -By default `vminsert` tries to route all the samples for a single time series to a single `vmstorage` node. But samples for a single time series can be spread among multiple `vmstorage` nodes under certain conditions: +By default, `vminsert` tries to route all the samples for a single time series to a single `vmstorage` node. But samples for a single time series can be spread among multiple `vmstorage` nodes under certain conditions: * when adding/removing `vmstorage` nodes. Then new samples for a part of time series will be routed to another `vmstorage` nodes; * when `vmstorage` nodes are temporarily unavailable (for instance, during their restart). Then new samples are re-routed to the remaining available `vmstorage` nodes; * when `vmstorage` node has no enough capacity for processing incoming data stream. Then `vminsert` re-routes new samples to other `vmstorage` nodes. @@ -708,7 +708,7 @@ Additionally, enterprise version of VictoriaMetrics cluster supports multiple re by specifying filters on `vm_account_id` and/or `vm_project_id` pseudo-labels in `-retentionFilter` command-line flag. If the tenant doesn't match specified `-retentionFilter` options, then the global `-retentionPeriod` is used for it. -For example, the following config sets retention to 1 day for [tenants](#multitenancy) with `accountID` starting from '42', +For example, the following config sets retention to 1 day for [tenants](#multitenancy) with `accountID` starting from `42`, then sets retention to 3 days for time series with label `env="dev"` or `env="prod"` from any tenant, while the rest of tenants will have 4 weeks retention: @@ -768,9 +768,9 @@ It is safe sharing the collected profiles from security point of view, since the vmselect is capable of proxying requests to [vmalert](https://docs.victoriametrics.com/vmalert.html) when `-vmalert.proxyURL` flag is set. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through vmselect's Web interface. +* for accessing vmalerts UI through vmselects Web interface. -For accessing vmalert's UI through vmselect configure `-vmalert.proxyURL` flag and visit +For accessing vmalerts UI through vmselect configure `-vmalert.proxyURL` flag and visit `http://:8481/select//prometheus/vmalert/` link. @@ -817,7 +817,7 @@ Below is the output for `/path/to/vminsert -help`: -cluster.tls Whether to use TLS for connections to -storageNode. See https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#mtls-protection .This flag is available only in enterprise version of VictoriaMetrics -cluster.tlsCAFile string - Path to TLS CA file to use for verifying certificates provided by -storageNode if -cluster.tls flag is set. By default system CA is used. See https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#mtls-protection .This flag is available only in enterprise version of VictoriaMetrics + Path to TLS CA file to use for verifying certificates provided by -storageNode if -cluster.tls flag is set. By default, system CA is used. See https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#mtls-protection .This flag is available only in enterprise version of VictoriaMetrics -cluster.tlsCertFile string Path to client-side TLS certificate file to use when connecting to -storageNode if -cluster.tls flag is set. See https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#mtls-protection . This flag is available only in enterprise version of VictoriaMetrics -cluster.tlsInsecureSkipVerify @@ -840,7 +840,7 @@ Below is the output for `/path/to/vminsert -help`: -dropSamplesOnOverload Whether to drop incoming samples if the destination vmstorage node is overloaded and/or unavailable. This prioritizes cluster availability over consistency, e.g. the cluster continues accepting all the ingested samples, but some of them may be dropped if vmstorage nodes are temporarily unavailable and/or overloaded -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -850,7 +850,7 @@ Below is the output for `/path/to/vminsert -help`: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -860,7 +860,7 @@ Below is the output for `/path/to/vminsert -help`: -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 diff --git a/docs/FAQ.md b/docs/FAQ.md index a3c70cfae..466982bb2 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -68,7 +68,7 @@ and send data to multiple remote storage systems, vmagent has the following addi ## What is the difference between vmagent and Prometheus agent? -Both [vmagent](https://docs.victoriametrics.com/vmagent.html) and [Prometheus agent](https://prometheus.io/blog/2021/11/16/agent/) serve the same purpose – to efficently scrape Prometheus-compatible targets at the edge. They have the following differences: +Both [vmagent](https://docs.victoriametrics.com/vmagent.html) and [Prometheus agent](https://prometheus.io/blog/2021/11/16/agent/) serve the same purpose – to efficiently scrape Prometheus-compatible targets at the edge. They have the following differences: * vmagent usually requires lower amounts of CPU, RAM and disk IO compared to the Prometheus agent. * Prometheus agent supports only pull-based data collection (e.g. it can scrape Prometheus-compatible targets), while vmagent supports both pull and push data collection – it can accept data via many popular data ingestion protocols such as InfluxDB line protocol, Graphite protocol, OpenTSDB protocol, DataDog protocol, Prometheus protocol, CSV and JSON – see [these docs](https://docs.victoriametrics.com/vmagent.html#features). diff --git a/docs/MetricsQL.md b/docs/MetricsQL.md index 0647fa7c7..9d334023f 100644 --- a/docs/MetricsQL.md +++ b/docs/MetricsQL.md @@ -82,7 +82,7 @@ The list of MetricsQL features: * The duration suffix is optional. The duration is in seconds if the suffix is missing. For example, `rate(m[300] offset 1800)` is equivalent to `rate(m[5m]) offset 30m`. * The duration can be placed anywhere in the query. For example, `sum_over_time(m[1h]) / 1h` is equivalent to `sum_over_time(m[1h]) / 3600`. -* Numeric values can have `K`, `Ki`, `M`, `Mi`, `G`, `Gi`, `T` and `Ti` suffixes. For example, `8K` is equivalent to `8000`, while `1.2Mi` is equvalent to `1.2*1024*1024`. +* Numeric values can have `K`, `Ki`, `M`, `Mi`, `G`, `Gi`, `T` and `Ti` suffixes. For example, `8K` is equivalent to `8000`, while `1.2Mi` is equivalent to `1.2*1024*1024`. * Trailing commas on all the lists are allowed - label filters, function args and with expressions. For instance, the following queries are valid: `m{foo="bar",}`, `f(a, b,)`, `WITH (x=y,) x`. This simplifies maintenance of multi-line queries. @@ -110,7 +110,7 @@ The list of MetricsQL features: ## keep_metric_names -By default metric names are dropped after applying functions, which change the meaning of the original time series. +By default, metric names are dropped after applying functions, which change the meaning of the original time series. This may result in `duplicate time series` error when the function is applied to multiple time series with different names. This error can be fixed by applying `keep_metric_names` modifier to the function. @@ -146,7 +146,7 @@ Additional details: For example, `rate(http_requests_total)` is equivalent to `rate(http_requests_total[$__interval])` in Grafana. It is also equivalent to `rate(http_requests_total[1i])`. * Every [series selector](https://docs.victoriametrics.com/keyConcepts.html#filtering) in MetricsQL must be wrapped into a rollup function. - Otherwise it is automatically wrapped into [default_rollup](#default_rollup). For example, `foo{bar="baz"}` + Otherwise, it is automatically wrapped into [default_rollup](#default_rollup). For example, `foo{bar="baz"}` is automatically converted to `default_rollup(foo{bar="baz"}[1i])` before performing the calculations. * If something other than [series selector](https://docs.victoriametrics.com/keyConcepts.html#filtering) is passed to rollup function, then the inner arg is automatically converted to a [subquery](#subqueries). @@ -160,7 +160,7 @@ The list of supported rollup functions: #### absent_over_time `absent_over_time(series_selector[d])` is a [rollup function](#rollup-functions), which returns 1 -if the given lookbehind window `d` doesn't contain raw samples. Otherwise it returns an empty result. +if the given lookbehind window `d` doesn't contain raw samples. Otherwise, it returns an empty result. This function is supported by PromQL. See also [present_over_time](#present_over_time). @@ -354,7 +354,7 @@ Metric names are stripped from the resulting rollups. Add [keep_metric_names](#k `duration_over_time(series_selector[d], max_interval)` is a [rollup function](#rollup-functions), which returns the duration in seconds when time series returned from the given [series_selector](https://docs.victoriametrics.com/keyConcepts.html#filtering) were present over the given lookbehind window `d`. It is expected that intervals between adjacent samples per each series don't exceed the `max_interval`. -Otherwise such intervals are considered as gaps and aren't counted. +Otherwise, such intervals are considered as gaps and aren't counted. Metric names are stripped from the resulting rollups. Add [keep_metric_names](#keep_metric_names) modifier in order to keep metric names. @@ -435,7 +435,7 @@ See also [deriv](#deriv). per each time series returned from the given [series_selector](https://docs.victoriametrics.com/keyConcepts.html#filtering). It is expected that the `series_selector` returns time series of [counter type](https://docs.victoriametrics.com/keyConcepts.html#counter). -Unlike Prometheus it takes into account the last sample before the given lookbehind window `d` when calculating the result. +Unlike Prometheus, it takes into account the last sample before the given lookbehind window `d` when calculating the result. See [this article](https://medium.com/@romanhavronenko/victoriametrics-promql-compliance-d4318203f51e) for details. Metric names are stripped from the resulting rollups. Add [keep_metric_names](#keep_metric_names) modifier in order to keep metric names. @@ -558,7 +558,7 @@ This function is supported by PromQL. See also [range_linear_regression](#range_ #### present_over_time `present_over_time(series_selector[d])` is a [rollup function](#rollup-functions), which returns 1 if there is at least a single raw sample -on the given lookbehind window `d`. Otherwise an empty result is returned. +on the given lookbehind window `d`. Otherwise, an empty result is returned. Metric names are stripped from the resulting rollups. Add [keep_metric_names](#keep_metric_names) modifier in order to keep metric names. @@ -676,7 +676,7 @@ Metric names are stripped from the resulting rollups. Add [keep_metric_names](#k on the given lookbehind window `d` and returns `min`, `max` and `avg` values for the calculated per-second change rates and returns them in time series with `rollup="min"`, `rollup="max"` and `rollup="avg"` additional labels. -See [this article](https://valyala.medium.com/why-irate-from-prometheus-doesnt-capture-spikes-45f9896d7832) in order to undertand better +See [this article](https://valyala.medium.com/why-irate-from-prometheus-doesnt-capture-spikes-45f9896d7832) in order to understand better when to use `rollup_rate()`. Optional 2nd argument `"min"`, `"max"` or `"avg"` can be passed to keep only one calculation result and without adding a label. @@ -872,7 +872,7 @@ This function is supported by PromQL. #### absent -`absent(q)` is a [transform function](#transform-functions), which returns 1 if `q` has no points. Otherwise returns an empty result. +`absent(q)` is a [transform function](#transform-functions), which returns 1 if `q` has no points. Otherwise, returns an empty result. This function is supported by PromQL. See also [absent_over_time](#absent_over_time). @@ -1073,7 +1073,7 @@ See [this issue for details](https://github.com/prometheus/prometheus/issues/570 When the [percentile](https://en.wikipedia.org/wiki/Percentile) is calculated over multiple histograms, then all the input histograms **must** have buckets with identical boundaries, e.g. they must have the same set of `le` or `vmrange` labels. -Otherwise the returned result may be invalid. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3231) for details. +Otherwise, the returned result may be invalid. See [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3231) for details. This function is supported by PromQL (except of the `boundLabel` arg). See also [histogram_quantiles](#histogram_quantiles), [histogram_share](#histogram_share) and [quantile](#quantile). @@ -1356,7 +1356,7 @@ For instance, `ru(node_memory_MemFree_bytes, node_memory_MemTotal_bytes)` return #### scalar -`scalar(q)` is a [transform function](#transform-functions), which returns `q` if `q` contains only a single time series. Otherwise it returns nothing. +`scalar(q)` is a [transform function](#transform-functions), which returns `q` if `q` contains only a single time series. Otherwise, it returns nothing. This function is supported by PromQL. @@ -1470,7 +1470,7 @@ For instance, `ttf(node_filesystem_avail_byte)` returns the time to storage spac The `union` function name can be skipped - the following queries are equivalent: `union(q1, q2)` and `(q1, q2)`. It is expected that each `q*` query returns time series with unique sets of labels. -Otherwise only the first time series out of series with identical set of labels is returned. +Otherwise, only the first time series out of series with identical set of labels is returned. Use [alias](#alias) and [label_set](#label_set) functions for giving unique labelsets per each `q*` query: #### vector @@ -1490,7 +1490,7 @@ This function is supported by PromQL. ### Label manipulation functions -**Label manipulation functions** perform manipulations with lables on the selected [rollup results](#rollup-functions). +**Label manipulation functions** perform manipulations with labels on the selected [rollup results](#rollup-functions). Additional details: @@ -1659,7 +1659,7 @@ See also [sort_by_label_numeric](#sort_by_label_numeric) and [sort_by_label_desc Additional details: -* By default a single group is used for aggregation. Multiple independent groups can be set up by specifying grouping labels +* By default, a single group is used for aggregation. Multiple independent groups can be set up by specifying grouping labels in `by` and `without` modifiers. For example, `count(up) by (job)` would group [rollup results](#rollup-functions) by `job` label value and calculate the [count](#count) aggregate function independently per each group, while `count(up) without (instance)` would group [rollup results](#rollup-functions) by all the labels except `instance` before calculating [count](#count) aggregate function independently per each group. diff --git a/docs/PerTenantStatistic.md b/docs/PerTenantStatistic.md index 9b279d40d..41d60ca0a 100644 --- a/docs/PerTenantStatistic.md +++ b/docs/PerTenantStatistic.md @@ -39,7 +39,7 @@ VictoriaMetrics cluster for enterprise provides various metrics and statistics u Collect the metrics by any scrape agent you like (`vmagent`, `victoriametrics`, Prometheus, etc) and put into TSDB. It is ok to use existing cluster for storing such metrics, but make sure to use a different tenant for it to avoid collisions. -Or just run a separate TSDB (VM single, Promethes, etc.) to keep the data isolated from the main cluster. +Or just run a separate TSDB (VM single, Prometheus, etc.) to keep the data isolated from the main cluster. Example of the scraping configuration for statistic is the following: diff --git a/docs/README.md b/docs/README.md index 5ce0ad32f..842bceb3b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -375,8 +375,8 @@ VictoriaMetrics provides an ability to explore time series cardinality at `Explo may show lower than expected number of unique label values for labels with small number of unique values. This is because of [implementation limits](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/5a6e617b5e41c9170e7c562aecd15ee0c901d489/app/vmselect/netstorage/netstorage.go#L1039-L1045). -By default cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. -By default all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series +By default, cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. +By default, all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series matching the specified [series selector](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors). Cardinality explorer is built on top of [/api/v1/status/tsdb](#tsdb-stats). @@ -853,7 +853,7 @@ VictoriaMetrics supports the following handlers from [Graphite Metrics API](http VictoriaMetrics accepts the following additional query args at `/metrics/find` and `/metrics/expand`: -* `label` - for selecting arbitrary label values. By default `label=__name__`, i.e. metric names are selected. +* `label` - for selecting arbitrary label values. By default, `label=__name__`, i.e. metric names are selected. * `delimiter` - for using different delimiters in metric name hierarchy. For example, `/metrics/find?delimiter=_&query=node_*` would return all the metric name prefixes that start with `node_`. By default `delimiter=.`. @@ -979,7 +979,7 @@ Note that background merges may never occur for data from previous months, so st In this case [forced merge](#forced-merge) may help freeing up storage space. It is recommended verifying which metrics will be deleted with the call to `http://:8428/api/v1/series?match[]=` -before actually deleting the metrics. By default this query will only scan series in the past 5 minutes, so you may need to +before actually deleting the metrics. By default, this query will only scan series in the past 5 minutes, so you may need to adjust `start` and `end` to a suitable range to achieve match hits. The `/api/v1/admin/tsdb/delete_series` handler may be protected with `authKey` if `-deleteAuthKey` command-line flag is set. @@ -1392,7 +1392,7 @@ See also [resource usage limits docs](#resource-usage-limits). ## Resource usage limits -By default VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: +By default, VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: - `-memory.allowedPercent` and `-memory.allowedBytes` limit the amounts of memory, which may be used for various internal caches at VictoriaMetrics. Note that VictoriaMetrics may use more memory, since these flags don't limit additional memory, which may be needed on a per-query basis. - `-search.maxMemoryPerQuery` limits the amounts of memory, which can be used for processing a single query. Queries, which need more memory, are rejected. Heavy queries, which select big number of time series, may exceed the per-query memory limit by a small percent. The total memory limit for concurrently executed queries can be estimated as `-search.maxMemoryPerQuery` multiplied by `-search.maxConcurrentRequests`. @@ -1512,8 +1512,8 @@ for fast block lookups, which belong to the given `TSID` and cover the given tim Newly added `parts` either successfully appear in the storage or fail to appear. The newly added `part` is atomically registered in the `parts.json` file under the corresponding partition after it is fully written and [fsynced](https://man7.org/linux/man-pages/man2/fsync.2.html) to the storage. -Thanks to this alogrithm, storage never contains partially created parts, even if hardware power off -occurrs in the middle of writing the `part` to disk - such incompletely written `parts` +Thanks to this algorithm, storage never contains partially created parts, even if hardware power off +occurs in the middle of writing the `part` to disk - such incompletely written `parts` are automatically deleted on the next VictoriaMetrics start. The same applies to merge process — `parts` are either fully merged into a new `part` or fail to merge, @@ -1540,14 +1540,14 @@ Retention is configured with the `-retentionPeriod` command-line flag, which tak Data is split in per-month partitions inside `<-storageDataPath>/data/{small,big}` folders. Data partitions outside the configured retention are deleted on the first day of the new month. -Each partition consists of one or more data parts. Data parts outside of the configured retention are eventually deleted during +Each partition consists of one or more data parts. Data parts outside the configured retention are eventually deleted during [background merge](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282). The maximum disk space usage for a given `-retentionPeriod` is going to be (`-retentionPeriod` + 1) months. For example, if `-retentionPeriod` is set to 1, data for January is deleted on March 1st. Please note, the time range covered by data part is not limited by retention period unit. Hence, data part may contain data -for multiple days and will be deleted only when fully outside of the configured retention. +for multiple days and will be deleted only when fully outside the configured retention. It is safe to extend `-retentionPeriod` on existing data. If `-retentionPeriod` is set to a lower value than before, then data outside the configured period will be eventually deleted. @@ -1591,7 +1591,7 @@ For example, the following config sets 3 days retention for time series with `te Important notes: -- The data outside of the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). +- The data outside the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). - The `-retentionFilter` doesn't remove old data from `indexdb` (aka inverted index) until the configured [-retentionPeriod](#retention). So the `indexdb` size can grow big under [high churn rate](https://docs.victoriametrics.com/FAQ.html#what-is-high-churn-rate) even for small retentions configured via `-retentionFilter`. @@ -2045,9 +2045,9 @@ Enterprise binaries can be downloaded and evaluated for free from [the releases A single-node VictoriaMetrics is capable of proxying requests to [vmalert](https://docs.victoriametrics.com/vmalert.html) when `-vmalert.proxyURL` flag is set. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through single-node VictoriaMetrics Web interface. +* for accessing vmalerts UI through single-node VictoriaMetrics Web interface. -For accessing vmalert's UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit +For accessing vmalerts UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit `http://:8428/vmalert/` link. ## Benchmarks @@ -2195,7 +2195,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -deleteAuthKey string authKey for metrics' deletion via /api/v1/admin/tsdb/delete_series and /tags/delSeries -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 + Whether to deny queries outside 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 -denyQueryTracing Whether to disable the ability to trace queries. See https://docs.victoriametrics.com/#query-tracing -downsampling.period array @@ -2204,7 +2204,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -dryRun Whether to check config files without running VictoriaMetrics. The following config files are checked: -promscrape.config, -relabelConfig and -streamAggr.config. Unknown config entries aren't allowed in -promscrape.config by default. This can be changed with -promscrape.config.strictParse=false command-line flag -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -2220,7 +2220,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -2230,7 +2230,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -2267,7 +2267,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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 InfluxDB line contains only a single field + Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field -influxTrimTimestamp duration Trim timestamps for InfluxDB 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) -inmemoryDataFlushInterval duration @@ -2275,7 +2275,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -insert.maxQueueDuration duration The maximum duration to wait in the queue when -maxConcurrentInserts concurrent insert requests are executed (default 1m0s) -internStringCacheExpireDuration duration - The expire duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) + The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) -internStringDisableCache Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen -internStringMaxLen int @@ -2338,9 +2338,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.azureSDCheckInterval duration Interval for checking for changes in Azure. This works only if azure_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs for details (default 1m0s) -promscrape.cluster.memberNum string - The number of number in the cluster of scrapers. It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") + The number of number in the cluster of scrapers. It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") -promscrape.cluster.membersCount int - The number of members in a cluster of scrapers. Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets + The number of members in a cluster of scrapers. Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets -promscrape.cluster.name string Optional name of the cluster. If multiple vmagent clusters scrape the same targets, then each cluster must have unique name in order to properly de-duplicate samples received from these clusters. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2679 -promscrape.cluster.replicationFactor int @@ -2352,7 +2352,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.config.strictParse Whether to deny unsupported fields in -promscrape.config . Set to false in order to silently skip unsupported fields (default true) -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 + 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.consul.waitTime duration Wait time used by Consul service discovery. Default value is used if not set -promscrape.consulSDCheckInterval duration @@ -2360,9 +2360,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.digitaloceanSDCheckInterval duration Interval for checking for changes in digital ocean. This works only if digitalocean_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#digitalocean_sd_configs for details (default 1m0s) -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 + 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 - 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 + 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 @@ -2413,7 +2413,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.seriesLimitPerTarget int Optional limit on the number of unique time series a single scrape target can expose. See https://docs.victoriametrics.com/vmagent.html#cardinality-limiter for more info -promscrape.streamParse - 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control + 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control -promscrape.suppressDuplicateScrapeTargetErrors Whether to suppress 'duplicate scrape target' errors; see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details -promscrape.suppressScrapeErrors @@ -2428,7 +2428,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -relabelConfig string Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal @@ -2468,7 +2468,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxGraphiteSeries int The maximum number of time series, which can be scanned during queries to Graphite Render API. See https://docs.victoriametrics.com/#graphite-render-api-usage (default 300000) -search.maxLookback duration - Synonym 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 + Synonym 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 meaning due to historical reasons -search.maxMemoryPerQuery size The maximum amounts of memory a single query may consume. Queries requiring more memory are rejected. The total memory limit for concurrently executed queries can be estimated as -search.maxMemoryPerQuery multiplied by -search.maxConcurrentRequests . See also -search.logQueryMemoryUsage Supports the following optional suffixes for size values: KB, MB, GB, TB, KiB, MiB, GiB, TiB (default 0) @@ -2492,7 +2492,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxSeriesPerAggrFunc int The maximum number of time series an aggregate MetricsQL function can generate (default 1000000) -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.setLookbackToStep' flag + 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.setLookbackToStep' flag -search.maxStatusRequestDuration duration The maximum duration for /api/v1/status/* requests (default 5m0s) -search.maxStepForPointsAdjustment duration @@ -2564,7 +2564,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -streamAggr.dedupInterval duration Input samples are de-duplicated with this interval before being aggregated. Only the last sample per each time series per each interval is aggregated if the interval is greater than zero -streamAggr.keepInput - Whether to keep input samples after the aggregation with -streamAggr.config. By default the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html + Whether to keep input samples after the aggregation with -streamAggr.config. By default, the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html -tls Whether to enable TLS for incoming HTTP requests at -httpListenAddr (aka https). -tlsCertFile and -tlsKeyFile must be set if -tls is set -tlsCertFile string diff --git a/docs/Release-Guide.md b/docs/Release-Guide.md index dd1c99828..6428c2652 100644 --- a/docs/Release-Guide.md +++ b/docs/Release-Guide.md @@ -12,7 +12,8 @@ aliases: # Release process guidance -## Prereqs +## Pre-reqs + 1. Make sure you have enterprise remote configured ``` git remote add enterprise @@ -44,7 +45,7 @@ git remote add enterprise * linux/386 This step can be run manually with the command `make publish` from the needed git tag. 4. Push the tags created `v1.xx.y` and `v1.xx.y-cluster` at step 2 to public GitHub repository at https://github.com/VictoriaMetrics/VictoriaMetrics . - **Important note:** do not push enteprise tags to public GitHub repository - they must be pushed only to private repository. + **Important note:** do not push enterprise tags to public GitHub repository - they must be pushed only to private repository. 5. Run `TAG=v1.xx.y make github-create-release github-upload-assets`. This command performs the following tasks: a) Create draft GitHub release with the name `TAG`. This step can be run manually with the command `TAG=v1.xx.y make github-create-release`. @@ -72,7 +73,7 @@ git remote add enterprise pre-requirements: * snapcraft binary, can be installed with commands: - for MacOS `brew install snapcraft` and [install mutipass](https://discourse.ubuntu.com/t/installing-multipass-on-macos/8329), + for MacOS `brew install snapcraft` and [install multipass](https://discourse.ubuntu.com/t/installing-multipass-on-macos/8329), for Ubuntu - `sudo snap install snapcraft --classic` * exported snapcraft login to `~/.snap/login.json` with `snapcraft export-login login.json && mkdir -p ~/.snap && mv login.json ~/.snap/` * already created release at github (it operates `git describe` version, so git tag must be annotated). @@ -86,9 +87,9 @@ git remote add enterprise * Publish message in Slack at * Post at Twitter at * Post in Reddit at -* Post in Linkedin at +* Post in LinkedIn at * Publish message in Telegram at and -* Publish message in google groups at +* Publish message in Google Groups at ## Helm Charts diff --git a/docs/Single-server-VictoriaMetrics.md b/docs/Single-server-VictoriaMetrics.md index ddd83641b..33f08fa2f 100644 --- a/docs/Single-server-VictoriaMetrics.md +++ b/docs/Single-server-VictoriaMetrics.md @@ -378,8 +378,8 @@ VictoriaMetrics provides an ability to explore time series cardinality at `Explo may show lower than expected number of unique label values for labels with small number of unique values. This is because of [implementation limits](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/5a6e617b5e41c9170e7c562aecd15ee0c901d489/app/vmselect/netstorage/netstorage.go#L1039-L1045). -By default cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. -By default all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series +By default, cardinality explorer analyzes time series for the current date. It provides the ability to select different day at the top right corner. +By default, all the time series for the selected date are analyzed. It is possible to narrow down the analysis to series matching the specified [series selector](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors). Cardinality explorer is built on top of [/api/v1/status/tsdb](#tsdb-stats). @@ -856,7 +856,7 @@ VictoriaMetrics supports the following handlers from [Graphite Metrics API](http VictoriaMetrics accepts the following additional query args at `/metrics/find` and `/metrics/expand`: -* `label` - for selecting arbitrary label values. By default `label=__name__`, i.e. metric names are selected. +* `label` - for selecting arbitrary label values. By default, `label=__name__`, i.e. metric names are selected. * `delimiter` - for using different delimiters in metric name hierarchy. For example, `/metrics/find?delimiter=_&query=node_*` would return all the metric name prefixes that start with `node_`. By default `delimiter=.`. @@ -982,7 +982,7 @@ Note that background merges may never occur for data from previous months, so st In this case [forced merge](#forced-merge) may help freeing up storage space. It is recommended verifying which metrics will be deleted with the call to `http://:8428/api/v1/series?match[]=` -before actually deleting the metrics. By default this query will only scan series in the past 5 minutes, so you may need to +before actually deleting the metrics. By default, this query will only scan series in the past 5 minutes, so you may need to adjust `start` and `end` to a suitable range to achieve match hits. The `/api/v1/admin/tsdb/delete_series` handler may be protected with `authKey` if `-deleteAuthKey` command-line flag is set. @@ -1395,7 +1395,7 @@ See also [resource usage limits docs](#resource-usage-limits). ## Resource usage limits -By default VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: +By default, VictoriaMetrics is tuned for an optimal resource usage under typical workloads. Some workloads may need fine-grained resource usage limits. In these cases the following command-line flags may be useful: - `-memory.allowedPercent` and `-memory.allowedBytes` limit the amounts of memory, which may be used for various internal caches at VictoriaMetrics. Note that VictoriaMetrics may use more memory, since these flags don't limit additional memory, which may be needed on a per-query basis. - `-search.maxMemoryPerQuery` limits the amounts of memory, which can be used for processing a single query. Queries, which need more memory, are rejected. Heavy queries, which select big number of time series, may exceed the per-query memory limit by a small percent. The total memory limit for concurrently executed queries can be estimated as `-search.maxMemoryPerQuery` multiplied by `-search.maxConcurrentRequests`. @@ -1515,8 +1515,8 @@ for fast block lookups, which belong to the given `TSID` and cover the given tim Newly added `parts` either successfully appear in the storage or fail to appear. The newly added `part` is atomically registered in the `parts.json` file under the corresponding partition after it is fully written and [fsynced](https://man7.org/linux/man-pages/man2/fsync.2.html) to the storage. -Thanks to this alogrithm, storage never contains partially created parts, even if hardware power off -occurrs in the middle of writing the `part` to disk - such incompletely written `parts` +Thanks to this algorithm, storage never contains partially created parts, even if hardware power off +occurs in the middle of writing the `part` to disk - such incompletely written `parts` are automatically deleted on the next VictoriaMetrics start. The same applies to merge process — `parts` are either fully merged into a new `part` or fail to merge, @@ -1543,14 +1543,14 @@ Retention is configured with the `-retentionPeriod` command-line flag, which tak Data is split in per-month partitions inside `<-storageDataPath>/data/{small,big}` folders. Data partitions outside the configured retention are deleted on the first day of the new month. -Each partition consists of one or more data parts. Data parts outside of the configured retention are eventually deleted during +Each partition consists of one or more data parts. Data parts outside the configured retention are eventually deleted during [background merge](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282). The maximum disk space usage for a given `-retentionPeriod` is going to be (`-retentionPeriod` + 1) months. For example, if `-retentionPeriod` is set to 1, data for January is deleted on March 1st. Please note, the time range covered by data part is not limited by retention period unit. Hence, data part may contain data -for multiple days and will be deleted only when fully outside of the configured retention. +for multiple days and will be deleted only when fully outside the configured retention. It is safe to extend `-retentionPeriod` on existing data. If `-retentionPeriod` is set to a lower value than before, then data outside the configured period will be eventually deleted. @@ -1594,7 +1594,7 @@ For example, the following config sets 3 days retention for time series with `te Important notes: -- The data outside of the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). +- The data outside the configured retention isn't deleted instantly - it is deleted eventually during [background merges](https://docs.victoriametrics.com/#storage). - The `-retentionFilter` doesn't remove old data from `indexdb` (aka inverted index) until the configured [-retentionPeriod](#retention). So the `indexdb` size can grow big under [high churn rate](https://docs.victoriametrics.com/FAQ.html#what-is-high-churn-rate) even for small retentions configured via `-retentionFilter`. @@ -2048,9 +2048,9 @@ Enterprise binaries can be downloaded and evaluated for free from [the releases A single-node VictoriaMetrics is capable of proxying requests to [vmalert](https://docs.victoriametrics.com/vmalert.html) when `-vmalert.proxyURL` flag is set. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through single-node VictoriaMetrics Web interface. +* for accessing vmalerts UI through single-node VictoriaMetrics Web interface. -For accessing vmalert's UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit +For accessing vmalerts UI through single-node VictoriaMetrics configure `-vmalert.proxyURL` flag and visit `http://:8428/vmalert/` link. ## Benchmarks @@ -2198,7 +2198,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -deleteAuthKey string authKey for metrics' deletion via /api/v1/admin/tsdb/delete_series and /tags/delSeries -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 + Whether to deny queries outside 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 -denyQueryTracing Whether to disable the ability to trace queries. See https://docs.victoriametrics.com/#query-tracing -downsampling.period array @@ -2207,7 +2207,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -dryRun Whether to check config files without running VictoriaMetrics. The following config files are checked: -promscrape.config, -relabelConfig and -streamAggr.config. Unknown config entries aren't allowed in -promscrape.config by default. This can be changed with -promscrape.config.strictParse=false command-line flag -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -2223,7 +2223,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -2233,7 +2233,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -2270,7 +2270,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -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 InfluxDB line contains only a single field + Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field -influxTrimTimestamp duration Trim timestamps for InfluxDB 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) -inmemoryDataFlushInterval duration @@ -2278,7 +2278,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -insert.maxQueueDuration duration The maximum duration to wait in the queue when -maxConcurrentInserts concurrent insert requests are executed (default 1m0s) -internStringCacheExpireDuration duration - The expire duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) + The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) -internStringDisableCache Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen -internStringMaxLen int @@ -2341,9 +2341,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.azureSDCheckInterval duration Interval for checking for changes in Azure. This works only if azure_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs for details (default 1m0s) -promscrape.cluster.memberNum string - The number of number in the cluster of scrapers. It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") + The number of number in the cluster of scrapers. It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") -promscrape.cluster.membersCount int - The number of members in a cluster of scrapers. Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets + The number of members in a cluster of scrapers. Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets -promscrape.cluster.name string Optional name of the cluster. If multiple vmagent clusters scrape the same targets, then each cluster must have unique name in order to properly de-duplicate samples received from these clusters. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2679 -promscrape.cluster.replicationFactor int @@ -2355,7 +2355,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.config.strictParse Whether to deny unsupported fields in -promscrape.config . Set to false in order to silently skip unsupported fields (default true) -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 + 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.consul.waitTime duration Wait time used by Consul service discovery. Default value is used if not set -promscrape.consulSDCheckInterval duration @@ -2363,9 +2363,9 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.digitaloceanSDCheckInterval duration Interval for checking for changes in digital ocean. This works only if digitalocean_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#digitalocean_sd_configs for details (default 1m0s) -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 + 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 - 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 + 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 @@ -2416,7 +2416,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -promscrape.seriesLimitPerTarget int Optional limit on the number of unique time series a single scrape target can expose. See https://docs.victoriametrics.com/vmagent.html#cardinality-limiter for more info -promscrape.streamParse - 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control + 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control -promscrape.suppressDuplicateScrapeTargetErrors Whether to suppress 'duplicate scrape target' errors; see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details -promscrape.suppressScrapeErrors @@ -2431,7 +2431,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -relabelConfig string Optional path to a file with relabeling rules, which are applied to all the ingested metrics. The path can point either to local file or to http url. See https://docs.victoriametrics.com/#relabeling for details. The config is reloaded on SIGHUP signal @@ -2471,7 +2471,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxGraphiteSeries int The maximum number of time series, which can be scanned during queries to Graphite Render API. See https://docs.victoriametrics.com/#graphite-render-api-usage (default 300000) -search.maxLookback duration - Synonym 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 + Synonym 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 meaning due to historical reasons -search.maxMemoryPerQuery size The maximum amounts of memory a single query may consume. Queries requiring more memory are rejected. The total memory limit for concurrently executed queries can be estimated as -search.maxMemoryPerQuery multiplied by -search.maxConcurrentRequests . See also -search.logQueryMemoryUsage Supports the following optional suffixes for size values: KB, MB, GB, TB, KiB, MiB, GiB, TiB (default 0) @@ -2495,7 +2495,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -search.maxSeriesPerAggrFunc int The maximum number of time series an aggregate MetricsQL function can generate (default 1000000) -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.setLookbackToStep' flag + 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.setLookbackToStep' flag -search.maxStatusRequestDuration duration The maximum duration for /api/v1/status/* requests (default 5m0s) -search.maxStepForPointsAdjustment duration @@ -2567,7 +2567,7 @@ Pass `-help` to VictoriaMetrics in order to see the list of supported command-li -streamAggr.dedupInterval duration Input samples are de-duplicated with this interval before being aggregated. Only the last sample per each time series per each interval is aggregated if the interval is greater than zero -streamAggr.keepInput - Whether to keep input samples after the aggregation with -streamAggr.config. By default the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html + Whether to keep input samples after the aggregation with -streamAggr.config. By default, the input is dropped after the aggregation, so only the aggregate data is stored. See https://docs.victoriametrics.com/stream-aggregation.html -tls Whether to enable TLS for incoming HTTP requests at -httpListenAddr (aka https). -tlsCertFile and -tlsKeyFile must be set if -tls is set -tlsCertFile string diff --git a/docs/Troubleshooting.md b/docs/Troubleshooting.md index ec5dce237..8bc070c06 100644 --- a/docs/Troubleshooting.md +++ b/docs/Troubleshooting.md @@ -45,7 +45,7 @@ then please follow the following steps in order to quickly find the solution: These cases are documented in [the changelog](https://docs.victoriametrics.com/CHANGELOG.html). So please read the changelog before the upgrade. -1. Inpsect command-line flags passed to VictoriaMetrics components and remove flags which unclear outcomes for your workload. +1. Inspect command-line flags passed to VictoriaMetrics components and remove flags which unclear outcomes for your workload. VictoriaMetrics components are designed to work optimally with the default command-line flag values (e.g. when these flags aren't set explicitly). It is recommended removing flags with unclear outcomes, since they may result in unexpected issues. @@ -58,14 +58,14 @@ then please follow the following steps in order to quickly find the solution: via multiple keywords and phrases specific to the issue. There are high chances that the issue and the solution is already documented somewhere. -1. Try searching for the issue at [VictoriaMetrics Github](https://github.com/VictoriaMetrics/VictoriaMetrics/issues). +1. Try searching for the issue at [VictoriaMetrics GitHub](https://github.com/VictoriaMetrics/VictoriaMetrics/issues). The signal/noise quality of search results here is much lower than in Google, but sometimes it may help finding the relevant information about the issue when Google fails to find the needed information. - If you located the relevant Github issue, but it misses some information on how to diagnose or troubleshoot it, + If you located the relevant GitHub issue, but it misses some information on how to diagnose or troubleshoot it, then please provide this information in comments to the issue. This increases chances that it will be resolved soon. 1. Try searching for information about the issue in [VictoriaMetrics source code](https://github.com/search?q=repo%3AVictoriaMetrics%2FVictoriaMetrics&type=code). - Github code search may be not very good in some cases, so it is recommended [checking out VictoriaMetrics source code](https://github.com/VictoriaMetrics/VictoriaMetrics/) + GitHub code search may be not very good in some cases, so it is recommended [checking out VictoriaMetrics source code](https://github.com/VictoriaMetrics/VictoriaMetrics/) and perform local search in the checked out code. Note that the source code for VictoriaMetrics cluster is located in [the cluster](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/cluster) branch. @@ -76,8 +76,8 @@ then please follow the following steps in order to quickly find the solution: by providing the maximum details on how to reproduce the issue. After that you can post the link to the issue to [VictoriaMetrics Slack chat](https://victoriametrics.slack.com), - so VictoriaMetrics community could help finding the solution to the issue. It is better filing the issue at VictoriaMetrics Github - before posting your question to VictoriaMetrics Slack chat, since Github issues are indexed by Google, + so VictoriaMetrics community could help finding the solution to the issue. It is better filing the issue at VictoriaMetrics GitHub + before posting your question to VictoriaMetrics Slack chat, since GitHub issues are indexed by Google, while Slack messages aren't indexed by Google. This simplifies searching for the solution to the issue for future VictoriaMetrics users. 1. Pro tip 1: if you see that [VictoriaMetrics docs](https://docs.victoriametrics.com/) contain incomplete or incorrect information, @@ -86,7 +86,7 @@ then please follow the following steps in order to quickly find the solution: All the docs published at `https://docs.victoriametrics.com` are located in the [docs](https://github.com/VictoriaMetrics/VictoriaMetrics/tree/master/docs) folder inside VictoriaMetrics repository. -1. Pro tip 2: please provide links to existing docs / Github issues / StackOverflow questions +1. Pro tip 2: please provide links to existing docs / GitHub issues / StackOverflow questions instead of copy-n-pasting the information from these sources when asking or answering questions from VictoriaMetrics community. If the linked resources have no enough information, then it is better posting the missing information in the web resource before providing links @@ -94,8 +94,8 @@ then please follow the following steps in order to quickly find the solution: for VictoriaMetrics users via Google and ChatGPT :) 1. Pro tip 3: if you are answering somebody's question about VictoriaMetrics components - at Github issues / Slack chat / StackOverflow, then the best answer is a direct link to the information - regaring the question. + at GitHub issues / Slack chat / StackOverflow, then the best answer is a direct link to the information + regarding the question. The better answer is a concise message with multiple links to the relevant information. The worst answer is a message with misleading or completely wrong information. @@ -157,7 +157,7 @@ If you see unexpected or unreliable query results from VictoriaMetrics, then try 4. If you use cluster version of VictoriaMetrics, then it may return partial responses by default when some of `vmstorage` nodes are temporarily unavailable - see [cluster availability docs](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#cluster-availability) - for details. If you want prioritizing query consistency over cluster availability, + for details. If you want to prioritize query consistency over cluster availability, then you can pass `-search.denyPartialResponse` command-line flag to all the `vmselect` nodes. In this case VictoriaMetrics returns an error during querying if at least a single `vmstorage` node is unavailable. Another option is to pass `deny_partial_response=1` query arg to `/api/v1/query` and `/api/v1/query_range`. @@ -272,7 +272,7 @@ There are the following most commons reasons for slow data ingestion in Victoria is resource shortage at `vmstorage` nodes. In this case you need to increase amounts of available resources (CPU, RAM, disk IO) at `vmstorage` nodes or to add more `vmstorage` nodes to the cluster. -5. Noisy neighbor. Make sure VictoriaMetrics components run in an envirnoments without other resource-hungry apps. +5. Noisy neighbor. Make sure VictoriaMetrics components run in an environments without other resource-hungry apps. Such apps may steal RAM, CPU, disk IO and network bandwidth, which is needed for VictoriaMetrics components. Issues like this are very hard to catch via [official Grafana dashboard for cluster version of VictoriaMetrics](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#monitoring) and proper diagnosis would require checking resource usage on the instances where VictoriaMetrics runs. @@ -402,7 +402,7 @@ for details. Having proper [monitoring](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#monitoring) would help identify and prevent most of the issues listed above. -[Grafana dasbhoards](https://grafana.com/orgs/victoriametrics/dashboards) contain panels reflecting the +[Grafana dashboards](https://grafana.com/orgs/victoriametrics/dashboards) contain panels reflecting the health state, resource usage and other specific metrics for VictoriaMetrics components. Alerting rules for [single-node](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/deployment/docker/alerts.yml) diff --git a/docs/enterprise.md b/docs/enterprise.md index c44415210..6008ed5f6 100644 --- a/docs/enterprise.md +++ b/docs/enterprise.md @@ -18,7 +18,7 @@ and [enterprise edition](https://victoriametrics.com/products/enterprise/). VictoriaMetrics community components are open source and are free to use - see [the source code](https://github.com/VictoriaMetrics/VictoriaMetrics/) and [the license](https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/LICENSE). -The use of VictoriaMetrics enteprise components is permitted in the following cases: +The use of VictoriaMetrics enterprise components is permitted in the following cases: - Evaluation use in non-production setups. Just download and run enterprise binaries or packages of VictoriaMetrics components from usual places - [releases page](https://github.com/VictoriaMetrics/VictoriaMetrics/releases) and [docker hub](https://hub.docker.com/u/victoriametrics). diff --git a/docs/guides/getting-started-with-vm-operator.md b/docs/guides/getting-started-with-vm-operator.md index b5926b2da..2d859fa74 100644 --- a/docs/guides/getting-started-with-vm-operator.md +++ b/docs/guides/getting-started-with-vm-operator.md @@ -209,7 +209,7 @@ The expected output is: vmagent-example-vmagent-7996844b5f-b5rzs 2/2 Running 0 9s ``` -> There are two containers for VMagent: the first one is a VMagent and the second one is a sidecard with a secret. VMagent use a secret with configuration wich is mounted to the special sidecar. It observes the changes with configuration and send a signal to reload configuration for the VMagent. +> There are two containers for VMagent: the first one is a VMagent and the second one is a sidecar with a secret. VMagent use a secret with configuration which is mounted to the special sidecar. It observes the changes with configuration and send a signal to reload configuration for the VMagent. Run the following command to make `VMAgent`'s port accessible from the local machine: diff --git a/docs/guides/grafana-vmgateway-openid-configuration.md b/docs/guides/grafana-vmgateway-openid-configuration.md index 5e505b779..7cdd29bfc 100644 --- a/docs/guides/grafana-vmgateway-openid-configuration.md +++ b/docs/guides/grafana-vmgateway-openid-configuration.md @@ -93,9 +93,9 @@ name = keycloak client_id = {CLIENT_ID_FROM_IDENTITY_PROVIDER} client_secret = {SECRET_FROM_IDENTITY_PROVIDER} scopes = openid profile email -auth_url = http://localhost:3001/realms/{KEYCLOACK_REALM}/protocol/openid-connect/auth -token_url = http://localhost:3001/realms/{KEYCLOACK_REALM}/protocol/openid-connect/token -api_url = http://localhost:3001/realms/{KEYCLOACK_REALM}/protocol/openid-connect/userinfo +auth_url = http://localhost:3001/realms/{KEYCLOAK_REALM}/protocol/openid-connect/auth +token_url = http://localhost:3001/realms/{KEYCLOAK_REALM}/protocol/openid-connect/token +api_url = http://localhost:3001/realms/{KEYCLOAK_REALM}/protocol/openid-connect/userinfo ``` After restarting Grafana with the new config you should be able to log in using your identity provider. diff --git a/docs/guides/guide-delete-or-replace-metrics.md b/docs/guides/guide-delete-or-replace-metrics.md index 544c42dc9..9d04ab73e 100644 --- a/docs/guides/guide-delete-or-replace-metrics.md +++ b/docs/guides/guide-delete-or-replace-metrics.md @@ -108,7 +108,7 @@ After the merge is complete, the data will be permanently deleted from the disk. By default, VictoriaMetrics doesn't provide a mechanism for replacing or updating data. As a workaround, take the following actions: - [export time series to a file](https://docs.victoriametrics.com/url-examples.html#apiv1export); -- change the values of time serie in the file and save it; +- change the values of time series in the file and save it; - [delete time series from a database](https://docs.victoriametrics.com/url-examples.html#apiv1admintsdbdelete_series); - [import saved file to VictoriaMetrics](https://docs.victoriametrics.com/url-examples.html#apiv1import). diff --git a/docs/guides/guide-vmcluster-multiple-retention-setup.md b/docs/guides/guide-vmcluster-multiple-retention-setup.md index 841453a57..53dec9f54 100644 --- a/docs/guides/guide-vmcluster-multiple-retention-setup.md +++ b/docs/guides/guide-vmcluster-multiple-retention-setup.md @@ -29,7 +29,7 @@ A multi-retention setup can be implemented by dividing a [victoriametrics cluste Example: Setup should handle 3 different retention groups 3months, 1year and 3 years. -Solution contains 3 groups of vmstorages + vminserst and one group of vmselects. Routing is done by [vmagent](https://docs.victoriametrics.com/vmagent.html) and [relabeling configuration](https://docs.victoriametrics.com/vmagent.html#relabeling). The [-retentionPeriod](https://docs.victoriametrics.com/#retention) sets how long to keep the metrics. +Solution contains 3 groups of vmstorages + vminserts and one group of vmselects. Routing is done by [vmagent](https://docs.victoriametrics.com/vmagent.html) and [relabeling configuration](https://docs.victoriametrics.com/vmagent.html#relabeling). The [-retentionPeriod](https://docs.victoriametrics.com/#retention) sets how long to keep the metrics. The diagram below shows a proposed solution diff --git a/docs/guides/k8s-ha-monitoring-via-vm-cluster.md b/docs/guides/k8s-ha-monitoring-via-vm-cluster.md index aac293af8..167939841 100644 --- a/docs/guides/k8s-ha-monitoring-via-vm-cluster.md +++ b/docs/guides/k8s-ha-monitoring-via-vm-cluster.md @@ -66,7 +66,7 @@ EOF * The `Helm install vmcluster vm/victoria-metrics-cluster` command installs [VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html) to the default [namespace](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/). -* `dedup.minScrapeInterval: 1ms` configures [de-deplication](https://docs.victoriametrics.com/#deduplication) for the cluster that de-duplicates data points in the same time series if they fall within the same discrete 1s bucket. The earliest data point will be kept. In the case of equal timestamps, an arbitrary data point will be kept. +* `dedup.minScrapeInterval: 1ms` configures [de-duplication](https://docs.victoriametrics.com/#deduplication) for the cluster that de-duplicates data points in the same time series if they fall within the same discrete 1s bucket. The earliest data point will be kept. In the case of equal timestamps, an arbitrary data point will be kept. * `replicationFactor: 2` Replication factor for the ingested data, i.e. how many copies should be made among distinct `-storageNode` instances. If the replication factor is greater than one, the deduplication must be enabled on the remote storage side. * `podAnnotations: prometheus.io/scrape: "true"` enables the scraping of metrics from the vmselect, vminsert and vmstorage pods. * `podAnnotations:prometheus.io/port: "some_port" ` enables the scraping of metrics from the vmselect, vminsert and vmstorage pods from corresponding ports. @@ -263,7 +263,7 @@ The expected output is: vmagent-victoria-metrics-agent-57ddbdc55d-h4ljb 1/1 Running 0 13s ``` -## 4. Verifying HA of VictoraMetrics Cluster +## 4. Verifying HA of VictoriaMetrics Cluster Run the following command to check that VictoriaMetrics services are up and running:
@@ -304,7 +304,7 @@ The expected output: vmcluster-victoria-metrics-cluster-vmselect ClusterIP 10.88.2.69 8481/TCP 1m ``` -Run the following command to make `vmselect`'s port accessable from the local machine: +Run the following command to make `vmselect`'s port accessible from the local machine:
diff --git a/docs/guides/k8s-monitoring-via-vm-cluster.md b/docs/guides/k8s-monitoring-via-vm-cluster.md index b8370b927..9179ef4a4 100644 --- a/docs/guides/k8s-monitoring-via-vm-cluster.md +++ b/docs/guides/k8s-monitoring-via-vm-cluster.md @@ -549,7 +549,7 @@ The VictoriaMetrics dashboard is also available to use: VictoriaMetrics cluster dashboard

-vmagent has it’s own dashboard: +vmagent has its own dashboard:

vmagent dashboard

diff --git a/docs/guides/migrate-from-influx.md b/docs/guides/migrate-from-influx.md index 2deaa9aef..21a52e982 100644 --- a/docs/guides/migrate-from-influx.md +++ b/docs/guides/migrate-from-influx.md @@ -34,12 +34,12 @@ VictoriaMetrics is something [new to explore](https://docs.victoriametrics.com/k with similarities and differences: * both solutions are **schemaless**, which means there is no need to define metrics or their tags in advance; -* multi-dimensional data support is implemented +* multidimensional data support is implemented via [tags](https://docs.influxdata.com/influxdb/v2.2/reference/key-concepts/data-elements/#tags) in InfluxDB and via [labels](https://docs.victoriametrics.com/keyConcepts.html#structure-of-a-metric) in VictoriaMetrics. However, labels in VictoriaMetrics are always `strings`, while InfluxDB supports multiple data types; * timestamps are stored with nanosecond resolution in InfluxDB, while in VictoriaMetrics it is **milliseconds**; -* in VictoriaMetrics metric's value is always `float64`, while InfluxDB supports multiple data types. +* in VictoriaMetrics metric value is always `float64`, while InfluxDB supports multiple data types. * there are no [measurements](https://docs.influxdata.com/influxdb/v2.2/reference/key-concepts/data-elements/#measurement) or [fields](https://docs.influxdata.com/influxdb/v2.2/reference/key-concepts/data-elements/#field-key) in @@ -211,7 +211,7 @@ filling the gaps in the graph. This behavior is described in more detail [here](https://docs.victoriametrics.com/keyConcepts.html#range-query). In InfluxDB, we can achieve a similar behavior by adding `fill(previous)` to the query. -VictoriaMetrics fills the gaps on the graph assuming time series are always continious and not discrete. +VictoriaMetrics fills the gaps on the graph assuming time series are always continuous and not discrete. To limit the interval on which VictoriaMetrics will try to fill the gaps, set `-search.setLookbackToStep` command-line flag. This limits the gap filling to a single `step` interval passed to [/api/v1/query_range](https://docs.victoriametrics.com/keyConcepts.html#range-query). diff --git a/docs/guides/understand-your-setup-size.md b/docs/guides/understand-your-setup-size.md index e3e67c530..ead8a08a4 100644 --- a/docs/guides/understand-your-setup-size.md +++ b/docs/guides/understand-your-setup-size.md @@ -112,7 +112,7 @@ You can significantly reduce the amount of disk usage by specifying [Downsamplin Every deployment (Single-Node or Cluster) contains the expected load in Ingestion Rate and Active Time Series. We assume that the Churn Rate is no more than 30%. You may need to choose a more extensive deployment if you have a higher Churn Rate. -** Example** +#### Example Deployment type: **s.medium ~100k samples/s Ingestion Rate, ~2.5M of Active Time Series** diff --git a/docs/keyConcepts.md b/docs/keyConcepts.md index ae4f124fe..99b687d27 100644 --- a/docs/keyConcepts.md +++ b/docs/keyConcepts.md @@ -46,7 +46,7 @@ the `request` was served. Label-value pairs are always of a `string` type. Victo which means there is no need to define metric names or their labels in advance. User is free to add or change ingested metrics anytime. -Actually, the metric's name is also a label with a special name `__name__`. So the following two series are identical: +Actually, the metric name is also a label with a special name `__name__`. So the following two series are identical: ``` requests_total{path="/", code="200"} @@ -134,7 +134,7 @@ was rapidly changing from 1:38 pm to 1:39 pm, then there were no changes until 1 Counter is used for measuring the number of events, like the number of requests, errors, logs, messages, etc. The most common [MetricsQL](#metricsql) functions used with counters are: -* [rate](https://docs.victoriametrics.com/MetricsQL.html#rate) - calculates the average per-second speed of metric's change. +* [rate](https://docs.victoriametrics.com/MetricsQL.html#rate) - calculates the average per-second speed of metric change. For example, `rate(requests_total)` shows how many requests are served per second on average; * [increase](https://docs.victoriametrics.com/MetricsQL.html#increase) - calculates the growth of a metric on the given time period specified in square brackets. @@ -170,7 +170,7 @@ and [rollup functions](https://docs.victoriametrics.com/MetricsQL.html#rollup-fu #### Histogram -Historgram is a set of [counter](#counter) metrics with different `vmrange` or `le` labels. +Histogram is a set of [counter](#counter) metrics with different `vmrange` or `le` labels. The `vmrange` or `le` labels define measurement boundaries of a particular bucket. When the observed measurement hits a particular bucket, then the corresponding counter is incremented. @@ -338,7 +338,7 @@ This limit can be changed via `-maxLabelsPerTimeseries` command-line flag if nec Every label value can contain an arbitrary string value. The good practice is to use short and meaningful label values to describe the attribute of the metric, not to tell the story about it. For example, label-value pair `environment="prod"` is ok, but `log_message="long log message with a lot of details..."` is not ok. By default, -VcitoriaMetrics limits label's value size with 16kB. This limit can be changed via `-maxLabelValueLen` command-line flag. +VictoriaMetrics limits label's value size with 16kB. This limit can be changed via `-maxLabelValueLen` command-line flag. It is very important to keep under control the number of unique label values, since every unique label value leads to a new [time series](#time-series). Try to avoid using volatile label values such as session ID or query ID in order to @@ -851,7 +851,7 @@ per each monitored `node_exporter` instance, which exposes the `node_network_rec rate(node_network_receive_bytes_total) ``` -By default VictoriaMetrics calculates the `rate` over [raw samples](#raw-samples) on the lookbehind window specified in the `step` param +By default, VictoriaMetrics calculates the `rate` over [raw samples](#raw-samples) on the lookbehind window specified in the `step` param passed either to [instant query](#instant-query) or to [range query](#range-query). The interval on which `rate` needs to be calculated can be specified explicitly as [duration](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) in square brackets: diff --git a/docs/managed-victoriametrics/how-to-monitor-k8s.md b/docs/managed-victoriametrics/how-to-monitor-k8s.md index 0254e1333..82a255d08 100644 --- a/docs/managed-victoriametrics/how-to-monitor-k8s.md +++ b/docs/managed-victoriametrics/how-to-monitor-k8s.md @@ -13,7 +13,7 @@ aliases: Monitoring kubernetes cluster is necessary to build SLO/SLI, to analyze performance and cost-efficiency of your workloads. -To enable enable kubernetes cluster monitoring, we will be collecting metrics about cluster performance and utilization from kubernetes components like `kube-api-server`, `kube-controller-manager`, `kube-scheduler`, `kube-state-metrics`, `etcd`, `core-dns`, `kubelet` and `kube-proxy`. We will also install some recording rules, alert rules and dashboards to provide visibility of cluster performance, as well as alerting for cluster metrics. +To enable kubernetes cluster monitoring, we will be collecting metrics about cluster performance and utilization from kubernetes components like `kube-api-server`, `kube-controller-manager`, `kube-scheduler`, `kube-state-metrics`, `etcd`, `core-dns`, `kubelet` and `kube-proxy`. We will also install some recording rules, alert rules and dashboards to provide visibility of cluster performance, as well as alerting for cluster metrics. For node resource utilization we will be collecting metrics from `node-exporter`. We will also install dashboard and alerts for node related metrics For workloads monitoring in kubernetes cluster we will have [VictoriaMetrics Operator](https://docs.victoriametrics.com/operator/VictoriaMetrics-Operator.html). It enables us to define scrape jobs using kubernetes CRDs [VMServiceScrape](https://docs.victoriametrics.com/operator/design.html#vmservicescrape), [VMPodScrape](https://docs.victoriametrics.com/operator/design.html#vmpodscrape). To add alerts or recording rules for workloads we can use [VMRule](https://docs.victoriametrics.com/operator/design.html#vmrule) CRD @@ -22,7 +22,7 @@ For workloads monitoring in kubernetes cluster we will have [VictoriaMetrics Ope In this guide we will be using [victoria-metrics-k8s-stack](https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-k8s-stack) helm chart -This chart will install `VMOperator`, `VMAgent`, `NodeExporter`, `kube-state-metrics`, `grafana` and some service scrape configurations to start monitoring kuberentes cluster components +This chart will install `VMOperator`, `VMAgent`, `NodeExporter`, `kube-state-metrics`, `grafana` and some service scrape configurations to start monitoring kubernetes cluster components ## Prerequisites - Active Managed VictoriaMetrics instance. You can learn how to signup for Managed VictoriaMetrics [here](https://docs.victoriametrics.com/managed-victoriametrics/quickstart.html#how-to-register). @@ -135,4 +135,4 @@ Connect to grafana and create your datasource - You should be able to see data that was sent to your dbaas using VMAgent dashboard [http://localhost:3000/d/G7Z9GzMGz/victoriametrics-vmagent/](http://localhost:3000/d/G7Z9GzMGz/victoriametrics-vmagent/) -- You also will be able to see bunch of kuberentes dashboards in your grafana +- You also will be able to see bunch of kubernetes dashboards in your grafana diff --git a/docs/managed-victoriametrics/quickstart.md b/docs/managed-victoriametrics/quickstart.md index 7c72c411a..363756c15 100644 --- a/docs/managed-victoriametrics/quickstart.md +++ b/docs/managed-victoriametrics/quickstart.md @@ -109,7 +109,7 @@ If you forgot password, it can be restored in the following way: ## Creating deployment Deployments is a page where user can list and manage VictoriaMetrics deployments. -To create an deployment click on the button `Create Deployment` button or link in the message: +To create a deployment click on the button `Create Deployment` button or link in the message:

@@ -187,4 +187,4 @@ In that section additional params can be set: * `Maintenance Window` when deployment should start upgrade process if needed; * `Settings` allow to define different flags for the deployment. -However, such an update requires an deployment restart and may result into a couple of minutes of downtime. +However, such an update requires a deployment restart and may result into a couple of minutes of downtime. diff --git a/docs/managed-victoriametrics/user-managment.md b/docs/managed-victoriametrics/user-managment.md index 2800f0468..cee997e60 100644 --- a/docs/managed-victoriametrics/user-managment.md +++ b/docs/managed-victoriametrics/user-managment.md @@ -96,7 +96,7 @@ You assign the role to the user during the user creation procedure. You can chan Inactive - The user is registered in the Managed VictoriaMetrics but has no access to perform any actions. Admin can active or completely delete the user. + The user is registered in the Managed VictoriaMetrics but has no access to perform any actions. Admin can activate or completely delete the user. diff --git a/docs/operator/design.md b/docs/operator/design.md index d655793a9..4248dff7d 100644 --- a/docs/operator/design.md +++ b/docs/operator/design.md @@ -35,7 +35,7 @@ Operator introduces the following custom resources: ## VMSingle -The `VMSingle` CRD declaratively defines a [single-node VM](https://github.com/VictoriaMetrics/VictoriaMetrics) +The `VMSingle` CRD declaratively defines a [single-node VM](https://github.com/VictoriaMetrics/VictoriaMetrics) installation to run in a Kubernetes cluster. For each `VMSingle` resource, the Operator deploys a properly configured `Deployment` in the same namespace. @@ -118,7 +118,7 @@ for how metrics should be exposed. Following these conventions new services will need to reconfigure. Monitoring configuration based on `discoveryRole` setting. By default, `endpoints` is used to get objects from kubernetes api. -Its also possible to use `discoveryRole: service` or `discoveryRole: endpointslices` +It's also possible to use `discoveryRole: service` or `discoveryRole: endpointslices` `Endpoints` objects are essentially lists of IP addresses. Typically, `Endpoints` objects are populated by `Service` object. `Service` object discovers `Pod`s by a label @@ -209,7 +209,7 @@ two operators at the same time. ## VMProbe The `VMProbe` CRD provides probing target ability with a prober. The most common prober is [blackbox exporter](https://github.com/prometheus/blackbox_exporter). - By specifying configuration at CRD, operator generates config for `VMAgent` and syncs it. Its possible to use static targets + By specifying configuration at CRD, operator generates config for `VMAgent` and syncs it. It's possible to use static targets or use standard k8s discovery mechanism with `Ingress`. You have to configure blackbox exporter before you can use this feature. The second requirement is `VMAgent` selectors, it must match your `VMProbe` by label or namespace selector. @@ -217,7 +217,7 @@ two operators at the same time. ## VMNodeScrape The `VMNodeScrape` CRD provides discovery mechanism for scraping metrics kubernetes nodes. -By specifying configuration at CRD, operator generates config for `VMAgent` and syncs it. Its useful for cadvisor scraping, +By specifying configuration at CRD, operator generates config for `VMAgent` and syncs it. It's useful for cadvisor scraping, node-exporter or other node-based exporters. `VMAgent` nodeScrapeSelector must match `VMNodeScrape` labels. ## VMStaticScrape @@ -230,7 +230,7 @@ when service-discovery is not available. `VMAgent` staticScrapeSelector must mat The `VMAuth` CRD provides mechanism for exposing application with authorization to outside world or to other applications inside kubernetes cluster. For first case, user can configure `ingress` setting at `VMAuth` CRD. For second one, operator will create secret with `username` and `password` at `VMUser` CRD name. -So it will be possible to access this credentials from any application by targeting corresponding kubernetes secret. +So it will be possible to access these credentials from any application by targeting corresponding kubernetes secret. ## VMUser diff --git a/docs/operator/high-availability.md b/docs/operator/high-availability.md index 08d873f33..38ec21574 100644 --- a/docs/operator/high-availability.md +++ b/docs/operator/high-availability.md @@ -12,7 +12,7 @@ aliases: # High Availability -High availability is not only important for customer-facing software but if the monitoring infrastructure is not highly available, then there is a risk that operations people are not notified of alerts. Therefore high availability must be just as thought through for the monitoring stack, as for anything else. +High availability is not only important for customer-facing software but if the monitoring infrastructure is not highly available, then there is a risk that operations people are not notified of alerts. Therefore, high availability must be just as thought through for the monitoring stack, as for anything else. ## VMAgent @@ -107,7 +107,7 @@ are not deployed on the same node. You can use another `topologyKey` for availab In `StatefulMode` `VMAgent` doesn't lose state of the PersistentQueue (file-based buffer size for unsent data) on pod restarts. -Operator creates `StatefulSet` and, with provided `PersistenVolumeClaimTemplate` at `StatefulStorage` configuration param, metrics queue is stored on disk. +Operator creates `StatefulSet` and, with provided `PersistentVolumeClaimTemplate` at `StatefulStorage` configuration param, metrics queue is stored on disk. Example of configuration: diff --git a/docs/operator/quick-start.md b/docs/operator/quick-start.md index 6547b2804..fa358f505 100644 --- a/docs/operator/quick-start.md +++ b/docs/operator/quick-start.md @@ -485,7 +485,7 @@ EOF It generates part of `VMAgent` configuration with `Endpoint` kubernetes_sd role for service discovery targets by corresponding `Service` and it's `Endpoint`s. - It has various options for scraping configuration of target (with basic auth,tls access, by specific port name etc). + It has various options for scraping configuration of target (with basic auth,tls access, by specific port name etc.). Let's make some demo, you have to deploy [VMAgent](#vmagent) and [VMSingle](#vmsingle) from previous step with match any selectors: @@ -629,7 +629,7 @@ kubectl logs vmagent-example-vmagent-5777fdf7bf-tctcv vmagent --tail 100 ## VMPodScrape It generates config part of `VMAgent` with kubernetes_sd role `pod`, that would match all `pods` having specific labels and ports. - It has various options for scraping configuration of target (with basic auth,tls access, by specific port name etc). + It has various options for scraping configuration of target (with basic auth,tls access, by specific port name etc.). Add `VMAgent` and Example app from step above and continue this step. @@ -708,7 +708,7 @@ spec: EOF ``` - Lets check `VMAgent` logs: + Let's check `VMAgent` logs: ```console kubectl logs vmagent-example-vmagent-5777fdf7bf-tctcv vmagent --tail 100 2020-08-03T08:51:13.582Z info VictoriaMetrics/app/vmagent/remotewrite/remotewrite.go:98 Successfully reloaded relabel configs @@ -722,7 +722,7 @@ kubectl logs vmagent-example-vmagent-5777fdf7bf-tctcv vmagent --tail 100 It generates `VMAlert` config with ruleset defined at `VMRule` spec. -Lets create `VMAlert` with selector for `VMRule` with label project=devops. +Let's create `VMAlert` with selector for `VMRule` with label project=devops. You also need datasource from previous step [VMSingle](#vmsingle) and [VMAgent](#vmagent) connected to it. ```yaml @@ -994,7 +994,8 @@ vmsingle-example-vmsingle-persisted-8584486b68-mqg6b 1/1 Running 0 ``` Now define some `VMProbe`, lets start with basic static target and probe `VMAgent` with its service address, for accessing -blackbox exporter, you have to specify its url at `VMProbe` config. Lets get both services names: +blackbox exporter, you have to specify its url at `VMProbe` config. Let's get both services names: + ```console kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE diff --git a/docs/operator/relabeling.md b/docs/operator/relabeling.md index 12bdc32b8..7777e8c43 100644 --- a/docs/operator/relabeling.md +++ b/docs/operator/relabeling.md @@ -37,7 +37,7 @@ spec: ## Configmap example - Quick tour how to to create `Confimap` with relabeling configuration + Quick tour how to create `ConfigMap` with relabeling configuration ```yaml cat << EOF | kubectl apply -f - @@ -135,7 +135,7 @@ EOF ## Combined example - Its also possible to use both features in combination. + It's also possible to use both features in combination. First will be added relabeling configs from `inlineRelabelConfig`, then `relabelConfig` from configmap. diff --git a/docs/relabeling.md b/docs/relabeling.md index b5a513888..8224835f2 100644 --- a/docs/relabeling.md +++ b/docs/relabeling.md @@ -19,7 +19,7 @@ with [additional enhancements](https://docs.victoriametrics.com/vmagent.html#rel The relabeling is mostly used for the following tasks: * Dropping unneeded scrape targets during [service discovery](https://docs.victoriametrics.com/sd_configs.html#prometheus-service-discovery). - See [how to drop unneded targets with relabeling](#how-to-drop-discovered-targets). + See [how to drop discovered targets](#how-to-drop-discovered-targets). * Adding or updating static labels at scrape targets. See [how to add labels to scrape targets](#how-to-add-labels-to-scrape-targets). * Copying target labels from another labels. See [how to copy labels in scrape targets](#how-to-copy-labels-in-scrape-targets). * Modifying scrape urls for discovered targets. See [how to modify scrape urls in targets](#how-to-modify-scrape-urls-in-targets). @@ -88,7 +88,7 @@ Important notes: * Labels with `__` prefix are automatically removed after the relabeling, so there is no need in removing them with relabeling rules. * Make sure that metrics exposed by the target can be uniquely identified by their names - and the remaining labels after label removal. Otherwise duplicate metrics with duplicate timestams + and the remaining labels after label removal. Otherwise, duplicate metrics with duplicate timestamps and different values will be pushed to the storage. This is an undesired issue in most cases. See also [useful tips for metric relabeling](#useful-tips-for-metric-relabeling). @@ -245,7 +245,7 @@ with the `$N` syntax, where `N` is the number of the capture group in `regex`. T It is possible to construct a label from multiple parts of different labels. In this case just specify the needed source labels inside `source_labels` list. The values of labels specified in `source_labels` list are joined with `;` separator by default before being matched against the `regex`. -The separator can be overriden via `separator` option. +The separator can be overridden via `separator` option. If the `regex` doesn't match the value constructed from `source_labels`, then the relabeling rule is skipped and the remaining relabeling rules are executed. @@ -260,9 +260,9 @@ Single-node VictoriaMetrics and [vmagent](https://docs.victoriametrics.com/vmage * The `instance` label is set to the `host:port` part of `__address__` label value after target-level relabeling. The `__address__` label value is automatically set to the most suitable value depending on the used [service discovery type](https://docs.victoriametrics.com/sd_configs.html#supported-service-discovery-configs). - The `__address__` label can be overriden during relabeling - see [these docs](#how-to-modify-scrape-urls-in-targets). + The `__address__` label can be overridden during relabeling - see [these docs](#how-to-modify-scrape-urls-in-targets). -Both `instance` and `job` labels can be overriden during relabeling. For example, the following config discovers pod targets +Both `instance` and `job` labels can be overridden during relabeling. For example, the following config discovers pod targets in [Kubernetes](https://docs.victoriametrics.com/sd_configs.html#kubernetes_sd_configs) and overrides `job` label from `k8s` to `foo`: ```yaml @@ -283,7 +283,7 @@ See also [useful tips for target relabeling](#useful-tips-for-target-relabeling) URLs for scrape targets are composed of the following parts: * Scheme (e.g. `http` or `https`). The scheme is available during target relabeling in a special label - `__scheme__`. - By default the scheme is set to `http`. It can be overriden either by specifying the `scheme` option + By default, the scheme is set to `http`. It can be overridden either by specifying the `scheme` option at [scrape_config](https://docs.victoriametrics.com/sd_configs.html#scrape_configs) level or by updating the `__scheme__` label during relabeling. * Host and port (e.g. `host12:3456`). This information is available during target relabeling in a special label - `__address__`. @@ -297,7 +297,7 @@ URLs for scrape targets are composed of the following parts: The `__address__` label can contain the full scrape url, e.g. `http://host:port/metrics/path?query_args`. In this case the `__scheme__` and `__metrics_path__` labels are ignored. * URL path (e.g. `/metrics`). This information is available during target relabeling in a special label - `__metrics_path__`. - By default the `__metrics_path__` is set to `/metrics`. It can be overriden either by specifying the `metrics_path` + By default, the `__metrics_path__` is set to `/metrics`. It can be overridden either by specifying the `metrics_path` option at [scrape_config](https://docs.victoriametrics.com/sd_configs.html#scrape_configs) or by updating the `__metrics_path__` label during relabeling. * Query args (e.g. `?foo=bar&baz=xyz`). This information is available during target relabeling in special labels @@ -436,7 +436,7 @@ scrape_configs: ``` The `action: drop` drops all the scrape targets with labels matching the `if` [selector](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors), -while keeping the rest of targets. For example, the followign config discovers pod targets in [Kubernetes](https://docs.victoriametrics.com/sd_configs.html#kubernetes_sd_configs) +while keeping the rest of targets. For example, the following config discovers pod targets in [Kubernetes](https://docs.victoriametrics.com/sd_configs.html#kubernetes_sd_configs) and scrapes only pods with names starting with prefixes other than `foo`: ```yaml @@ -475,6 +475,6 @@ See also [useful tips for target relabeling](#useful-tips-for-target-relabeling) * Metric relabeling can be debugged at `http://vmagent:8429/metric-relabel-debug` page. See [these docs](https://docs.victoriametrics.com/vmagent.html#relabel-debug). * All the labels, which start with `__` prefix, are automatically removed from metrics after the relabeling. - So it is common practice to store temporary labels with names startigh with `__` during metrics relabeling. + So it is common practice to store temporary labels with names starting with `__` during metrics relabeling. * All the target-level labels are automatically added to all the metrics scraped from targets, so target-level labels are available during metrics relabeling. diff --git a/docs/sd_configs.md b/docs/sd_configs.md index 858bd2ff4..12b81c6b0 100644 --- a/docs/sd_configs.md +++ b/docs/sd_configs.md @@ -19,7 +19,7 @@ aliases: * `azure_sd_configs` is for scraping the targets registered in [Azure Cloud](https://azure.microsoft.com/en-us/). See [these docs](#azure_sd_configs). * `consul_sd_configs` is for discovering and scraping targets registered in [Consul](https://www.consul.io/). See [these docs](#consul_sd_configs). * `consulagent_sd_configs` is for discovering and scraping targets registered in [Consul Agent](https://developer.hashicorp.com/consul/api-docs/agent/service). See [these docs](#consulagent_sd_configs). -* `digitalocean_sd_configs` is for discovering and scraping targerts registered in [DigitalOcean](https://www.digitalocean.com/). See [these docs](#digitalocean_sd_configs). +* `digitalocean_sd_configs` is for discovering and scraping targets registered in [DigitalOcean](https://www.digitalocean.com/). See [these docs](#digitalocean_sd_configs). * `dns_sd_configs` is for discovering and scraping targets from [DNS](https://it.wikipedia.org/wiki/Domain_Name_System) records (SRV, A and AAAA). See [these docs](#dns_sd_configs). * `docker_sd_configs` is for discovering and scraping [Docker](https://www.docker.com/) targets. See [these docs](#docker_sd_configs). * `dockerswarm_sd_configs` is for discovering and scraping [Docker Swarm](https://docs.docker.com/engine/swarm/) targets. See [these docs](#dockerswarm_sd_configs). @@ -27,13 +27,13 @@ aliases: * `eureka_sd_configs` is for discovering and scraping targets registered in [Netflix Eureka](https://github.com/Netflix/eureka). See [these docs](#eureka_sd_configs). * `file_sd_configs` is for scraping targets defined in external files (aka file-based service discovery). See [these docs](#file_sd_configs). * `gce_sd_configs` is for discovering and scraping [Google Compute Engine](https://cloud.google.com/compute) targets. See [these docs](#gce_sd_configs). -* `http_sd_configs` is for discovering and scraping targerts provided by external http-based service discovery. See [these docs](#http_sd_configs). +* `http_sd_configs` is for discovering and scraping targets provided by external http-based service discovery. See [these docs](#http_sd_configs). * `kubernetes_sd_configs` is for discovering and scraping [Kubernetes](https://kubernetes.io/) targets. See [these docs](#kubernetes_sd_configs). * `kuma_sd_configs` is for discovering and scraping [Kuma](https://kuma.io) targets. See [these docs](#kuma_sd_configs). * `nomad_sd_configs` is for discovering and scraping targets registered in [HashiCorp Nomad](https://www.nomadproject.io/). See [these docs](#nomad_sd_configs). * `openstack_sd_configs` is for discovering and scraping OpenStack targets. See [these docs](#openstack_sd_configs). * `static_configs` is for scraping statically defined targets. See [these docs](#static_configs). -* `yandexcloud_sd_configs` is for discoverying and scraping [Yandex Cloud](https://cloud.yandex.com/en/) targets. See [these docs](#yandexcloud_sd_configs). +* `yandexcloud_sd_configs` is for discovering and scraping [Yandex Cloud](https://cloud.yandex.com/en/) targets. See [these docs](#yandexcloud_sd_configs). Note that the `refresh_interval` option isn't supported for these scrape configs. Use the corresponding `-promscrape.*CheckInterval` command-line flag instead. For example, `-promscrape.consulSDCheckInterval=60s` sets `refresh_interval` for all the `consul_sd_configs` @@ -116,7 +116,7 @@ scrape_configs: - job_name: consul consul_sd_configs: - # server is an optional Consul server to connect to. By default localhost:8500 is used + # server is an optional Consul server to connect to. By default, localhost:8500 is used - server: "localhost:8500" # token is an optional Consul API token. @@ -140,7 +140,7 @@ scrape_configs: # partition: "..." # scheme is an optional scheme (http or https) to use for connecting to Consul server. - # By default http scheme is used. + # By default, http scheme is used. # scheme: "..." # services is an optional list of services for which targets are retrieved. @@ -159,7 +159,7 @@ scrape_configs: # "...": "..." # tag_separator is an optional string by which Consul tags are joined into the __meta_consul_tags label. - # By default "," is used as a tag separator. + # By default, "," is used as a tag separator. # Individual tags are also available via __meta_consul_tag_ labels - see below. # tag_separator: "..." @@ -172,7 +172,7 @@ scrape_configs: # allow_stale is an optional config, which allows stale Consul results. # See https://www.consul.io/api/features/consistency.html - # Reduce load on Consul if set to true. By default is is set to true. + # Reduce load on Consul if set to true. By default, it is set to true. # allow_stale: ... # Additional HTTP API client options can be specified here. @@ -220,7 +220,7 @@ scrape_configs: - job_name: consulagent consulagent_sd_configs: - # server is an optional Consul Agent to connect to. By default localhost:8500 is used + # server is an optional Consul Agent to connect to. By default, localhost:8500 is used - server: "localhost:8500" # token is an optional Consul API token. @@ -239,7 +239,7 @@ scrape_configs: # namespace: "..." # scheme is an optional scheme (http or https) to use for connecting to Consul server. - # By default http scheme is used. + # By default, http scheme is used. # scheme: "..." # services is an optional list of services for which targets are retrieved. @@ -248,7 +248,7 @@ scrape_configs: # services: ["...", "..."] # tag_separator is an optional string by which Consul tags are joined into the __meta_consul_tags label. - # By default "," is used as a tag separator. + # By default, "," is used as a tag separator. # Individual tags are also available via __meta_consul_tag_ labels - see below. # tag_separator: "..." @@ -298,10 +298,10 @@ scrape_configs: - job_name: digitalocean digitalocean_sd_configs: # server is an optional DigitalOcean API server to query. - # By default https://api.digitalocean.com is used. + # By default, https://api.digitalocean.com is used. - server: "https://api.digitalocean.com" - # port is an optional port to scrape metrics from. By default port 80 is used. + # port is an optional port to scrape metrics from. By default, port 80 is used. # port: ... # Additional HTTP API client options can be specified here. @@ -331,7 +331,7 @@ The list of discovered DigitalOcean targets is refreshed at the interval, which ## dns_sd_configs -DNS-based service discovery allows retrieving scrape tragets from the specified DNS domain names. +DNS-based service discovery allows retrieving scrape targets from the specified DNS domain names. These specified names are periodically queried to discover a list of targets with the interval configured via `-promscrape.dnsSDCheckInterval` command-line flag. @@ -346,7 +346,7 @@ scrape_configs: # type is an optional type of DNS query to perform. # Supported values are: SRV, A, AAAA or MX. - # By default SRV is used. + # By default, SRV is used. # type: ... # port is a port number to use if the query type is not SRV. @@ -381,11 +381,11 @@ scrape_configs: - host: "..." # port is an optional port to scrape metrics from. - # By default port 80 is used. + # By default, port 80 is used. # port: ... # host_networking_host is an optional host to use if the container is in host networking mode. - # By default localhost is used. + # By default, localhost is used. # host_networking_host: "..." # filters is an optional filters to limit the discovery process to a subset of available resources. @@ -441,7 +441,7 @@ scrape_configs: # port is an optional port to scrape metrics from, when `role` is nodes, and for discovered # tasks and services that don't have published ports. - # By default port 80 is used. + # By default, port 80 is used. # port: ... # filters is an optional filters to limit the discovery process to a subset of available resources. @@ -465,7 +465,7 @@ One of the following roles can be configured to discover targets: Each discovered target has an [`__address__`](https://docs.victoriametrics.com/relabeling.html#how-to-modify-scrape-urls-in-targets) label set to `:`, where `` is the endpoint's virtual IP, while the `` is the published port of the service. - If the service has multiple pulbished ports, then multiple targets are generated - one per each port. + If the service has multiple published ports, then multiple targets are generated - one per each port. If the service has no published ports, then the `` is set to the `port` value obtained from `dockerswarm_sd_configs`. Available meta labels for `role: services` during [relabeling](https://docs.victoriametrics.com/vmagent.html#relabeling): @@ -474,7 +474,7 @@ One of the following roles can be configured to discover targets: * `__meta_dockerswarm_service_name`: the name of the service * `__meta_dockerswarm_service_mode`: the mode of the service * `__meta_dockerswarm_service_endpoint_port_name`: the name of the endpoint port, if available - * `__meta_dockerswarm_service_endpoint_port_publish_mode`: the publish mode of the endpoint port + * `__meta_dockerswarm_service_endpoint_port_publish_mode`: the publishing mode of the endpoint port * `__meta_dockerswarm_service_label_`: each label of the service * `__meta_dockerswarm_service_task_container_hostname`: the container hostname of the target, if available * `__meta_dockerswarm_service_task_container_image`: the container image of the target @@ -503,7 +503,7 @@ One of the following roles can be configured to discover targets: * `__meta_dockerswarm_task_desired_state`: the desired state of the task * `__meta_dockerswarm_task_slot`: the slot of the task * `__meta_dockerswarm_task_state`: the state of the task - * `__meta_dockerswarm_task_port_publish_mode`: the publish mode of the task port + * `__meta_dockerswarm_task_port_publish_mode`: the publishing mode of the task port * `__meta_dockerswarm_service_id`: the id of the service * `__meta_dockerswarm_service_name`: the name of the service * `__meta_dockerswarm_service_mode`: the mode of the service @@ -563,30 +563,30 @@ scrape_configs: - job_name: ec2 ec2_sd_configs: # region is an optional config for AWS region. - # By default the region from the instance metadata is used. + # By default, the region from the instance metadata is used. - region: "..." # endpoint is an optional custom AWS API endpoint to use. - # By default the standard endpoint for the given region is used. + # By default, the standard endpoint for the given region is used. # endpoint: "..." # sts_endpoint is an optional custom STS API endpoint to use. - # By default the standard endpoint for the given region is used. + # By default, the standard endpoint for the given region is used. # sts_endpoint: "..." # access_key is an optional AWS API access key. - # By default the access key is loaded from AWS_ACCESS_KEY_ID environment var. + # By default, the access key is loaded from AWS_ACCESS_KEY_ID environment var. # access_key: "..." # secret_key is an optional AWS API secret key. - # By default the secret key is loaded from AWS_SECRET_ACCESS_KEY environment var. + # By default, the secret key is loaded from AWS_SECRET_ACCESS_KEY environment var. # secret_key: "..." # role_arn is an optional AWS Role ARN, an alternative to using AWS API keys. # role_arn: "..." # port is an optional port to scrape metrics from. - # By default port 80 is used. + # By default, port 80 is used. # port: ... # filters is an optional filters for the instance list. @@ -608,7 +608,7 @@ scrape_configs: Each discovered target has an [`__address__`](https://docs.victoriametrics.com/relabeling.html#how-to-modify-scrape-urls-in-targets) label set to `:`, where `` is the private IP of the instance, while the `` is set to the `port` value -obtaine from `ec2_sd_configs`. +obtain from `ec2_sd_configs`. The following meta labels are available on discovered targets during [relabeling](https://docs.victoriametrics.com/vmagent.html#relabeling): @@ -646,7 +646,7 @@ scrape_configs: - job_name: eureka eureka_sd_configs: # server is an optional URL to connect to the Eureka server. - # By default The http://localhost:8080/eureka/v2 is used. + # By default, the http://localhost:8080/eureka/v2 is used. - server: "..." # Additional HTTP API client options can be specified here. @@ -746,11 +746,11 @@ scrape_configs: - job_name: gce gce_sd_configs: # project is an optional GCE project where targets must be discovered. - # By default the local project is used. + # By default, the local project is used. - project: "..." # zone is an optional zone where targets must be discovered. - # By default the local zone is used. + # By default, the local zone is used. # If zone equals to '*', then targets in all the zones for the given project are discovered. # The zone may contain a list of zones: zone["us-east1-a", "us-east1-b"] # zone: "..." @@ -760,11 +760,11 @@ scrape_configs: # filter: "..." # port is an optional port to scrape metrics from. - # By default port 80 is used. + # By default, port 80 is used. # port: ... # tag_separator is an optional separator for tags in `__meta_gce_tags` label. - # By default "," is used. + # By default, "," is used. # tag_separator: "..." ``` @@ -858,7 +858,7 @@ scrape_configs: - role: "..." # api_server is an optional url for Kubernetes API server. - # By default it is read from /var/run/secrets/kubernetes.io/serviceaccount/ + # By default, it is read from /var/run/secrets/kubernetes.io/serviceaccount/ # api_server: "..." # kubeconfig_file is an optional path to a kubeconfig file. @@ -866,7 +866,7 @@ scrape_configs: # kubeconfig_file: "..." # namespaces is an optional namespace for service discovery. - # By default all namespaces are used. + # By default, all namespaces are used. # If own_namespace is set to true, then the current namespace is used for service discovery. # namespaces: # own_namespace: @@ -902,7 +902,7 @@ One of the following `role` types can be configured to discover targets: Each discovered target has an [`__address__`](https://docs.victoriametrics.com/relabeling.html#how-to-modify-scrape-urls-in-targets) label set to `:`, where `` is to the first existing address of the Kubernetes node object in the address type order of `NodeInternalIP`, `NodeExternalIP`, `NodeLegacyHostIP` and `NodeHostName`, - while `` is the kubelet's port on the given node. + while `` is the kubelet port on the given node. Available meta labels for `role: node` during [relabeling](https://docs.victoriametrics.com/vmagent.html#relabeling): @@ -1056,7 +1056,7 @@ One of the following `role` types can be configured to discover targets: * `__meta_kubernetes_ingress_scheme`: Protocol scheme of ingress, https if TLS config is set. Defaults to http. * `__meta_kubernetes_ingress_path`: Path from ingress spec. Defaults to `/`. -The list of discovered Kuberntes targets is refreshed at the interval, which can be configured via `-promscrape.kubernetesSDCheckInterval` command-line flag. +The list of discovered Kubernetes targets is refreshed at the interval, which can be configured via `-promscrape.kubernetesSDCheckInterval` command-line flag. ## kuma_sd_configs @@ -1120,13 +1120,13 @@ scrape_configs: # region: "..." # tag_separator is an optional string by which Nomad tags are joined into the __meta_nomad_tags label. - # By default "," is used as a tag separator. + # By default, "," is used as a tag separator. # Individual tags are also available via __meta_nomad_tag_ labels - see below. # tag_separator: "..." # allow_stale is an optional config, which allows stale Nomad results. # See https://developer.hashicorp.com/nomad/api-docs#consistency-modes - # Reduces load on Nomad if set to true. By default is is set to true. + # Reduces load on Nomad if set to true. By default, it is set to true. # allow_stale: ... # Additional HTTP API client options can be specified here. @@ -1175,39 +1175,39 @@ scrape_configs: region: "..." # identity_endpoint is an optional HTTP Identity API endpoint. - # By default it is read from OS_AUTH_URL environment variable. + # By default, it is read from OS_AUTH_URL environment variable. # identity_endpoint: "..." # username is an optional username to query Identity API. - # By default it is read from OS_USERNAME environment variable. + # By default, it is read from OS_USERNAME environment variable. # username: "..." # userid is an optional userid to query Identity API. - # By default it is read from OS_USERID environment variable. + # By default, it is read from OS_USERID environment variable. # userid: "..." # password is an optional password to query Identity API. - # By default it is read from OS_PASSWORD environment variable. + # By default, it is read from OS_PASSWORD environment variable. # password: "..." # At most one of domain_id and domain_name must be provided. - # By default they are read from OS_DOMAIN_NAME and OS_DOMAIN_ID environment variables. + # By default, they are read from OS_DOMAIN_NAME and OS_DOMAIN_ID environment variables. # domain_name: "..." # domain_id: "..." # project_name and project_id are optional project name and project id. - # By default is is read from OS_PROJECT_NAME and OS_PROJECT_ID environment variables. - # If these vars are emtpy, then the options are read + # By default, it is read from OS_PROJECT_NAME and OS_PROJECT_ID environment variables. + # If these vars are empty, then the options are read # from OS_TENANT_NAME and OS_TENANT_ID environment variables. # project_name: "..." # project_id: "..." - # By default these fields are read from OS_APPLICATION_CREDENTIAL_NAME + # By default, these fields are read from OS_APPLICATION_CREDENTIAL_NAME # and OS_APPLICATION_CREDENTIAL_ID environment variables # application_credential_name: "..." # application_credential_id: "..." - # By default this field is read from OS_APPLICATION_CREDENTIAL_SECRET + # By default, this field is read from OS_APPLICATION_CREDENTIAL_SECRET # application_credential_secret: "..." # all_tenants can be set to true if all instances in all projects must be discovered. @@ -1220,7 +1220,7 @@ scrape_configs: # availability is the availability of the endpoint to connect to. # Must be one of public, admin or internal. - # By default it is set to public + # By default, it is set to public # availability: "..." # tls_config is an optional tls config. @@ -1281,7 +1281,7 @@ scrape_configs: static_configs: # targets must contain a list of `host:port` targets to scrape. - # The `http://host:port/metrics` endpoint is scraped per each configured traget then. + # The `http://host:port/metrics` endpoint is scraped per each configured target then. # The `http` scheme can be changed to `https` by setting it via `scheme` field at `scrape_config` level. # The `/metrics` path can be changed to arbitrary path via `metrics_path` field at `scrape_config` level. # See https://docs.victoriametrics.com/sd_configs.html#scrape_configs . @@ -1387,7 +1387,7 @@ scrape_configs: - job_name: "..." # scrape_interval is an optional interval to scrape targets. - # By default the scrape_interval sepcified in `global` section is used. + # By default, the scrape_interval specified in `global` section is used. # See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file # If `global` section doesn't contain the `scrape_interval` option, # then one minute interval is used. @@ -1400,7 +1400,7 @@ scrape_configs: # scrape_interval: # scrape_timeout is an optional timeout when scraping the targets. - # By default the scrape_timeout specified in `global` section is used. + # By default, the scrape_timeout specified in `global` section is used. # See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#configuration-file # If `global` section doesn't contain the `scrape_timeout` option, # then 10 seconds interval is used. @@ -1414,12 +1414,12 @@ scrape_configs: # scrape_timeout: # metrics_path is the path to fetch metrics from targets. - # By default metrics are fetched from "/metrics" path. + # By default, metrics are fetched from "/metrics" path. # metrics_path: "..." # honor_labels controls how to handle conflicts between labels that are # already present in scraped data and labels that would be attached - # server-side ("job" and "instance" labels, manually configured target + # server-side "job" and "instance" labels, manually configured target # labels, labels generated by service discovery, etc. # # If honor_labels is set to "true", label conflicts are resolved by keeping label @@ -1434,7 +1434,7 @@ scrape_configs: # scraping the Pushgateway, where all labels specified in the target should be # preserved. # - # By default honor_labels is set to false for security and consistency reasons. + # By default, honor_labels is set to false for security and consistency reasons. # honor_labels: # honor_timestamps controls whether to respect the timestamps present in scraped data. @@ -1445,12 +1445,12 @@ scrape_configs: # If honor_timestamps is set to "false", the timestamps of the metrics exposed # by the target will be ignored. # - # By default honor_timestamps is set to true. + # By default, honor_timestamps is set to true. # honor_timestamps: # scheme configures the protocol scheme used for requests. # Supported values: http and https. - # By default http is used. + # By default, http is used. # scheme: "..." # Optional query arg parameters to add to scrape url. @@ -1475,23 +1475,23 @@ scrape_configs: # of scraped samples that will be accepted. # If more than this number of samples are present after metric relabeling # the entire scrape will be treated as failed. - # By default the limit is disabled. + # By default, the limit is disabled. # sample_limit: # disable_compression allows disabling HTTP compression for responses received from scrape targets. - # By default scrape targets are queried with `Accept-Encoding: gzip` http request header, + # By default, scrape targets are queried with `Accept-Encoding: gzip` http request header, # so targets could send compressed responses in order to save network bandwidth. # See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements # disable_compression: # disable_keepalive allows disabling HTTP keep-alive when scraping targets. - # By default HTTP keep-alive is enabled, so TCP connections to scrape targets + # By default, HTTP keep-alive is enabled, so TCP connections to scrape targets # could be re-used. # See https://docs.victoriametrics.com/vmagent.html#scrape_config-enhancements # disable_keepalive: # stream_parse allows enabling stream parsing mode when scraping targets. - # By default stream parsing mode is disabled for targets which return up to a few thosands samples. + # By default, stream parsing mode is disabled for targets which return up to a few thousands samples. # See https://docs.victoriametrics.com/vmagent.html#stream-parsing-mode . # The stream_parse can be set on a per-target basis by specifying `__stream_parse__` # label during target relabeling phase. diff --git a/docs/stream-aggregation.md b/docs/stream-aggregation.md index 2ccb69508..79fd838e9 100644 --- a/docs/stream-aggregation.md +++ b/docs/stream-aggregation.md @@ -26,7 +26,7 @@ The stream aggregation is configured via the following command-line flags: These flags must point to a file containing [stream aggregation config](#stream-aggregation-config). -By default only the aggregated data is written to the storage. If the original incoming samples must be written to the storage too, +By default, only the aggregated data is written to the storage. If the original incoming samples must be written to the storage too, then the following command-line flags must be specified: - `-remoteWrite.streamAggr.keepInput` at [vmagent](https://docs.victoriametrics.com/vmagent.html). @@ -37,7 +37,7 @@ then the following command-line flags must be specified: Stream aggregation ignores timestamps associated with the input [samples](https://docs.victoriametrics.com/keyConcepts.html#raw-samples). It expects that the ingested samples have timestamps close to the current time. -By default all the input samples are aggregated. Sometimes it is needed to de-duplicate samples before the aggregation. +By default, all the input samples are aggregated. Sometimes it is needed to de-duplicate samples before the aggregation. For example, if the samples are received from replicated sources. The following command-line flag can be used for enabling the [de-duplication](https://docs.victoriametrics.com/#deduplication) before aggregation in this case: @@ -320,7 +320,7 @@ Output metric names for stream aggregation are constructed according to the foll If the `by` list is missing in the config, then the `_by_` part isn't included in the output metric name. - `` is an optional `_`-delimited sorted list of `without` labels specified in the [stream aggregation config](#stream-aggregation-config). If the `without` list is missing in the config, then the `_without_` part isn't included in the output metric name. -- `` is the aggregate used for constucting the output metric. The aggregate name is taken from the `outputs` list +- `` is the aggregate used for constructing the output metric. The aggregate name is taken from the `outputs` list at the corresponding [stream aggregation config](#stream-aggregation-config). Both input and output metric names can be modified if needed via relabeling according to [these docs](#relabeling). @@ -542,7 +542,7 @@ at [single-node VictoriaMetrics](https://docs.victoriametrics.com/Single-server- # See https://docs.victoriametrics.com/stream-aggregation.html#aggregating-by-labels without: [instance] - # by is an optioanl list of labels, which must be preserved in the output aggregation. + # by is an optional list of labels, which must be preserved in the output aggregation. # See https://docs.victoriametrics.com/stream-aggregation.html#aggregating-by-labels # by: [job, vmrange] diff --git a/docs/url-examples.md b/docs/url-examples.md index ab35d978d..430063f14 100644 --- a/docs/url-examples.md +++ b/docs/url-examples.md @@ -297,7 +297,7 @@ curl http://:8481/select/0/prometheus/api/v1/labels

-By default VictoriaMetrics returns labels seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. +By default, VictoriaMetrics returns labels seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. The specified `start..end` time range is rounded to day granularity because of performance optimization concerns. Additional information: @@ -327,7 +327,7 @@ curl http://:8481/select/0/prometheus/api/v1/label/job/values
-By default VictoriaMetrics returns labels values seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. +By default, VictoriaMetrics returns labels values seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. The specified `start..end` time range is rounded to day granularity because of performance optimization concerns. Additional information: @@ -413,7 +413,7 @@ curl http://:8481/select/0/prometheus/api/v1/series -d 'match[]=vm_htt -By default VictoriaMetrics returns time series seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. +By default, VictoriaMetrics returns time series seen during the last day starting at 00:00 UTC. An arbitrary time range can be set via `start` and `end` query args. The specified `start..end` time range is rounded to day granularity because of performance optimization concerns. Additional information: diff --git a/docs/vmagent.md b/docs/vmagent.md index 3ffe9c3eb..4dec48853 100644 --- a/docs/vmagent.md +++ b/docs/vmagent.md @@ -17,7 +17,7 @@ See [Quick Start](#quick-start) for details. While VictoriaMetrics provides an efficient solution to store and observe metrics, our users needed something fast and RAM friendly to scrape metrics from Prometheus-compatible exporters into VictoriaMetrics. -Also, we found that our user's infrastructure are like snowflakes in that no two are alike. Therefore we decided to add more flexibility +Also, we found that our user's infrastructure are like snowflakes in that no two are alike. Therefore, we decided to add more flexibility to `vmagent` such as the ability to [accept metrics via popular push protocols](#how-to-push-data-to-vmagent) additionally to [discovering Prometheus-compatible targets and scraping metrics from them](#how-to-collect-metrics-in-prometheus-format). @@ -60,7 +60,7 @@ and sending the data to the Prometheus-compatible remote storage: In this case `vmagent` ignores unsupported sections. See [the list of unsupported sections](#unsupported-prometheus-config-sections). * `-remoteWrite.url` with Prometheus-compatible remote storage endpoint such as VictoriaMetrics. -Example command for writing the data recieved via [supported push-based protocols](#how-to-push-data-to-vmagent) +Example command for writing the data received via [supported push-based protocols](#how-to-push-data-to-vmagent) to [single-node VictoriaMetrics](https://docs.victoriametrics.com/) located at `victoria-metrics-host:8428`: ```console @@ -155,7 +155,7 @@ to other remote storage systems, which support Prometheus `remote_write` protoco `vmagent` replicates the collected metrics among multiple remote storage instances configured via `-remoteWrite.url` args. If a single remote storage instance temporarily is out of service, then the collected data remains available in another remote storage instance. -`vmagent` buffers the collected data in files at `-remoteWrite.tmpDataPath` until the remote storage becomes available again +`vmagent` buffers the collected data in files at `-remoteWrite.tmpDataPath` until the remote storage becomes available again, and then it sends the buffered data to the remote storage in order to prevent data gaps. [VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html) already supports replication, @@ -174,7 +174,7 @@ Please see [these docs](#relabeling) for details. `vmagent` supports splitting the collected data between multiple destinations with the help of `-remoteWrite.urlRelabelConfig`, which is applied independently for each configured `-remoteWrite.url` destination. For example, it is possible to replicate or split data among long-term remote storage, short-term remote storage and a real-time analytical system [built on top of Kafka](https://github.com/Telefonica/prometheus-kafka-adapter). -Note that each destination can receive it's own subset of the collected data due to per-destination relabeling via `-remoteWrite.urlRelabelConfig`. +Note that each destination can receive its own subset of the collected data due to per-destination relabeling via `-remoteWrite.urlRelabelConfig`. ### Prometheus remote_write proxy @@ -186,7 +186,7 @@ Also, Basic Auth can be enabled for the incoming `remote_write` requests with `- ### remote_write for clustered version While `vmagent` can accept data in several supported protocols (OpenTSDB, Influx, Prometheus, Graphite) and scrape data from various targets, -writes are always performed in Promethes remote_write protocol. Therefore for the [clustered version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html), +writes are always performed in Prometheus remote_write protocol. Therefore, for the [clustered version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html), the `-remoteWrite.url` command-line flag should be configured as `://:8480/insert//prometheus/api/v1/write` according to [these docs](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#url-format). There is also support for multitenant writes. See [these docs](#multitenancy). @@ -240,7 +240,7 @@ This allows using a single `vmagent` instance in front of multiple VictoriaMetri If `-remoteWrite.multitenantURL` command-line flag is set and `vmagent` is configured to scrape Prometheus-compatible targets (e.g. if `-promscrape.config` command-line flag is set) then `vmagent` reads tenantID from `__tenant_id__` label for the discovered targets and routes all the metrics from this target to the given `__tenant_id__`, -e.g. to the url `<-remoteWrite.multitnenatURL>/insert/<__tenant_id__>/prometheus/api/v1/write`. +e.g. to the url `<-remoteWrite.multitenantURL>/insert/<__tenant_id__>/prometheus/api/v1/write`. For example, the following relabeling rule instructs sending metrics to tenantID defined in the `prometheus.io/tenant` annotation of Kubernetes pod deployment: @@ -286,14 +286,14 @@ scrape_configs: - "My-Auth: TopSecret" ``` -* `disable_compression: true` for disabling response compression on a per-job basis. By default `vmagent` requests compressed responses +* `disable_compression: true` for disabling response compression on a per-job basis. By default, `vmagent` requests compressed responses from scrape targets for saving network bandwidth. * `disable_keepalive: true` for disabling [HTTP keep-alive connections](https://en.wikipedia.org/wiki/HTTP_persistent_connection) - on a per-job basis. By default `vmagent` uses keep-alive connections to scrape targets for reducing overhead on connection re-establishing. + on a per-job basis. By default, `vmagent` uses keep-alive connections to scrape targets for reducing overhead on connection re-establishing. * `series_limit: N` for limiting the number of unique time series a single scrape target can expose. See [these docs](#cardinality-limiter). * `stream_parse: true` for scraping targets in a streaming manner. This may be useful when targets export big number of metrics. See [these docs](#stream-parsing-mode). * `scrape_align_interval: duration` for aligning scrapes to the given interval instead of using random offset - in the range `[0 ... scrape_interval]` for scraping each target. The random offset helps spreading scrapes evenly in time. + in the range `[0 ... scrape_interval]` for scraping each target. The random offset helps to spread scrapes evenly in time. * `scrape_offset: duration` for specifying the exact offset for scraping instead of using random offset in the range `[0 ... scrape_interval]`. See [scrape_configs docs](https://docs.victoriametrics.com/sd_configs.html#scrape_configs) for more details on all the supported options. @@ -342,7 +342,7 @@ There is no need in specifying top-level `scrape_configs` section in these files The list of supported service discovery types is available [here](#how-to-collect-metrics-in-prometheus-format). -Additionally `vmagent` doesn't support `refresh_interval` option at service discovery sections. +Additionally, `vmagent` doesn't support `refresh_interval` option at service discovery sections. This option is substituted with `-promscrape.*CheckInterval` command-line options, which are specific per each service discovery type. See [the full list of command-line flags for vmagent](#advanced-usage). @@ -464,7 +464,7 @@ VictoriaMetrics components support [Prometheus-compatible relabeling](https://pr with [additional enhancements](#relabeling-enhancements). The relabeling can be defined in the following places processed by `vmagent`: * At the `scrape_config -> relabel_configs` section in `-promscrape.config` file. - This relabeling is used for modifying labels in discovered targets and for dropping unneded targets. + This relabeling is used for modifying labels in discovered targets and for dropping unneeded targets. See [relabeling cookbook](https://docs.victoriametrics.com/relabeling.html) for details. This relabeling can be debugged by clicking the `debug` link at the corresponding target on the `http://vmagent:8429/targets` page @@ -551,7 +551,7 @@ The following articles contain useful information about Prometheus relabeling: * VictoriaMetrics provides the following additional relabeling actions on top of standard actions from the [Prometheus relabeling](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config): - * `replace_all` replaces all of the occurrences of `regex` in the values of `source_labels` with the `replacement` + * `replace_all` replaces all the occurrences of `regex` in the values of `source_labels` with the `replacement` and stores the results in the `target_label`. For example, the following relabeling config replaces all the occurrences of `-` char in metric names with `_` char (e.g. `foo-bar-baz` metric name is transformed into `foo_bar_baz`): @@ -563,7 +563,7 @@ The following articles contain useful information about Prometheus relabeling: replacement: "_" ``` - * `labelmap_all` replaces all of the occurrences of `regex` in all the label names with the `replacement`. + * `labelmap_all` replaces all the occurrences of `regex` in all the label names with the `replacement`. For example, the following relabeling config replaces all the occurrences of `-` char in all the label names with `_` char (e.g. `foo-bar-baz` label name is transformed into `foo_bar_baz`): @@ -683,7 +683,7 @@ e.g. it sets `scrape_series_added` metric to zero. See [these docs](#automatical ## Stream parsing mode -By default `vmagent` reads the full response body from scrape target into memory, then parses it, applies [relabeling](#relabeling) +By default, `vmagent` reads the full response body from scrape target into memory, then parses it, applies [relabeling](#relabeling) and then pushes the resulting metrics to the configured `-remoteWrite.url`. This mode works good for the majority of cases when the scrape target exposes small number of metrics (e.g. less than 10 thousand). But this mode may take big amounts of memory when the scrape target exposes big number of metrics. In this case it is recommended enabling stream parsing mode. @@ -711,8 +711,8 @@ scrape_configs: stream_parse: true static_configs: - targets: - - big-prometeus1 - - big-prometeus2 + - big-prometheus1 + - big-prometheus2 honor_labels: true metrics_path: /federate params: @@ -720,7 +720,7 @@ scrape_configs: ``` Note that `vmagent` in stream parsing mode stores up to `sample_limit` samples to the configured `-remoteStorage.url` -instead of droping all the samples read from the target, because the parsed data is sent to the remote storage +instead of dropping all the samples read from the target, because the parsed data is sent to the remote storage as soon as it is parsed in stream parsing mode. ## Scraping big number of targets @@ -740,7 +740,7 @@ spread scrape targets among a cluster of two `vmagent` instances: The `-promscrape.cluster.memberNum` can be set to a StatefulSet pod name when `vmagent` runs in Kubernetes. The pod name must end with a number in the range `0 ... promscrape.cluster.memberNum-1`. For example, `-promscrape.cluster.memberNum=vmagent-0`. -By default each scrape target is scraped only by a single `vmagent` instance in the cluster. If there is a need for replicating scrape targets among multiple `vmagent` instances, +By default, each scrape target is scraped only by a single `vmagent` instance in the cluster. If there is a need for replicating scrape targets among multiple `vmagent` instances, then `-promscrape.cluster.replicationFactor` command-line flag must be set to the desired number of replicas. For example, the following commands start a cluster of three `vmagent` instances, where each target is scraped by two `vmagent` instances: @@ -806,7 +806,7 @@ scrape_configs: ## Cardinality limiter -By default `vmagent` doesn't limit the number of time series each scrape target can expose. +By default, `vmagent` doesn't limit the number of time series each scrape target can expose. The limit can be enforced in the following places: * Via `-promscrape.seriesLimitPerTarget` command-line option. This limit is applied individually @@ -834,7 +834,7 @@ These metrics allow building the following alerting rules: See also `sample_limit` option at [scrape_config section](https://docs.victoriametrics.com/sd_configs.html#scrape_configs). -By default `vmagent` doesn't limit the number of time series written to remote storage systems specified at `-remoteWrite.url`. +By default, `vmagent` doesn't limit the number of time series written to remote storage systems specified at `-remoteWrite.url`. The limit can be enforced by setting the following command-line flags: * `-remoteWrite.maxHourlySeries` - limits the number of unique time series `vmagent` can write to remote storage systems during the last hour. @@ -877,7 +877,7 @@ If you have suggestions for improvements or have found a bug - please open an is * `http://vmagent-host:8429/api/v1/targets`. This handler returns JSON response compatible with [the corresponding page from Prometheus API](https://prometheus.io/docs/prometheus/latest/querying/api/#targets). * `http://vmagent-host:8429/ready`. This handler returns http 200 status code when `vmagent` finishes - it's initialization for all the [service_discovery configs](https://docs.victoriametrics.com/sd_configs.html). + its initialization for all the [service_discovery configs](https://docs.victoriametrics.com/sd_configs.html). It may be useful to perform `vmagent` rolling update without any scrape loss. ## Troubleshooting @@ -905,9 +905,9 @@ If you have suggestions for improvements or have found a bug - please open an is * The `/service-discovery` page could be useful for debugging relabeling process for scrape targets. This page contains original labels for targets dropped during relabeling. - By default the `-promscrape.maxDroppedTargets` targets are shown here. If your setup drops more targets during relabeling, + By default, the `-promscrape.maxDroppedTargets` targets are shown here. If your setup drops more targets during relabeling, then increase `-promscrape.maxDroppedTargets` command-line flag value to see all the dropped targets. - Note that tracking each dropped target requires up to 10Kb of RAM. Therefore big values for `-promscrape.maxDroppedTargets` + Note that tracking each dropped target requires up to 10Kb of RAM. Therefore, big values for `-promscrape.maxDroppedTargets` may result in increased memory usage if a big number of scrape targets are dropped during relabeling. * We recommend you increase `-remoteWrite.queues` if `vmagent_remotewrite_pending_data_bytes` metric exported @@ -917,7 +917,7 @@ If you have suggestions for improvements or have found a bug - please open an is * If you see gaps in the data pushed by `vmagent` to remote storage when `-remoteWrite.maxDiskUsagePerURL` is set, try increasing `-remoteWrite.queues`. Such gaps may appear because `vmagent` cannot keep up with sending the collected data to remote storage. - Therefore it starts dropping the buffered data if the on-disk buffer size exceeds `-remoteWrite.maxDiskUsagePerURL`. + Therefore, it starts dropping the buffered data if the on-disk buffer size exceeds `-remoteWrite.maxDiskUsagePerURL`. * `vmagent` drops data blocks if remote storage replies with `400 Bad Request` and `409 Conflict` HTTP responses. The number of dropped blocks can be monitored via `vmagent_remotewrite_packets_dropped_total` metric exported at [/metrics page](#monitoring). @@ -983,7 +983,7 @@ See also [troubleshooting docs](https://docs.victoriametrics.com/Troubleshooting * [Writing metrics to Kafka](#writing-metrics-to-kafka) The enterprise version of vmagent is available for evaluation at [releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases) page -in `vmutils-...-enteprise.tar.gz` archives and in [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. +in `vmutils-...-enterprise.tar.gz` archives and in [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. ### Reading metrics from Kafka @@ -1031,7 +1031,7 @@ data_format = "influx" These command-line flags are available only in [enterprise](https://docs.victoriametrics.com/enterprise.html) version of `vmagent`, which can be downloaded for evaluation from [releases](https://github.com/VictoriaMetrics/VictoriaMetrics/releases) page -(see `vmutils-...-enteprise.tar.gz` archives) and from [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. +(see `vmutils-...-enterprise.tar.gz` archives) and from [docker images](https://hub.docker.com/r/victoriametrics/vmagent/tags) with tags containing `enterprise` suffix. ``` -kafka.consumer.topic array @@ -1167,7 +1167,7 @@ It is safe sharing the collected profiles from security point of view, since the ## Advanced usage -`vmagent` can be fine-tuned with various command-line flags. Run `./vmagent -help` in order to see the full list of these flags with their desciptions and default values: +`vmagent` can be fine-tuned with various command-line flags. Run `./vmagent -help` in order to see the full list of these flags with their descriptions and default values: ``` ./vmagent -help @@ -1192,7 +1192,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -dryRun Whether to check config files without running vmagent. The following files are checked: -promscrape.config, -remoteWrite.relabelConfig, -remoteWrite.urlRelabelConfig, -remoteWrite.streamAggr.config . Unknown config entries aren't allowed in -promscrape.config by default. This can be changed by passing -promscrape.config.strictParse=false command-line flag -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -1202,7 +1202,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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. See also -graphiteListenAddr.useProxyProtocol -graphiteListenAddr.useProxyProtocol @@ -1212,7 +1212,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -1249,13 +1249,13 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -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 InfluxDB line contains only a single field + Uses '{measurement}' instead of '{measurement}{separator}{field_name}' for metric name if InfluxDB line contains only a single field -influxTrimTimestamp duration Trim timestamps for InfluxDB 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 to wait in the queue when -maxConcurrentInserts concurrent insert requests are executed (default 1m0s) -internStringCacheExpireDuration duration - The expire duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) + The expiry duration for caches for interned strings. See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache (default 6m0s) -internStringDisableCache Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen -internStringMaxLen int @@ -1336,9 +1336,9 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.azureSDCheckInterval duration Interval for checking for changes in Azure. This works only if azure_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs for details (default 1m0s) -promscrape.cluster.memberNum string - The number of number in the cluster of scrapers. It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") + The number of number in the cluster of scrapers. It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name (default "0") -promscrape.cluster.membersCount int - The number of members in a cluster of scrapers. Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets + The number of members in a cluster of scrapers. Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets -promscrape.cluster.name string Optional name of the cluster. If multiple vmagent clusters scrape the same targets, then each cluster must have unique name in order to properly de-duplicate samples received from these clusters. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2679 -promscrape.cluster.replicationFactor int @@ -1350,7 +1350,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.config.strictParse Whether to deny unsupported fields in -promscrape.config . Set to false in order to silently skip unsupported fields (default true) -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 + 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.consul.waitTime duration Wait time used by Consul service discovery. Default value is used if not set -promscrape.consulSDCheckInterval duration @@ -1360,9 +1360,9 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.digitaloceanSDCheckInterval duration Interval for checking for changes in digital ocean. This works only if digitalocean_sd_configs is configured in '-promscrape.config' file. See https://docs.victoriametrics.com/sd_configs.html#digitalocean_sd_configs for details (default 1m0s) -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 + 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 - 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 + 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 @@ -1413,7 +1413,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -promscrape.seriesLimitPerTarget int Optional limit on the number of unique time series a single scrape target can expose. See https://docs.victoriametrics.com/vmagent.html#cardinality-limiter for more info -promscrape.streamParse - 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control + 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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control -promscrape.suppressDuplicateScrapeTargetErrors Whether to suppress 'duplicate scrape target' errors; see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details -promscrape.suppressScrapeErrors @@ -1428,7 +1428,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.aws.accessKey array Optional AWS AccessKey to use for the corresponding -remoteWrite.url if -remoteWrite.aws.useSigv4 is set @@ -1520,14 +1520,14 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . -remoteWrite.queues int The number of concurrent queues to each -remoteWrite.url. Set more queues if default number of queues isn't enough for sending high volume of collected data to remote storage. Default value is 2 * numberOfAvailableCPUs (default 8) -remoteWrite.rateLimit array - Optional rate limit in bytes per second for data sent to the corresponding -remoteWrite.url. By default the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data is sent after temporary unavailability of the remote storage + Optional rate limit in bytes per second for data sent to the corresponding -remoteWrite.url. By default, the rate limit is disabled. It can be useful for limiting load on remote storage when big amounts of buffered data is sent after temporary unavailability of the remote storage Supports array of values separated by comma or specified via multiple flags. -remoteWrite.relabelConfig string Optional path to file with relabeling configs, which are applied to all the metrics before sending them to -remoteWrite.url. See also -remoteWrite.urlRelabelConfig. The path can point either to local file or to http url. See https://docs.victoriametrics.com/vmagent.html#relabeling -remoteWrite.keepDanglingQueues Keep persistent queues contents at -remoteWrite.tmpDataPath in case there are no matching -remoteWrite.url. Useful when -remoteWrite.url is changed temporarily and persistent queue files will be needed later on. -remoteWrite.roundDigits array - Round metric values to this number of decimal digits after the point before writing them to remote storage. Examples: -remoteWrite.roundDigits=2 would round 1.236 to 1.24, while -remoteWrite.roundDigits=-1 would round 126.78 to 130. By default digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. This option may be used for improving data compression for the stored metrics + Round metric values to this number of decimal digits after the point before writing them to remote storage. Examples: -remoteWrite.roundDigits=2 would round 1.236 to 1.24, while -remoteWrite.roundDigits=-1 would round 126.78 to 130. By default, digits rounding is disabled. Set it to 100 for disabling it for a particular remote storage. This option may be used for improving data compression for the stored metrics Supports array of values separated by comma or specified via multiple flags. -remoteWrite.sendTimeout array Timeout for sending a single block of data to the corresponding -remoteWrite.url @@ -1544,10 +1544,10 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . Input samples are de-duplicated with this interval before being aggregated. Only the last sample per each time series per each interval is aggregated if the interval is greater than zero Supports array of values separated by comma or specified via multiple flags. -remoteWrite.streamAggr.keepInput array - Whether to keep input samples after the aggregation with -remoteWrite.streamAggr.config. By default the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. See https://docs.victoriametrics.com/stream-aggregation.html + Whether to keep input samples after the aggregation with -remoteWrite.streamAggr.config. By default, the input is dropped after the aggregation, so only the aggregate data is sent to the -remoteWrite.url. See https://docs.victoriametrics.com/stream-aggregation.html Supports array of values separated by comma or specified via multiple flags. -remoteWrite.tlsCAFile array - Optional path to TLS CA file to use for verifying connections to the corresponding -remoteWrite.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to the corresponding -remoteWrite.url. By default, system CA is used Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tlsCertFile array Optional path to client-side TLS certificate file to use when connecting to the corresponding -remoteWrite.url @@ -1559,7 +1559,7 @@ See the docs at https://docs.victoriametrics.com/vmagent.html . Optional path to client-side TLS certificate key to use when connecting to the corresponding -remoteWrite.url Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tlsServerName array - Optional TLS server name to use for connections to the corresponding -remoteWrite.url. By default the server name from -remoteWrite.url is used + Optional TLS server name to use for connections to the corresponding -remoteWrite.url. By default, the server name from -remoteWrite.url is used Supports an array of values separated by comma or specified via multiple flags. -remoteWrite.tmpDataPath string Path to directory where temporary data for remote write component is stored. See also -remoteWrite.maxDiskUsagePerURL (default "vmagent-remotewrite-data") diff --git a/docs/vmalert.md b/docs/vmalert.md index 082fd35a5..27c77f4b7 100644 --- a/docs/vmalert.md +++ b/docs/vmalert.md @@ -18,7 +18,7 @@ or [cluster version](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.ht of VictoriaMetrics are capable of proxying requests to vmalert via `-vmalert.proxyURL` command-line flag. Use this feature for the following cases: * for proxying requests from [Grafana Alerting UI](https://grafana.com/docs/grafana/latest/alerting/); -* for accessing vmalert's UI through VictoriaMetrics Web interface. +* for accessing vmalerts UI through VictoriaMetrics Web interface. ## Features @@ -27,7 +27,7 @@ Use this feature for the following cases: support and expressions validation; * Prometheus [alerting rules definition format](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/#defining-alerting-rules) support; -* Integration with [Alertmanager](https://github.com/prometheus/alertmanager) starting from [Alertmanager v0.16.0-aplha](https://github.com/prometheus/alertmanager/releases/tag/v0.16.0-alpha.0); +* Integration with [Alertmanager](https://github.com/prometheus/alertmanager) starting from [Alertmanager v0.16.0-alpha](https://github.com/prometheus/alertmanager/releases/tag/v0.16.0-alpha.0); * Keeps the alerts [state on restarts](#alerts-state-on-restarts); * Graphite datasource can be used for alerting and recording rules. See [these docs](#graphite); * Recording and Alerting rules backfilling (aka `replay`). See [these docs](#rules-backfilling); @@ -275,7 +275,7 @@ Additionally, `vmalert` provides some extra templating functions listed [here](# query at `-datasource.url` and returns the first result. - `queryEscape` - escapes the input string, so it can be safely put inside [query arg](https://en.wikipedia.org/wiki/Percent-encoding) part of URL. - `quotesEscape` - escapes the input string, so it can be safely embedded into JSON string. -- `reReplaceAll regex repl` - replaces all the occurences of the `regex` in input string with the `repl`. +- `reReplaceAll regex repl` - replaces all the occurrences of the `regex` in input string with the `repl`. - `safeHtml` - marks the input string as safe to use in HTML context without the need to html-escape it. - `sortByLabel name` - sorts the input query results by the label with the given `name`. - `stripDomain` - leaves the first part of the domain. For example, `foo.bar.baz` is converted to `foo`. @@ -487,7 +487,7 @@ Cluster mode could have multiple `vminsert` and `vmselect` components. vmalert cluster In case when you want to spread the load on these components - add balancers before them and configure -`vmalert` with balancer's addresses. Please, see more about VM's cluster architecture +`vmalert` with balancer addresses. Please, see more about VM's cluster architecture [here](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#architecture-overview). #### HA vmalert @@ -512,7 +512,7 @@ Alertmanagers. To avoid recording rules results and alerts state duplication in VictoriaMetrics server don't forget to configure [deduplication](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#deduplication). -The recommended value for `-dedup.minScrapeInterval` must be greater or equal to vmalert's `evaluation_interval`. +The recommended value for `-dedup.minScrapeInterval` must be greater or equal to vmalert `evaluation_interval`. If you observe inconsistent or "jumping" values in series produced by vmalert, try disabling `-datasource.queryTimeAlignment` command line flag. Because of alignment, two or more vmalert HA pairs will produce results with the same timestamps. But due of backfilling (data delivered to the datasource with some delay) values of such results may differ, @@ -522,7 +522,7 @@ Alertmanager will automatically deduplicate alerts with identical labels, so ens all `vmalert`s are having the same config. Don't forget to configure [cluster mode](https://prometheus.io/docs/alerting/latest/alertmanager/) -for Alertmanagers for better reliability. List all Alertmanager URLs in vmalert's `-notifier.url` +for Alertmanagers for better reliability. List all Alertmanager URLs in vmalert `-notifier.url` to ensure [high availability](https://github.com/prometheus/alertmanager#high-availability). This example uses single-node VM server for the sake of simplicity. @@ -614,7 +614,7 @@ or time series modification via [relabeling](https://docs.victoriametrics.com/vm `vmalert` web UI can be accessed from [single-node version of VictoriaMetrics](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html) and from [cluster version of VictoriaMetrics](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html). -This may be used for better integraion with Grafana unified alerting system. See the following docs for details: +This may be used for better integration with Grafana unified alerting system. See the following docs for details: * [How to query vmalert from single-node VictoriaMetrics](https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#vmalert) * [How to query vmalert from VictoriaMetrics cluster](https://docs.victoriametrics.com/Cluster-VictoriaMetrics.html#vmalert) @@ -766,11 +766,11 @@ Try the following recommendations to reduce the chance of hitting the data delay [time series resolution](https://docs.victoriametrics.com/keyConcepts.html#time-series-resolution). For example, if expression is `rate(my_metric[2m]) > 0` then ensure that `my_metric` resolution is at least `1m` or better `30s`. If you use VictoriaMetrics as datasource, `[duration]` can be omitted and VictoriaMetrics will adjust it automatically. -* If you know in advance, that data in datasource is delayed - try changing vmalert's `-datasource.lookback` +* If you know in advance, that data in datasource is delayed - try changing vmalerts `-datasource.lookback` command-line flag to add a time shift for evaluations. Or extend `[duration]` to tolerate the delay. For example, `max_over_time(errors_total[10m]) > 0` will be active even if there is no data in datasource for last `9m`. * If [time series resolution](https://docs.victoriametrics.com/keyConcepts.html#time-series-resolution) -in datasource is inconsistent or `>=5min` - try changing vmalert's `-datasource.queryStep` command-line flag to specify +in datasource is inconsistent or `>=5min` - try changing vmalerts `-datasource.queryStep` command-line flag to specify how far search query can lookback for the recent datapoint. The recommendation is to have the step at least two times bigger than the resolution. @@ -822,8 +822,8 @@ and vmalert will start printing additional log messages: vmalert can detect if alert's expression doesn't match any time series in runtime. This problem usually happens when alerting expression selects time series which aren't present in the datasource (i.e. wrong `job` label) or there is a typo in the series selector (i.e. `env=rpod`). Such alerting rules will be marked with special icon in -vmalert's UI and exposed via `vmalert_alerting_rules_last_evaluation_series_fetched` metric. The metric's value will -show how many time series were matched before the filtering by rule's expression. If metric's value is `-1`, then +vmalerts UI and exposed via `vmalert_alerting_rules_last_evaluation_series_fetched` metric. The metric value will +show how many time series were matched before the filtering by rule's expression. If metric value is `-1`, then this feature is not supported by the datasource (old versions of VictoriaMetrics). The following expression can be used to detect rules matching no series: ``` @@ -876,7 +876,7 @@ The shortlist of configuration flags is the following: -clusterMode If clusterMode is enabled, then vmalert automatically adds the tenant specified in config groups to -datasource.url, -remoteWrite.url and -remoteRead.url. See https://docs.victoriametrics.com/vmalert.html#multitenancy . This flag is available only in VictoriaMetrics enterprise. See https://docs.victoriametrics.com/enterprise.html -configCheckInterval duration - Interval for checking for changes in '-rule' or '-notifier.config' files. By default the checking is disabled. Send SIGHUP signal in order to force config check for changes. + Interval for checking for changes in '-rule' or '-notifier.config' files. By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes. -datasource.appendTypePrefix Whether to add type prefix to -datasource.url based on the query type. Set to true if sending different query types to the vmselect URL. -datasource.basicAuth.password string @@ -910,7 +910,7 @@ The shortlist of configuration flags is the following: -datasource.queryStep duration How far a value can fallback to when evaluating queries. For example, if -datasource.queryStep=15s then param "step" with value "15s" will be added to every query. If set to 0, rule's evaluation interval will be used instead. (default 5m0s) -datasource.queryTimeAlignment - Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) + Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) -datasource.roundDigits int Adds "round_digits" GET param to datasource requests. In VM "round_digits" limits the number of digits after the decimal point in response values. -datasource.showURL @@ -936,7 +936,7 @@ The shortlist of configuration flags is the following: -dryRun Whether to check only config files without running vmalert. The rules file are validated. The -rule flag must be specified. -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -955,11 +955,11 @@ The shortlist of configuration flags is the following: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -1040,7 +1040,7 @@ The shortlist of configuration flags is the following: -notifier.suppressDuplicateTargetErrors Whether to suppress 'duplicate target' errors during discovery -notifier.tlsCAFile array - Optional path to TLS CA file to use for verifying connections to -notifier.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -notifier.url. By default, system CA is used Supports an array of values separated by comma or specified via multiple flags. -notifier.tlsCertFile array Optional path to client-side TLS certificate file to use when connecting to -notifier.url @@ -1052,7 +1052,7 @@ The shortlist of configuration flags is the following: Optional path to client-side TLS certificate key to use when connecting to -notifier.url Supports an array of values separated by comma or specified via multiple flags. -notifier.tlsServerName array - Optional TLS server name to use for connections to -notifier.url. By default the server name from -notifier.url is used + Optional TLS server name to use for connections to -notifier.url. By default, the server name from -notifier.url is used Supports an array of values separated by comma or specified via multiple flags. -notifier.url array Prometheus Alertmanager URL, e.g. http://127.0.0.1:9093. List all Alertmanager URLs if it runs in the cluster mode to ensure high availability. @@ -1075,7 +1075,7 @@ The shortlist of configuration flags is the following: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -remoteRead.basicAuth.password string Optional basic auth password for -remoteRead.url @@ -1108,7 +1108,7 @@ The shortlist of configuration flags is the following: -remoteRead.showURL Whether to show -remoteRead.url in the exported metrics. It is hidden by default, since it can contain sensitive info such as auth key -remoteRead.tlsCAFile string - Optional path to TLS CA file to use for verifying connections to -remoteRead.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -remoteRead.url. By default, system CA is used -remoteRead.tlsCertFile string Optional path to client-side TLS certificate file to use when connecting to -remoteRead.url -remoteRead.tlsInsecureSkipVerify @@ -1116,7 +1116,7 @@ The shortlist of configuration flags is the following: -remoteRead.tlsKeyFile string Optional path to client-side TLS certificate key to use when connecting to -remoteRead.url -remoteRead.tlsServerName string - Optional TLS server name to use for connections to -remoteRead.url. By default the server name from -remoteRead.url is used + Optional TLS server name to use for connections to -remoteRead.url. By default, the server name from -remoteRead.url is used -remoteRead.url vmalert Optional URL to datasource compatible with Prometheus HTTP API. It can be single node VictoriaMetrics or vmselect.Remote read is used to restore alerts state.This configuration makes sense only if vmalert was configured with `remoteWrite.url` before and has been successfully persisted its state. E.g. http://127.0.0.1:8428. See also '-remoteRead.disablePathAppend', '-remoteRead.showURL'. -remoteWrite.basicAuth.password string @@ -1138,7 +1138,7 @@ The shortlist of configuration flags is the following: -remoteWrite.headers string Optional HTTP headers to send with each request to the corresponding -remoteWrite.url. For example, -remoteWrite.headers='My-Auth:foobar' would send 'My-Auth: foobar' HTTP header with every request to the corresponding -remoteWrite.url. Multiple headers must be delimited by '^^': -remoteWrite.headers='header1:value1^^header2:value2' -remoteWrite.maxBatchSize int - Defines defines max number of timeseries to be flushed at once (default 1000) + Defines max number of timeseries to be flushed at once (default 1000) -remoteWrite.maxQueueSize int Defines the max number of pending datapoints to remote write endpoint (default 100000) -remoteWrite.oauth2.clientID string @@ -1156,7 +1156,7 @@ The shortlist of configuration flags is the following: -remoteWrite.showURL Whether to show -remoteWrite.url in the exported metrics. It is hidden by default, since it can contain sensitive info such as auth key -remoteWrite.tlsCAFile string - Optional path to TLS CA file to use for verifying connections to -remoteWrite.url. By default system CA is used + Optional path to TLS CA file to use for verifying connections to -remoteWrite.url. By default, system CA is used -remoteWrite.tlsCertFile string Optional path to client-side TLS certificate file to use when connecting to -remoteWrite.url -remoteWrite.tlsInsecureSkipVerify @@ -1164,7 +1164,7 @@ The shortlist of configuration flags is the following: -remoteWrite.tlsKeyFile string Optional path to client-side TLS certificate key to use when connecting to -remoteWrite.url -remoteWrite.tlsServerName string - Optional TLS server name to use for connections to -remoteWrite.url. By default the server name from -remoteWrite.url is used + Optional TLS server name to use for connections to -remoteWrite.url. By default, the server name from -remoteWrite.url is used -remoteWrite.url string Optional URL to VictoriaMetrics or vminsert where to persist alerts state and recording rules results in form of timeseries. For example, if -remoteWrite.url=http://127.0.0.1:8428 is specified, then the alerts state will be written to http://127.0.0.1:8428/api/v1/write . See also -remoteWrite.disablePathAppend, '-remoteWrite.showURL'. -replay.disableProgressBar @@ -1174,7 +1174,7 @@ The shortlist of configuration flags is the following: -replay.ruleRetryAttempts int Defines how many retries to make before giving up on rule if request for it returns an error. (default 5) -replay.rulesDelay duration - Delay between rules evaluation within the group. Could be important if there are chained rules inside of the groupand processing need to wait for previous rule results to be persisted by remote storage before evaluating the next rule.Keep it equal or bigger than -remoteWrite.flushInterval. (default 1s) + Delay between rules evaluation within the group. Could be important if there are chained rules inside the group and processing need to wait for previous rule results to be persisted by remote storage before evaluating the next rule.Keep it equal or bigger than -remoteWrite.flushInterval. (default 1s) -replay.timeFrom string The time filter in RFC3339 format to select time series with timestamp equal or higher than provided value. E.g. '2020-01-01T20:07:00Z' -replay.timeTo string @@ -1197,7 +1197,7 @@ The shortlist of configuration flags is the following: Supports an array of values separated by comma or specified via multiple flags. -rule.configCheckInterval duration - Interval for checking for changes in '-rule' files. By default the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead + Interval for checking for changes in '-rule' files. By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes. DEPRECATED - see '-configCheckInterval' instead -rule.maxResolveDuration duration Limits the maximum duration for automatic alert expiration, which by default is 4 times evaluationInterval of the parent group. -rule.resendDelay duration @@ -1212,7 +1212,7 @@ The shortlist of configuration flags is the following: -rule.templates="dir/**/*.tpl". Includes all the .tpl files in "dir" subfolders recursively. Supports an array of values separated by comma or specified via multiple flags. -rule.updateEntriesLimit int - Defines the max number of rule's state updates stored in-memory. Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overriden per rule via update_entries_limit param. (default 20) + Defines the max number of rule's state updates stored in-memory. Rule's updates are available on rule's Details page and are used for debugging purposes. The number of stored updates can be overridden per rule via update_entries_limit param. (default 20) -rule.validateExpressions Whether to validate rules expressions via MetricsQL engine (default true) -rule.validateTemplates diff --git a/docs/vmauth.md b/docs/vmauth.md index 77678236b..2840ea7a7 100644 --- a/docs/vmauth.md +++ b/docs/vmauth.md @@ -338,7 +338,7 @@ See the docs at https://docs.victoriametrics.com/vmauth.html . -configCheckInterval duration Interval for config file re-read. Zero value disables config re-reading. By default, refreshing is disabled, send SIGHUP for config refresh. -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -348,11 +348,11 @@ See the docs at https://docs.victoriametrics.com/vmauth.html . -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 diff --git a/docs/vmbackup.md b/docs/vmbackup.md index ab3438045..407912bec 100644 --- a/docs/vmbackup.md +++ b/docs/vmbackup.md @@ -86,7 +86,7 @@ The command will upload only changed data to `gs:///latest`. Where `` is the snapshot for the last day ``. -This apporach saves network bandwidth costs on hourly backups (since they are incremental) and allows recovering data from either the last hour (`latest` backup) +This approach saves network bandwidth costs on hourly backups (since they are incremental) and allows recovering data from either the last hour (`latest` backup) or from any day (`YYYYMMDD` backups). Note that hourly backup shouldn't run when creating daily backup. Do not forget to remove old backups when they are no longer needed in order to save storage costs. @@ -107,7 +107,7 @@ The backup algorithm is the following: 7. Delete the created snapshot. The algorithm splits source files into 1 GiB chunks in the backup. Each chunk is stored as a separate file in the backup. -Such splitting balances between the number of files in the backup and the amounts of data that needs to be re-transfered after temporary errors. +Such splitting balances between the number of files in the backup and the amounts of data that needs to be re-transferred after temporary errors. `vmbackup` relies on [instant snapshot](https://medium.com/@valyala/how-victoriametrics-makes-instant-snapshots-for-multi-terabyte-time-series-data-e1f3fb0e0282) properties: @@ -194,7 +194,7 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- Where to put the backup on the remote storage. Example: gs://bucket/path/to/backup, s3://bucket/path/to/backup, azblob://container/path/to/backup or fs:///path/to/local/backup/dir -dst can point to the previous backup. In this case incremental backup is performed, i.e. only changed data is uploaded -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -204,11 +204,11 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -259,7 +259,7 @@ See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time- -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) diff --git a/docs/vmbackupmanager.md b/docs/vmbackupmanager.md index 4a31b9f64..4071a0dca 100644 --- a/docs/vmbackupmanager.md +++ b/docs/vmbackupmanager.md @@ -52,7 +52,7 @@ Backup manager uploads only the data that has been changed or created since the This reduces the consumed network traffic and the time needed for performing the backup. See [this article](https://medium.com/@valyala/speeding-up-backups-for-big-time-series-databases-533c1a927883) for details. -*Please take into account that the first backup upload could take a significant amount of time as it needs to upload all of the data.* +*Please take into account that the first backup upload could take a significant amount of time as it needs to upload all the data.* There are two flags which could help with performance tuning: @@ -381,7 +381,7 @@ command-line flags: -dst string The root folder of Victoria Metrics backups. Example: gs://bucket/path/to/backup/dir, s3://bucket/path/to/backup/dir or fs:///path/to/local/backup/dir -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -391,11 +391,11 @@ command-line flags: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -451,16 +451,16 @@ command-line flags: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -runOnStart - Upload backups immediately after start of the service. Otherwise the backup starts on new hour + Upload backups immediately after start of the service. Otherwise, the backup starts on new hour -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) -snapshot.createURL string VictoriaMetrics create snapshot url. When this is given a snapshot will automatically be created during backup.Example: http://victoriametrics:8428/snapshot/create -snapshot.deleteURL string - VictoriaMetrics delete snapshot url. Optional. Will be generated from snapshot.createURL if not provided. All created snaphosts will be automatically deleted.Example: http://victoriametrics:8428/snapshot/delete + VictoriaMetrics delete snapshot url. Optional. Will be generated from snapshot.createURL if not provided. All created snapshots will be automatically deleted.Example: http://victoriametrics:8428/snapshot/delete -storageDataPath string Path to VictoriaMetrics data. Must match -storageDataPath from VictoriaMetrics or vmstorage (default "victoria-metrics-data") -tls diff --git a/docs/vmctl.md b/docs/vmctl.md index af14e9260..f1d5cf6a4 100644 --- a/docs/vmctl.md +++ b/docs/vmctl.md @@ -97,7 +97,7 @@ OpenTSDB migration works like so: - e.g. `curl -Ss "http://opentsdb:4242/api/search/lookup?m=system.load5&limit=1000000"` -Here `results` return field should not be empty. Otherwise it means that meta tables are absent and needs to be turned on previously. +Here `results` return field should not be empty. Otherwise, it means that meta tables are absent and needs to be turned on previously. 3. Download data for each series in chunks defined in the CLI switches @@ -150,7 +150,7 @@ Retention strings essentially define the two levels of aggregation for our colle First-order aggregation addresses how to aggregate any un-mentioned tags. -This is, conceptually, directly opposite to how PromQL deals with tags. In OpenTSDB, if a tag isn't explicitly mentioned, all values assocaited with that tag will be aggregated. +This is, conceptually, directly opposite to how PromQL deals with tags. In OpenTSDB, if a tag isn't explicitly mentioned, all values associated with that tag will be aggregated. It is recommended to use `sum` for the first aggregation because it is relatively quick and should not cause any changes to the incoming data (because we collect each individual series). @@ -158,9 +158,9 @@ It is recommended to use `sum` for the first aggregation because it is relativel Second-order aggregation (`1m-avg` in our example) defines any windowing that should occur before returning the data -It is recommended to match the stat collection interval so we again avoid transforming incoming data. +It is recommended to match the stat collection interval, so we again avoid transforming incoming data. -We do not allow for defining the "null value" portion of the rollup window (e.g. in the aggreagtion, `1m-avg-none`, the user cannot change `none`), as the goal of this tool is to avoid modifying incoming data. +We do not allow for defining the "null value" portion of the rollup window (e.g. in the aggregation, `1m-avg-none`, the user cannot change `none`), as the goal of this tool is to avoid modifying incoming data. #### Windows @@ -177,9 +177,9 @@ The window `1h` means that each individual query to OpenTSDB should only span 1 It is important to ensure this window somewhat matches the row size in HBase to help improve query times. -For example, if the query is hitting a rollup table with a 4 hour row size, we should set a chunk size of a multiple of 4 hours (e.g. `4h`, `8h`, etc.) to avoid requesting data across row boundaries. Landing on row boundaries allows for more consistent request times to HBase. +For example, if the query is hitting a rollup table with a 4-hour row size, we should set a chunk size of a multiple of 4 hours (e.g. `4h`, `8h`, etc.) to avoid requesting data across row boundaries. Landing on row boundaries allows for more consistent request times to HBase. -The default table created in HBase for OpenTSDB has a 1 hour row size, so if you aren't sure on a correct row size to use, `1h` is a reasonable choice. +The default table created in HBase for OpenTSDB has a 1-hour row size, so if you aren't sure on a correct row size to use, `1h` is a reasonable choice. ##### Time range @@ -201,7 +201,7 @@ Chunking the data like this means each individual query returns faster, so we ca ### Restarting OpenTSDB migrations -One important note for OpenTSDB migration: Queries/HBase scans can "get stuck" within OpenTSDB itself. This can cause instability and performance issues within an OpenTSDB cluster, so stopping the migrator to deal with it may be necessary. Because of this, we provide the timstamp we started collecting data from at thebeginning of the run. You can stop and restart the importer using this "hard timestamp" to ensure you collect data from the same time range over multiple runs. +One important note for OpenTSDB migration: Queries/HBase scans can "get stuck" within OpenTSDB itself. This can cause instability and performance issues within an OpenTSDB cluster, so stopping the migrator to deal with it may be necessary. Because of this, we provide the timestamp we started collecting data from at the beginning of the run. You can stop and restart the importer using this "hard timestamp" to ensure you collect data from the same time range over multiple runs. ## Migrating data from InfluxDB (1.x) @@ -380,7 +380,7 @@ The configuration flags should contain self-explanatory descriptions. The filtering consists of three parts: by timeseries and time. Filtering by time may be configured via flags `--prom-filter-time-start` and `--prom-filter-time-end` -in in RFC3339 format. This filter applied twice: to drop blocks out of range and to filter timeseries in blocks with +in RFC3339 format. This filter applied twice: to drop blocks out of range and to filter timeseries in blocks with overlapping time range. Example of applying time filter: @@ -407,7 +407,7 @@ since this is heavy operation and will be done during import process. Filtering by timeseries is configured with following flags: - `--prom-filter-label` - the label name, e.g. `__name__` or `instance`; -- `--prom-filter-label-value` - the regular expression to filter the label value. By default matches all `.*` +- `--prom-filter-label-value` - the regular expression to filter the label value. By default, matches all `.*` For example: @@ -663,7 +663,7 @@ requires an Authentication header like `X-Scope-OrgID`. You can define it via th ## Migrating data from Mimir -Mimir has similar implemintation as Cortex and also support of the Prometheus remote read protocol. That means +Mimir has similar implementation as Cortex and also support of the Prometheus remote read protocol. That means `vmctl` in mode `remote-read` may also be used for Mimir historical data migration. These instructions may vary based on the details of your Mimir configuration. Please read carefully and verify as you go. @@ -999,7 +999,7 @@ to number of free CPU cores. The flag `--vm-concurrency` controls the number of concurrent workers that process the input from InfluxDB query results. Please note that each import request can load up to a single vCPU core on VictoriaMetrics. So try to set it according -to allocated CPU resources of your VictoriMetrics installation. +to allocated CPU resources of your VictoriaMetrics installation. The flag `--vm-batch-size` controls max amount of samples collected before sending the import request. For example, if `--influx-chunk-size=500` and `--vm-batch-size=2000` then importer will process not more @@ -1044,7 +1044,7 @@ according to [information theory](https://en.wikipedia.org/wiki/Information_theo `vmctl` provides the following flags for improving data compression: - `--vm-round-digits` flag for rounding processed values to the given number of decimal digits after the point. - For example, `--vm-round-digits=2` would round `1.2345` to `1.23`. By default the rounding is disabled. + For example, `--vm-round-digits=2` would round `1.2345` to `1.23`. By default, the rounding is disabled. - `--vm-significant-figures` flag for limiting the number of significant figures in processed values. It takes no effect if set to 0 (by default), but set `--vm-significant-figures=5` and `102.342305` will be rounded to `102.34`. @@ -1054,7 +1054,7 @@ results such as `average`, `rate`, etc. ### Adding extra labels - `vmctl` allows to add extra labels to all imported series. It can be achived with flag `--vm-extra-label label=value`. + `vmctl` allows to add extra labels to all imported series. It can be achieved with flag `--vm-extra-label label=value`. If multiple labels needs to be added, set flag for each label, for example, `--vm-extra-label label1=value1 --vm-extra-label label2=value2`. If timeseries already have label, that must be added with `--vm-extra-label` flag, flag has priority and will override label value from timeseries. diff --git a/docs/vmgateway.md b/docs/vmgateway.md index 8d11694ff..0a13004ab 100644 --- a/docs/vmgateway.md +++ b/docs/vmgateway.md @@ -48,7 +48,7 @@ jwt token must be in following format: Where: * `exp` - required, expire time in unix_timestamp. If the token expires then `vmgateway` rejects the request. -* `vm_access` - required, dict with claim info, minimum form: `{"vm_access": {"tenand_id": {}}` +* `vm_access` - required, dict with claim info, minimum form: `{"vm_access": {"tenant_id": {}}` * `tenant_id` - optional, for cluster mode, routes requests to the corresponding tenant. * `extra_labels` - optional, key-value pairs for label filters added to the ingested or selected metrics. Multiple filters are added with `and` operation. If defined, `extra_label` from original request removed. * `extra_filters` - optional, [series selectors](https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors) added to the select query requests. Multiple selectors are added with `or` operation. If defined, `extra_filter` from original request removed. @@ -148,7 +148,7 @@ EOF ./bin/vmselect -eula -storageNode 127.0.0.1:8401 ./bin/vminsert -eula -storageNode 127.0.0.1:8400 -# create base rate limitng config: +# create base rate limiting config: cat << EOF > limit.yaml limits: - type: queries @@ -314,7 +314,7 @@ The shortlist of configuration flags include the following: -datasource.queryStep duration How far a value can fallback to when evaluating queries. For example, if -datasource.queryStep=15s then param "step" with value "15s" will be added to every query. If set to 0, rule's evaluation interval will be used instead. (default 5m0s) -datasource.queryTimeAlignment - Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite of number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) + Whether to align "time" parameter with evaluation interval.Alignment supposed to produce deterministic results despite number of vmalert replicas or time they were started. See more details here https://github.com/VictoriaMetrics/VictoriaMetrics/pull/1257 (default true) -datasource.roundDigits int Adds "round_digits" GET param to datasource requests. In VM "round_digits" limits the number of digits after the decimal point in response values. -datasource.showURL @@ -336,7 +336,7 @@ The shortlist of configuration flags include the following: -enable.rateLimit enables rate limiter -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -346,11 +346,11 @@ The shortlist of configuration flags include the following: -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -400,7 +400,7 @@ The shortlist of configuration flags include the following: -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -ratelimit.config string path for configuration file. Accepts url address diff --git a/docs/vmrestore.md b/docs/vmrestore.md index 4bbe3278c..57223826e 100644 --- a/docs/vmrestore.md +++ b/docs/vmrestore.md @@ -98,7 +98,7 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -customS3Endpoint string Custom S3 endpoint for use with S3-compatible storages (e.g. MinIO). S3 is used if not set -enableTCP6 - Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used + Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP 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. See https://docs.victoriametrics.com/#environment-variables for more details -envflag.prefix string @@ -108,11 +108,11 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -flagsAuthKey string Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings -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() + 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() -http.connTimeout duration Incoming http connections are closed after the configured timeout. This may help to spread the incoming load among a cluster of services behind a load balancer. Please note that the real timeout may be bigger by up to 10% as a protection against the thundering herd problem (default 2m0s) -http.disableResponseCompression - Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth + Disable compression of HTTP responses to save 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 @@ -161,7 +161,7 @@ i.e. the end result would be similar to [rsync --delete](https://askubuntu.com/q -pushmetrics.interval duration Interval for pushing metrics to -pushmetrics.url (default 10s) -pushmetrics.url array - Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default metrics exposed at /metrics page aren't pushed to any remote storage + Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . By default, metrics exposed at /metrics page aren't pushed to any remote storage Supports an array of values separated by comma or specified via multiple flags. -s3ForcePathStyle Prefixing endpoint with bucket name when set false, true by default. (default true) diff --git a/lib/bytesutil/internstring.go b/lib/bytesutil/internstring.go index 4ac49a290..ab9c712a1 100644 --- a/lib/bytesutil/internstring.go +++ b/lib/bytesutil/internstring.go @@ -15,7 +15,7 @@ var ( "See https://en.wikipedia.org/wiki/String_interning . See also -internStringDisableCache and -internStringCacheExpireDuration") disableCache = flag.Bool("internStringDisableCache", false, "Whether to disable caches for interned strings. This may reduce memory usage at the cost of higher CPU usage. "+ "See https://en.wikipedia.org/wiki/String_interning . See also -internStringCacheExpireDuration and -internStringMaxLen") - cacheExpireDuration = flag.Duration("internStringCacheExpireDuration", 6*time.Minute, "The expire duration for caches for interned strings. "+ + cacheExpireDuration = flag.Duration("internStringCacheExpireDuration", 6*time.Minute, "The expiry duration for caches for interned strings. "+ "See https://en.wikipedia.org/wiki/String_interning . See also -internStringMaxLen and -internStringDisableCache") ) diff --git a/lib/fs/reader_at.go b/lib/fs/reader_at.go index abc9f7e92..1ddab11c1 100644 --- a/lib/fs/reader_at.go +++ b/lib/fs/reader_at.go @@ -11,7 +11,7 @@ import ( ) var disableMmap = flag.Bool("fs.disableMmap", is32BitPtr, "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. "+ + "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()") // Disable mmap for architectures with 32-bit pointers in order to be able to work with files exceeding 2^32 bytes. diff --git a/lib/httpserver/httpserver.go b/lib/httpserver/httpserver.go index a8335c3b8..4f249208d 100644 --- a/lib/httpserver/httpserver.go +++ b/lib/httpserver/httpserver.go @@ -46,7 +46,7 @@ var ( flagsAuthKey = flag.String("flagsAuthKey", "", "Auth key for /flags endpoint. It must be passed via authKey query arg. It overrides httpAuth.* settings") pprofAuthKey = flag.String("pprofAuthKey", "", "Auth key for /debug/pprof/* endpoints. It must be passed via authKey query arg. It overrides httpAuth.* settings") - disableResponseCompression = flag.Bool("http.disableResponseCompression", false, "Disable compression of HTTP responses to save CPU resources. By default compression is enabled to save network bandwidth") + disableResponseCompression = flag.Bool("http.disableResponseCompression", false, "Disable compression of HTTP responses to save CPU resources. By default, compression is enabled to save network bandwidth") maxGracefulShutdownDuration = flag.Duration("http.maxGracefulShutdownDuration", 7*time.Second, `The maximum duration for a graceful shutdown of the HTTP server. A highly loaded server may require increased value for a graceful shutdown`) shutdownDelay = flag.Duration("http.shutdownDelay", 0, `Optional delay before http server shutdown. During this delay, the server returns non-OK responses from /health page, so load balancers can route new requests to other servers`) idleConnTimeout = flag.Duration("http.idleConnTimeout", time.Minute, "Timeout for incoming idle http connections") diff --git a/lib/netutil/tcplistener.go b/lib/netutil/tcplistener.go index 900f20ed5..3381b5884 100644 --- a/lib/netutil/tcplistener.go +++ b/lib/netutil/tcplistener.go @@ -13,7 +13,7 @@ import ( "github.com/VictoriaMetrics/metrics" ) -var enableTCP6 = flag.Bool("enableTCP6", false, "Whether to enable IPv6 for listening and dialing. By default only IPv4 TCP and UDP is used") +var enableTCP6 = flag.Bool("enableTCP6", false, "Whether to enable IPv6 for listening and dialing. By default, only IPv4 TCP and UDP is used") // NewTCPListener returns new TCP listener for the given addr and optional tlsConfig. // diff --git a/lib/promscrape/client.go b/lib/promscrape/client.go index 24d4bb6c2..76cef03a6 100644 --- a/lib/promscrape/client.go +++ b/lib/promscrape/client.go @@ -26,14 +26,14 @@ var ( maxResponseHeadersSize = flagutil.NewBytes("promscrape.maxResponseHeadersSize", 4096, "The maximum size of http response headers from Prometheus scrape targets") disableCompression = flag.Bool("promscrape.disableCompression", false, "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") + "It is possible to set 'disable_compression: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control") disableKeepAlive = flag.Bool("promscrape.disableKeepAlive", false, "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. "+ + "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") streamParse = flag.Bool("promscrape.streamParse", false, "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 possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine grained control") + "It is possible to set 'stream_parse: true' individually per each 'scrape_config' section in '-promscrape.config' for fine-grained control") ) type client struct { diff --git a/lib/promscrape/config.go b/lib/promscrape/config.go index 95d4d74b4..e5c07eff1 100644 --- a/lib/promscrape/config.go +++ b/lib/promscrape/config.go @@ -54,10 +54,10 @@ var ( "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") clusterMembersCount = flag.Int("promscrape.cluster.membersCount", 0, "The number of members in a cluster of scrapers. "+ - "Each member must have an unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . "+ - "Each member then scrapes roughly 1/N of all the targets. By default cluster scraping is disabled, i.e. a single scraper scrapes all the targets") + "Each member must have a unique -promscrape.cluster.memberNum in the range 0 ... promscrape.cluster.membersCount-1 . "+ + "Each member then scrapes roughly 1/N of all the targets. By default, cluster scraping is disabled, i.e. a single scraper scrapes all the targets") clusterMemberNum = flag.String("promscrape.cluster.memberNum", "0", "The number of number in the cluster of scrapers. "+ - "It must be an unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. "+ + "It must be a unique value in the range 0 ... promscrape.cluster.membersCount-1 across scrapers in the cluster. "+ "Can be specified as pod name of Kubernetes StatefulSet - pod-name-Num, where Num is a numeric part of pod name") clusterReplicationFactor = flag.Int("promscrape.cluster.replicationFactor", 1, "The number of members in the cluster, which scrape the same targets. "+ "If the replication factor is greater than 1, then the deduplication must be enabled at remote storage side. See https://docs.victoriametrics.com/#deduplication") diff --git a/lib/promscrape/scraper.go b/lib/promscrape/scraper.go index 5c4c97502..53bfccda4 100644 --- a/lib/promscrape/scraper.go +++ b/lib/promscrape/scraper.go @@ -37,7 +37,7 @@ import ( var ( configCheckInterval = flag.Duration("promscrape.configCheckInterval", 0, "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") + "By default, the checking is disabled. Send SIGHUP signal in order to force config check for changes") suppressDuplicateScrapeTargetErrors = flag.Bool("promscrape.suppressDuplicateScrapeTargetErrors", false, "Whether to suppress 'duplicate scrape target' errors; "+ "see https://docs.victoriametrics.com/vmagent.html#troubleshooting for details") promscrapeConfigFile = flag.String("promscrape.config", "", "Optional path to Prometheus config file with 'scrape_configs' section containing targets to scrape. "+ diff --git a/lib/pushmetrics/pushmetrics.go b/lib/pushmetrics/pushmetrics.go index c23bc6248..a6d2dd0b5 100644 --- a/lib/pushmetrics/pushmetrics.go +++ b/lib/pushmetrics/pushmetrics.go @@ -13,7 +13,7 @@ import ( var ( pushURL = flagutil.NewArrayString("pushmetrics.url", "Optional URL to push metrics exposed at /metrics page. See https://docs.victoriametrics.com/#push-metrics . "+ - "By default metrics exposed at /metrics page aren't pushed to any remote storage") + "By default, metrics exposed at /metrics page aren't pushed to any remote storage") pushInterval = flag.Duration("pushmetrics.interval", 10*time.Second, "Interval for pushing metrics to -pushmetrics.url") pushExtraLabel = flagutil.NewArrayString("pushmetrics.extraLabel", "Optional labels to add to metrics pushed to -pushmetrics.url . "+ `For example, -pushmetrics.extraLabel='instance="foo"' adds instance="foo" label to all the metrics pushed to -pushmetrics.url`)