Changelog History
Page 2
-
v1.44.0 Changes
October 13, 2020๐ Changes since v1.43.0
FEATURE: automatically add missing label filters to binary operands as described at https://utcc.utoronto.ca/~cks/space/blog/sysadmin/PrometheusLabelNonOptimization . This should improve performance for queries with missing label filters in binary operands. For example, the following query should work faster now, because it shouldn't fetch and discard time series for
node_filesystem_files_free
metric without matching labels for the left side of the expression:node_filesystem_files{ host="$host", mountpoint="/" } - node_filesystem_files_free
FEATURE: vmagent: add Docker Swarm service discovery (aka dockerswarm_sd_config). See #656
๐ FEATURE: add ability to export data in CSV format. See these docs for details.
๐ FEATURE: vmagent: add
-promscrape.suppressDuplicateScrapeTargetErrors
command-line flag for suppressingduplicate scrape target
errors. See #651 and https://victoriametrics.github.io/vmagent.html#troubleshooting .๐ FEATURE: vmagent: show original labels before relabeling is applied on
duplicate scrape target
errors. This should simplify debugging for incorrect relabeling. See #651FEATURE: vmagent:
/targets
page now accepts optionalshow_original_labels=1
query arg for displaying original labels for each target before relabeling is applied. This should simplify debugging for target relabeling configs. See #651๐ FEATURE: add
-finalMergeDelay
command-line flag for configuring the delay before final merge for per-month partitions. The final merge is started after no new data is ingested into per-month partition during-finalMergeDelay
.FEATURE: add
vm_rows_added_to_storage_total
metric, which shows the total number of rows added to storage since app start. Thesum(rate(vm_rows_added_to_storage_total))
can be smaller thansum(rate(vm_rows_inserted_total))
if certain metrics are dropped due to relabeling. Thesum(rate(vm_rows_added_to_storage_total))
can be bigger thansum(rate(vm_rows_inserted_total))
if replication is enabled.๐ FEATURE: keep metric name after applying MetricsQL functions, which don't change time series meaning. The list of such functions:
keep_last_value
keep_next_value
interpolate
running_min
running_max
running_avg
range_min
range_max
range_avg
range_first
range_last
range_quantile
smooth_exponential
ceil
floor
round
clamp_min
clamp_max
max_over_time
min_over_time
avg_over_time
quantile_over_time
mode_over_time
geomean_over_time
holt_winters
predict_linear
๐ See #674
๐ BUGFIX: properly handle stale time series after K8S deployment. Previously such time series could be double-counted. See #748
๐ BUGFIX: return a single time series at max from
absent()
function like Prometheus does.๐ BUGFIX: vmalert: accept days, weeks and years in
for:
part of config like Prometheus does. See #817BUGFIX: fix
mode_over_time(m[d])
calculations. Previously the function could return incorrect results.How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here. -
v1.43.0 Changes
October 06, 2020๐ Changes since v1.42.0
๐ FEATURE: reduce CPU usage for repeated queries over sliding time window when no new time series are added to the database.
Typical use cases: repeated evaluation of alerting rules in vmalert or dashboard auto-refresh in Grafana.FEATURE: vmagent: add OpenStack service discovery aka openstack_sd_config. See #728
๐ FEATURE: vmalert: make
-maxIdleConnections
configurable for datasource HTTP client. This option can be used for minimizing connection churn.
๐ See #795 .๐ FEATURE: add
-influx.maxLineSize
command-line flag for configuring the maximum size for a single Influx line during parsing.
๐ See #807๐ BUGFIX: properly handle
inf
values during background merge of LSM parts.
๐ PreviouslyInf
values could result inNaN
values for adjancent samples in time series. See #805 .BUGFIX: fill gaps on graphs for
range_*
andrunning_*
functions. See #806 .๐ BUGFIX: make a copy of label with new name during relabeling with
action: labelmap
in the same way as Prometheus does.
๐ Previously the original label name has been replaced. See #812 .๐ BUGFIX: support parsing floating-point timestamp like Graphite Carbon does. Such timestmaps are truncated to seconds.
How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here. -
v1.43.0-cluster
October 06, 2020 -
v1.42.0 Changes
September 30, 2020๐ Changes since v1.41.1
๐ FEATURE: use all the available CPU cores when accepting data via a single TCP connection for all the supported protocols. Previously data ingested via a single TCP connection could use only a single CPU core. This could limit data ingestion performance. The main benefit of this feature is that data can be imported at max speed via a single connection - there is no need to open multiple concurrent connections to VictoriaMetrics or vmagent in order to achieve the maximum data ingestion speed.
๐ FEATURE: cluster: improve performance for data ingestion path from
vminsert
tovmstorage
nodes. The maximum data ingestion performance for a single connection betweenvminsert
andvmstorage
node scales with the number of available CPU cores onvmstorage
side. This should help with #791 .๐ FEATURE: add ability to export / import data in native format via
/api/v1/export/native
and/api/v1/import/native
. This is the most optimized approach for data migration between VictoriaMetrics instances. Both single-node and cluster instances are supported. See #787 (comment) .FEATURE: add
reduce_mem_usage
query option to/api/v1/export
in order to reduce memory usage during data export / import. See these docs for details.๐ FEATURE: improve performance for
/api/v1/series
handler when it returns big number of time series.๐ FEATURE: add
vm_merge_need_free_disk_space
metric, which can be used for estimating the number of deferred background data merges due to the lack of free disk space. See #686 .๐ FEATURE: add OpenBSD support. See #785 .
๐ BUGFIX: properly apply
-search.maxStalenessInterval
command-line flag value. See #784 .๐ BUGFIX: fix displaying data in Grafana tables. See #720 .
๐ BUGFIX: do not adjust the number of detected CPU cores found at
/sys/devices/system/cpu/online
. The adjustment was increasing the resulting GOMAXPROC by 1, which looked confusing to users. See #685 (comment) .๐ BUGFIX: vmagent: do not show
-remoteWrite.url
in initial logs if-remoteWrite.showURL
isn't set. See #773 .๐ BUGFIX: properly handle case when /metrics/find finds both a leaf and a node for the given
query=prefix.*
. In this case only the node must be returned with stripped dot in the end of id as carbonapi does.How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here. -
v1.42.0-cluster
September 29, 2020 -
v1.41.1 Changes
September 23, 2020๐ Changes since v1.41.0
- ๐ FEATURE: add
/internal/force_merge
handler for running forced compactions on historical per-month partitions. This may be useful for freeing up storage space after time series deletion. See https://victoriametrics.github.io/#forced-merge for more details. - ๐ FEATURE: reduce memory usage when querying time series with big number of samples in each series.
- ๐ FEATURE: optimize searching for time series via regexp label filters. See #781
- ๐ FEATURE: vmagent: reduce memory usage when scraping targets with millions of metrics
- ๐ FEATURE: vmagent: add support for
role_arn
and instance IAM tokens in EC2 service discovery. See #771 - ๐ FEATURE: vmagent: make persistent queue more durable after unclean shutdown (kill -9, OOM, hard reset). See #687
- ๐ FEATURE: vmagent: substitute
-remoteWrite.url
withsecret-url
value in logs, since it may contain sensitive info such as passwords or auth tokens. Pass-remoteWrite.showURL
command-line flag in order to see real-remoteWrite.url
in logs and at/metrics
page. See #773 - ๐ FEATURE: vmagent: protect from concurrent access to the same
-remoteWrite.tmpDataPath
from multiplevmagent
instances. Previously this could lead to data corruption. - ๐ FEATURE: vmalert: add support for
datasource.lookback
flag, which defines how far to look into the past when evaluating queries. See #668 - ๐ FEATURE: add
-loggerDisableTimestamps
command-line flag for disabling timestamps in logs. See #778 - ๐ FEATURE: attempt to obtain available CPU cores via
/sys/devices/system/cpu/online
. See #685 (comment) - ๐ BUGFIX: release occupied resources on query timeouts in single-node VictoriaMetrics. Previously there was resource leak, which could lead to many open files. See #716
- ๐ BUGFIX: return proper results from
/metrics/find?query=foo.*.bar
according to Graphite Metrics API - ๐ BUGFIX: properly parse
+Inf
values during data ingestion via text-based protocols (Graphite, Influx, OpenTSDB, JSON). Previously such values were silently converted to 0. See VictoriaMetrics/vmctl#25 - ๐ BUGFIX: log errors when timestamps or values cannot be parsed during data ingestion via text-based protocols. Previously such values were silently converted to 0. See #99
- ๐ BUGFIX: use
time
value rounded to seconds if it isn't passed to/api/v1/query
. This fixes table results in Grafana. See #720
How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here. - ๐ FEATURE: add
-
v1.41.1-cluster
September 22, 2020 -
v1.41.0 Changes
September 11, 2020๐ Changes since v1.40.1
FEATURE: reuse timestamp blocks for adjancent metric blocks with identical timestamps. This reduces disk space usage when scraping targets containing metrics with identical names such as
node_cpu_seconds_total
, histograms, quantiles, etc. Important : this changes on-disk data format. This makes impossible downgrading to releases below v1.41.0. These releases may panic with the following error after downgrading:cannot read next block: invalid TimestampsBlockOffset at block header at offset ...
๐ FEATURE: initial implementation of Graphite Metrics API - see these docs.
FEATURE: vmagent: add
endpointslices
discovery type tokubernetes_sd_config
. This is similar to prometheus/prometheus#6838 , which has been added in Prometheus v2.21. See https://github.com/prometheus/prometheus/releases/tag/v2.21.0FEATURE: vmagent: add
__meta_dns_srv_record_target
and__ meta_dns_srv_record_port
labels todns_sd_config
. This syncs dns service discovery with Prometheus 2.21 - see https://github.com/prometheus/prometheus/releases/tag/v2.21.0 and prometheus/prometheus#7678๐ FEATURE: vmagent: allow setting multiple identical
-remoteWrite.url
values. This may be useful when each url is authenticated via different-remoteWrite.basicAuth.username
. See #755๐ FEATURE: vmalert: update groups on config reload only if changes detected. This should speed up config reload for big number of groups when only a small part of these groups are updated. See #691
๐ FEATURE: vmalert: add Group name as label to generated alerts and timeseries. See #611
๐ FEATURE: support composite durations like Prometheus 2.21 does. The following durations are supported now:
1h5m35s
or1s543ms
. See https://github.com/prometheus/prometheus/releases/tag/v2.21.0 and prometheus/prometheus#7713FEATURE: add a jitter to
-http.connTimeout
in order to protect from Thundering herd problem when many connections are re-established at the same time.๐ FEATURE: allow passing timestamp via
timestamp
query arg when ingesting data at/api/v1/import/prometheus
. See these docs. See #750๐ FEATURE: update Go builder from v1.15.1 to v1.15.2. This fixes the following issues in Go runtime: https://github.com/golang/go/issues?q=milestone%3AGo1.15.2+label%3ACherryPickApproved
๐ BUGFIX: vmagent: do not reset the remaining rows when pushing a part of data to remote storage during big scrapes. See #753
๐ BUGFIX: vmbackup, vmrestore: do not set AWS config profile to
default
by default, since it may break default AWS auth mechanism. See #726๐ BUGFIX: do not store inf values, since they may lead to significant precision loss for previously stored values. See #752
๐ BUGFIX: skip infinite values when calculating
smooth_exponential()
function from MetricsQL. This should help with missing results inttf()
function. See #757๐ BUGFIX: adjust
integrate()
calculations to be more similar to calculations from InfluxDB. See #701
How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here. -
v1.41.0-cluster
September 11, 2020 -
v1.40.1 Changes
September 04, 2020๐ Changes since v1.40.0
๐ FEATURE: allow adding extra labels when importing data via Prometheus, CSV and JSON line formats. Extra labels may be added to the imported data by passing
extra_label=name=value
query args. Multiple query args may be passed in order to add multiple extra labels. See #719๐ FEATURE: allow using
KB
,MB
,GB
,KiB
,MiB
andGiB
suffixes in command-line flag values related to byte sizes or byte ratesFEATURE: add
count_le_over_time(m[d], le)
andcount_gt_over_time(m[d], gt)
functions to MetricsQL. These functions returns the number of raw samples that don't exceedle
or are bigger thangt
๐ FEATURE: support expected binary operations on string literals:
* "foo" + "bar" => "foobar" * "foo" == "bar" => NaN * "foo" == "foo" => 1 * "foo" >bool "bar" => 1 * "foo" < "bar" => NaN
๐ See #717
๐ FEATURE: add
-http.idleConnTimeout
command-line flag for tuning the timeout for incoming idle http connections๐ FEATURE: add
-http.connTimeout
command-line flag for limiting the lifetime for incoming http connections. This can be useful for balancing incoming connections among multiple services.๐ FEATURE: fall back to reading hierarchical memory limit in cgroups when the default limit isn't set. See #699
๐ FEATURE: vmagent: reduce memory usage when scraping targets with big number of metrics aka
/federate
endpoint from Prometheus๐ FEATURE: vmalert: allow reading multiple rule files in the same directory. See #708
๐ FEATURE: vmalert: allow running with empty directories with rules. There are some applications (operator for instance), that generates alerts configuration at runtime and vmalert must start correctly without rules to support this behaviour. Later application will add rules files and send SIGHUP to vmalert, which will trigger reading rules files and start rules exectuion.
๐ FEATURE: vmalert: spread load of per-group rules' evaluation across rule evaluation interval.
๐ BUGFIX: vmagent: properly flush big blocks of data. Previously some samples could fail to be delivered to
-remoteWrite.url
. See #741๐ BUGFIX: vmagent: apply sane limits to
-remoteWrite.queues
. See #707๐ BUGFIX: unconditionally align time range boundaries to step for subqueries as Prometheus does.
How to run VictoriaMetrics
๐ Unpack the
victoria-metrics-*.tar.gz
archive and read these docs.vmutils-*.tag.gz
archive contains the following tools:๐ณ The corresponding docker images are available here.
Cluster version is available here.