Skip to content

Tags: zonk1/VictoriaMetrics

Tags

v1.39.4

* FEATURE: improve query performance and concurrency on systems with …

…big number of CPU cores (16+ vCPUs).

* FEATURE: limit the maximum memory usage and reduce CPU trashing on vmstorage when multiple heavy queries are executed.
  See VictoriaMetrics#648
* FEATURE: improve PromQL compatibility at https://promlabs.com/promql-compliance-test-results-victoriametrics/ .
  See VictoriaMetrics#673 , VictoriaMetrics#674 ,
  VictoriaMetrics#675
* FEATURE: vmagent: export `scrape_samples_added` per-target metric like Prometheus does.
  This metric may be useful for detecting targets with high churn rate for the exported metrics.
  See VictoriaMetrics#683
* FEATURE: vmalert: extend exported metrics. See VictoriaMetrics#573 .
* FEATURE: vmauth: properly trigger browser auth dialog. See VictoriaMetrics#680
* FEATURE: slow down concurrent searches when the number of concurrent inserts reaches the limit.
  This should improve data ingestion performance when heavy searches are executed.
  See VictoriaMetrics#648 and VictoriaMetrics#618
* FEATURE: export `vm_nfs_pending_dirs_to_remove` metric for monitoring the number of pending directories that couldn't be removed due to NFS lock
* BUGFIX: rename `vm_cache_size_entries{type="storage/prefetchedMetricIDs"}` to `vm_cache_entries{type="storage/prefetchedMetricIDs"}` to be consistent
  with other `vm_cache_entries` metrics
* BUGFIX: vmauth: add missing `-tls*` flags in `*-cluster` release. See VictoriaMetrics#677

v1.39.4-cluster

vendor: `make vendor-update`

v1.39.3

