CHANGELOG for the year 2020


Released at 2020-12-27


Released at 2020-12-19


Released at 2020-12-15

  • FEATURE: vmagent: export vmagent_remotewrite_blocks_sent_total and vmagent_remotewrite_blocks_sent_total metrics for each -remoteWrite.url.

  • BUGFIX: vmagent: properly delete unregistered scrape targets from /targets and /api/v1/targets pages. They weren't deleted due to the bug in v1.50.0.


Released at 2020-12-15

  • FEATURE: automatically reset response cache when samples with timestamps older than now - search.cacheTimestampOffset are ingested to VictoriaMetrics. This makes unnecessary disabling response cache during data backfilling or resetting it after backfilling is complete as described in these docs. This feature applies only to single-node VictoriaMetrics. It doesn't apply to cluster version of VictoriaMetrics because vminsert nodes don't know about vmselect nodes where the response cache must be reset.
  • FEATURE: vmalert: add query, first and value functions to alert templates. See
  • FEATURE: vmagent: return user-friendly HTML page when requesting /targets page from web browser. The page is returned in the old plaintext format when requesting via curl or similar tool.
  • FEATURE: allow multiple whitespace chars between measurements, fields and timestamp when parsing InfluxDB line protocol. Though InfluxDB line protocol denies multiple whitespace chars between these entities, some apps improperly put multiple whitespace chars. This workaround allows accepting data from such apps.
  • FEATURE: export vm_promscrape_active_scrapers{type="<sd_type>"} metric for tracking the number of active scrapers per each service discovery type.
  • FEATURE: export vm_promscrape_scrapers_started_total{type="<sd_type>"} and vm_promscrape_scrapers_stopped_total{type="<sd_type>"} metrics for tracking churn rate for scrapers per each service discovery type.
  • FEATURE: vmagent: allow setting per--remoteWrite.url command-line flags for -remoteWrite.sendTimeout and -remoteWrite.tlsInsecureSkipVerify.

  • BUGFIX: properly handle * and [...] inside curly braces in query passed to Graphite Metrics API. See
  • BUGFIX: vmagent: fix memory leak when big number of targets is discovered via service discovery.
  • BUGFIX: vmagent: properly pass datacenter filter to Consul API server. See
  • BUGFIX: properly handle CPU limits set on the host system or host container. The bugfix may result in lower memory usage on systems with CPU limits. See
  • BUGFIX: prevent from duplicate name tag returned from /tags/autoComplete/tags handler. See
  • BUGFIX: do not enable strict parsing for -promscrape.config if -promscrape.config.dryRun comand-line flag is set. Strict parsing can be enabled with -promscrape.config.strictParse command-line flag. See
  • BUGFIX: vminsert: properly update vm_rpc_rerouted_rows_processed_total metric. Previously it wasn't updated. See
  • BUGFIX: vmagent: properly recover when opening incorrectly stored persistent queue. See
  • BUGFIX: vmagent: properly handle scrape errors when stream parsing is enabled with -promscrape.streamParse command-line flag or with stream_parse: true per-target config option. Previously such errors weren't reported at /targets page. See
  • BUGFIX: assume the previous value is 0 when calculating increase() for the first point on the graph if its value doesn't exceed 100 and the delta between two first points equals to 0. See


Released at 2020-12-05

  • FEATURE: optimize Consul service discovery speed when discovering big number of services. See
  • FEATURE: add label_uppercase(q, label1, ... labelN) and label_lowercase(q, label1, ... labelN) function to MetricsQL for uppercasing and lowercasing values for the given labels. See
  • FEATURE: add count_eq_over_time(m[d], N) and count_ne_over_time(m[d], N) for counting the number of samples for m over d that (equal / not equal) to N.
  • FEATURE: do not print usage info for all the command-line flags when incorrect command-line flag is passed. Previously it could be hard reading the error message about incorrect command-line flag because of too big usage info for all the flags.
  • FEATURE: upgrade Go builder from v1.15.5 to v1.15.6 . This fixes issues found in Go since v1.15.5.

  • BUGFIX: properly parse timestamps in OpenMetrics format - they are exposed as floating-point number in seconds instead of integer milliseconds unlike in Prometheus exposition format. See the docs.
  • BUGFIX: return nan for a >bool b query when a equals to nan like Prometheus does. Previously 0 was returned in this case. This applies to any comparison operation with bool modifier. See these docs for details.
  • BUGFIX: properly parse hex numbers in MetricsQL. Previously hex numbers with non-decimal digits such as 0x3b couldn't be parsed.
  • BUGFIX: handle time() cmp_op metric like Prometheus does - i.e. return metric value if cmp_op comparison is true. Previously time() value was returned.
  • BUGFIX: return nan for minute(m) query when m equals to nan like Prometheus does. This applies to all the time-related functions such as day_of_month, day_of_week, days_in_month, hour, month and year.


Released at 2020-11-26


Released at 2020-11-16


Released at 2020-11-07


Released at 2020-11-02


Released at 2020-10-13

  • FEATURE: automatically add missing label filters to binary operands as described at . 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
  • 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 and .
  • FEATURE: vmagent: show original labels before relabeling is applied on duplicate scrape target errors. This should simplify debugging for incorrect relabeling. See
  • 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
  • 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
  • BUGFIX: properly handle stale time series after K8S deployment. Previously such time series could be double-counted. See
  • 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
  • BUGFIX: fix mode_over_time(m[d]) calculations. Previously the function could return incorrect results.


Released at 2020-10-06


Released at 2020-09-30

Previous releases

See releases page.