All Versions
86
Latest Version
Avg Release Cycle
5 days
Latest Release
568 days ago

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 suppressing duplicate 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 #651

    FEATURE: vmagent: /targets page now accepts optional show_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. The sum(rate(vm_rows_added_to_storage_total)) can be smaller than sum(rate(vm_rows_inserted_total)) if certain metrics are dropped due to relabeling. The sum(rate(vm_rows_added_to_storage_total)) can be bigger than sum(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 #817

    BUGFIX: 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.

    ๐Ÿš€ vmctl releases are 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.
    ๐Ÿ‘€ Previously Inf values could result in NaN values for adjancent samples in time series. See #805 .

    BUGFIX: fill gaps on graphs for range_* and running_* 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.

    ๐Ÿš€ vmctl releases are 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 to vmstorage nodes. The maximum data ingestion performance for a single connection between vminsert and vmstorage node scales with the number of available CPU cores on vmstorage 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.

    ๐Ÿš€ vmctl releases are 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 with secret-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 multiple vmagent 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.

    ๐Ÿš€ vmctl releases are available here.

  • 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 to kubernetes_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.0

    • FEATURE: vmagent: add __meta_dns_srv_record_target and __ meta_dns_srv_record_port labels to dns_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 or 1s543ms. See https://github.com/prometheus/prometheus/releases/tag/v2.21.0 and prometheus/prometheus#7713

    • FEATURE: 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 in ttf() 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 and GiB suffixes in command-line flag values related to byte sizes or byte rates

    FEATURE: add count_le_over_time(m[d], le) and count_gt_over_time(m[d], gt) functions to MetricsQL. These functions returns the number of raw samples that don't exceed le or are bigger than gt

    ๐Ÿ”‹ 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.