* FEATURE: add MetricsQL functions for calculating [z-score](https://…

…en.wikipedia.org/wiki/Standard_score) over time and over a group of time series.

  The following functions are added: `zscore_over_time(m[d])` and `zscore(q) by (group)`. They may be used for anomaly detection.
  See more details at [MetricsQL docs](https://victoriametrics.github.io/MetricsQL.html).
* FEATURE: show `X-Forwarded-For` contents on `/api/v1/status/active_queries` page. See VictoriaMetrics#659 .
* FEATURE: vmbackup, vmrestore: allow using `~/.aws/config` without region. Determining bucket region via `us-west-2`.
  See [vmbackup docs](https://victoriametrics.github.io/vmbackup.html) for details.
* FEATURE: use warning level instead of info level for logging slow queries that take longer than `-search.logSlowQueryDuration`.
* BUGFIX: vmagent: prevent from closing keep-alive connections to remote storage in case `-remoteWrite.queues` is set to value bigger than 1.
  See VictoriaMetrics#663 .
* BUGFIX: reduce the maximum number of concurrent merge workers to `GOMAXPROCS/2`. The limit has been raised to GOMAXPROCS in `v1.39.2`,
  but it has been appeared that this may increase query latencies, because more CPUs are busy with merges.
* BUGFIX: do not adjust `start` and `end` query args passed to `/api/v1/query_range` when `-search.disableCache` command-line flag is set.
  See VictoriaMetrics#563 .

v1.39.3-cluster

Perform conversion from string to []byte according to rule VictoriaMe…

…trics#6 at https://golang.org/pkg/unsafe/#Pointer

v1.39.2

* FEATURE: vmalert: add `-external.label` command-line flag to specif…

…y global labelset for all rules. This flag supposed to help to distinguish the source of

  alert or recording rules when more than one `vmalert` runs for the same datasource or AlertManager. See VictoriaMetrics#622
* FEATURE: show query origin (aka remote_addr or client address) on the `/api/v1/status/active_queries` page for every query.
* FEATURE: add `X-Forwarded-For` header value to remoteAddr in error logs. See VictoriaMetrics#659

* BUGFIX: do not prioritize merging of small parts over merging of big parts, since this doesn't work as expected.
  The prioritizing could lead to starvation for big part merges, which could end up in too big number of parts that must be merged into big parts.
  Multiple big merges may be initiated after the migration from v1.39.0 or v1.39.1 to v1.39.2 or newer releases.
  It is OK - these merges should be finished soon. After that CPU load and disk IO usage should return to normal levels.
  See VictoriaMetrics#648 and VictoriaMetrics#618
* BUGFIX: vmagent: add missing `resp.Body.Close()` call after pushing data to remote storage. Missing body close could disable HTTP keep-alive connections,
  which could lead to higher load on re-establishing connections to remote storage after each request to it.
  See VictoriaMetrics#653
* BUGFIX: vmalert,vminsert: properly preserve `db` tag from query string passed to Influx line protocol query.
  Previously `db` tag from the query string wasn't added to metrics after encountering `db` tag in the Influx line. See VictoriaMetrics#653
* BUGFIX: return empty values instead of 1 from `group()` if all the time series in the group have no values at the given timestamp. This aligns `group()` behaviour to Prometheus.
* BUGFIX: improve `rate_over_sum(m[d])` handling for cases when `m` contains zero or one data point on the time range `d`.
* BUGFIX: properly update `vm_slow_row_inserts_total` metric when importing multiple data points per time series at once.
  Previously the `vm_slow_row_inserts_total` metric could be incremented multiple times for different data points per a single time series,
  while only a single increment is needed when inserting the first data point for this time series.

v1.39.2-cluster

lib/storage: remove prioritizing of merging small parts over merging …

…big parts, since it doesn't work as expected

The prioritizing could lead to big merge starvation, which could end up in too big number of parts that must be merged into big parts.

Multiple big merges may be initiated after the migration from v1.39.0 or v1.39.1. It is OK - these merges should be finished soon,
which should return CPU and disk IO usage to normal levels.

Updates VictoriaMetrics#648
Updates VictoriaMetrics#618

v1.39.1

* FEATURE: limit memory usage when ingesting big packets of data via …

…Prometheus remote_write protocol.

* FEATURE: optimize `buckets_limit(k, buckets)` for big number of buckets and improve its accuracy for small `k` values.
* FEATURE: reduce memory usage by up to 12% when working with big number of time series. See VictoriaMetrics#655
* BUGFIX: vmagent: fix a bug, which could halt sending data to `-remoteWrite.url` after intermittent errors.
  The error log contains the following messages in this case:

      http: ContentLength=... with Body length 0

  See VictoriaMetrics#653

v1.39.1-cluster

lib/storage: metaindexRow use memroy more efficiently (VictoriaMetric…

…s#655)

due to memory align the metaindexRow structure use 64-byte pre object.
this commit changes the order of field, make metaindexRow use 56-byte pre
object.

Signed-off-by: Sasasu <[email protected]>

v1.39.0

* FEATURE: improve prioritizing of data ingestion over querying. See V…

…ictoriaMetrics#291

  and VictoriaMetrics#648 .
* FEATURE: respect `-search.maxQueryDuration` when searching for time series matching the given label filters.
  Previously the time spent on inverted index search could exceed the configured `-search.maxQueryDuration`.
* FEATURE: optimize performance for label filters touching big number of time series.
* FEATURE: reduce memory usage for heavy queries touching big number of time series with long labels. See VictoriaMetrics#646 .
* FEATURE: add `group()` aggregate function to [MetricsQL](https://victoriametrics.github.io/MetricsQL.html). This function has been added in Prometheus 2.20.
  See prometheus/prometheus#7480 .
* FEATURE: add `rate_over_sum(m[d])` function to MetricsQL, which returns rate over sum of `m` values over `d` duration. Something like `sum_over_time(m[d]) / d`, but more accurate.
* FEATURE: add `mode_over_time(m[d])` function to [MetricsQL](https://victoriametrics.github.io/MetricsQL.html). See https://en.wikipedia.org/wiki/Mode_(statistics)
  and https://stackoverflow.com/questions/61134078/promql-query-to-return-the-value-from-a-range-vector-which-occurs-maximum-no-of .
* FEATURE: add `mode()` aggregate function. See [MetricsQL docs](https://victoriametrics.github.io/MetricsQL.html) for details.
* FEATURE: add `buckets_limit(k, buckets)` function, which limits the number of buckets per time series to `k`.
  This function works with both Prometheus-style and VictoriaMetrics-style buckets. The function removes buckets with the lowest hits in order to preserve the highest accuracy.
  The function is useful for building heatmaps in Grafana from too big number of buckets.
  See https://medium.com/@valyala/improving-histogram-usability-for-prometheus-and-grafana-bc7e5df0e350 for details.
* FEATURE: add Grafana dashboard for [vmagent](https://victoriametrics.github.io/vmagent.html). See https://victoriametrics.github.io/vmagent.html#monitoring .
* FEATURE: update Go runtime from v1.14.4 to v1.14.6 . See https://github.com/golang/go/issues?q=milestone%3AGo1.14.6+label%3ACherryPickApproved
  and https://github.com/golang/go/issues?q=milestone%3AGo1.14.5+label%3ACherryPickApproved for a list of fixed issues in Go runtime.
* FEATURE: keep all labels for time series from `any()` call. This improves usability for `any(q) by (...)` results. See https://victoriametrics.github.io/MetricsQL.html .
* FEATURE: log remote address in error message from `httpserver.Errorf`. This should improve detection of the root cause of errors.
* FEATURE: vmagent: add `-remoteWrite.proxyURL` command-line option. This option allows writing data to `-remoteWrite.url` via http, https or socks5 proxy.
  This is similar to `proxy_url` option in `remote_write` section of Prometheus. See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write
* FEATURE: vmagent: add `-remoteWrite.decimalPlaces` command-line flag, which may be used for reducing disk space usage on the remote storage.
* FEATURE: log the total available memory for concurrent requests on `not enough memory` errors. This should simplify root cause analysis.
* FEATURE: take into account the time spent in wait queue before query execution as time spent on the query.
* FEATURE: export `vm_relabel_metrics_dropped_total` metric that shows the number of metrics dropped due to relabeling.

* BUGFIX: fix relabeling for metrics ingested via Influx line protocol. Previously the enabled relabeling with `-relabelConfig` command-line flag could result in missing labels
  if a single Influx line protocol message contains multiple field values. See VictoriaMetrics#638 .
* BUGFIX: support `d`, `w` and `y` suffixes for durations passed to `step` in `/api/v1/query_range` like Prometheus does.
  See VictoriaMetrics#641
* BUGFIX: do not return time series with empty list of datapoints from `/api/v1/query_range`. This should fix issue in Promxy. See jacksontj/promxy#329 .
* BUGFIX: fix `nil pointer dereference` panic when unsuccessfully querying `vmstorage`.
* BUGFIX: skip the first value in time series passed to `increase()` if it exceeds by more than 10x the delta between the next value and the first value.
  This should prvent from inflated `increase()` results for time series that start from big initial values.
  Such cases may occur when a label value changes in a metric without counter reset.
* BUGFIX: properly calculate `vm_cache_requests_total` and `vm_cache_misses_total` metrics. Previously they could be inflated by multiple times.
* BUGFIX: allow setting `[d]` window smaller than the interval between raw points for `avg_over_time`.
  This makes `avg_over_time` behavior consistent with `sum_over_time` and `count_over_time` behaviors. See VictoriaMetrics#636 .
* BUGFIX: vmagent: allow passing empty `-remoteWrite.urlRelabelConfig` entries when multiple `-remoteWrite.url` flags are set.

v1.39.0-cluster

deployment/docker/docker-compose.yml: update Grafana version from 7.0…

….3 to 7.1.1