Aliaksandr Valialkin
41813eb87a
CHANGELOG.md: cut v1.46.0
2020-11-07 17:52:45 +02:00
Artem Navoiev
4e391a5e39
[deployment] add vmalert + alertmanager to docker compose ( #885 )
2020-11-07 17:00:23 +02:00
Aliaksandr Valialkin
bb3b513bdd
docs/CHANGELOG.md: make docs-sync
2020-11-07 16:30:58 +02:00
Aliaksandr Valialkin
83df20b5b5
lib/promscrape: clean references to label name and label value strings after applying per-target relabeling
...
This should reduce memory usage when per-target relabeling creates big number of temporary labels
with long names and/or values.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/825
2020-11-07 16:19:59 +02:00
Aliaksandr Valialkin
9e83335ca9
lib/promscrape/discovery/kubernetes: go fmt
2020-11-07 13:03:49 +02:00
Aliaksandr Valialkin
5407eed2f6
lib/promscrape/discovery/kubernetes: reduce memory usage for labels when discovering big number of scrape targets by using string concatenation instead of fmt.Sprintf
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/825
2020-11-07 13:03:08 +02:00
Aliaksandr Valialkin
188325f0fc
lib/promscrape: eliminate data race in stream parse mode
...
Previously `-promscrape.streamParse` mode could result in garbage labels for the scraped metrics because of data race.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/825#issuecomment-723198247
2020-11-07 12:45:17 +02:00
Aliaksandr Valialkin
55e98e265e
docs/CHANGELOG.md: add CHANGELOG header
2020-11-07 01:15:00 +02:00
Aliaksandr Valialkin
dbbc160a40
deployment/docker: update Go builder from v1.15.3 to v1.15.4
...
This fixes issues found in Go - see https://github.com/golang/go/issues?q=milestone%3AGo1.15.4+label%3ACherryPickApproved
2020-11-07 00:49:42 +02:00
Aliaksandr Valialkin
9c0e2d2a6e
vendor: make vendor-update
2020-11-06 13:58:12 +02:00
Aliaksandr Valialkin
82ce930e59
deployment/docker: update root image from alpine:3.12 to alpine:3.12.1
2020-11-06 13:54:36 +02:00
Aliaksandr Valialkin
dd6bfa50e9
app/vmselect/promql: code cleanup after 43823addea
2020-11-06 01:30:50 +02:00
n4mine
43823addea
app/vmselect/promql: fix when the parameter of maxValue(), minValue() leading by NaN. it will cause {top,bottom}k_{max,min} return inappropriate result ( #883 )
2020-11-06 01:29:24 +02:00
Aliaksandr Valialkin
5943f49f60
docs/Articles.md: add a link to https://valyala.medium.com/how-to-use-relabeling-in-prometheus-and-victoriametrics-8b90fc22c4b2
2020-11-05 19:17:59 +02:00
Aliaksandr Valialkin
9deda5107b
docs/MetricsQL.md: fix a link to with templates page
2020-11-05 16:12:32 +02:00
Aliaksandr Valialkin
07f7245aeb
docs/Articles.md: move third-party articles to the top
2020-11-05 15:03:16 +02:00
Aliaksandr Valialkin
944c5ea331
docs: add CHANGELOG.md
2020-11-05 14:58:22 +02:00
Aliaksandr Valialkin
de81472724
CHANGELOG.md: add a link to issue related to /ready endpoint
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/875
2020-11-05 14:56:41 +02:00
Aliaksandr Valialkin
f733b0ac9d
CHANGELOG.md: mention about /ready endpoint in vmagent
2020-11-05 14:54:51 +02:00
Aliaksandr Valialkin
368b69b4c4
app/vmselect: properly handle errors in GetLabelsOnTimeRange and GetLabelValuesOnTimeRange
2020-11-05 01:38:38 +02:00
Aliaksandr Valialkin
1cb78ba1a0
lib/storage: remove data race when updating rowsDeleted
2020-11-05 01:12:21 +02:00
Aliaksandr Valialkin
b378cd6ed8
app/vmselect: optimize querying for /api/v1/labels and /api/v1/label/<name>/values when start and end args are set
2020-11-05 01:01:33 +02:00
Aliaksandr Valialkin
381ad564a2
docs/vmagent.md: update after 4c808d58bf
2020-11-04 20:31:43 +02:00
Nikolay
4c808d58bf
Adds ready probe ( #874 )
...
* adds leading forward slash check for scrapeURL path
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/835
* adds ready probe for scrape config initialization,
it should prevent metrics loss during vmagent rolling update,
/ready api will return 425 http code, if some scrape config still waits for initialization.
* updates docs
* Update app/vmagent/README.md
* renames var
* Update app/vmagent/README.md
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-11-04 20:29:18 +02:00
Aliaksandr Valialkin
c4e8c34d0e
docs/CaseStudies.md: add case study for Idealo.de
2020-11-04 20:18:33 +02:00
Aliaksandr Valialkin
b2042a1c30
lib/promscrape: docs update after e4182dd896
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/878
2020-11-04 17:12:30 +02:00
Aliaksandr Valialkin
caeb74f068
app/vmselect: reduce memory usage when query touches big number of time series
2020-11-04 17:04:04 +02:00
Aliaksandr Valialkin
ae91a6883c
lib/{storage,mergeset}: clean cached index blocks and inmemory blocks more aggressively
...
Previously such blocks were cleaned after they weren't accessed during 10 minutes.
Now they are cleaned after one minute of missing access. This should reduce memory usage in general case.
2020-11-04 17:04:04 +02:00
Nikolay
e4182dd896
reduces memory usage for vmagent, ( #880 )
...
* reduces memory usage for vmagent,
limits count of droppedTarget, that can be stored for /api/v1/targets page up to 999 items,
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/878
* Update app/vmagent/README.md
* Update app/vmagent/README.md
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-11-04 17:03:43 +02:00
Aliaksandr Valialkin
b9e5172aa2
Revert "lib/promscrape: add -promscrape.dropOriginalLabels command-line flag for reducing memory usage when discovering big number of scrape targets"
...
This reverts commit 5a9743211f .
2020-11-04 11:45:02 +02:00
Aliaksandr Valialkin
600f225cff
Revert "docs/vmagent.md: mention about -promscrape.dropOriginalLabels"
...
This reverts commit bd81f926a4 .
2020-11-04 11:44:57 +02:00
Aliaksandr Valialkin
bd81f926a4
docs/vmagent.md: mention about -promscrape.dropOriginalLabels
2020-11-04 11:16:33 +02:00
Aliaksandr Valialkin
5a9743211f
lib/promscrape: add -promscrape.dropOriginalLabels command-line flag for reducing memory usage when discovering big number of scrape targets
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/878
2020-11-04 11:08:57 +02:00
Aliaksandr Valialkin
ca8b5745b5
lib/promscrape: reduce memory allocations in promLabelsString() function
...
This should help with reducing memory usage in https://github.com/VictoriaMetrics/VictoriaMetrics/issues/878
2020-11-04 10:38:44 +02:00
Aliaksandr Valialkin
f3f62ab04e
lib/storage: do not report about the need of free disk space if parts cannot be merged due to too big write amplification
2020-11-03 15:32:02 +02:00
Aliaksandr Valialkin
e0a91ef163
app/vmagent/remotewrite: drop packets only on 409 status code, since there are other valid 4xx status codes, which shouldnt result in packet drop
2020-11-03 14:25:10 +02:00
Aliaksandr Valialkin
c87fb9191e
lib/storage: remove unneeded fmt.Sprintf
2020-11-03 14:20:31 +02:00
John Belmonte
51e661ecfe
add short_version label to vm_app_version metric ( #877 )
...
* add short_version label to vm_app_version metric
use case: Version panel of Grafana dashboard should use a live query, but currently it uses a template query which becomes stale. Grafana is not able to preform regex substitution on labels.
* Update metrics.go
* fix compile
2020-11-03 14:10:42 +02:00
Aliaksandr Valialkin
cd071357d8
docs/MetricsQL.md: add missing whitespace
2020-11-02 23:49:56 +02:00
Aliaksandr Valialkin
61579680bb
vendor: make vendor-update
2020-11-02 22:03:38 +02:00
Aliaksandr Valialkin
fe289331dd
lib/storage: remove obsolete code
2020-11-02 19:11:59 +02:00
Aliaksandr Valialkin
d396c265a6
CHANGELOG.md: cut v1.45.0
2020-11-02 02:43:12 +02:00
Aliaksandr Valialkin
31918f60b2
vendor: make vendor-update
2020-11-02 02:41:02 +02:00
Aliaksandr Valialkin
d62ec1cb01
CHANGELOG.md: add a link to https://github.com/VictoriaMetrics/VictoriaMetrics/issues/825
2020-11-02 02:28:55 +02:00
Aliaksandr Valialkin
5e75c389e6
app/vmselect/promql: allow dropping trailing sample only for default_rollup function
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/850
2020-11-02 02:10:59 +02:00
Aliaksandr Valialkin
c0f3be824d
lib/promscrape: properly handle response body after 301 redirect
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/869
2020-11-02 01:09:52 +02:00
Aliaksandr Valialkin
ca566dce39
CHANGELOG.md: mention about packets drop in vmagent like Prometheus does
2020-11-02 00:46:49 +02:00
Aliaksandr Valialkin
0b35da159c
app/vmagent/remotewrite: drop packets if remote storage returns 4xx status code
...
This makes consistent the behaviour with Prometheus.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/873
2020-11-02 00:45:09 +02:00
Aliaksandr Valialkin
cb71af216a
app/vmselect/promql: go fmt
2020-11-02 00:15:29 +02:00
Aliaksandr Valialkin
daacbc7e34
app/vmselect/promql: do not drop trailing datapoints for instant queries
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/845
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/748
2020-11-02 00:12:37 +02:00
S.F
f477cbe861
OpenBSD packaging files ( #853 )
2020-11-01 23:39:25 +02:00
Roman Khavronenko
50d44d5932
dashboard: add Storage full ETA panel ( #858 )
...
* dashboard: add `Storage full ETA` panel
The new panel suppose to help to estimate the time needed to run out of free
disk space.
Thx to @belm0 @hekmon
* disable legend for `Storage full ETA` panel
2020-11-01 23:37:31 +02:00
Aliaksandr Valialkin
68d004bc05
CHANGELOG.md: mention about recently added bugfixes
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
e277c3d07b
lib/promscrape: add stream parse mode for efficient scraping of targets that expose millions of metrics
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
29e4e7f422
lib/storage: drop more samples outside the given retention during background merge
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/17
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
b7638f04a7
app/vmagent: expose /api/v1/targets page according to https://prometheus.io/docs/prometheus/latest/querying/api/#targets
...
This page is exposed by vmagent and by a single-node VictoriaMetrics
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/643
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
c539494b36
app/vmselect/promql: allow passing optional third argument to topk_* and bottomk_* functions in order to obtain sum of time series outside top/bottom K
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
d12c4914f0
lib/storage: properly handle the case when key="__name__" is passed to MetricName.AddTag*
2020-11-01 23:35:06 +02:00
Aliaksandr Valialkin
64e2d66014
lib/storage: code cleanup after 5bfd4e6218
2020-11-01 23:35:06 +02:00
Sergey Klyuykov
4108e85efd
Fix InfluxDB support on docker-compose deployment. ( #872 )
...
* Added UDP protocol support for Graphite/Influx in docker-compose deployment.
This is necessary for Proxmox VE External Metric Server support.
https://pve.proxmox.com/wiki/External_Metric_Server
* Added `influxListenAddr` in docker-compose deployment.
This is necessary for Proxmox VE External Metric Server support.
https://pve.proxmox.com/wiki/External_Metric_Server
Additionally created Grafana Dashboard for monitoring Proxmox VE hosts.
https://grafana.com/grafana/dashboards/13307
2020-11-01 23:34:39 +02:00
Roman Khavronenko
f0bdc5716e
vmalert: skip automatically added labels on alerts restore ( #871 )
...
Label `alertgroup` was introduced in #611 and automatically added to generated
time series. By mistake, this new label wasn't correctly purged on restore event
and affected alert's ID uniqueness. This commit removes `alertgroup` label
in restore function.
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/870
2020-10-30 08:18:20 +00:00
Nikolay
67059caa12
fixes panic at scrape error body formating, ( #868 )
...
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/864
regression after body reuse improvements
2020-10-29 17:17:52 +03:00
Nikolay
de3fe22815
adds leading forward slash check for scrapeURL path ( #855 )
...
* fixes in-consistency with prometheus behaviour for scrape targets url path.
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/835
2020-10-29 08:39:42 +03:00
Sergey Kulukov
055f152246
Added UDP protocol support for Graphite/Influx in docker-compose deployment.
...
This is necessary for Proxmox VE External Metric Server support.
https://pve.proxmox.com/wiki/External_Metric_Server
2020-10-28 20:26:55 +02:00
Roman Khavronenko
20311f6065
dashboard: clarify the purpose of Concurrent flushes on disk panel ( #849 )
...
Current description led to confusion at https://victoriametrics.slack.com/archives/CGZF1H6L9/p1603270014273800
2020-10-28 18:10:46 +00:00
kreedom
a51a7b2a20
vmbackup fix panic when no origin fs given ( #859 )
...
* use fsnil when no origin fs
2020-10-28 20:09:10 +02:00
Aliaksandr Valialkin
bca468bb55
CHANGELOG.md: mention about recently added changes
2020-10-20 14:32:14 +03:00
Aliaksandr Valialkin
0729cc36b2
lib/memory: do not print trailing zeroes in logs for -memory.allowedPercent command-line flag
2020-10-20 14:32:07 +03:00
Aliaksandr Valialkin
5bfd4e6218
app/vmstorage: support for -retentionPeriod smaller than one month
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/173
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/17
2020-10-20 14:31:44 +03:00
Aliaksandr Valialkin
920300643a
docs/vmrestore.md: make docs-sync
2020-10-20 10:48:19 +03:00
kreedom
ef77120170
vmalert - add dryRun ( #842 )
...
vmalert: add `dryRun` flag for rules validation without running the service
2020-10-20 08:15:21 +01:00
Seva Poliakov
b3f3c078e5
Fix typo in vnrestore readme
2020-10-18 15:41:39 +03:00
faceair
84e3881c0b
disable response compression on websocket ( #841 )
2020-10-17 13:32:34 +03:00
Aliaksandr Valialkin
2ed069c3bc
docs/MetricsQL.md: small clarifications
2020-10-17 12:01:43 +03:00
Aliaksandr Valialkin
28353e48ca
app/vmselect/promql: an attempt to improve heuristics for dropping trailing data points in time series
...
Now trailing data points are additionally dropped for time series with a single raw sample
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/748
2020-10-17 10:44:34 +03:00
Aliaksandr Valialkin
01987f8c77
lib/storage: small code adjustements after d2960a20e0
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/781
2020-10-17 01:16:54 +03:00
faceair
d2960a20e0
evaluate the execution cost of all tag filters ( #824 )
...
* evaluate the execution cost of all tag filters
* fix suffixes typo
2020-10-17 00:46:55 +03:00
Aliaksandr Valialkin
d4f12e0fbb
CHANGELOG.md: mention about improved openstack endpoint handling
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/728
2020-10-16 23:06:33 +03:00
Nikolay Khramchikhin
e6ab69dd88
fixes openstack api endpoint with suffix trim adds openstack ( #840 )
...
api v2.0 check
2020-10-16 21:20:57 +03:00
Aliaksandr Valialkin
ed5f05024b
deployment/docker: update Go builder from Go1.15.2 to Go1.15.3
...
This should fix potential issues related to Go runtime - see https://github.com/golang/go/issues?q=milestone%3AGo1.15.3+label%3ACherryPickApproved
2020-10-16 15:08:52 +03:00
Aliaksandr Valialkin
43aa737e23
vendor: make vendor-update
2020-10-16 15:06:27 +03:00
Aliaksandr Valialkin
46dccc1088
CHANGELOG.md: describe added optimization cases from 96cdfcba50
2020-10-16 12:59:42 +03:00
Aliaksandr Valialkin
96cdfcba50
vendor: update github.com/VictoriaMetrics/metricsql from v0.7.1 to v0.7.2
...
The new release of github.com/VictoriaMetrics/metricsql adds more optimizations for `foo{filters1} op bar{filters2}`:
* rollup_func(foo[d]) op bar{filters}
* transform_func(foo) op bar{filters}
* num_or_scalar op bar op baz{filters}
2020-10-16 12:53:36 +03:00
Aliaksandr Valialkin
09d60d64a9
docs: add a link to https://smarketshq.com/monitoring-kubernetes-clusters-41a4b24c19e3 article about VictoriaMetrics
2020-10-16 09:07:41 +03:00
Aliaksandr Valialkin
c37e5de66f
docs/Single-server-VictoriaMetrics.md: update docs
2020-10-14 13:26:31 +03:00
Aliaksandr Valialkin
3b847d32d9
docs/CaseStudies.md: actualize numbers for Wix.com
2020-10-14 13:07:33 +03:00
Aliaksandr Valialkin
590d8d537f
docs/vmalert.md: make docs-sync
2020-10-13 18:34:32 +03:00
Roman Khavronenko
bc42b5598f
vmalert: update docs to highlight the state restore requirements; ( #833 )
...
Address https://github.com/VictoriaMetrics/VictoriaMetrics/issues/830
2020-10-13 18:32:43 +03:00
Aliaksandr Valialkin
94978af9bc
CHANGELOG.md: cut v1.44.0 release
2020-10-13 16:59:33 +03:00
Aliaksandr Valialkin
8e20bc7b53
docs/Cluster-VictoriaMetrics.md: clarify RAM requirements for vmstorage nodes
2020-10-13 16:47:51 +03:00
Aliaksandr Valialkin
a2b9476897
app/vmselect/promql: return a single time series at max from absent() function like Prometheus does
2020-10-13 15:56:04 +03:00
Aliaksandr Valialkin
9aa3b65766
app/vmselect/promql: improve time series staleness detection
...
This should prevent from double counting for time series at the time when it changes label.
The most common case is in K8S, which changes pod uid label with each new deployment.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/748
2020-10-13 12:19:57 +03:00
Aliaksandr Valialkin
d8af290947
app/vmselect/promql: fix mode_over_time calculations
...
Previously `mode_over_time` could return garbage due to improper shuffling of input data points.
2020-10-13 11:58:25 +03:00
Aliaksandr Valialkin
1e27420243
app/vmselect/prometheus: fix golangci-lint warning
2020-10-13 09:36:11 +03:00
Aliaksandr Valialkin
4f16a964e3
app/vmselect: add ability to export data in CSV format via /api/v1/export/csv
2020-10-12 20:08:17 +03:00
Aliaksandr Valialkin
4cc6574cea
CHANGELOG.md: mention about added Docker Swarm service discovery
2020-10-12 16:17:58 +03:00
Aliaksandr Valialkin
63c4999e06
lib/promscrape: code prettifying after 9bd9f67718
2020-10-12 16:12:36 +03:00
Nikolay Khramchikhin
9bd9f67718
Adds dockerswarm sd ( #818 )
...
* adds dockerswarm service discovery
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/656
Following roles supported: services, tasks and nodes.
Basic, token and tls auth supported.
Added tests for labels generation.
* added unix socket support to discovery utils
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-10-12 13:38:21 +03:00
Aliaksandr Valialkin
7f983d461a
docs/MetricsQL.md: mention that VictoriaMetrics keeps metric names after applying functions which dont change time series meaning
2020-10-12 13:25:25 +03:00
Aliaksandr Valialkin
3bba6a2199
CHANGELOG.md: mention that VictoriaMetrics keeps metric names when applying functions which don't change time series meaning
2020-10-12 12:55:09 +03:00
Aliaksandr Valialkin
762c967855
app/vmselect/promql: keep metric name after applying more functions, which dont change time series meaning
...
Functions are:
* 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
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/674
2020-10-12 11:47:06 +03:00
Aliaksandr Valialkin
45f7cdc532
Revert "app/vmselect/promql: remove metric name after applying ceil, floor and round functions in order to be more consistent with Prometheus"
...
This reverts commit ac45082216 .
Reason for revert: the previous behavior for VictoriaMetrics is easier to understand and use by users -
functions, which don't change the meaning of the time series shouldn't drop metric name.
Now the following functions do not drop metric names:
* ceil
* floor
* round
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/674
2020-10-12 11:40:34 +03:00
Aliaksandr Valialkin
a94825b169
Revert "app/vmselect/promql: remove metric name after applying clamp_min and clamp_max functions in order to be consistent with Prometheus"
...
This reverts commit bb61a4769b .
Reason for revert: the previous behavior for VictoriaMetrics is easier to understand and use by users -
functions, which don't change the meaning of the time series shouldn't drop metric name.
Now the following functions do not drop metric name:
* clamp_min
* clamp_max
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/674
2020-10-12 11:38:27 +03:00
Aliaksandr Valialkin
f7d28bddbf
Revert "app/vmselect/promql: remove metric name from results of certain rollup functions in order to be consistent with Prometheus"
...
This reverts commit e5202a4eae .
Reason for revert: the previous behavior for VictoriaMetrics is easier to understand and use by users -
functions, which don't change the meaning of the time series shouldn't drop metric name.
Now the following functions do not drop metric name:
* max_over_time
* min_over_time
* avg_over_time
* quantile_over_time
* geomean_over_time
* mode_over_time
* holt_winters
* predict_linear
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/674
2020-10-12 11:35:18 +03:00
Aliaksandr Valialkin
2749a3c827
docs/Single-server-VictoriaMetrics.md: add missing whitespace
2020-10-09 20:56:26 +03:00
Aliaksandr Valialkin
b449607181
lib/backup: add MustStop() method for all remote filesystems
2020-10-09 15:32:19 +03:00
Aliaksandr Valialkin
cf5f2874cd
lib/backup/fslocal: add FS.MustStop() method for stopping bandwidth limiter
2020-10-09 15:12:03 +03:00
Aliaksandr Valialkin
272d6976b3
CHANGELOG.md: update with recent changes
2020-10-09 14:22:05 +03:00
Aliaksandr Valialkin
68f0e00761
app/vmstorage: add vm_rows_added_to_storage_total metric, which shows the total number of rows added to storage since app start
2020-10-09 13:35:48 +03:00
Aliaksandr Valialkin
84227ea2fc
app/{vminsert,vmagent}: take into account all the inserted rows before relabeling in vm_rows_inserted_total and vmagent_rows_inserted_total metrics
2020-10-09 13:29:51 +03:00
Aliaksandr Valialkin
f4e8687c88
app/vmalert: accept days, weeks and years in for: part of config like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/817
2020-10-08 20:13:15 +03:00
Aliaksandr Valialkin
561a7619a5
lib/promscrape: fix tests after 71ea4935de
2020-10-08 19:32:36 +03:00
Aliaksandr Valialkin
6105d61d11
docs/vmagent.md: clarify -promscrape.suppressDuplicateScrapeTargetErrors command-line flag usage
2020-10-08 19:24:31 +03:00
Aliaksandr Valialkin
12d2cf3a7a
CHANGELOG.md: mention features from 71ea4935de
2020-10-08 19:13:54 +03:00
Aliaksandr Valialkin
71ea4935de
lib/promscrape: add -promscrape.suppressDuplicateScrapeTargetErrors command-line flag in order to suppress duplicate scrape target errors
...
Show also original labels for duplicate targets in error message in order to simplify debugging the issue.
Now `/targets` endpoint accepts optional `show_original_labels=1` query arg, which shows original labels for each target.
This may simplify debugging for target relabeling.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/651
2020-10-08 18:58:30 +03:00
Aliaksandr Valialkin
9b0a5c1028
lib/backup/actions: improve logging to be more clear to humans
2020-10-08 14:23:07 +03:00
Aliaksandr Valialkin
d423d73251
app/vmalert: do not pring description for all the flags on config errors
...
The description is too big to consume by human and it just distracts humans.
2020-10-08 13:35:57 +03:00
Aliaksandr Valialkin
d8546e972a
vendor: make vendor-update
2020-10-08 11:52:01 +03:00
Aliaksandr Valialkin
c9fb217e4e
vendor: update github.com/VictoriaMetrics/metricsql from v0.7.0 to v0.7.1
2020-10-08 11:46:51 +03:00
Aliaksandr Valialkin
bec85d5135
CHANGELOG.md: mentioned about the added optimization that adds missing filters to binary operands
2020-10-07 21:23:02 +03:00
Aliaksandr Valialkin
e9f2e2cbc9
app/vmselect/promql: add missing label filters to binary operands before query execution
...
This implements the optimization described at https://utcc.utoronto.ca/~cks/space/blog/sysadmin/PrometheusLabelNonOptimization
See also https://github.com/cortexproject/cortex/issues/3253
2020-10-07 21:15:09 +03:00
Aliaksandr Valialkin
5ef71974fe
CHANGELOG.md: mention about -finalMergeDelay comand-line flag
2020-10-07 18:52:41 +03:00
Dmitry Shihovtsev
92e5d89fc9
Fix typos in the vmalert datasource ( #814 )
...
* Fix typos in the vmalert datasource
* Fix typo in the vmalert datasource test
2020-10-07 17:59:50 +03:00
Artem Navoiev
8e6eb2cd6b
update go action
2020-10-07 17:48:42 +03:00
Aliaksandr Valialkin
af90b3121c
app/vmstorage: add -finalMergeDelay command-line flag for configuring the delay before final merge for per-month partitions after no new data is ingested to it
2020-10-07 17:35:44 +03:00
Aliaksandr Valialkin
e9d99021b0
docs/CaseStudies.md: actualize Wix numbers
2020-10-06 16:09:35 +03:00
Aliaksandr Valialkin
5aa269def6
CHANGELOG.md: add missing link to an issue about OpenStack service discovery - https://github.com/VictoriaMetrics/VictoriaMetrics/issues/728
2020-10-06 15:37:36 +03:00
Aliaksandr Valialkin
d16dbfd639
app/vmagent: add a link to https://victoriametrics.github.io/vmagent.html from main page
2020-10-06 15:29:49 +03:00
Aliaksandr Valialkin
cfd720e772
app/victoria-metrics: add a link to https://victoriametrics.github.io/ from main page
2020-10-06 15:29:49 +03:00
Aliaksandr Valialkin
e10c484a8e
docs/Articles.md: add https://medium.com/@VictoriaMetrics/anomaly-detection-in-victoriametrics-9528538786a7
2020-10-06 15:29:49 +03:00
Aliaksandr Valialkin
2a6fa53957
CHANGELOG.md: cut v1.43.0 release
2020-10-06 14:28:50 +03:00
Aliaksandr Valialkin
5a8553bfd2
CHANGELOG.md: add missing entries for upcoming release
2020-10-06 12:04:38 +03:00
Aliaksandr Valialkin
e19d400230
lib/protoparser/graphite: support parsing floating-point timestamp like Graphite does
...
Such timestamps are rounded to seconds like Carbon does.
See b0ba62a62d/lib/carbon/protocols.py (L197)
2020-10-06 11:38:29 +03:00
Aliaksandr Valialkin
90aa2a8ffd
lib/promscrape/discovery/openstack: show expiration time for refreshed OpenStack token in seconds - this is easier to interpret by human
2020-10-06 11:34:09 +03:00
Aliaksandr Valialkin
cc08648699
vendor: make vendor-update
2020-10-05 23:21:41 +03:00
Aliaksandr Valialkin
129b07113e
.github/workflows: switch Go version from v1.14 to v1.15
2020-10-05 22:00:51 +03:00
Aliaksandr Valialkin
aba899c298
lib/promscrape/discovery/openstack: code prettifying after cbe3cf683b
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/728
2020-10-05 18:11:55 +03:00
Aliaksandr Valialkin
991fad7855
docs: make docs-sync after cbe3cf683b
2020-10-05 16:47:57 +03:00
Nikolay Khramchikhin
cbe3cf683b
Adds openstack sd ( #811 )
...
* adds openstack service discovery
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/728
implemented hypervisors and instance discovery with openstack v3 api.
Added tests for labeling and data parsing.
Added token refresh.
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-10-05 16:45:33 +03:00
Aliaksandr Valialkin
f42194d817
lib/promrelabel: make a copy of label with new name for action: labelmap in the same way as Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/812
2020-10-05 16:19:19 +03:00
Aliaksandr Valialkin
bbeac0ba46
lib/protoparser/influx: add -influx.maxLineSize command-line flag for configuring the maximum size for a single Influx line during parsing
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/807
2020-10-05 15:19:05 +03:00
Aliaksandr Valialkin
47db9bb24a
lib/decimal: add tests for negative values passed to maxUpExponent
2020-10-05 14:56:45 +03:00
Aliaksandr Valialkin
bc7d67cee2
lib/decimal: properly calibrate scale for blocks with Inf values
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/805
2020-10-05 14:52:44 +03:00
Aliaksandr Valialkin
59c26feefa
app/vmselect/promql: fill gaps on graphs for range_* and running_* functions
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/806
2020-10-02 13:59:45 +03:00
Aliaksandr Valialkin
764dc2499f
lib/storage: code cleanup after 10f2eedee0
...
Remove the code that uses metricIDs caches for the current and the previous hour during metricIDs search,
since this code became unused after implementing per-day inverted index almost a year ago.
While at it, fix a bug, which could prevent from finding time series with names containing dots (aka Graphite-like names
such as `foo.bar.baz`).
2020-10-01 19:06:23 +03:00
Aliaksandr Valialkin
10f2eedee0
lib/storage: imrpove cache effectiveness for time series ids matching the given filters
...
Previously the maximum cache lifetime has been limited by 10 seconds. Now it is extended up to a day.
This should reduce CPU usage in the following cases:
* when querying recently added data with small churn rate for time series
* when querying historical data
2020-10-01 14:38:25 +03:00
Aliaksandr Valialkin
d25dd7fdb6
docs: make docs-sync
2020-09-30 09:50:29 +03:00
Roman Khavronenko
daa2d1c065
vmalert: make maxIdleConnections configurable for datasource HTTP client ( #797 )
...
Address https://github.com/VictoriaMetrics/VictoriaMetrics/issues/795
2020-09-30 09:49:45 +03:00
Aliaksandr Valialkin
a44e0c6153
vendor: make vendor-update
2020-09-30 08:59:20 +03:00
Aliaksandr Valialkin
a897cf2ec3
docs/Release-Guide.md: mention that CHANGELOG.md must be updated before release
2020-09-30 08:53:17 +03:00
Aliaksandr Valialkin
58465bb29b
CHANGELOG.md: release v1.42.0
2020-09-30 08:45:31 +03:00
Aliaksandr Valialkin
e59de98384
CHANGELOG.md: initial commit
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/788
2020-09-30 00:12:32 +03:00
Aliaksandr Valialkin
bec9b31b81
lib/storage: allow set values higher than 1 for vm_merge_need_free_disk_space if there are multiple partitions with deferred merges due to disk space shortage
2020-09-29 22:51:43 +03:00
Aliaksandr Valialkin
44bcda81ab
app/vmstorage: rename vm_{big|small}_merge_need_free_disk_space to vm_merge_need_free_disk_space
...
This simplifies alerting.
2020-09-29 22:44:19 +03:00
Aliaksandr Valialkin
a9db81c4ab
app/vmstorage: add metrics for determining whether background merges need additional disk space to complete
...
These metrics are:
* vm_small_merge_need_free_disk_space
* vm_big_merge_need_free_disk_space
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/686
2020-09-29 21:48:33 +03:00
Aliaksandr Valialkin
dbf9402329
docs/Single-server-VictoriaMetrics.md: typo fix
2020-09-29 20:29:46 +03:00
Aliaksandr Valialkin
1137bdec66
docs/Single-server-VictoriaMetrics.md: typo fix: compations -> compactions
2020-09-29 20:27:05 +03:00
Aliaksandr Valialkin
127537d631
app/vmagent/remotewrite: do not show -remoteWrite.url in logs if -remoteWrite.showURL isn't set
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/773
2020-09-29 19:49:12 +03:00
Aliaksandr Valialkin
f7636b0342
app/vmselect/graphite: do not substitute path and path. with path.. in /metrics/find/?format=completer output
2020-09-29 18:03:26 +03:00
Aliaksandr Valialkin
76b244cfcf
lib/cgroup: do not adjust the number of detected CPU cores via /sys/devices/system/cpu/online
...
The adjustement increases the resulting GOMAXPROC by 1, which looks confusing to users
as outlined at https://github.com/VictoriaMetrics/VictoriaMetrics/issues/685#issuecomment-698595309
2020-09-29 13:55:26 +03:00
Aliaksandr Valialkin
7dc67cd883
docs/{vmbackup,vmrestore}: formatting fixes
2020-09-29 13:19:07 +03:00
Aliaksandr Valialkin
efdefbc1cb
docs/vmbackup.md: make docs about minio config more prominent
2020-09-29 13:16:04 +03:00
Aliaksandr Valialkin
1659135752
lib/storage: fix tests for 32-bit arches such as GOARCH=386 and GOARCH=arm
2020-09-29 13:10:22 +03:00
Aliaksandr Valialkin
9945b8c98d
docs: improve readability a bit
2020-09-29 13:03:38 +03:00
Nikolay Khramchikhin
1e679f3e0d
update vmbackup/vmrestore README usage ( #794 )
...
* update vmbackup/vmrestore README usage
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/381
with minio and configuration file examples.
* Apply suggestions from code review
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
* added backup/restore docs changes
* added example for relabelConfig flag
* Apply suggestions from code review
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
2020-09-29 12:53:10 +03:00
Aliaksandr Valialkin
38789e4aa0
lib/storage: fix 32-bit builds for GOARH=386 or GOARCH=arm
2020-09-29 12:40:35 +03:00
Aliaksandr Valialkin
19c0b6f3ef
lib/protoparser/prometheus: sort rows before comparing them in TestParseStream, since the order for callback calls is non-deterministic
2020-09-29 12:30:04 +03:00
Aliaksandr Valialkin
7cde336b33
lib/protoparser/prometheus: fix TestParseStream after 124f78857b
2020-09-29 12:11:17 +03:00
Aliaksandr Valialkin
96ee276e6e
app/vmselect/prometheus: check for errors returned from bufferedwriter.Write
...
This makes `make errcheck` happy
2020-09-29 11:37:01 +03:00
Aliaksandr Valialkin
6fdfc67620
app/vmselect/graphite: properly handle case when /metrics/find finds both leaf and node for the given query=prefix.*
...
In this case only node must be returned with stripped dot in the end of id as carbonapi does
2020-09-29 11:01:59 +03:00
Aliaksandr Valialkin
165c9c6371
.github/workflows: verify builds for vmagent, vmalert, vmbackup and vmrestore
2020-09-29 00:49:20 +03:00
Aliaksandr Valialkin
41f24cdb64
.github/workflows: verify that VictoriaMetrics can be built for GOOS=openbsd
2020-09-29 00:44:44 +03:00
Aliaksandr Valialkin
7673839228
lib/{fs,filestream}: small consistency-related updates after cc90a548b1
2020-09-29 00:42:43 +03:00
Nikolay Khramchikhin
cc90a548b1
added openbsd implementations ( #790 )
...
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/785
removed fadvise for openbsd, added freespace implemenation for openbsd
2020-09-29 00:29:04 +03:00
Aliaksandr Valialkin
8d5df13c7c
vendor: make vendor-update
2020-09-28 21:59:58 +03:00
Aliaksandr Valialkin
7500146321
lib/protoparser: avoid copying of buffer read from the network to unmarshal buffer
2020-09-28 17:19:16 +03:00
Aliaksandr Valialkin
124f78857b
app/{vminsert,vmagent}: improve data ingestion speed over a single connection
...
Process data obtianed from a single connection on all the available CPU cores.
2020-09-28 04:13:08 +03:00
Aliaksandr Valialkin
978c6b4ba9
docs/Cluster-VictoriaMetrics.md: sync with cluster branch
2020-09-28 02:07:55 +03:00
Aliaksandr Valialkin
5cdad60a6f
lib/protoparser: use 64KB read buffer instead of default 4KB buffer provided by net/http.Server
...
This should reduce syscall overhead when reading big amounts of data
2020-09-28 02:07:10 +03:00
Aliaksandr Valialkin
1b3efccb24
app/vmselect: stop /api/v1/export/* execution if client disconnects
2020-09-27 23:53:13 +03:00
Aliaksandr Valialkin
95688cbfc5
all: add native format for data export and import
...
The data can be exported via [/api/v1/export/native](https://victoriametrics.github.io/#how-to-export-data-in-native-format ) handler
and imported via [/api/v1/import/native](https://victoriametrics.github.io/#how-to-import-data-in-native-format ) handler.
2020-09-27 19:54:07 +03:00
Aliaksandr Valialkin
b4bf722d8f
lib/protoparser: use all the available CPU cores for processing ingested data from a single /api/v1/import stream
...
Previously a single data ingestion stream to /api/v1/import could load only a single CPU core.
2020-09-26 04:21:32 +03:00
Aliaksandr Valialkin
c00627c103
app/vminsert: code prettifying
2020-09-26 04:13:18 +03:00
Aliaksandr Valialkin
b6a976b98d
app/vmagent: reduce memory usage when importing data via /api/v1/import
...
Previously vmagent could use big amounts of RAM when each ingested JSON line
contained many samples.
2020-09-26 04:10:24 +03:00
Aliaksandr Valialkin
82973f8ae7
Revert "lib/storage: remove unused fetchData arg from BlockRef.MustReadBlock"
...
This reverts commit bab6a15ae0 .
Reason for revert: the `fetchData` arg is used in cluster branch.
Leaving this arg in master branch makes smaller the diff with cluster branch.
2020-09-24 22:44:23 +03:00
Aliaksandr Valialkin
bab6a15ae0
lib/storage: remove unused fetchData arg from BlockRef.MustReadBlock
...
This arg became unused after 23bdc1f107
2020-09-24 20:48:40 +03:00
Aliaksandr Valialkin
23bdc1f107
app/vmselect/netstorage: do not spend CPU time on unpacking empty blocks during /api/v1/series calls
2020-09-24 20:18:10 +03:00
Aliaksandr Valialkin
24ca30bf66
lib/storage: correctly use maxBlockSize in various checks
...
Previously `maxBlockSize` has been multiplied by 8 in certain checks. This is unnecessary.
2020-09-24 18:12:56 +03:00
Aliaksandr Valialkin
c584aece38
app/vmselect/promql: properly limit implicitly set rollup window to -search.maxStalenessInterval
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/784
2020-09-23 23:23:59 +03:00
Aliaksandr Valialkin
2985077c35
all: consistently use "%w" formatting in fmt.Errorf for wrapped errors
2020-09-23 22:46:34 +03:00
Aliaksandr Valialkin
30c7269814
vendor: make vendor-update
2020-09-23 14:23:39 +03:00
Aliaksandr Valialkin
27500d7d4c
app/vmselect/prometheus: code cleanup after 3ba507000c
2020-09-23 13:04:17 +03:00
Aliaksandr Valialkin
3ba507000c
app/vmselect/prometheus: return timestamps from /api/v1/query, which match the time query arg
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/720
2020-09-23 12:58:48 +03:00
Aliaksandr Valialkin
c5ef0e6327
lib/persistentqueue: protect from multiple concurrent opening for the same persistent queue
2020-09-23 02:17:47 +03:00
Aliaksandr Valialkin
bed25e3c24
app/vmselect/netstorage: properly pre-allocate space for sbs
2020-09-22 23:49:55 +03:00
Aliaksandr Valialkin
5c42965853
lib/cgroup: attempt to obtain available CPU cores via /sys/devices/system/cpu/online
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/685#issuecomment-674423728
2020-09-22 23:27:19 +03:00
Aliaksandr Valialkin
09b0f7c202
app/vmselect/netstorage: release search resources on timeout errors
...
Previously these resources weren't released, which could lead to resource leaks.
2020-09-22 22:57:38 +03:00
Aliaksandr Valialkin
36eb5427eb
vendor: make vendor-update
2020-09-22 17:07:37 +03:00
Aliaksandr Valialkin
31ce0e29cd
docs/Single-server-VictoriaMetrics.md: VictoriaMetrics properly stores Inf values after 26115891db
2020-09-22 17:02:39 +03:00
Aliaksandr Valialkin
3b1e3a03e0
app/vmselect: make sure the request doesnt wait in pending queue more than the configured timeout
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/711
2020-09-22 01:23:19 +03:00
Aliaksandr Valialkin
a69234ed18
lib/storage: code prettifying after be5e1222f3
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/781
2020-09-22 00:36:45 +03:00
faceair
be5e1222f3
add filter to getMetricIDs ( #783 )
...
* add getMetricIDs filter
* check nil filter before use
2020-09-22 00:33:43 +03:00
Aliaksandr Valialkin
94f7d00537
docs/vmagent.md: typo fix
2020-09-21 21:49:22 +03:00
Aliaksandr Valialkin
f6f5c4118c
docs: make docs-sync
2020-09-21 21:47:47 +03:00
Aliaksandr Valialkin
00b5145c69
app/vmselect/searchutils: fixed tests after 2eb72e09ab
2020-09-21 21:31:38 +03:00
Aliaksandr Valialkin
2eb72e09ab
app/vmselect: use time value rounded to seconds if it isnt passed to /api/v1/query
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/720
2020-09-21 21:24:40 +03:00
Aliaksandr Valialkin
29108cc53e
lib/logger: add -loggerDisableTimestamps command-line flag for disabling timestamps in logs
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/778
2020-09-21 19:28:04 +03:00
Aliaksandr Valialkin
964bc7595c
lib/promscrape/discovery/ec2: code prettifying after 312fead9a2
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/771
2020-09-21 18:43:34 +03:00
Nikolay Khramchikhin
312fead9a2
Add improvements to ec2_sd_discovery ( #775 )
...
* Add improvements to ec2 discovery
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/771
role_arn support with aws sts
instance iam_role support
refreshing temporary tokens
* Apply suggestions from code review
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
* changed implementation, removed tests, clean up code
* moved endpoint builder into getEC2APIResponse
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
2020-09-21 16:04:15 +03:00
Aliaksandr Valialkin
1e1a27d803
app/vmalert: remove unneeded UTC() call
...
UTC() doesn't change the underlying timestamp, so the call isn't needed here
2020-09-21 15:55:59 +03:00
Aliaksandr Valialkin
9739283dad
lib/storage: reduce CPU load for idle VictoriaMetrics by reducing the frequency for the need for background merges
2020-09-21 15:54:11 +03:00
Roman Khavronenko
5dffc7a553
vmalert: add support for datasource.lookback flag ( #779 )
...
New datasource flag `datasource.lookback` defines how far to look into
past when evaluating queries.
Address https://github.com/VictoriaMetrics/VictoriaMetrics/issues/668
2020-09-21 15:53:49 +03:00
Roman Khavronenko
82c3bbce34
vmalert: fix the typo in error message ( #782 )
...
The error will be always nil so no sense in printing it.
2020-09-21 11:34:23 +03:00
Aliaksandr Valialkin
3e8569f456
lib/decimal: optimize maxUpExponent() by eliminating division from hot path
2020-09-19 13:50:09 +03:00
Aliaksandr Valialkin
f00e0e0103
lib/persistentqueue: sync data to file inside filestream.Writer.MustFlush
2020-09-19 12:51:41 +03:00
Aliaksandr Valialkin
26115891db
lib/decimal: properly store Inf values
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/752
2020-09-18 19:07:07 +03:00
Aliaksandr Valialkin
d50165ad59
app/vmagent: increase default value for -remoteWrite.queues from 1 to 4, since it has been appeared that many users hit this limit
2020-09-18 14:21:54 +03:00
Aliaksandr Valialkin
63d3c88c3b
vendor: update github.com/valyala/quicktemplate from v1.6.2 to v1.6.3
2020-09-18 13:10:48 +03:00
Aliaksandr Valialkin
1a9ee39b0e
lib/promscrape: avoid copying response body when scraping targets.
...
This should reduce memory usage when scraping targets with millions of metrics.
2020-09-18 13:05:43 +03:00
Aliaksandr Valialkin
70c721c01b
lib/persistentqueue: flush data to disk every second
...
Previously small amounts of data may be left unflushed for extended periods of time if vmagent collects small amounts of data.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/687
2020-09-18 13:05:40 +03:00
Aliaksandr Valialkin
74e3198281
vendor: udpate github.com/VictoriaMetrics/fasthttp from v1.0.5 to v1.0.7
2020-09-18 12:20:29 +03:00
Aliaksandr Valialkin
98d1cd0971
app/vmselect/graphite: return proper results /metrics/find?query=foo.*.bar according to Graphite Metrics API
2020-09-18 11:00:00 +03:00
Aliaksandr Valialkin
7a134b0fd7
app/vmstorage: added -forceMergeAuthKey command-line flag for protecting /internal/force_merge endpoint
2020-09-17 14:21:53 +03:00
Aliaksandr Valialkin
1f33dd717f
lib/storage: 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/#force-merge for more details.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/686
2020-09-17 12:20:40 +03:00
Aliaksandr Valialkin
8beb0da6ad
lib/{mergeset,storage}: compare errors with errors.Is()
2020-09-17 03:03:02 +03:00
Aliaksandr Valialkin
067d7c1ea1
lib/{mergeset,storage}: code prettifying
2020-09-17 02:06:31 +03:00
Aliaksandr Valialkin
020bd8685e
lib/storage: removed duplicate checks for empty parts during merge - another check is in the beginning of mergeParts functions
2020-09-17 01:49:03 +03:00
Aliaksandr Valialkin
f2a449983d
vendor: make vendor-update
2020-09-17 01:43:19 +03:00
Aliaksandr Valialkin
8674963f6a
docs/Single-server-VictoriaMetrics.md: document that /api/v1/series/count may count delete time series
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/770
2020-09-17 01:38:17 +03:00
Aliaksandr Valialkin
ab53cb6f7b
app/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` values in logs and at `/metrics` page.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/773
2020-09-16 22:36:25 +03:00
Aliaksandr Valialkin
9f79bcf64a
app/vmselect: improve description for -search.maxQueryDuration
2020-09-16 21:15:41 +03:00
Aliaksandr Valialkin
39dee12ed7
lib/persistentqueue: code simplification after d455764a6f
2020-09-16 21:14:19 +03:00
Aliaksandr Valialkin
d455764a6f
lib/persistentqueue: make the persistent queue more durable against unclean shutdown (kill -9, OOM, hard reset)
...
The strategy is:
- Periodical flushing of inmemory blocks to files, so they aren't lost on unclean shutdown.
- Periodical syncing of metadata for persisted queues, so the metadata remains in sync with the persisted data.
- Automatic adjusting of too big chunk size when opening the queue. The chunk size may be bigger than the writer offset after unclean shutdown.
- Skipping of broken chunk file if it cannot be read.
- Fsyncing finalized chunk files.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/687
2020-09-16 18:13:44 +03:00
Aliaksandr Valialkin
ffadf035fa
lib/protoparser/vmimport: add more testcases for invalid timestamps and values
...
Updates https://github.com/VictoriaMetrics/vmctl/issues/25
2020-09-16 02:22:06 +03:00
Aliaksandr Valialkin
d8183c3124
lib/protoparser: report more errors for incorrect timestamps and/or values
...
Previously certain errors in timestamps and/or values could be silently skipped,
which could lead to samples with zero values stored in the database.
Updates https://github.com/VictoriaMetrics/vmctl/issues/25
2020-09-16 02:14:18 +03:00
Aliaksandr Valialkin
9bc8484ab6
lib/protoparser/graphite: return error when value or timestamp cannot be properly parsed
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/99
2020-09-16 01:35:12 +03:00
Aliaksandr Valialkin
26fa94ba8d
vendor: update github.com/valyala/fastjson from v1.5.4 to v1.5.5
...
This should properly parse `+Inf` values when importing JSON lines via `/api/v1/import`
Updates https://github.com/VictoriaMetrics/vmctl/issues/25
2020-09-16 00:07:56 +03:00
Aliaksandr Valialkin
0bccb58e80
docs/Single-server-VictoriaMetrics.md: mention that VictoriaMetrics ignores NaN and Inf values during data ingestion
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/752
2020-09-15 23:40:28 +03:00
Aliaksandr Valialkin
1fec47a289
app/vmselect/netstorage: reduce memory usage when the time range from query touches big number of samples per each time series
2020-09-15 21:08:28 +03:00
Aliaksandr Valialkin
8c3d7c1a59
app/vmselect: typo fix in -search.maxStalenessInterval description
2020-09-15 14:24:27 +03:00
Aliaksandr Valialkin
fa01169c3d
lib/promscrape: add a link to troubleshooting docs to error message when duplicate scrape target with identical labels is skipped
2020-09-15 14:16:05 +03:00
Aliaksandr Valialkin
51598bd718
docs/Articles.md: add a link to https://medium.com/miro-engineering/prometheus-high-availability-and-fault-tolerance-strategy-long-term-storage-with-victoriametrics-82f6f3f0409e
2020-09-15 12:29:10 +03:00
Aliaksandr Valialkin
ba74d0c14c
lib/promscrape: typo fix
2020-09-12 00:14:21 +03:00
Aliaksandr Valialkin
7d893a234c
lib/promscrape: do not reset the remaining rows when pushing a part of data to remote storage during big scrapes
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/753
Thanks to @PerGon and @clmssz for help with debugging.
2020-09-11 23:39:13 +03:00
Aliaksandr Valialkin
0e533d1a9c
app/vmselect/promql: 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 https://github.com/prometheus/prometheus/pull/7713
2020-09-11 23:39:13 +03:00
Aliaksandr Valialkin
0e19f35af5
lib/promscrape/discovery/dns: add __meta_dns_srv_record_target and __meta_dns_srv_record_port labels
...
This syncs dns service discovery with Prometheus 2.21 - see https://github.com/prometheus/prometheus/releases
and https://github.com/prometheus/prometheus/pull/7678 .
2020-09-11 23:39:13 +03:00
Roman Khavronenko
6ad6480400
vmalert: add Group name as label to generated alerts and timeseries ( #761 )
...
Solves #611
2020-09-11 20:52:56 +01:00
Roman Khavronenko
4cdffb04a4
vmalert: update groups on config reload only if changes detected ( #759 )
...
On config reload event `vmalert` reloads configuration for every group. While
it works for simple configurations, the more complex and heavy installations may
suffer from frequent config reloads.
The change introduces the `checksum` field for every group and is set to md5 hash
of yaml configuration. The checksum will change if on any change to group
definition like rules order or annotation change. Comparing the `checksum` field
on config reload event helps to detect if group should be updated.
The groups update is now done concurrently, so reload duration will be limited by
the slowest group now.
Partially solves #691 by improving config reload speed.
2020-09-11 20:14:30 +01:00
Aliaksandr Valialkin
ca856284e4
app/vmagent: allow setting multiple identical -remoteWrite.url values
...
This may be useful when each url is authenticated via different `-remoteWrite.basicAuth.username`.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/755
2020-09-11 15:17:22 +03:00
Aliaksandr Valialkin
62fde80490
lib/protoparser/common: do not read request body when parsing timestamp query arg
...
This was preventing from reading data via /api/v1/prometheus/import .
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/750
2020-09-11 14:44:58 +03:00
Aliaksandr Valialkin
5a90a92378
lib/storage: do not store inf values, since they may lead to significant precision loss for previously stored values
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/752
2020-09-11 14:44:53 +03:00
Aliaksandr Valialkin
a2f647d142
app/vmselect/prometheus: typo fix in the description for -search.latencyOffset command-line flag
2020-09-11 14:16:46 +03:00
Aliaksandr Valialkin
f95eea60d1
lib/protoparser: accept timestamp in milliseconds instead of seconds at /api/v1/import/prometheus
...
This improves consistency with timestamps in Prometheus text exposition format
2020-09-11 14:04:46 +03:00
Aliaksandr Valialkin
2380e9b017
app/{vminsert,vmagent}: allow passing timestamp via timestamp query arg when ingesting data to /api/v1/import/prometheus
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/750
2020-09-11 13:27:14 +03:00
Aliaksandr Valialkin
f0005c3007
app/vmselect: move Deadline from netstorage to searchutils
...
This removes dependency on netstorage from searchutils.
2020-09-11 13:27:13 +03:00
Aliaksandr Valialkin
2114179e19
app/vmselect: substitute inf values at smooth_exponential with the previous values
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/757
2020-09-11 12:24:14 +03:00
Nikolay Khramchikhin
6c80ae0da8
Added endpointslices discovery to k8s api ( #760 )
...
This is similar to https://github.com/prometheus/prometheus/pull/6838 , which will be added in Prometheus v2.21.
See https://github.com/prometheus/prometheus/releases/tag/v2.21.0-rc.1
* Added endpointslices discovery to k8s api
Started from 1.17 k8s version endpointslices is beta,
it allows to query k8s api for endpoints more efficient.
It presents at scrape_config.yaml as separate role for kubernetes_sd_config.
kubernetes_sd_config:
- role: endpointslices
* fixed typos, changed EndpointConditions signature - with values instead of pointers
2020-09-11 12:16:45 +03:00
Aliaksandr Valialkin
204ec415b4
app/vmselect: skip infinite values when calculating smooth_exponential
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/757
2020-09-11 11:29:58 +03:00
Aliaksandr Valialkin
8a8b5a73d3
app/vmselect/graphite: typo fix in label name for vm_request_duration_seconds metric
2020-09-11 01:58:28 +03:00
John Belmonte
c9d0905b17
fix typo on outliersk() doc ( #758 )
2020-09-11 00:55:53 +03:00
Aliaksandr Valialkin
f6bc608e86
app/vmselect: initial implementation of Graphite Metrics API
...
See https://graphite-api.readthedocs.io/en/latest/api.html#the-metrics-api
2020-09-11 00:30:01 +03:00
Aliaksandr Valialkin
3eccecd5fd
vendor: make vendor-update
2020-09-10 09:49:13 +03:00
Aliaksandr Valialkin
b3dcaf0cd7
deployment/docker: update Go builder from v1.15.1 to v1.15.2
...
This fixes the following issues in Go runtime - see https://github.com/golang/go/issues?q=milestone%3AGo1.15.2+label%3ACherryPickApproved
2020-09-10 09:36:43 +03:00
Aliaksandr Valialkin
9d8fdff6c5
lib/storage: reuse timestamp blocks for adjancent metric blocks with identical timestamps
...
This should reduce disk space usage when scraping targets containing metrics with identical names
such as `node_cpu_seconds_total`, histograms, quantiles, etc.
Expose `vm_timestamps_blocks_merged_total` and `vm_timestamps_bytes_saved_total` metrics for monitoring
the effectiveness of timestamp blocks merging.
2020-09-09 23:59:32 +03:00
Aliaksandr Valialkin
d7c04db1fc
docs: sync docs for vmalert, vmauth, vmbackup and vmrestore
2020-09-09 21:10:34 +03:00
Aliaksandr Valialkin
e5ed8c8d75
docs/Articles.md: add links to recently published third-party articles and talks about VictoriaMetrics
2020-09-09 20:15:27 +03:00
Aliaksandr Valialkin
9d431a4b45
docs/Single-server-VictoriaMetrics.md: typo fix
2020-09-09 01:21:45 +03:00
Aliaksandr Valialkin
4739dff6f0
docs/Single-server-VictoriaMetrics.md: typo fix
2020-09-09 00:59:37 +03:00
Aliaksandr Valialkin
11eaa37111
docs/vmagent.md: clarified the case when -remoteWrite.queues must be tuned
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/745
2020-09-08 20:15:27 +03:00
Aliaksandr Valialkin
df169b1ebd
lib/httpserver: add a jitter to connection timeouts in order to protect from Thundering herd problem
2020-09-08 19:55:09 +03:00
Aliaksandr Valialkin
9d61d24142
vendor: make vendor-update
2020-09-08 15:20:01 +03:00
Aliaksandr Valialkin
62919eaf7e
app/vmselect/promql: go fmt
2020-09-08 15:19:59 +03:00
Aliaksandr Valialkin
e6da63dffe
app/vmselect/promql: adjust integrate() calculations to be more similar to calculations from InfluxDB: attempt #2
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/701
2020-09-08 14:35:50 +03:00
Aliaksandr Valialkin
8e85b56737
app/vmselect/promql: adjust integrate() calculations to be more similar to calculations from InfluxDB
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/701
2020-09-08 14:23:39 +03:00
Aliaksandr Valialkin
c0343a661b
app/vmselect/promql: increase floating point calculations accuracy by dividing by 1e3 instead of multiplying by 1e-3
2020-09-08 14:00:47 +03:00
Aliaksandr Valialkin
1bca6160a3
docs/Single-server-VictoriaMetrics.md: make docs-sync
2020-09-07 21:58:06 +03:00
John Belmonte
ccfb7c5e29
revise /api/v1/series docs ( #746 )
...
* revise /api/v1/series docs
Further clarification for #735
* clarify how default range differers from Prometheus API
* avoid `start=0` suggestion when confirming delete, because it will cause a timeout in most deployments
* Update README.md
2020-09-07 21:57:34 +03:00
Nikolay Khramchikhin
8d71a60a76
Changed s3 configProfile flag default, ( #749 )
...
aws sdk has complicated logic for chosing profile name and we shouldn't set
it to `default` value. It leads to bugs and improper configuration.
Set it to empty value by default is safe. It will be automatically set to `default` by sdk.
2020-09-07 21:53:24 +03:00
Aliaksandr Valialkin
eb33a48b9b
docs/Single-server-VictoriaMetrics.md: sync with README.md
2020-09-04 03:30:05 +03:00
John Belmonte
cd7426be6e
document minScrapeInterval semantics ( #744 )
...
* document `minScrapeInterval` semantics
Fixes #714 .
* Update README.md
revise wording
2020-09-04 03:29:26 +03:00
Aliaksandr Valialkin
a5621b9c46
docs/Single-server-VictoriaMetrics.md: updates according to review comments at fe98ba5a60
2020-09-04 02:57:02 +03:00
Aliaksandr Valialkin
be6ae4b5e7
lib/memory: fall back to reading hierarchical memory limit in cgroups when the default limit isn't set
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/699
2020-09-04 00:05:05 +03:00
Aliaksandr Valialkin
d387da142e
lib/httpserver: 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.
2020-09-03 22:23:29 +03:00
Aliaksandr Valialkin
e1c2757f70
vendor: update github.com/VictoriaMetrics/metricsql from v0.4.3 to v0.5.1
...
The new version of the package supports binary operations on string literals:
* "foo" + "bar" => "foobar"
* "foo" == "bar" => NaN
* "foo" == "foo" => 1
* "foo" >bool "bar" => 1
* "foo" < "bar" => NaN
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/717
2020-09-03 16:33:31 +03:00
Aliaksandr Valialkin
f4e7e5fb90
app/vmselect/promql: add count_le_over_time(m[d], le) and count_gt_over_time(m[d], gt) functions
...
These functions returns the number of raw samples that don't exceed `le` or are bigger than `gt`.
These functions are complement to already existing `share_le_over_time(m[d], le)` and `share_gt_over_time(m[d], gt)`.
2020-09-03 15:29:10 +03:00
Aliaksandr Valialkin
d5b985f086
vendor: update github.com/VictoriaMetrics/metricsql from v0.4.1 to v0.4.2
...
The new version of this package properly supports escaped identifiers.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/743
2020-09-03 15:01:42 +03:00
Aliaksandr Valialkin
e706e59d49
app/vmselect: unconditionally align time range boundaries to step for subqueries as Prometheus does
2020-09-03 13:29:50 +03:00
Aliaksandr Valialkin
fe98ba5a60
docs/Single-server-VictoriaMetrics.md: mention that /api/v1/series returns series for the last 5 minutes if start query arg is missing
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/735
2020-09-03 12:38:29 +03:00
Aliaksandr Valialkin
ddabc13796
app/vmagent: properly flush big blocks of data
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/741
Thanks to @IceRain00 for the investigation and initial attempt to fix the issue
at https://github.com/VictoriaMetrics/VictoriaMetrics/pull/742
2020-09-03 12:12:39 +03:00
Aliaksandr Valialkin
7a839b461f
app/vmagent: fix data race when accessing writeRequest.lastFlushTime
2020-09-03 12:12:37 +03:00
Nikolay Khramchikhin
764b3d4fda
changed vmalert behaviour ( #738 )
...
* VMAlert start with empty rules dir
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.
Removing rules files with SIGHUP signal must stop rules execution and
vmalert will wait for new rules.
* imports sorted
* added test cases for empty rules, removed blank line
* fixed imports conflict
* updated tests
2020-09-03 11:04:42 +03:00
Aliaksandr Valialkin
b4afc6ee2f
docs/Single-server-VictoriaMetrics.md: add missing link to Prometheus text exposition format
2020-09-03 01:10:11 +03:00
Aliaksandr Valialkin
5f16ceb294
app/vmalert: imrovements over 3f932c2db1
2020-09-03 01:00:55 +03:00
DexterZhang
3f932c2db1
feat: spread load of rule evaluation by group when starting new groups ( #724 )
...
* feat: spread load of rule evaluation by group when starting new groups
* review: reduce the resulting diff.
* Update app/vmalert/group.go
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
Co-authored-by: Roman Khavronenko <hagen1778@gmail.com >
2020-09-03 00:58:54 +03:00
Aliaksandr Valialkin
f41b36bb9a
app/{vminsert,vmagent}: 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.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/719
2020-09-02 19:43:21 +03:00
Aliaksandr Valialkin
038358b777
lib/promscrape: use the number of parsed rows as a basis for writeRequestCtxPool leveling
...
The previous basis on `cap(sw.labels)` doesn't work anymore after 7785869ccc ,
because `sw.labels` may be reset multiple times when processing big number of rows.
2020-09-02 18:46:01 +03:00
Roman Khavronenko
ed899ca9e8
Single dashboards update ( #736 )
...
* dashboard: rename var `datasource` to `ds` for consistency reason
Dasbhoards for cluster version or vmagent operate with datasource variable
named `ds`. For consistency sake we rename this variable in single node version
as well.
* dashboard: add instance variable picker
See dashboard reviews here https://grafana.com/grafana/dashboards/10229/reviews
* dashboard: limit number of buckets in histogram to 12 for vmagent dashboard
* dashboard: bump version requirement in description for single version
* dashboard: drop extra series override for single version
* dashboard: set Y-min to zero for most of panels in vmagent dashboard
2020-09-02 15:16:40 +03:00
Aliaksandr Valialkin
e9196655dd
deployment/docker: update Go builder from v1.15.0 to v1.15.1
2020-09-02 15:10:15 +03:00
Aliaksandr Valialkin
821df709d3
vendor: make vendor-update
2020-09-02 15:05:16 +03:00
John Belmonte
67277abecf
use Y-min 0 on Grafana dashboard graphs ( #732 )
2020-09-01 19:56:56 +01:00
Aliaksandr Valialkin
c2ff8de456
lib/httpserver: add -http.idleConnTimeout command-line flag for tuning the timeout for incoming idle http connections
2020-09-01 15:33:24 +03:00
Aliaksandr Valialkin
b059f194e4
lib/promscrape: fix applying sample_limit when scraping targets with big number of metrics
...
This has been broken at 7785869ccc
2020-09-01 11:08:13 +03:00
Aliaksandr Valialkin
7785869ccc
lib/promscrape: reduce memory usage when scraping targets with millions of metrics
...
This should help when scraping /federate endpoints from Prometheus instances,
which scrape millions of metrics. See https://prometheus.io/docs/prometheus/latest/federation/
2020-09-01 10:57:07 +03:00
Aliaksandr Valialkin
5af777469a
app/vmagent: log unsuccessful attempt number when sending data to -remoteWrite.url
2020-08-30 21:40:22 +03:00
Aliaksandr Valialkin
2149733bd2
app/vmagent: apply sane limits to -remoteWrite.queues
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/707
2020-08-30 21:25:37 +03:00
Aliaksandr Valialkin
dd20784d06
docs/Single-server-VictoriaMetrics.md: mention that VictoriaMetrics accepts relative times at time, start and end query args
2020-08-28 10:13:16 +03:00
Aliaksandr Valialkin
de6970e828
docs/vmalert.md: sync with app/vmalert/README.md via make docs-update
2020-08-28 09:51:48 +03:00
Aliaksandr Valialkin
4a415620d3
docs/Articles.md: add a link to https://medium.com/@romanhavronenko/victoriametrics-how-to-migrate-data-from-prometheus-filtering-and-modifying-time-series-6d40cea4bf21
2020-08-28 09:51:26 +03:00
Aliaksandr Valialkin
acbcad1ece
lib/{promscrape,leveledbytebufferpool}: rename getPoolIdAndCapacity to getPoolIDAndCapacity in order to make golint happy
2020-08-28 09:49:32 +03:00
Aliaksandr Valialkin
f4c4ab811b
lib/cgroup: limit the maximum GOMAXPROCS value to the number of available CPU cores
...
There is no sense in setting GOMAXPROCS to value higher than the number of available CPU cores.
2020-08-28 09:49:32 +03:00
Roman Khavronenko
10601bc652
vmalert: update -rule flag description to enforce quotes using ( #709 )
...
Description for `-rule` flag uses as example specific chars like asterisks
which could be interpreted wrong by different shells. To avoid this, description
now contains quoted flag values.
See also #708
2020-08-20 22:36:38 +01:00
Roman Khavronenko
f2c004d1ae
lib/flagutil: avoid int overflow for arch 386 ( #710 )
...
Arch 386 is a 32-bit architecture and interprets int type for numbers as an explicit int32,
whereas on most modern CPUs int is implicitly an int64. This makes tests to fail with
`int overflow` error.
2020-08-20 22:27:37 +01:00
Aliaksandr Valialkin
efc730863b
lib/promscrape: reduce memory usage when scraping targets with big number of metrics alongside targets with small number of labels
...
Previously targets with big number of metrics and/or labels could generated too big buffers,
which then could be re-used when scraping targets with small number of metrics.
This resulted in memory waste.
Now big buffers are used only for targets with big number of metrics / labels,
while small buffers are used for targets with small number of metrics / labels.
2020-08-16 22:29:51 +03:00
Aliaksandr Valialkin
d6967319b6
lib/leveledbytebufferpool: allocate byte buffers with capacity rounded to the upper boundary for the given bucket
...
This should reduce the number of resizings for the returned byte buffers.
2020-08-16 22:13:30 +03:00
Roman Khavronenko
f5f59896ec
lib/decimal: rename significant decimal digits to significant figures ( #698 )
...
The previous notion was inconsistent with what `decimal.Round` does.
According to [wiki](https://en.wikipedia.org/wiki/Significant_figures ) rounding
applied to all significant figures, not just decimal ones.
2020-08-16 17:21:35 +03:00
Aliaksandr Valialkin
147c35ebd4
all: allow using KB, MB, GB, KiB, MiB and GiB suffixes in command-line flag values related to byte sizes or byte rates
2020-08-16 17:05:52 +03:00
Aliaksandr Valialkin
7c0d6a8b88
lib/memory: improve log message about the memory allowed to use by VictoriaMetrics
2020-08-16 16:04:11 +03:00
Aliaksandr Valialkin
ed00eb3f33
lib/protoparser: removed unnecessary call to SetReadDeadline when reading a stream of data
...
The OS should return any buffered data in the stream without the need to set the read timeout.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/696
2020-08-15 15:38:08 +03:00
Aliaksandr Valialkin
7615a3ab8d
vendor: upgrade github.com/valyala/gozstd from v1.7.1 to v1.8.3
2020-08-15 15:11:56 +03:00
Aliaksandr Valialkin
7be9bedaf9
vendor: downgrade github.com/valyala/gozstd from v1.8.1 to v1.7.1 until https://github.com/facebook/zstd/issues/2222 is fixed
2020-08-15 14:46:32 +03:00
Aliaksandr Valialkin
00b1659dde
lib: dump compressed block contents on error during decompression
...
This should improve detecting root cause for https://github.com/facebook/zstd/issues/2222
2020-08-15 14:44:33 +03:00
Aliaksandr Valialkin
528e25bdde
vendor: update github.com/valyala/gozstd from v1.7.0 to v1.8.1
2020-08-15 13:46:43 +03:00
Aliaksandr Valialkin
b3849a90fd
lib/leveledbytebufferpool: pre-allocate byte slice with the given capacity if the pool is empty
...
This should reduce memory allocations and copying when the byte slice is growing.
2020-08-15 01:40:54 +03:00
Aliaksandr Valialkin
7d89fafe1a
app/vmselect/promql: allow passing multiple args to aggregate functions such as avg(q1, q2, q3)
2020-08-15 01:15:09 +03:00
Aliaksandr Valialkin
cd96248480
docs/vmagent.md: mention that gaps in remote storage may appear if vmagent cannot keep up with data ingestion
2020-08-14 20:47:57 +03:00
Aliaksandr Valialkin
7554be172d
lib/protoparser: move common code for detecting timeouts to ReadLinesBlockExt
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/696
2020-08-14 20:40:15 +03:00
Aliaksandr Valialkin
4beab7ad39
lib/protoparser: prevent from busy loop on repeated timeout errors when reading streams of ingested data
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/696
2020-08-14 20:14:11 +03:00
Aliaksandr Valialkin
41d23f84ed
docs/Cluster-VictoriaMetrics.md: sync with upstream
2020-08-14 19:15:29 +03:00
Aliaksandr Valialkin
184670fb9b
docs: update docs
2020-08-14 19:13:42 +03:00
Aliaksandr Valialkin
52791fd1c0
lib/memory: add -memory.allowedBytes command-line flag for setting absolute memory limit for VictoriaMetrics caches
2020-08-14 19:13:38 +03:00
Aliaksandr Valialkin
576da0fe46
app/{vminsert,vmagent}: improve documentation for -influxListenAddr command-line flag
2020-08-14 18:04:44 +03:00
Aliaksandr Valialkin
215967437d
lib/protoparser/prometheus: typo fix in error message
2020-08-14 11:04:23 +03:00
Aliaksandr Valialkin
d1ad3adcbe
vendor: make vendor-update
2020-08-14 02:29:02 +03:00
Aliaksandr Valialkin
42960feff4
vendor: update github.com/VictoriaMetrics/fasthttp from v1.0.4 to v1.0.5
2020-08-14 02:19:36 +03:00
Aliaksandr Valialkin
07246bc31c
vendor: update github.com/klauspost/compress from v1.10.10 to v1.10.11
2020-08-14 02:17:07 +03:00
Aliaksandr Valialkin
e646674b23
lib/promscrape: use a hint on body length instead of body capacity
...
This should reduce memory usage for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/689
2020-08-14 01:17:52 +03:00
Aliaksandr Valialkin
4628deecd1
lib/promscrape: reduce memory usage when scraping big number of targets
...
Thanks to @dxtrzhang for the original idea at https://github.com/VictoriaMetrics/VictoriaMetrics/pull/688
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/689
2020-08-14 01:04:53 +03:00
Aliaksandr Valialkin
eead3ee8ec
lib/promscrape: properly retry requests on the server closed connection before returning the first response byte error during service discover API calls and target scrapes
2020-08-13 22:31:52 +03:00
Aliaksandr Valialkin
c402265e88
all: support %{ENV_VAR} placeholders in yaml configs in all the vm* components
...
Such placeholders are substituted by the corresponding environment variable values.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/583
2020-08-13 17:15:25 +03:00
Aliaksandr Valialkin
ff495a74f6
deployment/docker: update Go builder from Go1.14.7 to Go1.15.0
2020-08-13 15:53:32 +03:00
Aliaksandr Valialkin
45962fb8c2
docs/Cluster-VictoriaMetrics.md: mention about Kubernetes operator
2020-08-12 21:15:34 +03:00
Aliaksandr Valialkin
fd6c690276
docs/Single-server-VictoriaMetrics.md: mention helm charts, k8s operator and vmctl tool in Integrations chapter
2020-08-12 21:12:23 +03:00
Aliaksandr Valialkin
e730788477
docs/Articles.md: added https://medium.com/@romanhavronenko/victoriametrics-how-to-migrate-data-from-prometheus-d44a6728f043
2020-08-12 21:03:05 +03:00
Aliaksandr Valialkin
ef7e2af8f5
app: respect CPU limits set via cgroups
...
Update GOMAXPROCS to limits set via cgroups. This should reduce CPU trashing and reduce memory usage
for cases when VictoriaMetrics components run in containers with CPU limits.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/685
2020-08-11 22:59:19 +03:00
Aliaksandr Valialkin
15aa6142ef
lib/protoparser: clarify that the string passed to Unmarshal() function must remain available when the parsed rows are in use
2020-08-11 17:04:39 +03:00
Aliaksandr Valialkin
5492edcc6c
docs/Single-server-VictoriaMetrics.md: mention that it is safe to skip multiple versions during the upgrade
2020-08-11 14:21:37 +03:00
Aliaksandr Valialkin
e969ef2639
app/vmselect: reduce memory usage when exporting time series with big number of samples via /api/v1/export if max_rows_per_line is set to non-zero value
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/685
2020-08-10 20:57:36 +03:00
Aliaksandr Valialkin
c098988a18
lib/protoparser/influx: accept precision=us and precision=µ according to https://docs.influxdata.com/influxdb/v1.8/tools/api/#write-http-endpoint
2020-08-10 20:23:26 +03:00
Aliaksandr Valialkin
1bdfa29ef7
lib/promscrape: optimize per-metric hash calculations
...
This increases vmagent performance by up to 10% when scraping big number of metrics
2020-08-10 19:49:03 +03:00
Aliaksandr Valialkin
8adba82c02
app/vmselect/netstorage: vary batch size for data unpacking depending on the available CPU cores
...
This should reduce contention on the channel with unpack work for systems with high number of CPU cores
2020-08-10 15:16:42 +03:00
Aliaksandr Valialkin
8d9eb5f808
lib/storage: mention time range used in the query that led to error message
...
This should improve detecting slow queries with too big time ranges
2020-08-10 13:46:36 +03:00
Aliaksandr Valialkin
582c74cd93
lib/storage: mention tag filters used in the query that led to error message
...
This should improve detecting invalid or heavy queries that lead to errors.
2020-08-10 13:36:49 +03:00
Aliaksandr Valialkin
f3d33e23c9
app/vmstorage: improve error logging when the request times out
2020-08-10 13:23:26 +03:00
Aliaksandr Valialkin
455bf50a91
lib/promscrape: show real timestamp and real duration for the scape on /targets page
...
Previously the scrape duration may be negative when calculated scrape timestamp drifts away from the real scrape timestamp
2020-08-10 12:40:25 +03:00
Aliaksandr Valialkin
2791008e19
vendor: make vendor-update
2020-08-09 15:13:55 +03:00
Aliaksandr Valialkin
a499de45cc
lib/promscrape: make errcheck happy
2020-08-09 13:17:18 +03:00
Aliaksandr Valialkin
23c9e6b727
lib/promscrape: 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 https://github.com/VictoriaMetrics/VictoriaMetrics/issues/683
2020-08-09 12:45:39 +03:00
Aliaksandr Valialkin
9d32fb1d9e
lib/fs: use WARN instead of ERROR log level for the message when NFS diretory removal temporarily fails
...
this is expected condition, so it is better to use WARN log level for it
2020-08-09 12:07:30 +03:00
Aliaksandr Valialkin
d4b6d22987
lib/promscrape: add a test for scrape config for blackbox exporter
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/684
2020-08-09 12:02:48 +03:00
Roman Khavronenko
0be5b09fb4
app/vmalert: extend metrics set exported by vmalert #573 ( #654 )
...
* app/vmalert: extend metrics set exported by `vmalert` #573
New metrics were added to improve observability:
+ vmalert_alerts_pending{alertname, group} - number of pending alerts per group
per alert;
+ vmalert_alerts_acitve{alertname, group} - number of active alerts per group
per alert;
+ vmalert_alerts_error{alertname, group} - is 1 if alertname ended up with error
during prev execution, is 0 if no errors happened;
+ vmalert_recording_rules_error{recording, group} - is 1 if recording rule
ended up with error during prev execution, is 0 if no errors happened;
* vmalert_iteration_total{group, file} - now contains group and file name labels.
This should improve control over specific groups;
* vmalert_iteration_duration_seconds{group, file} - now contains group and file name labels. This should improve control over specific groups;
Some collisions for alerts and recording rules are possible, because neither
group name nor alert/recording rule name are unique for compatibility reasons.
Commit contains list of TODOs for Unregistering metrics since groups and rules
are ephemeral and could be removed without application restart. In order to
unlock Unregistering feature corresponding PR was filed - https://github.com/VictoriaMetrics/metrics/pull/13
* app/vmalert: extend metrics set exported by `vmalert` #573
The changes are following:
* add an ID label to rules metrics, since `name` collisions within one group is
a common case - see the k8s example alerts;
* supports metrics unregistering on rule updates. Consider the case when one rule
was added or removed from the group, or the whole group was added or removed.
The change depends on https://github.com/VictoriaMetrics/metrics/pull/16
where race condition for Unregister method was fixed.
2020-08-09 09:41:29 +03:00
ofen
81746d14b9
401 Unauthorize HTTP error added ( #681 )
...
401 Unauthorize HTTP error added to trigger browser credentials pop-up promt [RFC 7235 https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication ]
2020-08-09 09:38:41 +03:00
Aliaksandr Valialkin
807c2b076c
vendor: update github.com/VictoriaMetrics/metrics from v1.12.2 to v1.12.3
2020-08-07 13:02:51 +03:00
Aliaksandr Valialkin
84fd8af6d3
lib/storage: 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 https://github.com/VictoriaMetrics/VictoriaMetrics/issues/648
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/618
2020-08-07 08:49:40 +03:00
Aliaksandr Valialkin
9043a509a3
lib/storage: properly check timeouts and pace limits
...
Previously they were checked on every iteration for small number of iterations
2020-08-07 08:40:37 +03:00
Aliaksandr Valialkin
1ad3de5c54
deployment/docker: update Go builder from v1.14.6 to v1.14.7
2020-08-07 08:29:06 +03:00
Aliaksandr Valialkin
d60908bba4
docs/MetricsQL.md: mention that MetricsQL removes all the NaN values from results
2020-08-07 07:51:45 +03:00
Aliaksandr Valialkin
716754fae6
app/vmselect/promql: properly handle -n^m like Prometheus does
...
`-n^m` must be handled as `-(n^m)` instead of `(-n)^m`.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/675
2020-08-07 07:42:18 +03:00
Aliaksandr Valialkin
bb61a4769b
app/vmselect/promql: remove metric name after applying clamp_min and clamp_max functions in order to be consistent with Prometheus
...
This improves VictoriaMetrics score at https://promlabs.com/promql-compliance-test-results-victoriametrics/
2020-08-06 23:42:37 +03:00
Aliaksandr Valialkin
ac45082216
app/vmselect/promql: remove metric name after applying ceil, floor and round functions in order to be more consistent with Prometheus
...
This improves VictoriaMetrics score at https://promlabs.com/promql-compliance-test-results-victoriametrics/
2020-08-06 23:34:37 +03:00
Aliaksandr Valialkin
e5202a4eae
app/vmselect/promql: remove metric name from results of certain rollup functions in order to be consistent with Prometheus
...
Rollup functions:
- avg_over_time
- min_over_time
- max_over_time
- quantile_over_time
This improves VictoriaMetrics results at https://promlabs.com/promql-compliance-test-results-victoriametrics/
2020-08-06 23:29:13 +03:00
Aliaksandr Valialkin
68e4f40a72
app/vmselect: properly handle PromQL queries like scalar1 < metric < scalar2 like Prometheus does
...
This fixes some cases from https://promlabs.com/promql-compliance-test-results-victoriametrics/
2020-08-06 23:21:03 +03:00
Aliaksandr Valialkin
ada2ae69ec
vendor: update github.com/VictoriaMetrics/metricsql from v0.2.10 to v0.3.0
...
This adds support for special integers in MetricsQL that start from 0x, 0b, 0o.
This improves compatibility with PromQL - see https://promlabs.com/promql-compliance-test-results-victoriametrics/
2020-08-06 21:45:21 +03:00
Aliaksandr Valialkin
bc8381613d
app/vmselect: reduce memory allocations by pre-allocatin memory for time series map and for a list of time series names
2020-08-06 19:17:58 +03:00
Aliaksandr Valialkin
8e44fba76d
lib/storage: reduce the frequency (and overhead) for timeout and pace limiter checks by 4x
2020-08-06 18:45:55 +03:00
Aliaksandr Valialkin
7dbe335426
lib/pacelimiter: increase scalability for multi-CPU system
2020-08-06 18:32:59 +03:00
Aliaksandr Valialkin
3f85c06b65
app/vmselect/netstorage: reduce CPU contention when upacking time series blocks by unpacking batches of such blocks instead of a single block
...
This should improve query performance on systems with big number of CPU cores (16 and more)
2020-08-06 17:50:17 +03:00
Aliaksandr Valialkin
d20c2156e4
app/vmselect/netstorage: reduce contention on unpackworkCh and timeseriesWorkCh for multi-CPU system by providing more capacity for these chans
2020-08-06 17:22:48 +03:00
Aliaksandr Valialkin
ad730d8a17
lib/storage: optimize prefetching metric names for the given metricIDs
2020-08-06 16:53:10 +03:00
Aliaksandr Valialkin
dbbdfbe7ee
app/vmstorage: rename vm_cache_size_entries{type="storage/prefetchedMetricIDs"} to vm_cache_entries{type="storage/prefetchedMetricIDs"} to be consistent with other vm_cache_entries metrics
2020-08-06 16:34:24 +03:00
Aliaksandr Valialkin
639b26b40c
lib/fs: export vm_nfs_pending_dirs_to_remove metric for monitoring the number of pending directories that couldn't be removed due to NFS lock
2020-08-06 15:31:34 +03:00
Aliaksandr Valialkin
8f16388428
lib/storage: limit the number of concurrent calls to storage.searchTSIDs to GOMAXPROCS*2
...
This should limit the maximum memory usage and reduce CPU trashing on vmstorage
when multiple heavy queries are executed.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/648
2020-08-05 18:30:07 +03:00
Aliaksandr Valialkin
aaa497ff0b
Perform conversion from string to []byte according to rule #6 at https://golang.org/pkg/unsafe/#Pointer
2020-08-05 11:55:58 +03:00
Aliaksandr Valialkin
ef94333808
vendor: make vendor-update
2020-08-05 11:10:10 +03:00
Aliaksandr Valialkin
c25b0c2cd5
app/vmagent: tune http client for sending data to remote storage in order to disable closing keep-alive connections
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/663
2020-08-04 21:00:29 +03:00
Aliaksandr Valialkin
5d0c37bec0
app/vmselect: use warning level instead of info level for logging slow queries that take longer than -search.logSlowQueryDuration
2020-08-04 20:25:35 +03:00
Antonin Kral
bba1442649
Add option to build 32b ARM Debian package (armhf) ( #665 )
2020-08-04 18:12:59 +03:00
Aliaksandr Valialkin
a9ffd233df
docs/Single-server-VictoriaMetrics.md: add a chapter about data updates
2020-08-04 13:53:59 +03:00
Aliaksandr Valialkin
a034f02fb2
lib/backup: allow using ~/.aws/config without region
...
Use us-west-2 for determining bucket region.
2020-08-04 13:07:59 +03:00
Aliaksandr Valialkin
e6eee2bebf
app/vmselect/promql: add zscore-related functions: zscore_over_time(m[d]) and zscore(q) by (...)
2020-08-03 21:52:18 +03:00
Aliaksandr Valialkin
509d12643b
app/vmselect: show X-Forwarded-For contents on /api/v1/status/active_queries page
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/659
2020-07-31 20:05:18 +03:00
Aliaksandr Valialkin
5e71fab8a6
lib/storage: reduce the maximum number of concurrent merge workers to GOMAXPROCS/2
...
Previously the limit has been raised to GOMAXPROCS, but it has been appeared that this
increases query latencies since more CPUs are busy with merges.
While at it, substitute `*MergeConcurrencyLimitCh` channels with simple integer limits.
2020-07-31 17:46:56 +03:00
Aliaksandr Valialkin
d01f3c1943
all: add mssing APP_NAME to vm*-GOARCH builds
2020-07-31 13:42:18 +03:00
Aliaksandr Valialkin
3f498cf2dc
docs/{vmagent,vmalert}: add instruction on how to build for ARM
2020-07-31 09:25:22 +03:00
Aliaksandr Valialkin
8c8c14c127
docs/Single-server-VictoriaMetrics.md: mention that downgrade is also safe to perform
2020-07-31 09:20:40 +03:00
Aliaksandr Valialkin
44a86e1be3
vendor: update github.com/valyala/quicktemplate from v1.5.2 to v1.6.0
2020-07-30 23:39:40 +03:00
Aliaksandr Valialkin
f0c678c41b
app/vmselect: do not adjust start and end query args passed to /api/v1/query_range when -search.disableCache command-line flag is set
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/563
2020-07-30 23:14:37 +03:00
Aliaksandr Valialkin
e255c066cc
docs/vmalert.md: sync with app/vmalert/README.md
2020-07-30 21:56:48 +03:00
Aliaksandr Valialkin
e7959094f6
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 https://github.com/VictoriaMetrics/VictoriaMetrics/issues/648
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/618
2020-07-30 19:57:27 +03:00
Aliaksandr Valialkin
922d9aadf2
lib/storage: 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 may 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.
2020-07-30 16:17:24 +03:00
Aliaksandr Valialkin
68716488db
vendor: update github.com/valyala/quicktemplate from v1.5.1 to v1.5.2
2020-07-29 18:20:11 +03:00
Aliaksandr Valialkin
67a64c142d
lib/httpserver: emit X-Forwarded-For additionally to remoteAddr in error logs
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/659
2020-07-29 13:12:42 +03:00
Aliaksandr Valialkin
328b52e5ff
app/vmselect/promql: return non-empty value from rate_over_sum(m[d]) even if a single data point is located in the given [d] window
...
Just divide the data point value by the window duration in this case.
2020-07-29 12:37:58 +03:00
Aliaksandr Valialkin
700737c181
app/vmselect/promql: remove rollupFuncArg.realPrevValue handling, since the corner case in increase() is handled in another way now
...
See e00cfc854d for the approach used now.
2020-07-29 12:37:58 +03:00
Aliaksandr Valialkin
2f735f112d
app/vmselect/promql: fill gaps with 0 in rate_over_sum response when the last value before the selected time window isnt empty
2020-07-29 12:37:58 +03:00
Aliaksandr Valialkin
1ca0c8a29b
vendor: make vendor-update
2020-07-29 09:36:08 +03:00
Aliaksandr Valialkin
d81d586b86
vendor: update github.com/VictoriaMetrics/metrics from v1.12.1 to v1.12.2
2020-07-28 22:02:29 +03:00
Aliaksandr Valialkin
0f63da3698
app/{vmagent,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
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/653
2020-07-28 21:25:19 +03:00
Aliaksandr Valialkin
62ed38c6f0
app/vmagent/remotewrite: add missing resp.Body.Close() after pushing data to remote storage
...
Missing body close could disable HTTP keep-alive connections.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/653
2020-07-28 21:00:15 +03:00
Aliaksandr Valialkin
79c30cf4cb
app/vmselect: show query origin (aka remote_addr or client address) on the /api/v1/status/active_queries page for every query
2020-07-28 15:13:08 +03:00
Roman Khavronenko
2f1e7298ce
app/vmalert: support external.label to specify global labelset for all rules #622 ( #652 )
...
`external.label` flag supposed to help to distinguish alert or recording rules
source in situations when more than one `vmalert` runs for the same datasource
or AlertManager.
2020-07-28 14:20:31 +03:00
Aliaksandr Valialkin
0da202023b
app/vmselect/promql: return empty values from group() if all the time series have no values at the given timestamp
...
This aligns `group()` behaviour to Prometheus
2020-07-28 13:40:11 +03:00
Aliaksandr Valialkin
48d0ec1363
docs/MetricsQL.md: small fixes in the docs
2020-07-28 13:27:37 +03:00
Aliaksandr Valialkin
a1a065a47e
docs/Single-server-VictoriaMetrics.md: mention that OpenTSDB data ingestion protocol is used by KairosDB
2020-07-28 13:11:07 +03:00
Aliaksandr Valialkin
0516e3f330
vendor: update github.com/VictoriaMetrics/metrics from v1.12.0 to v1.12.1
2020-07-28 00:20:43 +03:00
Sasasu
5b81bdde39
lib/storage: metaindexRow use memroy more efficiently ( #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 <su@sasasu.me >
2020-07-27 19:02:53 +03:00
Aliaksandr Valialkin
865610a7c8
lib/protoparser/prometheus: add a test for cassandra-exporter
...
Thanks to Seva
2020-07-27 18:37:11 +03:00
Aliaksandr Valialkin
cb8c6908dc
app/vmagent/remotewrite: create new request on failure to send a block of data to remote storage
...
Previously the request body was already consumed before the retry, so this led to the following error:
http: ContentLength=... with Body length 0
2020-07-27 17:32:46 +03:00
Aliaksandr Valialkin
894dcb7c1c
app/vmselect/promql: improve further the accuracy of buckets_limit() function
...
The accuracy is increased by mergin the smallest bucket with the smallest adjacent bucket.
2020-07-26 12:10:13 +03:00
Aliaksandr Valialkin
215eba0b82
app/vminsert: flush bufs if needed after the current row is added
...
Previously the data for the added row could be overwritten by the flush
before the row addition is complete.
2020-07-26 12:10:11 +03:00
Aliaksandr Valialkin
edb1eca6f1
app/vmselect/promql: avoid dropping inf bucket in buckets_limit
...
The `le="inf"` bucket must be preserved in order to maintain the maximum level of accuracy.
2020-07-25 17:00:36 +03:00
Aliaksandr Valialkin
97b6f5d223
app/vmselect/promql: optimize buckets_limit(k, buckets) for big number of buckets
2020-07-25 13:24:03 +03:00
Aliaksandr Valialkin
a090627059
app/vminsert: limit memory usage when ingesting data in big packets
2020-07-24 23:32:40 +03:00
Aliaksandr Valialkin
53c87ba341
deployment/docker/docker-compose.yml: update Grafana version from 7.0.3 to 7.1.1
2020-07-24 18:43:37 +03:00
Aliaksandr Valialkin
bb161497cf
app/vmselect/promql: improve the accuracy of buckets_limit(k, buckets) function
...
Now it properly merges the bucket with the previous bucket after deletion.
2020-07-24 17:07:49 +03:00
Aliaksandr Valialkin
994fa2f3bf
app/vmselect/promql: 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 values in order to reserve the highest precision.
The function is useful for building heatmaps in Grafana from too big number of buckets.
2020-07-24 16:13:53 +03:00
Aliaksandr Valialkin
e151c5c644
app/vmselect: fix tests for rate_over_sum
2020-07-24 02:35:28 +03:00
Aliaksandr Valialkin
3107c633e3
app/vmselect/promql: typo fix after 3e557c9861
2020-07-24 02:15:58 +03:00
Aliaksandr Valialkin
3e557c9861
app/vmselect/promql: 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.
2020-07-24 01:17:42 +03:00
Aliaksandr Valialkin
54ef2d8112
lib/storage: slightly reduce code difference between single-node and cluster versions
2020-07-24 00:31:16 +03:00
Aliaksandr Valialkin
b1f6843bd0
app/vmselect/promql: 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.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/636
2020-07-23 22:25:43 +03:00
Aliaksandr Valialkin
039c9d2441
lib/storage: respect -search.maxQueryDuration when searching for time series in inverted index
...
Previously the time spent on inverted index search could exceed the configured `-search.maxQueryDuration`.
This commit stops searching in inverted index on query timeout.
2020-07-23 21:21:42 +03:00
Aliaksandr Valialkin
2a45871823
lib/storage: add more fine-grained pace limiting for search
2020-07-23 19:26:08 +03:00
Aliaksandr Valialkin
461481fbdf
app/vmselect/netstorage: protect from too smart compiler, which may break memory usage optimization in ProcessSearchQuery
2020-07-23 17:54:01 +03:00
Aliaksandr Valialkin
4c8b49b193
app/vminsert: export vm_relabel_metrics_dropped_total metric that shows the number of metrics dropped due to relabeling
2020-07-23 14:57:53 +03:00
Aliaksandr Valialkin
e79de9774b
app/vmselect: typo fix after 34563916f7
2020-07-23 14:12:28 +03:00
Aliaksandr Valialkin
34563916f7
app/vmselect: reduce memory usage when querying big number of time series with long labels
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/646
2020-07-23 13:53:52 +03:00
Aliaksandr Valialkin
9257eee982
app/vminsert: do not call ApplyRelabeling function if relabeling is disabled
...
This should reduce CPU usage a bit when `-relabelConfig` isn't set
2020-07-23 13:39:44 +03:00
Aliaksandr Valialkin
6f05c4d351
lib/storage: improve prioritizing of data ingestion over querying
...
Prioritize also small merges over big merges.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/291
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/648
2020-07-23 13:23:36 +03:00
Aliaksandr Valialkin
2f612e0c67
app/vminsert: 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.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/638
2020-07-23 13:23:14 +03:00
Aliaksandr Valialkin
61c611f5ad
lib/storage: properly calculate global metrics in UpdateStats()
2020-07-23 00:35:15 +03:00
Aliaksandr Valialkin
9224ede54f
lib/mergeset: properly calculate global metrics in UpdateStats()
...
Previously these metrics could be calculated multiple times for multiple mergeset.Table instances.
2020-07-23 00:35:13 +03:00
Aliaksandr Valialkin
228d137936
lib/storage: reorder mergeBlockStreams() args in order to make them more consistent
2020-07-22 21:58:10 +03:00
Aliaksandr Valialkin
e4303d3d21
lib/storage: prevent possible race condition when all the goroutines exit Storage.AddRows, before goroutines other goroutines are blocked on searchTSIDsCond inside Storage.searchTSIDs
...
This condition may occur after the following sequence of events:
1) A goroutine enters the loop body when len(addRowsConcurrencyCh) == cap(addRowsConcurrencyCh) inside Storage.searchTSIDs.
2) All the goroutines return from Storage.AddRows.
3) The goroutine from step 1 blocks on searchTSIDsCond.Wait() inside the loop body.
The goroutine remains blocked until the next call to Storage.AddRows, which calls searchTSIDsCond.Signal().
This may take indefinite time.
2020-07-22 21:52:34 +03:00
Aliaksandr Valialkin
ad8d3b387d
docs/Single-server-VictoriaMetrics.md: mention that it is recommended inspecting logs during troubleshooting
2020-07-22 18:21:29 +03:00
Aliaksandr Valialkin
62e76ca805
vendor: make vendor-update
2020-07-22 16:54:44 +03:00
Aliaksandr Valialkin
4f526cc816
app/vmselect/prometheus: support d, w and y suffixes for durations passed to step in /api/v1/query_range like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/641
2020-07-22 16:26:18 +03:00
Aliaksandr Valialkin
dfb113f175
app/vmselect/netstorage: reduce memory allocations when unpacking time series data by using a pool for unpackWork entries
...
This should slightly reduce load on GC when processing queries that touch big number of time series.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/646 according to the provided memory profile there.
2020-07-22 15:03:57 +03:00
Aliaksandr Valialkin
31ae5911a8
app/vmagent: add -remoteWrite.decimalPlaces command-line flag, which may be used for reducing disk space usage on the remote storage
2020-07-21 21:55:32 +03:00
Aliaksandr Valialkin
d3442b40b2
lib/uint64set: optimize adding items to the set via Set.AddMulti
2020-07-21 20:56:59 +03:00
Aliaksandr Valialkin
caa2952aa6
app/vmselect: take into account the time spent in wait queue before query execution as time spent on the query
2020-07-21 19:00:09 +03:00
Aliaksandr Valialkin
e00cfc854d
app/vmselect/promql: 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.
2020-07-21 17:24:10 +03:00
Aliaksandr Valialkin
b9c8f6bf34
app/vmselect: log the total available memory for concurrent requests on not enough memory errors
...
This should simplify root cause analysis
2020-07-20 19:51:40 +03:00
Aliaksandr Valialkin
ad6290953c
app/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
2020-07-20 19:28:49 +03:00
Aliaksandr Valialkin
efcbb51968
docs/vmagent.md: sync with app/vmagent/README.md
2020-07-20 17:08:34 +03:00
Roman Khavronenko
ed0df37ee7
app/vmagent: mention grafana dashboard in README ( #639 )
2020-07-20 17:07:27 +03:00
Aliaksandr Valialkin
004d2924e2
vendor: update github.com/VictoriaMetrics/metrics from v1.11.3 to v1.12.0
2020-07-20 16:56:22 +03:00
Aliaksandr Valialkin
11be704109
app/vmagent/remotewrite: allow passing empty -remoteWrite.urlRelabelConfig entries
2020-07-20 15:49:27 +03:00
Aliaksandr Valialkin
5a4675c528
app/vmselect/prometheus: do not return time series with empty list of datapoints from /api/v1/query_range
...
This matches Prometheus behaviour.
This should fix https://github.com/jacksontj/promxy/issues/329
2020-07-20 15:31:21 +03:00
Aliaksandr Valialkin
ecb1b2564a
app/vmselect/promql: add mode() aggregate function
2020-07-20 15:31:20 +03:00
Aliaksandr Valialkin
b35cb293f5
lib/httpserver: log remote address in error message from httpserver.Errorf
...
This should improve detection of the root cause of errors.
Thanks to Anant for the idea.
2020-07-20 14:11:22 +03:00
Aliaksandr Valialkin
1c641037e8
app/vmselect/promql: add mode_over_time(m[d]) function
...
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
2020-07-17 18:28:45 +03:00
Aliaksandr Valialkin
6b5ad535ae
app/vmselect/promql: optimize group(rollup(m)) calculations
2020-07-17 16:47:16 +03:00
Aliaksandr Valialkin
8949d65ad1
app/vmselect/promql: check that any() doesn't touch metric name
2020-07-17 16:23:21 +03:00
Aliaksandr Valialkin
3198fd31fa
deployment/docker: update Go builder from v1.14.5 to v1.14.6
...
This fixes runtime issues found in Go since v1.14.5. See https://github.com/golang/go/issues?q=milestone%3AGo1.14.6+label%3ACherryPickApproved
2020-07-17 15:21:38 +03:00
Aliaksandr Valialkin
aa5d88055d
app/vmselect/promql: add group() aggregate function to MetricsQL
...
This function has been added in Prometheus 2.20. See https://github.com/prometheus/prometheus/pull/7480
2020-07-17 15:17:55 +03:00
Aliaksandr Valialkin
df01836818
app/vmselect/promql: keep all labels for time series from any() call
2020-07-17 15:17:54 +03:00
Roman Khavronenko
dfa156e6aa
vmagent: update grafana dashboard ( #634 )
...
* reference datasource variable instead of datasource name;
* change unit from `bytes` to `bits/s` for Network panel.
2020-07-17 02:11:20 +03:00
Aliaksandr Valialkin
8c14ca93fa
app/vminsert/influx: properly handle the case when certain labels with empty values are removed by ApplyRelabeling() call
...
Previously this could lead to `out of range` panic
2020-07-17 00:07:06 +03:00
Aliaksandr Valialkin
e4e1cd1de2
app/vmselect: fix nil pointer dereference panic when unsuccessfully querying vmstorage
2020-07-16 19:15:43 +03:00
Aliaksandr Valialkin
ef6ee72108
deployment/docker: update Go builder from v1.14.4 to v1.14.5
...
This should fix the following issues in Go - https://github.com/golang/go/issues?q=milestone%3AGo1.14.5+label%3ACherryPickApproved
2020-07-16 18:55:09 +03:00
Aliaksandr Valialkin
ed7580ad22
app/vmalert: consistently use "%w" instead of "%s" in fmt.Errorf when wrapping errors
2020-07-15 13:56:47 +03:00
Roman Khavronenko
9eb71dda3d
vmagent: add grafana dashboard ( #629 )
...
`vmagent` Grafana dashboard suppose to provide basic observability over multiple
`vmagent` instances. Dashboard is saved in Grafana export format so it can be easily
imported. It was also integrated into docker-compose environment.
2020-07-15 13:56:06 +03:00
Aliaksandr Valialkin
328814ee60
docs/vmagent.md: make filtering rules for init container pods less confusing
2020-07-14 20:32:47 +03:00
Aliaksandr Valialkin
7398e5701b
vendor: make vendor-update
2020-07-14 20:31:42 +03:00
Aliaksandr Valialkin
4e770e9120
docs/Single-server-VictoriaMetrics.md: remove Roadmap chapter, since it became outdated
2020-07-14 19:06:33 +03:00
Aliaksandr Valialkin
b442a42d8e
app/vmagent/remotewrite: return proper value from tssRelabelPool.New
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/599
2020-07-14 14:29:20 +03:00
Aliaksandr Valialkin
6d77bfae4f
docs/Single-server-VictoriaMetrics.md: sync with README.md
2020-07-14 14:19:14 +03:00
Aliaksandr Valialkin
4081e2295e
app/{vminsert,vmagent}: add -influxSkipMeasurement command-line flag for using field name as metric name
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/626
2020-07-14 14:17:24 +03:00
Aliaksandr Valialkin
e1107fec10
lib/storage: reset MetricName->TSID cache after marking metricIDs as deleted
...
This is a follow-up commit after 12b16077c4 ,
which didn't reset the `tsidCache` in all the required places.
This could result in indefinite errors like:
missing metricName by metricID ...; this could be the case after unclean shutdown; deleting the metricID, so it could be re-created next time
Fix this by resetting the cache inside deleteMetricIDs function.
2020-07-14 14:06:32 +03:00
Aliaksandr Valialkin
25f80d320b
app/vmselect/prometheus: do not adjust last points in time series with timestamps exceeding the current time
...
Such timestamps usually mean that the query contains `offset`.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/625
2020-07-14 12:52:16 +03:00
Aliaksandr Valialkin
cde18d1f43
lib/protoparser: properly update vm_protoparser_rows_read_total{type="promscrape"} metric
2020-07-14 12:16:35 +03:00
Seva Poliakov
457e61900d
add vm_protoparser_rows_read_total metrics to promscrape ( #624 )
...
* add vm_protoparser_rows_read_total metrics to promscrape
move vm_protoparser_rows_read_total for promscrape to better place
move vm_protoparser_rows_read_total for promscrape to better place
* remove possibility of infinity loop at prometheus parser
2020-07-14 12:16:34 +03:00
Roman Khavronenko
7e347972c4
lib/flagutil: specify additional description for all Array type flags ( #620 )
...
Array type flag is now defined as `value` type in flag description when printed.
This change adds additional description to every Array type flag so it would be
clear what exact type is used:
```
-remoteWrite.urlRelabelConfig array
Optional path to relabel config for the corresponding -remoteWrite.url
Supports array of values separated by comma or specified via multiple flags.
```
2020-07-13 21:56:37 +03:00
Roman Khavronenko
19dd121968
lib/persistentqueue: add vm_persistentqueue_bytes_pending metric ( #619 )
...
Metric `vm_persistentqueue_bytes_pending` is a gauge that shows current amount
of bytes in persistentqueue flushed on disk as a difference between write and read
offsets. This metric is very similar to `vmagent_remotewrite_pending_data_bytes`
except of accounting for bytes in-memory.
2020-07-13 21:54:09 +03:00
Roman Khavronenko
829ec4f9cf
Extend metric vm_promscrape_targets with status label ( #615 )
...
The change to `vm_promscrape_targets` metric suppose to improve observability
for `vmagent` so it will be possible to track how many targets are up or down
for every specific scrape group:
```
vm_promscrape_targets{type="static_configs", status="down"} 1
vm_promscrape_targets{type="static_configs", status="up"} 2
```
2020-07-13 21:52:03 +03:00
Aliaksandr Valialkin
55d83e777d
app/vmselect/prometheus: minimize the diff for the change 1033dc7e2a over 619b0a25c9
2020-07-13 21:40:38 +03:00
faceair
1033dc7e2a
fix empty response template ( #617 )
2020-07-13 21:31:19 +03:00
Aliaksandr Valialkin
619b0a25c9
docs/vmagent.md: sync with app/vmagent/README.md
2020-07-13 21:25:11 +03:00
ofen
666c795b98
Update README.md ( #621 )
...
Troubleshooting section updated to help out with duplicate targets detection
2020-07-13 21:18:54 +03:00
Aliaksandr Valialkin
a730b3f6a1
app/vmagent: fix data race when multiple -remoteWrite.urlRelabelConfig options are set
...
Previously multiple goroutines could access remoteWriteCtx.tss concurrently, which could lead to data race
and improper relabeling. Now each goroutine has its own copy of tss during relabeling.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/599
2020-07-10 15:16:59 +03:00
Aliaksandr Valialkin
508ad46e0e
app/vmagent/remotewrite: typo fix in -remoteWrite.showURL help message
2020-07-10 14:07:08 +03:00
Aliaksandr Valialkin
e5b9f47623
vendor: update github.com/valyala/quicktemplate from v1.5.0 to v1.5.1
...
This should fix incorrect encoding for json strings with char codes below 0x20
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/613
2020-07-10 12:59:15 +03:00
Aliaksandr Valialkin
ca74b80f10
docs/Cluster-VictoriaMetrics.md: sync with the original README.md
2020-07-10 12:15:31 +03:00
Aliaksandr Valialkin
cba820e390
app/{vminsert,vmagent}: add ability to import data in Prometheus exposition format via /api/v1/import/prometheus
2020-07-10 12:14:07 +03:00
Aliaksandr Valialkin
6fe3c48a6e
properly calculate readCalls
2020-07-10 12:00:58 +03:00
Aliaksandr Valialkin
9c350bc20d
app/vmselect/promql: add missing tests for ifnot binary operation
2020-07-09 13:24:06 +03:00
Aliaksandr Valialkin
256fd9a87e
app/vmselect/promql: refactor implementations for and and unless binary operations, so they are closer to or implementation
2020-07-09 13:05:55 +03:00
Aliaksandr Valialkin
2d9b3ad5b3
app/vmselect/promql/active_queries.go: simplify code a bit by inlining getNextActiveQueryID function
2020-07-09 11:18:30 +03:00
Aliaksandr Valialkin
b66c7c13ac
docs: add a link to the The CMS monitoring infrastructure and applications publication from CERN
2020-07-08 20:16:43 +03:00
Aliaksandr Valialkin
3e1d7d8489
lib/promscrape: send Accept header similar to Prometheus when scraping targets
...
This should fix scraping Spring Boot servers, which return incorrect response
unless `Accept: text/plain` request header is set.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/608
2020-07-08 19:48:22 +03:00
Aliaksandr Valialkin
47c7ea5c60
vendor: make vendor-update
2020-07-08 19:25:38 +03:00
Aliaksandr Valialkin
4f737d1cbd
docs/Cluster-VictoriaMetrics.md: mention about api/v1/status/active_queries page
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/528
2020-07-08 19:18:26 +03:00
Aliaksandr Valialkin
742da690f4
app/vmselect: add /api/v1/status/active_queries page with the list of currently running queries
...
This is a follow-up for https://github.com/VictoriaMetrics/VictoriaMetrics/pull/598
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/575
2020-07-08 18:55:38 +03:00
DexterZhang
99f54e44ff
feat(vmselect): add current running query list, add ability for getting the running query info and killing running query for master branch ( #598 )
2020-07-08 18:52:55 +03:00
Aliaksandr Valialkin
cb92113632
lib/storage: limit the maximum concurrency for data ingestion to GOMAXPROCS
...
Previously the concurrency has been limited to GOMAXPROCS*2. This had little sense,
since every call to Storage.AddRows is bound to CPU, so the maximum ingestion bandwidth
is achieved when the number of concurrent calls to Storage.AddRows is limited to the number of CPUs,
i.e. to GOMAXPROCS.
2020-07-08 17:32:18 +03:00
Roman Khavronenko
e7557e0252
lib/protoparser: fix metric name of unmarshal errors in promremotewrite ( #607 )
...
The change fixes the typo in metric name `vm_protoparser_unmarshal_errors` to
respect the naming standard.
2020-07-08 14:18:41 +03:00
Aliaksandr Valialkin
e59b9916aa
lib/protoparser/graphite: go fmt
2020-07-08 14:12:10 +03:00
Aliaksandr Valialkin
d0b694c5c8
lib/protoparser/graphite: add more tests after eb45185eef
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/610
2020-07-08 14:10:35 +03:00
Seva Poliakov
eb45185eef
Fix graphite minus one timestamp ( #609 )
...
* fix graphite -1 timestamp
* format the graphite fix -1 timestamp
2020-07-08 13:59:19 +03:00
Aliaksandr Valialkin
32b9fb58b8
lib/storage: clarify out of retention period error message by mentioning -retentionPeriod command-line flag
2020-07-08 13:54:26 +03:00
Aliaksandr Valialkin
12b16077c4
lib/storage: reset MetricName->TSID cache after deleting time series
...
This should prevent from adding new data points to deleted time series
without the need to check for the deleted time series.
This improves ingestion performance a bit when the `deleted time series ids` aka `dmis` set
contains big number of time series.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/596
Based on the idea from @n4mine at https://github.com/VictoriaMetrics/VictoriaMetrics/pull/604
2020-07-06 22:01:08 +03:00
Aliaksandr Valialkin
a23806f486
lib/fs: clarify description for -fs.disableMmap command-line flag
2020-07-06 14:28:34 +03:00
Aliaksandr Valialkin
6daa5f7500
lib/storage: prioritize data ingestion over heavy queries
...
Heavy queries could result in the lack of CPU resources for processing the current data ingestion stream.
Prevent this by delaying queries' execution until free resources are available for data ingestion.
Expose `vm_search_delays_total` metric, which may be used in for alerting when there is no enough CPU resources
for data ingestion and/or for executing heavy queries.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/291
2020-07-05 19:42:05 +03:00
Roman Khavronenko
703def4b2e
app/vmalert: add retries to remotewrite ( #605 )
...
* app/vmalert: add retries to remotewrite
Remotewrite pkg now does limited number of retries if write request failed.
This suppose to make vmalert state persisting more reliable.
New metrics were added to remotewrite in order to track rows/bytes sent/dropped.
defaultFlushInterval was increased from 1s to 5s for sanity reasons.
* fix
* wip
* wip
* wip
* fix bits alignment bug for 32-bit systems
* fix mistakenly dropped field
2020-07-05 18:46:52 +03:00
Aliaksandr Valialkin
de137aef98
app/victoria-metrics: fix tests after the commit acf828a759
2020-07-05 18:24:41 +03:00
Aliaksandr Valialkin
acf828a759
app/vmselect/prometheus: small fixes on top of 8bb762124a
2020-07-05 18:17:06 +03:00
faceair
8bb762124a
fix adjust last points avoid influence earlier value ( #606 )
2020-07-05 17:56:54 +03:00
Aliaksandr Valialkin
ff6a0955eb
lib/promscrape: use HostClient.DoDeadline instead of HostClient.Do in order to guarantee strict deadline across multiple scrape attempts
2020-07-03 21:33:22 +03:00
Aliaksandr Valialkin
8b133e40d5
lib/promscrape: prevent from too big deadline misses on scrape retries
...
The maximum deadline miss duration is reduced to 2x scrape_interval in the worst case.
By default it is limited to scrape_interval configured for the given scrape target.
2020-07-03 20:41:36 +03:00
Aliaksandr Valialkin
44a54b8b3d
lib/promscrape: check for nil error before checking for the returned status code when scraping targets
2020-07-03 18:37:14 +03:00
Ween
d59cdbe90c
[VMAlert] Fix error log when remoteWrite queue size is full ( #602 )
...
* Fix Auto metrics relabeled errors
* Finalize auto-genenated Labels
* Fix Test Errors
* fix error logs when queue is full
Co-authored-by: xinyulong <xinyulong@kuaishou.com >
2020-07-03 16:49:37 +03:00
Aliaksandr Valialkin
0b2086b7a5
app/vminsert: prevent from adding and/or selecting labels with empty values
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/600
2020-07-02 23:14:11 +03:00
Aliaksandr Valialkin
8f628cd805
app/victoria-metrics: removed debug log message when -selfScrapeInterval is set
2020-07-02 20:39:41 +03:00
Aliaksandr Valialkin
91b3482894
app/vminsert: add ability to apply relabeling to all the incoming metrics if -relabelConfig command-line arg points to a file with a list of relabel_config entries
...
See https://victoriametrics.github.io/#relabeling
2020-07-02 20:39:28 +03:00
Aliaksandr Valialkin
e5500bfcf2
all: typo fix: exptected -> expected
2020-07-02 18:05:52 +03:00
Aliaksandr Valialkin
5d3db3ff7c
app/vmselect: add interpolate function for filling gaps with linearly interpolated values
...
See https://stackoverflow.com/q/62565021/274937 for details
2020-07-02 14:54:21 +03:00
Aliaksandr Valialkin
4dd3de9286
lib/promscrape: add ability to set disable_compression and disable_keepalive options in scrape_config section of the config passed to -promscrape.config
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/580
2020-07-02 14:19:14 +03:00
Aliaksandr Valialkin
8da3f773ae
lib/promscrape: add -promscrape.disableKeepAlive command-line flag for disabling http keep-alive connections when scraping targets
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/580
2020-07-01 02:20:20 +03:00
BigFish
9d5f5b6878
fix: spelling mistakes ( #594 )
...
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-07-01 01:35:26 +03:00
Aliaksandr Valialkin
9a2ba5b6d1
vendor: make vendor-update
2020-07-01 01:04:58 +03:00
Aliaksandr Valialkin
b277ba8121
lib/httpserver: add Unwrap method to ErrorWithStatusCode, so As and Is functions in standard errors package may properly unwrap the error inside ErrorWithStatusCode
2020-07-01 00:54:01 +03:00
Aliaksandr Valialkin
84a37098ed
app/vmstorage: add -denyQueriesOutsideRetention command-line flag for denying queries outside the configured retention
...
VictoriaMetrics returns `503 Service Unavailable` http error for requests with time ranges outside the configured retention
if `-denyQueriesOutsideRetention` command-line flag is set.
2020-07-01 00:21:44 +03:00
Aliaksandr Valialkin
56ccfa5218
all: use errors.As instead of type assertion for detecting net.Error
2020-07-01 00:15:34 +03:00
Aliaksandr Valialkin
7c2c8b2981
all: use errors.As for inspecting errors that implement httpserver.ErrorWithStatusCode
2020-07-01 00:04:34 +03:00
Aliaksandr Valialkin
d5dddb0953
all: use %w instead of %s for wrapping errors in fmt.Errorf
...
This will simplify examining the returned errors such as httpserver.ErrorWithStatusCode .
See https://blog.golang.org/go1.13-errors for details.
2020-06-30 23:05:11 +03:00
Aliaksandr Valialkin
586c5be404
lib/promscrape: add missing label sorting for autogenerated metrics
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/592
2020-06-29 22:36:12 +03:00
Ween
1cd01b5359
Fix Auto metrics relabeled errors ( #593 )
...
* Fix Auto metrics relabeled errors
* Finalize auto-genenated Labels
* Fix Test Errors
Co-authored-by: xinyulong <xinyulong@kuaishou.com >
2020-06-29 22:29:29 +03:00
Roman Khavronenko
88538df267
app/vmalert: support multiple notifier urls ( #584 ) ( #590 )
...
* app/vmalert: support multiple notifier urls (#584 )
User now can set multiple notifier URLs in the same fashion
as for other vmutils (e.g. vmagent). The same is correct for
TLS setting for every configured URL. Alerts sending is done
in sequential way for respecting the specified URLs order.
* app/vmalert: add basicAuth support for notifier client (#585 )
The change adds possibility to set basicAuth creds for notifier
client in the same fasion as for remote write/read and datasource.
2020-06-29 22:21:03 +03:00
Aliaksandr Valialkin
63e5ee0d29
docs: sync with upstream
2020-06-29 22:09:03 +03:00
Roman Khavronenko
eba4e92994
deployment/docker: replace Prometheus with vmagent ( #589 )
...
vmagent replaces Prometheus to perform scrapes and writes
into VictoriaMetrics installation. Prometheus datasource was
dropped, but its config was reused to feed vmagent.
Change also contains simplification in dashboard propagation
to Grafana container by removing excessive json manipulation
steps.
2020-06-29 22:05:34 +03:00
Roman Khavronenko
82ecfa3b32
app/vmalert: move flags description and initialization into subpackages
...
The change adds no new functionality and aims to move flags definitions
to subpackages that are using them. This should improve readability
of the main function.
2020-06-28 12:26:22 +01:00
kreedom
dc4e3f0e0b
app/vmalert: properly set transport for HTTP clients
...
Fixes issue #586
2020-06-27 08:31:54 +01:00
Aliaksandr Valialkin
8f2e88234f
docs: update the info that docker images are built on top of alpine image now
...
A follow-up after the commit ff624c9125
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/522
2020-06-26 13:54:10 +03:00
Aliaksandr Valialkin
423825695f
vendor: make vendor-update
2020-06-25 23:45:14 +03:00
Aliaksandr Valialkin
5dc0bf6d3d
vendor: update github.com/valyala/fastjson from v1.5.1 to v1.5.2
2020-06-25 23:35:03 +03:00
Aliaksandr Valialkin
7eb171182b
lib/promrelabel: properly apply ^ and $ anchors to regex value in Prometheus relabeling rules
2020-06-25 17:19:19 +03:00
Aliaksandr Valialkin
05d754d7bb
app/vmselect/netstorage: reset big result values every 10 seconds instead of after processing every time series
...
This should reduce GC pressure when processing time series with big number of rows
2020-06-24 19:38:39 +03:00
Aliaksandr Valialkin
8dec17470d
deployment/docker/docker-compose.yml: update Prometheus from v1.18.1 to v1.19.1 and Grafana from v7.0.2 to v7.0.3
2020-06-24 18:09:33 +03:00
Aliaksandr Valialkin
5e35b87c3d
docs/Cluster-VictoriaMetrics.md: move VictoriaMetrics logo below "Cluster version" heading, since it is heeded for proper navigation at https://victoriametrics.github.io
2020-06-24 12:06:27 +03:00
Aliaksandr Valialkin
c85d926569
docs/SampleSizeCalculations.md: updates
2020-06-24 12:06:25 +03:00
Aliaksandr Valialkin
f0cef4761b
docs/SampleSizeCalculations.md: add a doc with calculations for the "Lowest sample size" graph at https://victoriametrics.com/
2020-06-24 12:00:22 +03:00
nicbaz
774f7ca1c1
vmselect: fix label_replace when mismatch ( #579 )
...
As per documentation on `label_replace` function: "If the regular
expression doesn't match then the timeseries is returned unchanged".
Currently this behavior is not enforced, if a regexp on an existing
tag doesn't match then the tag value is copied as-is in the destination
tag. This fix first checks that the regular expression matches the
source tag before applying anything.
Given the current implementation, this fix also changes the behavior
of the **MetricsQL** `label_transform` function which does not
document this behavior at the moment.
2020-06-23 23:50:33 +03:00
Aliaksandr Valialkin
a560b4788e
lib/fs: go fmt
2020-06-23 23:02:39 +03:00
Aliaksandr Valialkin
8141541e61
lib/fs: fall back to cgo copy for copying the last 4KB of mmaped data
...
This probably should fix https://github.com/VictoriaMetrics/VictoriaMetrics/issues/581
2020-06-23 22:55:22 +03:00
Aliaksandr Valialkin
e65b4cb6b1
docs/vmalert.md: sync with app/vmalert/README.md
2020-06-23 22:49:38 +03:00
Aliaksandr Valialkin
7209d58fbd
app/vmselect/netstorage: increase concurrency when processing small number of time series with big number of data points per each time series
...
Previously VictoriaMetrics was processing up to 32 time series in a single goroutine.
This could be slow if each time series contains big number of data points (10M+ or more), since only a single CPU core could be loaded with work,
while other CPU cores were idle. Fix this by launching GOMAXPROCS workers for time series processing.
This should help with https://github.com/VictoriaMetrics/VictoriaMetrics/issues/572
2020-06-23 22:46:15 +03:00
nicbaz
72c90bfd8b
vmalert: add support for TLS configuration ( #578 )
...
app/vmalert: add support for TLS configuration
Add support for TLS optional configuration in a similar fashion to what
is currently supported in other vmutils such as vmagent. TLS
configuration options are distinct for datasource, remoteRead,
remoteWrite as well as notifier.
2020-06-23 20:45:45 +01:00
Aliaksandr Valialkin
2a39ba639d
lib/promrelabel: add support for keep_if_equal and drop_if_equal actions to relabel configs
...
These actions may be useful for filtering out unneeded targets and/or metrics if they contain equal label values.
For example, the following rule would leave the target only if __meta_kubernetes_annotation_prometheus_io_port
equals __meta_kubernetes_pod_container_port_number:
- action: keep_if_equal
source_labels: [__meta_kubernetes_annotation_prometheus_io_port, __meta_kubernetes_pod_container_port_number]
2020-06-23 17:29:03 +03:00
Aliaksandr Valialkin
8f0bcec6cc
lib/promscrape: preserve the previously discovered targets on discovery errors per each job_name
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/582
2020-06-23 15:40:40 +03:00
Aliaksandr Valialkin
a13cd60c6f
vendor: update github.com/klauspost/compress from v1.10.9 to v1.10.10
2020-06-23 13:48:51 +03:00
Aliaksandr Valialkin
c970cb912c
lib/fs: an attempt to fix SIGBUS error by rounding mmap`ed region to multiple of 4KB pages
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/581
2020-06-23 13:39:49 +03:00
Aliaksandr Valialkin
b5206ce33f
lib/logger: add -loggerErrorsPerSecondLimit for limiting the rate of ERROR messages
2020-06-23 12:41:36 +03:00
Aliaksandr Valialkin
4c7f216dfe
lib/promscrape: retry performing the request to the server for up to 3 times before giving up when it closes keep-alive connections
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/580
2020-06-23 12:33:54 +03:00
Aliaksandr Valialkin
530f7a21e8
docs/Single-server-VictoriaMetrics.md: remove -httpListenAddr command-line flag from setting up VictoriaMetrics chapter
...
This flag is optional and it has good default value - `:8428`, so there is no need in mentioning it at this chapter
2020-06-22 12:45:20 +03:00
Aliaksandr Valialkin
7532dbcdf5
app/vmselect/promql: properly override label values from group_left and group_right lists like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/577
2020-06-21 16:33:01 +03:00
kreedom
7ec6711f06
Support of custom URL path for alert ( #560 )
...
app/vmalert: Support custom URL for alerts source
Add flag `external.alert.source` for configuring custom URL
for alert's source. This may be handy to re-point default source
URL to other systems like Grafana.
Updates #517
2020-06-21 11:32:46 +01:00
Aliaksandr Valialkin
e149019c00
lib/promscrape/discovery/consul: reduce load on Consul when discovering big number of targets by using background caching
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/574
2020-06-20 18:20:01 +03:00
Aliaksandr Valialkin
7bf2cbad32
lib/promscrape: reduce default value for -promscrape.discovery.concurrency from 500 to 100
...
This should reduce load on Kubernetes API server and Consul when big number of targets are discovered
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/574
2020-06-20 17:53:42 +03:00
Aliaksandr Valialkin
6ff821c70d
lib/promscrape/discovery/ec2: expose __meta_ec2_ami like the next Prometheus release will do
...
See b5d61fb66c for details
2020-06-20 17:45:23 +03:00
Aliaksandr Valialkin
a43be95e83
docs/Cluster-VictoriaMetrics.md: add high availability chapter
2020-06-20 15:53:38 +03:00
Aliaksandr Valialkin
f689164711
docs/Single-server-VictoriaMetrics.md: mention that vmauth could be used for routing user requests to particular VictoriaMetrics instances
2020-06-19 16:16:47 +03:00
Aliaksandr Valialkin
7976ec8bb1
docs/Single-server-VictoriaMetrics.md: add a link to features available for enterprise customers
2020-06-19 13:17:01 +03:00
Aliaksandr Valialkin
9f3e3a4d7a
docs/vmauth.md: mention that we can provide custom integration with SAML
2020-06-19 13:14:07 +03:00
Aliaksandr Valialkin
57acbf5491
vendor: make vendor-update
2020-06-19 02:39:53 +03:00
Aliaksandr Valialkin
5820c0ffb7
lib/promrelabel: allows regex capture groups in target_label like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/569
2020-06-19 02:21:24 +03:00
Tristan Su
ac3700ed1e
lib/storage: set big/small merge concurrency ( #568 )
...
fixed #567
Co-authored-by: Tristan Su <suqing.sq@alibaba-inc.com >
2020-06-19 01:25:48 +03:00
Aliaksandr Valialkin
b542e50680
app/vminsert: export metrics for determining ingested rows with dropped or truncated labels
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/565
2020-06-19 01:10:37 +03:00
Aliaksandr Valialkin
818abca8f1
make docs-sync
2020-06-18 23:55:28 +03:00
Aliaksandr Valialkin
50c0d8c17d
docs/Articles.md: add a link to article https://stas.starikevich.com/posts/raspberry-pi-4-prometheus/
2020-06-18 23:14:04 +03:00
Aliaksandr Valialkin
88e1b7d144
app/vmselect/promql: fill gaps on right side with values from left side of or operator in the same way as Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/552
2020-06-18 23:05:16 +03:00
Aliaksandr Valialkin
08495360b0
lib/storage: add key!=".+" filter additionally to negative filter matching empty value such as key!~"|foo"
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/546
2020-06-18 20:03:48 +03:00
Aliaksandr Valialkin
a12364ad37
docs/vmbackup.md: mention that backups from single-node and cluster versions are incompatible
2020-06-18 18:52:43 +03:00
Roman Khavronenko
e91d758831
vmalert-537: allow name duplication for rules within one group. ( #559 )
...
Uniqueness of rule is now defined by combination of its name, expression and
labels. The hash of the combination is now used as rule ID and identifies rule within the group.
Set of rules from coreos/kube-prometheus was added for testing purposes to
verify compatibility. The check also showed that `vmalert` doesn't support
`query` template function that was mentioned as limitation in README.
2020-06-15 20:15:47 +01:00
Roman Khavronenko
3d63a79b91
dashboard: update single-version dashboard. ( #557 )
...
The change contains two updates:
* fix Datapoints panel query #551 ;
* add datasource selector.
2020-06-12 22:05:05 +03:00
Aliaksandr Valialkin
e53ee763f9
docs/vmalert.md: sync with app/vmalert/README.md
2020-06-10 19:38:24 +03:00
Aliaksandr Valialkin
ae1cc0fc4b
lib/storage: properly match {tag!="|foo"} filters
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/546
2020-06-10 19:35:56 +03:00
Clémence Saussez
e426434770
app/vmalert: fix link to testdata ( #547 )
...
Fix broken link to vmalert test data
Signed-off-by: Clemence Saussez <clemence@zen.ly >
2020-06-10 17:26:27 +01:00
Roman Khavronenko
3e277020a5
vmalert-491: allow to configure concurrent rules execution per group. ( #542 )
...
The feature allows to speed up group rules execution by
executing them concurrently.
Change also contains README changes to reflect configuration
details.
2020-06-09 15:21:20 +03:00
Roman Khavronenko
ffa75c423d
vmalert-521: allow to disable rules expression validation. ( #536 )
...
This feature may be useful for using `vmalert` with PromQL
compatible datasources like Loki.
2020-06-06 21:27:09 +01:00
Aliaksandr Valialkin
0bba630f55
vendor: make vendor-update
2020-06-06 00:01:19 +03:00
Aliaksandr Valialkin
2382053d32
vendor: update github.com/klauspost/compress from v1.10.7 to v1.10.8
2020-06-05 23:51:35 +03:00
Aliaksandr Valialkin
69a647b0d2
lib/httpserver: do not flush and do not close gzip writer if response compression is disabled
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/535
2020-06-05 21:37:28 +03:00
Aliaksandr Valialkin
f5dd2a71a6
app/vmauth: disable automatic response compression/uncompression, since it may work improperly in some cases
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/535
2020-06-05 20:13:56 +03:00
Aliaksandr Valialkin
4b98e436ef
app/vmauth: emit fatal errors instead of panics when incorrect command-line flags are set
2020-06-05 20:13:55 +03:00
Aliaksandr Valialkin
4e8d6b80e0
lib/backup: properly create missing parent directories in fs.CreateFile
2020-06-05 19:28:19 +03:00
Aliaksandr Valialkin
d120197676
lib/fs: optimize queries that read recent samples for big number of time series
...
Use standard copy() func instead of mmap-aware copy func for reading recently touched mmap-ed data.
This improves read performance by up to 4x.
2020-06-05 19:10:04 +03:00
Aliaksandr Valialkin
4cb3af1a36
lib/fs: add a benchmark for ReaderAt.MustReadAt
2020-06-05 19:10:03 +03:00
Aliaksandr Valialkin
0d92abfbf6
app/vmalert: print brief usage info for vmalert -help
2020-06-05 10:43:18 +03:00
Aliaksandr Valialkin
ff1a725a56
app/vmauth: print brief usage info for vmauth -help
2020-06-05 10:40:00 +03:00
Aliaksandr Valialkin
05ae1472e3
app/vmagent: print brief usage info for vmagent -help
2020-06-05 10:39:59 +03:00
Aliaksandr Valialkin
4fd3f6f991
lib/backup/fsremote: create all the parent directories before creating file in CreateFile
2020-06-05 10:25:10 +03:00
Aliaksandr Valialkin
6281549f31
docs/Cluster-VictoriaMetrics.md: remove obsolete line
2020-06-04 20:21:37 +03:00
Aliaksandr Valialkin
9f4e86ac2f
docs/Cluster-VictoriaMetrics.md: update stale info about replication
2020-06-04 20:21:36 +03:00
Aliaksandr Valialkin
af49c5bdf6
deployment/docker: update Go builder from v1.14.3 to v1.14.4
...
This fixes the following issue in Go runtime, which could result in program hang - https://github.com/golang/go/issues/38931
2020-06-04 18:07:04 +03:00
Aliaksandr Valialkin
a47a05dfd2
docs/Cluster-VictoriaMetrics.md: clarify simultaneous usage of replication and deduplication
2020-06-04 18:01:32 +03:00
Aliaksandr Valialkin
3d4008263f
lib/fs: optimize MustGetFreeSpace performance by caching the results for up to 2 seconds
2020-06-04 13:15:47 +03:00
Vyacheslav Mitrofanov
72ff05255f
allow to use values lower than 10 with the flag -memory.allowedPercent ( #531 )
...
Co-authored-by: Vyacheslav Mitrofanov <vmitrofanov@mfms.ru >
2020-06-03 23:39:29 +03:00
Denis
a99d606220
Update docker-compose.yml ( #530 )
...
Update to latest version of Prometheus & Grafana.
2020-06-03 23:37:23 +03:00
Aliaksandr Valialkin
f8692a1d43
app/vmauth: log when -auth.config is reloaded in SIGHUP
2020-06-03 23:22:14 +03:00
Aliaksandr Valialkin
78b28a03b6
docs/Single-server-VictoriaMetrics.md: clarify Replication section
2020-06-03 21:32:42 +03:00
Aliaksandr Valialkin
854f40acf2
docs/FAQ.md: add a question about the difference between vmagent and Prometheus
2020-06-03 20:56:22 +03:00
Aliaksandr Valialkin
6d059b28bf
docs/Cluster-VictoriaMetrics.md: update Replication and data safety chapter
2020-06-03 20:24:58 +03:00
Aliaksandr Valialkin
f26b94cfb6
docs/Single-server-VictoriaMetrics.md: mention vmagent in high availability section
2020-06-03 20:16:02 +03:00
Aliaksandr Valialkin
937338abdf
lib/bytesutil: prevent from garbage collecting s before returning from ToUnsafeBytes
2020-06-03 00:23:40 +03:00
Aliaksandr Valialkin
f2b04f2efe
vendor: update github.com/klauspost/compress from v1.10.6 to v1.10.7
2020-06-03 00:10:44 +03:00
Aliaksandr Valialkin
ff624c9125
deployment/docker: use alpine base image for docker images in order to improve debuggability
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/522
2020-06-02 22:43:19 +03:00
Aliaksandr Valialkin
13b1358c07
docs: update FAQ.md
2020-06-02 19:58:07 +03:00
Aliaksandr Valialkin
f7ff809c1e
docs/vmalert.md: sync with app/vmalert/README.md via make docs-sync
2020-06-02 19:15:15 +03:00
Aliaksandr Valialkin
ab6e994bab
Makefile: add make docs-sync command for syncing docs contents
2020-06-02 19:15:14 +03:00
Aliaksandr Valialkin
d2f30e8d79
app/vmalert: fix comment for UpdateWith exported methods
2020-06-01 14:35:32 +03:00
Roman Khavronenko
270552fde4
vmalert: Add recording rules support. ( #519 )
...
* vmalert: Add recording rules support.
Recording rules support required additional service refactoring since
it wasn't planned to support them from the very beginning. The list
of changes is following:
* new entity RecordingRule was added for writing results of MetricsQL
expressions into remote storage;
* interface Rule now unites both recording and alerting rules;
* configuration parser was moved to separate package and now performs
more strict validation;
* new endpoint for listing all groups and rules in json format was added;
* evaluation interval may be set to every particular group;
* vmalert: uncomment tests
* vmalert: rm outdated TODO
* vmalert: fix typos in README
2020-06-01 13:46:37 +03:00
Aliaksandr Valialkin
32652485e3
app/vmagent: reload -remoteWrite.relabelConfig and -remoteWrite.urlRelabelConfig on SIGHUP and on /-/reload
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/518
2020-05-30 14:37:12 +03:00
Aliaksandr Valialkin
d988f89415
app/vmagent: log fatal errors instead of panics when improper command-line flags are passed to vmagent
2020-05-30 14:23:14 +03:00
Aliaksandr Valialkin
3d5f48ec74
docs/CaseStudies.md: add a link to articles about VictoriaMetrics
2020-05-28 21:32:43 +03:00
Aliaksandr Valialkin
0ec43cb8b0
docs/Articles.md: added a link to https://medium.com/@IG1.com/sismology-iguana-solutions-monitoring-system-f46e4170447f
2020-05-28 20:10:21 +03:00
Aliaksandr Valialkin
213c3903c9
docs/Cluster-VictoriaMetrics.md: mention that opentsdb/api/put handler is disabled by default
2020-05-28 14:28:06 +03:00
Aliaksandr Valialkin
a7797dae09
lib/storage: fix Graphite wildcard matching, which has been broken in v1.36.0
...
v1.36.0 always returns empty responses for Graphite wildcards like the following
{__name__=~"foo\\.[^.]*\\.bar\\.baz"}
Temporary workaround for v1.36.0 is to add `[^.]*` to the end of the regexp.
2020-05-28 12:03:49 +03:00
Aliaksandr Valialkin
d186472081
lib/storage: improve search speed for time series matching Graphite whildcards such as foo.*.bar.baz
...
Add index for reverse Graphite-like metric names with dots. Use this index during search for filters
like `__name__=~"foo\\.[^.]*\\.bar\\.baz"` which end with non-empty suffix with dots, i.e. `.bar.baz` in this case.
This change may "hide" historical time series during queries. The workaround is to add `[.]*` to the end of regexp label filter,
i.e. "foo\\.[^.]*\\.bar\\.baz" should be substituted with "foo\\.[^.]*\\.bar\\.baz[.]*".
2020-05-27 21:45:52 +03:00
Aliaksandr Valialkin
7e2669f733
vendor: make vendor-update
2020-05-27 18:40:53 +03:00
Aliaksandr Valialkin
ff6d093e1b
docs/Cluster-VictoriaMetrics.md: mention that nginx can be used as a load balancer in front of vminsert and vmselect
2020-05-27 18:10:08 +03:00
Aliaksandr Valialkin
8311193293
docs: refresh docs about replication support
2020-05-27 17:48:10 +03:00
Aliaksandr Valialkin
80609fdf35
docs/Cluster-VictoriaMetrics.md: sync with upstream docs
2020-05-27 17:40:01 +03:00
Aliaksandr Valialkin
d7291487be
vendor: make vendor-update
2020-05-25 00:06:57 +03:00
Aliaksandr Valialkin
f5a4731412
lib/httpserver: properly set status code for empty response
2020-05-24 23:55:28 +03:00
Aliaksandr Valialkin
947009f459
lib/httpserver: fix compression for static files
2020-05-24 22:17:21 +03:00
Aliaksandr Valialkin
4cf7238b73
docs/Single-server-VictoriaMetrics.md: add a video to Zerodha talk about monitoring k8s with VictoriaMetrics
2020-05-24 15:51:56 +03:00
Aliaksandr Valialkin
c602284a99
lib/promscrape: mention about -promscrape.maxScrapeSize in the error message when target returns too big response
2020-05-24 14:41:14 +03:00
Aliaksandr Valialkin
2f35cf13c6
docs/Cluster-VictoriaMetrics.md: mention that cluster components may be monitored with vmagent
2020-05-23 14:29:50 +03:00
Aliaksandr Valialkin
b4103e055a
docs/CaseStudies.md: add a link to a post about VictoriaMetrics histograms in Zerodha case study
2020-05-23 12:45:00 +03:00
Aliaksandr Valialkin
dde29c3c18
docs/CaseStudies.md: add Zerodha case based on monitoring K8s with VictoriaMetrics slides at https://docs.google.com/presentation/d/1g7yUyVEaAp4tPuRy-MZbPXKqJ1z78_5VKuV841aQfsg/edit
2020-05-23 12:41:25 +03:00
Aliaksandr Valialkin
b3fcd726e3
lib/httpserver: do not recompress already compressed response
...
This shoud help with vmauth issue - https://github.com/VictoriaMetrics/VictoriaMetrics/issues/514
2020-05-22 16:45:04 +03:00
Aliaksandr Valialkin
5b6a9675d8
app/vmauth: fix make run-vmauth command
2020-05-22 16:45:02 +03:00
Aliaksandr Valialkin
aa647637bf
docs/Single-server-VictoriaMetrics.md: mention about vmauth in Security section
2020-05-21 23:47:56 +03:00
Aliaksandr Valialkin
84860167d0
docs/Cluster-VictoriaMetrics.md: mention about vmauth service in Multitenancy chapter
2020-05-21 22:54:19 +03:00
Aliaksandr Valialkin
0101a2d7ca
docs/Single-server-VictoriaMetrics.md: sync with single-node README.md
2020-05-21 20:45:39 +03:00
Roman Khavronenko
d2cab369b2
Minor additions to single version Readme ( #511 )
...
* docs/Single-server-VictoriaMetrics.md: add link to Wiki page so it may get more attention
* docs/Single-server-VictoriaMetrics.md: mention case for changing `-retentionPeriod` setting
2020-05-21 17:48:42 +03:00
Aliaksandr Valialkin
8905bc2a40
app/vmagent: check for error returned from flag.Set
2020-05-21 16:31:14 +03:00
Aliaksandr Valialkin
f9847352b4
app/vmagent: add -dryRun option for checking all the configs mentioned in command-line flags without running vmagent
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/362
2020-05-21 15:23:27 +03:00
Aliaksandr Valialkin
d1a9d8aa1c
lib/promscrape: add -promscrape.config.dryRun flag for checking -promscrape.config for errors or unsupported options
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/508
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/362
2020-05-21 14:55:11 +03:00
Aliaksandr Valialkin
b93b01bc6d
docs/vmagent.md: sync with app/vmagent/README.md
2020-05-21 12:11:15 +03:00
Aliaksandr Valialkin
dbd8beccfa
app/vmselect/promql: add ascent_over_time(m[d]) and descent_over_time(m[d]) functions
...
These functions could be useful in GPS tracking apps for calculating the summary for height gain/loss
over the given duration `d`.
2020-05-21 12:07:48 +03:00
kreedom
6b23df2bec
vmalert add quotes escape function ( #510 )
...
* vmalert add quotes escape function
Co-authored-by: kreedom
2020-05-20 22:20:31 +03:00
Aaron France
619d4959c7
Update README.md
2020-05-20 09:04:31 +03:00
Aliaksandr Valialkin
70ea4e28a7
app/vmselect/promql: update numbers after the upgrade of github.com/VictoriaMetrics/metrics from v1.11.2 to v1.11.3
2020-05-20 03:06:23 +03:00
Aliaksandr Valialkin
74a2943030
vendor: update github.com/VictoriaMetrics/metrics from v1.11.2 to v1.11.3
2020-05-20 02:55:11 +03:00
faceair
b3ec0fb5e2
keep debug symbols ( #438 )
...
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-05-20 01:21:46 +03:00
Roman Khavronenko
9a3afea123
dashboards: update troubleshooting row ( #505 )
...
* Slow metrics load panel was removed since it is hard to interpret without
additional metrics and stats;
* Slow inserts panel was updated to display percentage of slow inserts comparing
to total number of inserts to show the real impact.
2020-05-20 00:48:45 +03:00
Aliaksandr Valialkin
7705c19720
docs/MetricsQL.md: add a link to https://medium.com/@valyala/promql-tutorial-for-beginners-9ab455142085
2020-05-19 23:20:13 +03:00
Aliaksandr Valialkin
80c18b7275
docs/vmagent.md: mention an alternative to refresh_interval option in scrape configs
2020-05-19 23:10:06 +03:00
Aliaksandr Valialkin
cf87b810b7
lib/promscrape: add -promscrape.discovery.concurrency and -promscrape.discovery.concurrentWaitTime flags for tuning the number of concurrent requests to autodiscovery API servers at Consul or Kubernetes
2020-05-19 17:35:53 +03:00
Aliaksandr Valialkin
538fdfe133
app/vmselect/promql: move common code from aggrFuncOutliersK and newAggrFuncRangeTopK into getRangeTopKTimeseries
2020-05-19 16:11:14 +03:00
Aliaksandr Valialkin
f52769f6ee
app/vmselect/promql: fix outilersk calculations
2020-05-19 14:44:53 +03:00
Aliaksandr Valialkin
e6a782498a
docs/Quick-Start.md: mention that vmagent can be used instead of Prometheus in most cases
2020-05-19 14:09:27 +03:00
Aliaksandr Valialkin
a441cdd1d9
app/vmselect/promql: add outliersk(N, m) aggregate function for anomaly detection across groups of similar time series
2020-05-19 13:52:36 +03:00
Aliaksandr Valialkin
d0f08b4a58
app/vmalert/notifier: go fmt
2020-05-19 12:59:46 +03:00
Roman Khavronenko
aae8064285
dashboards: updates and fixes ( #499 )
...
The new update introduces new row "Troubleshooting" that
contains panels for churn rate and slow-queries/inserts/loads metrics. This row supposed to be reveal the cause of low performance or other issues.
Panels for storage were updated with "bytes-per-datapoint" and "remaining disk size" panels.
2020-05-19 11:51:02 +03:00
kreedom
7e173655ba
vmalert - add expr to variables, add escape functions ( #495 )
...
* vmalert - add expr to variables, add escape functions
Co-authored-by: kreedom
2020-05-18 11:55:16 +03:00
Roman Khavronenko
92212f04da
vmalert: avoid sending resolves for pending alerts ( #498 )
...
Before the change we were sending notifications to notifier
if following conditions are met:
* alert is in Fire state
* alert is in Inactive state
We were sending Inactive notifications to resolve alert ASAP.
Unfortunately, we were sending resolves for Pending alerts that become
Inactive, which is wrong.
In this change we delete alert from the active list if
it was Pending and become Inactive. In this way we now
have Inactive alerts only if they were in state Fire before.
See test change for example.
2020-05-17 15:13:22 +01:00
Roman Khavronenko
de60ad0cd6
vmalert: fix potential race during configuration reloads ( #497 )
...
Configuration reload and rules evaluation can't be executed
in same time now. This may make reload time longer but
prevents from potential races.
2020-05-17 15:12:09 +01:00
Aliaksandr Valialkin
7a8ef517ae
docs/Articles.md: add https://www.robustperception.io/evaluating-performance-and-correctness to third-party posts
2020-05-17 00:35:44 +03:00
Aliaksandr Valialkin
d61bac9fd9
deployment/docker: update Go builder from v1.14.2 to v1.14.3
...
This should fix the following issues found in Go v1.14.2.
See https://github.com/golang/go/issues?q=milestone%3AGo1.14.3+label%3ACherryPickApproved for details.
2020-05-16 22:55:27 +03:00
Aliaksandr Valialkin
eac3da478e
app/vmalert: run make quicktemplate-gen from the root dir of the repository
2020-05-16 22:46:02 +03:00
Aliaksandr Valialkin
0890c780c2
docs/Single-server-VictoriaMetrics.md: put contact us email to the top of the page
2020-05-16 22:36:59 +03:00
Aliaksandr Valialkin
fd1a6ce9ae
docs/Single-server-VictoriaMetrics.md: add Replication and Backups sections
2020-05-16 22:27:48 +03:00
Aliaksandr Valialkin
9b90c841c6
docs/Cluster-VictoriaMetrics.md: add missing endpoints to the list: api/v1/import/csv and api/v1/status/tsdb
2020-05-16 22:13:25 +03:00
Aliaksandr Valialkin
93c87d28f6
all: print --help output to stdout instead of stderr
...
This is easier to grep and pipe
2020-05-16 11:59:33 +03:00
Aliaksandr Valialkin
23c55181ef
docs/Quick-Start.md: update old link to Docker hub to new link
2020-05-16 10:23:08 +03:00
Aliaksandr Valialkin
b19ca3eb5f
lib/storage: do not increment vm_slow_metric_name_loads_total counter for metric_ids which shouldnt be prefetched, since this may mislead users
2020-05-16 10:21:17 +03:00
Aliaksandr Valialkin
4e850cd6a7
lib/persistentqueue: a follow-up for https://github.com/VictoriaMetrics/VictoriaMetrics/pull/484
2020-05-16 09:31:46 +03:00
Aliaksandr Valialkin
8cb35974af
app/vmrestore: document better that vmrestore works like rsync --delete, i.e. it deletes files in -storageDataPath, which are missing in the backup
2020-05-16 09:22:17 +03:00
肖贝贝
a0380a0a91
fix: fix vmagent multi queue may become one because sync bug ( #484 )
...
Co-authored-by: xiaobeibei <xiaobeibei@bigo.sg >
2020-05-16 09:19:52 +03:00
Aliaksandr Valialkin
3a68c47de0
app/vmagent/Makefile: fix make run-vmagent rule
2020-05-15 19:35:10 +03:00
Aliaksandr Valialkin
697b6af10f
app/vmagent/remotewrite: remove unused import after the commit 93267f143f
2020-05-15 17:42:19 +03:00
Aliaksandr Valialkin
93267f143f
app/vmagent/remotewrite: allow ingesting time series with multiple samples at once
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/481
2020-05-15 17:36:36 +03:00
Aliaksandr Valialkin
3412d5d138
lib/backup: remove misleading -dst mention in error message
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/482
2020-05-15 17:13:37 +03:00
Aliaksandr Valialkin
27f7cca7ff
lib/backup: donload only the remaining parts for partially downloaded files after vmrestore restart
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/487
2020-05-15 17:03:33 +03:00
Aliaksandr Valialkin
cf38c3c62f
.github/workflows: an attempt to fix loading of golangci-lint
2020-05-15 15:06:24 +03:00
Aliaksandr Valialkin
c56b66210f
vendor: make vendor-update
2020-05-15 15:02:10 +03:00
Aliaksandr Valialkin
82ffbcb9a6
app/vmstorage: add vm_slow_metric_name_loads_total metric, which could be used as an indicator when more RAM is needed for improving query performance
2020-05-15 14:11:45 +03:00
Aliaksandr Valialkin
82ccdfaa91
app/vmstorage: add vm_slow_row_inserts_total and vm_slow_per_day_index_inserts_total metrics for determining whether VictoriaMetrics required more RAM for the current number of active time series
2020-05-15 13:44:32 +03:00
Aliaksandr Valialkin
ab8f5545bc
docs/vmalert.md: sync with app/vmalert/README.md
2020-05-15 13:27:09 +03:00
Aliaksandr Valialkin
0eacea1de1
lib/{storage,mergeset}: further tuning of compression levels depending on block size
...
This should improve performance for querying newly added data, since it can be unpacked faster.
2020-05-15 13:24:37 +03:00
Aliaksandr Valialkin
737d641920
lib/storage: wait for all the goroutines to finish in TestSearch in order to prevent racy behavior on test finish
2020-05-15 13:24:37 +03:00
Aliaksandr Valialkin
4fc33163c4
lib/storage: optimize ingestion pefrormance for new time series
2020-05-15 13:24:37 +03:00
Aliaksandr Valialkin
f9f3afb6af
lib/mergeset: tune compression levels in order to improve ingestion performance a bit
2020-05-15 13:24:37 +03:00
Aliaksandr Valialkin
8b32e7c3a0
lib/storage: reduce indentation in Storage.add
2020-05-15 13:24:37 +03:00
Aliaksandr Valialkin
1573ececb2
lib/storage: return the first error instead of the last error, since the first error usually points to the root cause
2020-05-15 13:24:37 +03:00
Roman Khavronenko
a249cd9d22
vmalert: fix the access to rules slice element by wrong index ( #486 )
...
During group's update rules deletion was causing slice
mutations while slice index was assumed to be unchanged.
This caused "slice bounds out of range" errors when multiple
rules were deleted sequentially.
2020-05-15 07:55:22 +01:00
hagen1778
ef0e37cb9e
vmalert: update README
2020-05-15 09:17:28 +03:00
Aliaksandr Valialkin
0afd48d2ee
lib: extract common code for returning fast unix timestamp into lib/fasttime
2020-05-14 23:02:07 +03:00
Aliaksandr Valialkin
42866fa754
lib/{storage,mergeset}: return dst on error from unmarshalBlockHeaders, so it could be reused
2020-05-14 15:32:07 +03:00
Aliaksandr Valialkin
827a3a7866
lib/storage: document that getnerateUniqueMetricID should return dense ids
2020-05-14 14:08:45 +03:00
Aliaksandr Valialkin
606585f7be
lib/{storage,mergeset}: cleanup: remove unused partSearch.indexBlockReuse
2020-05-14 14:03:03 +03:00
Aliaksandr Valialkin
21598ac417
docs/vmalert.md: sync with app/vmalert/README.md
2020-05-13 22:55:35 +03:00
Aliaksandr Valialkin
894e5d2b9b
docs/vmbackup.md: add a link to vmbackuper tool
2020-05-13 22:54:22 +03:00
Roman Khavronenko
415b1ddfb5
vmalert: check if remoteRead object was initied before calling Restore ( #473 )
...
The check for non-nil remoteRead was mistakenly dropped
during refactoring which caused panics when `vmalert`
wasn't configured with `remoteRead` flag.
2020-05-13 19:32:58 +01:00
Roman Khavronenko
db7dd96346
vmalert: fix flag names and description in README ( #475 )
...
Change also adds the recommendation for `remotewrite`
queue error.
2020-05-13 19:32:21 +01:00
肖贝贝
ba48438b06
Feat/vmalert add max queue size ( #472 )
...
* feat: add remoteWrite.maxQueueSize to reduce queue full
* rename remote(write|read) flags to remote(Write|Read) for the sake of consistency
Co-authored-by: xiaobeibei <xiaobeibei@bigo.sg >
2020-05-13 18:58:56 +01:00
Aliaksandr Valialkin
7882a0dbbf
app/vmselect/promql: suppress "SA4006: this value of dstValues is never used" error in golangci-lint
2020-05-13 11:47:08 +03:00
Aliaksandr Valialkin
4fe67504f9
lib/storage: optimize label matching for regexp ending with literal suffix
...
For example, `{label=~"foo.*bar.+baz"}` contains literal suffix `baz`,
so it should work faster now.
2020-05-13 11:47:07 +03:00
Aliaksandr Valialkin
96e001d254
app/vmagent: fix a bug with improper relabeling when multiple -remoteWrite.urlRelableConfig args are set
...
This bug could result in incorrect relabeling and metrics' drop.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/467
2020-05-12 22:02:58 +03:00
Aliaksandr Valialkin
faf92a0965
app/vmselect/promql: fix any(..) calculations - return all the data points instead of the first one
2020-05-12 20:36:42 +03:00
Aliaksandr Valialkin
a6f16dcc11
lib/fs: do not use mmap for 32-bit arches by default, since they cannot map files bigger than 4GB in RAM
2020-05-12 20:22:09 +03:00
Aliaksandr Valialkin
cc311e20fe
app/vmselect/promql: add any(x) by (y) aggregate function, which returns any time series from q for each group y
2020-05-12 19:45:56 +03:00
Aliaksandr Valialkin
574289c3fb
app/vmselect/promql: support for sum(x) by (y) limit N syntax in order to limit the number of output time series after aggregation
2020-05-12 19:45:54 +03:00
Aliaksandr Valialkin
0a134ace63
app/vmagent: fix scraping mTLS targets, which has been broken in v1.35.1
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/470
2020-05-12 17:23:03 +03:00
Aliaksandr Valialkin
8300cc17af
app/vmagent,lib/promscrape: do not set HostClient.DialDualStack, since it isnt used if HostClient.Dial is set
2020-05-12 15:24:18 +03:00
Aliaksandr Valialkin
6273385618
app/vmagent/remotewrite: properly dial TCP6 addresses set via -remoteWrite.url
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/469
2020-05-12 15:22:29 +03:00
Aliaksandr Valialkin
3232605524
lib/storage: properly initialize part struct before trying to close it on error
...
This should prevent from nil pointer dereference bug at https://github.com/VictoriaMetrics/VictoriaMetrics/issues/468 .
2020-05-12 14:54:31 +03:00
Aliaksandr Valialkin
18834a9191
vendor: make vendor-update
2020-05-12 14:25:35 +03:00
Aliaksandr Valialkin
d90dc1fbf9
deployment/docker: omit http2 support in *-prod binaries
...
VictoriaMetrics doesn't use http/2.0, so disable it completely.
Use `nethttpomithttp2` tag defined in Go1.14 for this.
See 2566e21f24 for details.
2020-05-12 14:19:43 +03:00
Aliaksandr Valialkin
dbd0c552d5
lib/storage: gradually pre-populate per-day inverted index for the next day
...
This should prevent from CPU usage spikes at 00:00 UTC every day when
inverted index for new day must be quickly created for all the active time series.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/430
2020-05-12 12:13:05 +03:00
Aliaksandr Valialkin
cc00a2c453
lib/storage: typo fixes in error messages: or -> of
2020-05-12 12:12:42 +03:00
Aliaksandr Valialkin
ce2107bc52
lib/storage: speed up matching for common regexps in label filters
...
The following regexps have been optimized:
* 'foo.+bar'
* 'foo.+bar.+baz'
This should improve performance for matching Graphite-like metrics.
2020-05-11 22:40:55 +03:00
Aliaksandr Valialkin
12a1a71cc1
lib/storage: add a benchmark for Graphite-like regexps for metric names
2020-05-11 22:37:32 +03:00
Aliaksandr Valialkin
de113806bb
docs/CaseStudies.md: add CERN case study
2020-05-11 14:05:20 +03:00
Roman Khavronenko
8c8ff5d0cb
vmalert: cleanup and restructure of code to improve maintainability ( #471 )
...
The change introduces new entity `manager` which replaces
`watchdog`, decouples requestHandler and groups. Manager
supposed to control life cycle of groups, rules and
config reloads.
Groups export an ID method which returns a hash
from filename and group name. ID supposed to be unique
identifier across all loaded groups.
Some tests were added to improve coverage.
Bug with wrong annotation value if $value is used in
templates after metrics being restored fixed.
Notifier interface was extended to accept context.
New set of metrics was introduced for config reload.
2020-05-10 17:58:17 +01:00
Nikolay Khramchikhin
9e8733ff65
vmalert config reload
...
added config hot reload for vmalert with sighup and api call
2020-05-09 10:32:12 +01:00
Aliaksandr Valialkin
5bc5d6a1f2
docs/Single-server-VictoriaMetrics.md: small updates for Monitoring and How to start VictoriaMetrics sections
2020-05-08 20:34:50 +03:00
Aliaksandr Valialkin
baedb25936
docs/vmauth.md: fix a link to docker images
2020-05-08 14:10:04 +03:00
Aliaksandr Valialkin
6909d845b0
docs/Articles.md: add a link to CERN article at https://indico.cern.ch/event/877333/contributions/3696707/attachments/1972189/3281133/CMS_mon_RD_for_opInt.pdf
2020-05-08 01:25:37 +03:00
Aliaksandr Valialkin
efc8e3c523
Makefile: suppress false positives for golangci-lint on nil pointer dereference
2020-05-07 19:41:42 +03:00
Aliaksandr Valialkin
51291015a5
app/vmagent: return 200 from /-/reload endpoint as Prometheus does
2020-05-07 19:30:30 +03:00
Aliaksandr Valialkin
099e44005b
lib/httpserver: add -http.shutdownDelay flag for a grace period before http server shutdown
...
The http server returns 503 non-OK error at `/health` page during grace period,
so load balancers in front of the http server could re-route incoming requests
to other servers.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/463
2020-05-07 15:30:35 +03:00
Aliaksandr Valialkin
787fcfba0c
lib/httpserver: reduce typical duration for http server graceful shutdown
...
Previously the duration for graceful shutdown for http server could take more than a minute
because of imporperly set timeouts in setNetworkTimeout.
Now typical duration for graceful shutdown should be reduced to less than 5 seconds.
2020-05-07 14:12:39 +03:00
Aliaksandr Valialkin
6afb25fd08
docs/{vmagent,vmauth}: small clarifications in the docs
2020-05-07 12:55:20 +03:00
Aliaksandr Valialkin
653d51694a
app/vmauth: prevent from attacks with .. in path for accessing resources outside the configured url_prefix
2020-05-07 12:55:18 +03:00
Aliaksandr Valialkin
91a49eecea
lib/flagutil: make errcheck happy by explicitly ignoring Array.Set result in tests
2020-05-06 22:37:39 +03:00
Aliaksandr Valialkin
c4c447507d
lib/flagutil: properly parse quoted flag values for flagutil.Array
2020-05-06 22:27:21 +03:00
Aliaksandr Valialkin
8a00807f60
app/vmagent: allow setting independent auth configs per each configured -remoteWrite.url
2020-05-06 16:51:41 +03:00
Aliaksandr Valialkin
b69eb7bf38
app/vmagent: properly set client-side TLS certificates for -remoteWrite.url. Previously they were mistakenly set as server-side
2020-05-06 16:50:30 +03:00
Aliaksandr Valialkin
68928bf3df
lib/promscrape/discovery/gce: discover per-zone instances for gce_sd_config in parallel. This should reduce discovery latency
2020-05-06 15:00:09 +03:00
Aliaksandr Valialkin
e8936c9cb3
docs/vmagent.md: small fixes
2020-05-06 14:49:18 +03:00
Aliaksandr Valialkin
3f52a97f9b
lib/promscrape: add Prometheus-compatible DNS-based service discovery aka dns_sd_configs
2020-05-06 00:01:58 +03:00
Aliaksandr Valialkin
364789c24c
lib/promscrape: properly connect to TCP6 addresses if -enableTCP6 is set
2020-05-06 00:01:57 +03:00
Aliaksandr Valialkin
08320cfcf4
docs/{vmauth,vmagent}: fix ports for profiling
2020-05-05 20:15:47 +03:00
Aliaksandr Valialkin
f65930b34d
docs/vmauth.md: mention that we can help creating customized proxy
2020-05-05 12:34:42 +03:00
Aliaksandr Valialkin
266327642b
docs/{vmagent,vmauth}: add Profiling section
2020-05-05 11:45:13 +03:00
Aliaksandr Valialkin
0c7cddfca6
docs: add vmauth.md
2020-05-05 11:17:23 +03:00
Aliaksandr Valialkin
e767aedd17
app/vmauth: add initial version of vmauth. See https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/app/vmauth/README.md for details
2020-05-05 10:54:17 +03:00
Aliaksandr Valialkin
b5a780930d
docs/vmagent.md: /targets page doesnt expose infomration about imporperly configured scrape configs now. It is written in error log instead
2020-05-05 10:54:14 +03:00
Aliaksandr Valialkin
7b5ef63384
lib/procutil: add NewSighupChan function, which returns a channel, which is triggered on every SIGHUP
2020-05-05 10:54:09 +03:00
Aliaksandr Valialkin
1aea001532
docs/vmalert.md: sync with app/vmalert/README.md
2020-05-05 07:50:57 +03:00
Aliaksandr Valialkin
4fa817be10
lib/promscrape: allow explicitly setting empty token via token: "" in consul_sd_config
2020-05-05 07:50:15 +03:00
Aliaksandr Valialkin
8c77faec96
make vendor update
2020-05-05 00:54:38 +03:00
Roman Khavronenko
0ba1b5c71b
app/vmalert: restore alerts state from datasource metrics ( #461 )
...
* app/vmalert: restore alerts state from datasource metrics
Vmalert will restore alerts state for rules that have `rule.For` > 0 from previously written timeseries via `remotewrite.url` flag.
* app/vmalert: mention remotewerite and remoteread configuration in README
2020-05-05 00:51:22 +03:00
Aliaksandr Valialkin
40c3ffb359
lib/promscrape: add Prometheus-compatible service discovery for Consul aka consul_sd_configs
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/330
2020-05-04 20:51:17 +03:00
Aliaksandr Valialkin
83f0e35b7b
lib/promauth: properly set up client certificate in tls.Config
...
Previously the client certificate has been mistakenly set up as a server certificate
2020-05-04 20:51:08 +03:00
Aliaksandr Valialkin
218e566647
lib/promscrape: move common code for discovery api config map handling into discoveryutils
2020-05-04 20:51:01 +03:00
Aliaksandr Valialkin
6310b20e72
lib/promscrape/discovery/kubernetes/: unify apiConfig creation
2020-05-04 20:50:49 +03:00
Aliaksandr Valialkin
d17381037e
vendor: update github.com/valyala/quicktemplate from v1.4.1 to v1.5.0
2020-05-04 01:36:41 +03:00
Aliaksandr Valialkin
6c68b8aa81
docs/Single-server-VictoriaMetrics.md: mention that it is recommended upgrading to the latest release before reporting issues
2020-05-04 00:41:47 +03:00
Aliaksandr Valialkin
23010e6321
docs/Cluster-VictoriaMetrics.md: add Multitenancy chapter
2020-05-03 18:01:26 +03:00
Aliaksandr Valialkin
66b0ae79a5
lib/promscrape: remove debug line left after the commit e4aac6ea40
2020-05-03 17:15:32 +03:00
Aliaksandr Valialkin
69004a5f67
lib/promscrape: fix tests after the commit 658a8742ac
...
The original commit copies `__address__` label to `instance` label when generating per-target labels as Prometheus does.
See https://www.robustperception.io/life-of-a-label for details.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/453
2020-05-03 16:56:15 +03:00
DexterZhang
658a8742ac
fix(vmagent): different behavior as how prometheus deal with labels. [Issue#453] ( #454 )
2020-05-03 16:51:03 +03:00
Aliaksandr Valialkin
e4aac6ea40
lib/promscrape: make consistent scrape time offsets across reloads for the same ScrapeURL and Labels
...
This should make consistent intervals between data points for scrape targets across reloads.
Previously these intervals were random.
2020-05-03 14:30:21 +03:00
Aliaksandr Valialkin
d9f1b4d6a3
lib/promscrape: fix TestGetFileSDScrapeWorkSuccess after 3b234d82e5
2020-05-03 14:28:31 +03:00
Aliaksandr Valialkin
3b234d82e5
lib/promscrape: reload only modified scrapers on config changes
...
This should improve scrape stability when big number of targets are scraped and these targets are frequently changed.
Thanks to @xbsura for the idea and initial implementation attempts at the following pull requests:
- https://github.com/VictoriaMetrics/VictoriaMetrics/pull/449
- https://github.com/VictoriaMetrics/VictoriaMetrics/pull/458
- https://github.com/VictoriaMetrics/VictoriaMetrics/pull/459
- https://github.com/VictoriaMetrics/VictoriaMetrics/pull/460
2020-05-03 12:45:40 +03:00
Aliaksandr Valialkin
d2af2c8c3e
docs/MetricsQL.md: document first_over_time and last_over_time functions
2020-05-02 22:43:29 +03:00
Aliaksandr Valialkin
ee810e5f3a
lib/httpserver: rename http.externalURL to http.pathPrefix and improve help message for this flag
...
The `http.externalURL` flag name was slightly misleading, so it has been renamed to `http.pathPrefix`.
2020-05-02 13:07:34 +03:00
DexterZhang
34743974d5
feat(httpserver): add http.externalUrl config to http server, it adds prefix to http path automatically ( #452 )
2020-05-02 12:42:53 +03:00
Aliaksandr Valialkin
09f5d0056f
docs/Single-server-VictoriaMetrics.md: hint that \n is a single newline char
2020-05-01 13:41:55 +03:00
Aliaksandr Valialkin
432187ac3b
app/vminsert: add /-/reload handler in the same way as for vmagent
2020-04-30 02:15:39 +03:00
Aliaksandr Valialkin
825a2dd554
lib/procutil: prevent from app termination on SIGHUP signal, since this signal is frequently used for config reload
2020-04-30 02:09:27 +03:00
DexterZhang
67511d4165
feat(vmagent): add promscrap config reload suppport via http ( #450 )
...
* feat(vmagent): add promscrap config reload suppport via http endpoint `/-/reload`
* fix: typo fix
2020-04-30 02:00:32 +03:00
Aliaksandr Valialkin
01c17092e1
lib/httpserver: mention that -http.maxGracefulShutdownDuration command-line flag value can be increased on shutdown timeout
2020-04-30 01:38:06 +03:00
Aliaksandr Valialkin
7d36616b93
docs/Single-server-VictoriaMetrics.md: mention that it is better to increase CPU and RAM per vmselect node in order to achieve higher query performance
2020-04-30 00:53:53 +03:00
Aliaksandr Valialkin
d0ebbb166e
docs: add vmalert.md
2020-04-29 17:42:06 +03:00
Aliaksandr Valialkin
8b2f54d7cd
docs/Single-server-VictoriaMetrics.md: update Alerting section
2020-04-29 17:39:21 +03:00
Aliaksandr Valialkin
5ec036439d
lib/promscrape: set 30 seconds timeout for discovery api requests
...
Previously such requests could hang for long time. This could make debugging harder.
2020-04-29 17:33:34 +03:00
Aliaksandr Valialkin
43c39dc36c
vendor: use github.com/VictoriaMetrics/fasthttp instead of github.com/fasthttp/fasthttp
...
The upstream fasthttp may contain issues like 996610f021 ,
plus a code that isn't used by VictoriaMetrics. So let's use a private copy under our control instead.
2020-04-29 17:33:34 +03:00
Artem Navoiev
cc1878607a
fix link to vmalert
2020-04-29 17:17:08 +03:00
Artem Navoiev
d8cd69895c
update README.md change alerting section
2020-04-29 17:16:13 +03:00
Artem Navoiev
4487b454a8
Update README.md
2020-04-29 12:39:15 +03:00
Aliaksandr Valialkin
e3cc329d85
vendor: downgrade github.com/valyala/fasthttp from v1.12.0 to v0.1.0
...
The v0.1.0 points to the last verified changes made by me.
I'm afraid that releases after v0.1.0 may contain completely broken changes like
996610f021
2020-04-29 01:09:02 +03:00
Aliaksandr Valialkin
57407cca83
app/vmselect/promql: remove -search.maxPointsPerTimeseries command-line flag
...
Limit the estimated time series count after aggregation with grouping by the number of source time series.
2020-04-29 00:20:04 +03:00
Aliaksandr Valialkin
4470308d5b
docs/Single-server-VictoriaMetrics.md: mention that basic downsampling could be made with the help of de-duplication
2020-04-28 16:38:32 +03:00
Aliaksandr Valialkin
4e4f57b121
lib/metricsql: move it to a separate repository - github.com/VictoriaMetrics/metrics
2020-04-28 15:28:22 +03:00
Aliaksandr Valialkin
17d96e4503
app/vmselect: add -search.estimatedSeriesCountAfterAggregation command-line flag for tuning the probability of OOMs vs false-positive not enough memory errors
2020-04-28 12:52:37 +03:00
Aliaksandr Valialkin
83aca79137
lib/storage: recover when metricID->metricName entry is missing in the inverted index after unclean shutdown
...
Newly added index entries can be missing after unclean shutdown, since they didn't flush to persistent storage yet.
Log about this and delete the corresponding metricID, so it could be re-created next time.
2020-04-28 12:00:33 +03:00
Aliaksandr Valialkin
1397612117
app/vmalert: added missing comments for public entities
2020-04-28 11:21:07 +03:00
Aliaksandr Valialkin
20b71acf19
docs/Articles.md: add https://zerodha.tech/blog/infra-monitoring-at-zerodha/
2020-04-28 02:24:16 +03:00
Aliaksandr Valialkin
521df0e2fc
lib/promscrape: handle connection reset when targets responds with http redirect
2020-04-28 02:13:02 +03:00
肖贝贝
2b16c188e8
fix: vmagent not follow 301/302 redirect bug ( #445 )
...
Co-authored-by: xiaobeibei <xiaobeibei@bigo.sg >
2020-04-28 01:29:37 +03:00
Roman Khavronenko
3bfa41a95c
app/vmalert: initial remote-write support for alerts state persistence. ( #442 )
...
* app/vmalert: initial remote-write support for alerts state persistence.
If `remotewrite.url` flag is set, vmalert will send alerts state via remote-write protocol to remote storage. The sending is asynchronous to avoid blocking calls in rules evaluation loop.
* app/vmalert: merge with master
* app/vmalert: write both `instant` and `for` alerts timeseries states in remote storage.
2020-04-28 00:18:02 +03:00
Aliaksandr Valialkin
90670cb55e
app/vmalert: include it into the next release
2020-04-28 00:10:12 +03:00
Aliaksandr Valialkin
303905cd84
lib/{encoding,decimal}: typo fixes in tests: epxecting->expecting
2020-04-28 00:01:55 +03:00
Aliaksandr Valialkin
36fa3078c2
lib/encoding: reduce possibility of failure in TestMarshalInt64ArraySize
2020-04-28 00:01:54 +03:00
Aliaksandr Valialkin
95942f1ac6
lib/promscrape/discovery/gce: make golangci-lint happy
2020-04-27 19:28:10 +03:00
Aliaksandr Valialkin
b768bc9a6a
lib/promscrape: add initial support for Prometheus-compatible service discovery for Amazon EC2 aka ec2_sd_configs
2020-04-27 19:25:53 +03:00
Aliaksandr Valialkin
de59703a16
lib/promscrape/discovery/gce: properly set filter query arg in api url
2020-04-27 16:01:17 +03:00
Aliaksandr Valialkin
b4afe562c1
lib/storage: postpone reading data from blocks during search
...
This eliminates the need for storing block data into temporary files on a single-node VictoriaMetrics
during heavy queries, which touch big number of time series over long time ranges.
This improves single-node VM performance on heavy queries by up to 2x.
2020-04-27 11:45:24 +03:00
Aliaksandr Valialkin
0224071ebe
lib/promscrape/discovery/gce: allow empty project and zone for gce_sd_config
2020-04-27 11:45:02 +03:00
Aliaksandr Valialkin
fcf57f9883
app/vmselect/netstorage: substitute sorting packedTimeseries with the natural order of the fetched blocks
...
This should minimize the number of disk seeks when reading data from temporary file.
2020-04-26 16:26:23 +03:00
Aliaksandr Valialkin
6954d0edb7
lib/promscrape/discovery/gce: allow empty zone arg in gce_sd_config - in this case zones for the given project are automatically discovered
2020-04-26 14:34:11 +03:00
kreedom
fb967ae6c8
happy fmt
2020-04-26 14:16:32 +03:00
kreedom
2c18548e08
alert - rename validate function and flags ( #440 )
...
* alert - rename validate function and flags
2020-04-26 14:15:04 +03:00
kreedom
5f61d43db9
vmalert - validate template in labels ( #439 )
2020-04-26 13:53:57 +03:00
肖贝贝
eeadfccdc5
fix: fix vmalert template label not complete bug ( #435 )
...
Co-authored-by: xiaobeibei <xiaobeibei@bigo.sg >
2020-04-26 13:30:10 +03:00
Aliaksandr Valialkin
d7c1ff8b0c
lib/storage: improve deduplication algorithm
...
Now it leaves only the first data point on each `-dedup.minScrapeInterval` interval.
Previously it may leave two data points on the interval. This could lead to unexpected results
for `histogram_quantile(phi, sum(rate(buckets)) by (le))` query.
2020-04-26 13:10:02 +03:00
Aliaksandr Valialkin
1f3fd93b58
docs/{vmbackup,vmrestore}.md: update -help output
2020-04-24 22:44:21 +03:00
Jason Gardner
66af7e40f3
app/vmbackup: added ability to create and delete snapshots during backup ( #428 )
...
* app/vmbackup: added ability to create and delete snapshots during backup
Resolves: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/422
* Add snapshot create and delete url flags
* Fixed errcheck warnings in build
2020-04-24 22:35:03 +03:00
Aliaksandr Valialkin
491b31b369
lib/storage: postpone label filters matching too many time series instead of giving up with error
...
This should reduce the frequency of the following errors:
cannot find tag filter matching less than N time series; either increase -search.maxUniqueTimeseries or use more specific tag filters
more than N time series found on the time range [...]; either increase -search.maxUniqueTimeseries or shrink the time range
2020-04-24 21:13:50 +03:00
Aliaksandr Valialkin
4b84c592e9
docs/Single-server-VictoriaMetrics.md: document -search.resetCacheAuthKey
2020-04-24 19:47:52 +03:00
Aliaksandr Valialkin
a596aec82c
app/vmselect: fix description for -search.resetCacheAuthKey
2020-04-24 19:45:50 +03:00
Aliaksandr Valialkin
7b8008e0bd
lib/promscrape/discovery/gce: make golint happy by ignoring resp.Body.Close() result
2020-04-24 18:13:09 +03:00
Aliaksandr Valialkin
6d3567d65c
.github/workflows: install dependencies before code checkout
...
Othwerise dependencies' install mangles go.mod
2020-04-24 17:55:17 +03:00
Aliaksandr Valialkin
9ef5935552
lib/promscrape: initial implementation for gce_sd_configs aga Prometheus-compatible service discovery for Google Compute Engine
2020-04-24 17:51:22 +03:00
Aliaksandr Valialkin
b80e6b4d56
.github/workflows: enable Go modules when installing dependencies
...
Disabled Go modules broke golangci-lint build
2020-04-24 17:39:58 +03:00
Aliaksandr Valialkin
5f9c23226a
docs/Single-server-VictoriaMetrics.md: mention that -search.maxStalenessInterval can be useful for InfluxDB and TimescaleDB users
2020-04-24 16:22:50 +03:00
Aliaksandr Valialkin
ac43075cc9
.github/workflows: install golangci-lint at Dependencies step
2020-04-24 15:37:35 +03:00
Aliaksandr Valialkin
3157fb0186
.github/workflows: update Go version in actions/setup-go from v1.13 to v1.14
2020-04-24 15:31:16 +03:00
Aliaksandr Valialkin
e48822942d
vendor: make vendor-update
2020-04-24 15:27:45 +03:00
Aliaksandr Valialkin
77bea69fab
.github/workflows: use master branch for 'actions/setup-go' and 'actions/checkout'
2020-04-24 14:41:21 +03:00
Aliaksandr Valialkin
24461153bf
lib/promscrape: query /api/v1/namespaces/* for the configured namespaces in kubernetes_sd_config
...
This should fix authroization issues described at https://github.com/VictoriaMetrics/VictoriaMetrics/issues/432
2020-04-24 14:33:50 +03:00
Aliaksandr Valialkin
00e897119f
lib/promscrape: add -promscrape.configCheckInterval command-line flag for automating config checking
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/431
2020-04-23 23:41:08 +03:00
Aliaksandr Valialkin
a9a7a7175e
lib/promscrape: access Config entries by reference, so they can be compared by addresses
2020-04-23 14:38:20 +03:00
Aliaksandr Valialkin
a9b83bf512
vendor: update google.golang.org/api from v0.21.0 to v0.22.0
2020-04-23 14:30:46 +03:00
Aliaksandr Valialkin
a87ca3bdf0
vendor: update github.com/aws/aws-sdk-go from v1.30.8 to v1.30.12
2020-04-23 12:36:03 +03:00
Aliaksandr Valialkin
1c5d14a2eb
lib/promscrape: move KubernetesSDConfig to lib/promscrape/discovery/kubernetes
2020-04-23 11:34:22 +03:00
Aliaksandr Valialkin
a714568374
lib/promscrape/discovery/kubernetes: hide role switch logic behind GetLabels function
2020-04-22 22:16:11 +03:00
Aliaksandr Valialkin
364db13c9c
app/vmselect: add /api/v1/status/tsdb page with useful stats for locating root cause for high cardinality issues
...
See https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-stats
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/425
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/268
2020-04-22 22:03:43 +03:00
Aliaksandr Valialkin
01e33be34a
vendor: update github.com/valyala/fastjson from v1.5.0 to v1.5.1
2020-04-21 00:03:56 +03:00
Aliaksandr Valialkin
78ff5f2aa5
vendor: update github.com/valyala/gozstd from v1.6.4 to v1.7.0
2020-04-20 23:03:40 +03:00
Aliaksandr Valialkin
2dc5593b75
lib/writeconcurrencylimiter: improve docs for -maxConcurrentInserts command-line flag
2020-04-20 21:03:00 +03:00
Aliaksandr Valialkin
9ebc937685
app/vmselect: add -search.minStalenessInterval command-line flag for removing gaps on graphs built from time series with irregular duration between samples
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/426
2020-04-20 19:42:15 +03:00
Aliaksandr Valialkin
fe57d46687
app/vmselect: merge -search.maxLookback and -search.maxStalenessInterval flags, since it has been appeared they have identical purpose :(
...
Leave both flags for backwards compatibility reasons.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/209
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/426
2020-04-20 19:26:31 +03:00
Aliaksandr Valialkin
6cc6ec6d2e
deployment/docker/docker-compose.yml: bump Prometheus from v2.17.1 to v2.17.2 and Grafana from v6.7.1 to v6.7.2
2020-04-20 17:29:20 +03:00
Aliaksandr Valialkin
5454b518a6
lib/promscrape/discovery/kubernetes: reuse a client for empty api_server inside different jobs
2020-04-20 17:07:11 +03:00
Aliaksandr Valialkin
5ecb50d7c2
docs/Single-server-VictoriaMetrics.md: mention about vmagent in the end of Prometheus setup section
2020-04-20 16:41:36 +03:00
Aliaksandr Valialkin
851946af1e
deployment/docker: allow building docker images on top of any base image set via ROOT_IMAGE environment var
...
For example, the following command will build VictoriaMetrics docker image on top of alpine image:
ROOT_IMAGE=alpine make package-victoria-metrics
2020-04-20 01:16:57 +03:00
Aliaksandr Valialkin
2de76bca96
deployment/docker/base: remove unused group and passwd files
2020-04-19 23:31:31 +03:00
Aliaksandr Valialkin
94ad531bfe
Makefile: increase the timeout for make golangci-lint from 1 minute to 2 minutes
...
This should fix timeout errors on GitHub actions
2020-04-17 19:14:04 +03:00
Aliaksandr Valialkin
936fb0eac3
app/vmagent/remotewrite: retry sending data if the server closes keep-alive connection
...
This should fix the following error when sending data to remote storage:
couldn't send a block with size XX bytes to "YYY": the server closed connection before returning the first response byte. Make sure the server returns 'Connection: close' response header before closing the connection
2020-04-17 15:52:42 +03:00
Aliaksandr Valialkin
43375df923
lib/promscrape/discovery/kubernetes: update stale comments
2020-04-17 14:06:20 +03:00
Aliaksandr Valialkin
43bbffebb3
vendor: make vendor-update
2020-04-17 13:24:08 +03:00
Aliaksandr Valialkin
79fb595732
docs/vmagent.md: typo fix: unvailable -> unavailable
2020-04-17 13:11:31 +03:00
Aliaksandr Valialkin
546d26523c
app/vmagent/README.md: mention about prodmscrape.suppressScrapeErrors
2020-04-17 13:08:21 +03:00
Aliaksandr Valialkin
f41e6a7bd9
app/vmselect: properly apply -search.maxLookback to queries sent to /api/v1/query
2020-04-17 12:30:11 +03:00
Dmitry Shihovtsev
830538e290
Fix misspelled Cortex name in the FAQ ( #421 )
2020-04-17 08:36:12 +01:00
Aliaksandr Valialkin
5d1537a395
lib/promscrape: suppress scrape errors if -promscrape.suppressScrapeErrors flag is set
2020-04-16 23:41:30 +03:00
Aliaksandr Valialkin
600490131f
lib/promscrape: print all the labels for the target on error message for failed scrape
...
This should improve debuggability.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/420
2020-04-16 23:35:05 +03:00
Aliaksandr Valialkin
bd4c6d21dd
lib/promscrape: retry target scraping when the target closes previously established keep-alive connection to it
...
This should fix the following error:
the server closed connection before returning the first response byte. Make sure the server returns 'Connection: close' response header before closing the connection
2020-04-16 23:25:29 +03:00
Aliaksandr Valialkin
95da8d410c
docs/Single-server-VictoriaMetrics.md: mention that VictoriaMetrics supports Kubernetes service discovery
2020-04-16 18:40:11 +03:00
Aliaksandr Valialkin
bcec5c5429
docs/Single-server-VictoriaMetrics.md: typo fix: unneded -> unneeded
2020-04-16 17:35:08 +03:00
Aliaksandr Valialkin
467279acd2
docs/Single-server-VictoriaMetrics.md: imrpove docs about metrics deletion
2020-04-16 17:32:09 +03:00
Aliaksandr Valialkin
e0d213f82b
docs/Single-server-VictoriaMetrics.md: mention that the delete API can be protected by authKey
2020-04-16 17:19:10 +03:00
Aliaksandr Valialkin
2fd2dec5eb
lib/logger: typo fix
2020-04-16 00:19:10 +03:00
Aliaksandr Valialkin
071fdf5518
lib/logger: add WARN level for logging expected errors such as invalid user queries
2020-04-15 20:50:26 +03:00
Aliaksandr Valialkin
30b401ebbf
docs/Single-server-VictoriaMetrics.md: typo fix
2020-04-15 15:21:58 +03:00
Aliaksandr Valialkin
a59a7bcc5e
vendor: make vendor-update
2020-04-15 14:52:24 +03:00
Aliaksandr Valialkin
ccb887c0f6
docs/Single-server-VictoriaMetrics.md: clarify how to use -influxListenAddr command-line option
2020-04-15 12:33:42 +03:00
Aliaksandr Valialkin
6f7f64f757
app/vmselect: handle timestamp(metric offset X) the same way as Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/415
2020-04-15 12:01:00 +03:00
Aliaksandr Valialkin
426a0567c4
lib/promscrape: code cleanup in runScraper func
2020-04-15 11:36:24 +03:00
Aliaksandr Valialkin
6e2f6574b8
docs/Single-server-VictoriaMetrics.md: mention that backfilling can be done via any supported ingestion method
2020-04-15 10:56:53 +03:00
Aliaksandr Valialkin
c1de3f67b4
lib/storage: skip metricID if the corresponding metricID->metricName is missing in inverted index during search
...
This case is possible when the corresponding metricID->metricName entry didn't propagate to inverted index yet.
This should fix the following error:
error when searching tsids for tfss [...]: cannot find metricName by metricID 1582417212213420669: EOF
2020-04-15 00:06:43 +03:00
Aliaksandr Valialkin
8a25c1ed71
docs/Single-server-VictoriaMetrics.md: add https://github.com/Slapper/ansible-victoriametrics-cluster-role to integrations chapter
2020-04-14 16:27:20 +03:00
Aliaksandr Valialkin
067c7afebc
lib/promscrape: show information on improperly configured scrape targets at the bottom of /targets page
...
This is a common error whith improperly configured target autodiscovery and/or relabeling.
This error leads to duplicate scraping of the same targets with the same set of labels, which leads
to duplicate samples in time series.
2020-04-14 14:55:05 +03:00
Aliaksandr Valialkin
ac35635b71
lib/promscrape/discovery/kubernetes: remove only unused client for API server during cleaning
2020-04-14 14:19:21 +03:00
Aliaksandr Valialkin
78863d7066
lib/promscrape: add promrelabel.GetLabelValueByName helper function
2020-04-14 14:12:01 +03:00
Aliaksandr Valialkin
c64f003cfb
lib/promscrape: mention job name in error messages when target cannot be scraped
...
This should improve debuggability
2020-04-14 13:33:13 +03:00
Aliaksandr Valialkin
4718a5d951
lib/promscrape: reset ScrapeWork.ID in tests
2020-04-14 13:31:31 +03:00
Aliaksandr Valialkin
257521a634
lib/promscrape: properly expose statuses for targets with duplicate scrape urls at /targets page
...
Previously targets with duplicate scrape urls were merged into a single line on the page.
Now each target with duplicate scrape url is displayed on a separate line.
2020-04-14 13:10:01 +03:00
Aliaksandr Valialkin
6a75c95194
lib/promscrape: remove labels starting with __meta_ after applying relabel_configs as Prometheus does
...
This should reduce CPU load during scraping when target discovery generates
big number of `__meta_*` labels (for instance, k8s discovery).
See https://www.robustperception.io/life-of-a-label for details.
2020-04-14 12:23:22 +03:00
Aliaksandr Valialkin
01d7d799dc
lib/promscrape: rename 'scrape_config->scrape_limit' to 'scrape_config->sample_limit'
...
`scrape_config` block from Prometheus config contains `sample_limit` field,
while in `vmagent` this field was mistakenly named as `scrape_limit`.
2020-04-14 11:59:57 +03:00
Aliaksandr Valialkin
0b76c27fa1
docs/vmagent.md: mention that vmagent supports kubernetes_sd_configs now
2020-04-13 21:06:36 +03:00
Aliaksandr Valialkin
2e4e202c2b
lib/promscrape: add initial support for kubernetes_sd_config
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/334
2020-04-13 21:03:28 +03:00
Aliaksandr Valialkin
2814b1490f
lib/promscrape: add -promscrape.config.strictParse flag for detecting errors in -promscrape.config file
2020-04-13 13:15:44 +03:00
Aliaksandr Valialkin
90b4a6dd12
lib/promscrape: extract common auth code to lib/promauth
2020-04-13 12:59:10 +03:00
hagen1778
2eed6c393f
vmalert: prepare package for external usage
...
* update README according to changes
* add Makefile with basic commands
2020-04-12 15:32:42 +03:00
kreedom
948f8b6b5f
[vmalert] fix linter issues
2020-04-12 15:08:11 +03:00
kreedom
8fca5f2819
[vmalert] add tests to webserver ( #413 )
2020-04-12 14:51:03 +03:00
Roman Khavronenko
7c9405f53d
Vmalert metrics ( #412 )
...
vmalert: add basic list of metrics
2020-04-11 20:42:01 +01:00
Roman Khavronenko
9f8cc8ae1b
Extend web responses for alerts: ( #411 )
...
vmalert: Extend web responses for alerts
* populate apiAlert object with additional fields
* return all active alerts, not only firing
* sort list of API alerts for deterministic output
* add helper for available path list
2020-04-11 16:49:23 +01:00
kreedom
90de3086b3
[vmalert] add webserver ( #410 )
...
* [vmalert] add webserver
2020-04-11 12:40:24 +03:00
Aliaksandr Valialkin
830d5fb1e0
vendor: make vendor-update
2020-04-10 18:40:21 +03:00
Aliaksandr Valialkin
66d8086a5e
vendor: update github.com/klauspost/compress from v1.10.3 to v1.10.4
2020-04-10 18:39:19 +03:00
Aliaksandr Valialkin
a30c98c0bc
deployment/docker: update Go builder image from go1.14.1 to go1.14.2
2020-04-10 18:19:34 +03:00
Aliaksandr Valialkin
4de6c6bbf0
lib/storage: disable deduplication after dedup tests are complete
...
The rest of tests expect that the de-duplication is disabled.
2020-04-10 17:28:31 +03:00
Aliaksandr Valialkin
ded0c0d3c7
lib/storage: correctly handle -dedup.minScrapeInterval values smaller than 8ms
...
Such small values may be used for removing samples with duplicate timestamps.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/409 for details.
2020-04-10 16:36:41 +03:00
Aliaksandr Valialkin
7d73623c69
lib/{storage,mergeset}: make sure that requests and misses cache counters never go down
2020-04-10 14:45:01 +03:00
Aliaksandr Valialkin
e62afc7366
lib/protoparser: add -*TrimTimstamp command-line flags for Influx, Graphite, OpenTSDB and CSV data
...
These flags can be used for reducing disk space usage for timestamps data ingested over the given protocols
2020-04-10 12:44:39 +03:00
Aliaksandr Valialkin
0681b4c27a
lib/workingsetcache: accumulate stat counters on cache rotation
...
This should prevent from cache stats counters going down after cache rotation,
which may corrupt `cache hit ratio` graph on the official Grafan dasbhoards
when using the following query:
1 - (sum(rate(vm_cache_misses_total[5m])) by (type) / sum(rate(vm_cache_requests_total[5m])) by (type))
2020-04-10 11:51:40 +03:00
Aliaksandr Valialkin
f86947d55c
lib/memory: add more details to -memory.allowedPercent help message
2020-04-09 15:28:53 +03:00
Aliaksandr Valialkin
f94a090020
docs: update minimum supported Go version from 1.12 to 1.13
2020-04-07 13:38:37 +03:00
Aliaksandr Valialkin
8064775c02
docs/CaseStudies.md: updated ARNES numbers
2020-04-06 16:20:11 +03:00
Aliaksandr Valialkin
520a704606
docs/CaseStudies.md: prettifying of the formatting
2020-04-06 15:24:37 +03:00
Aliaksandr Valialkin
105f0c78d9
docs/CaseStudies.md: add ARNES case study
2020-04-06 15:17:33 +03:00
Roman Khavronenko
b099d84271
Vmalert/rules eval ( #400 )
...
* Initial rules evaluation support.
Rules are now store alerts state in private field `alerts`. Every evaluation updates
the alerts and state. Every unique metric received from datastore represents a unique alert,
uniqueness is guaranteed by hashing ordered labelset.
* merge with master
* cleanup
* support endAt parameter as 3*evaluationInterval for active alerts
* make golint happy
2020-04-06 14:44:03 +03:00
Aliaksandr Valialkin
407bdbf2b9
docs/Single-server-VictoriaMetrics.md: cosmetic fixes in Importing CSV data chapter
2020-04-06 12:29:28 +03:00
Aliaksandr Valialkin
69962a7001
docs/FAQ.md: small fixes
2020-04-05 13:53:08 +03:00
Aliaksandr Valialkin
9f03548e55
docs/FAQ.md: add more articles about VictoriaMetrics performance
2020-04-05 13:48:03 +03:00
Aliaksandr Valialkin
022310f35b
docs/Articles.md: added a link to https://www.iunera.com/kraken/fabric/time-series-database/
2020-04-04 16:40:00 +03:00
Aliaksandr Valialkin
895cadfae7
app/vmagent/remotewrite: add "X-Prometheus-Remote-Write-Version: 0.1.0" http header to remote_write request
...
This header is required by Cortex (and, probably, other remote storage systems).
See 9c1f44d090/docs/apis.md (remote-api) .
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/399
2020-04-04 16:24:56 +03:00
Aliaksandr Valialkin
57704aa584
app/victoria-metrics: add -selfScrapeInstance and -selfScrapeJob flags for tuning labels for self-scraped metrics
2020-04-04 14:57:22 +03:00
Aliaksandr Valialkin
f9b24d4899
app/vmselect/promql: keep metric name after applying first_over_time and last_over_time functions
2020-04-04 14:54:13 +03:00
Aliaksandr Valialkin
fa0554b771
docs/Articles.md: move Percona article to third-party
2020-04-02 15:43:02 +03:00
Aliaksandr Valialkin
35b133bff4
docs/Articles.md: add a link to https://blog.cloudera.com/benchmarking-time-series-workloads-on-apache-kudu-using-tsbs/
2020-04-02 15:41:09 +03:00
Aliaksandr Valialkin
a884803377
docs/CaseStudies.md: add Adsterra case
2020-04-02 00:49:16 +03:00
Aliaksandr Valialkin
b38d048dd9
app/vmstorage: add vm_free_disk_space_bytes metric for monitoring the remaining disk space at -storageDataPath
2020-04-01 23:08:58 +03:00
Aliaksandr Valialkin
de2cd4231b
docs/Single-server-VictoriaMetrics.md: re-organize chapters
2020-04-01 22:38:56 +03:00
kreedom
298eb0a0f8
[vmalert] improve external url handling
2020-04-01 22:29:11 +03:00
kreedom
12fe915b48
[vmalert] add prometheus template function ( #396 )
...
* [vmalert] add prometheus template function
* make linter be happy
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-04-01 18:17:53 +03:00
Aliaksandr Valialkin
cdf0a4cf8f
lib/httpserver: remove unnecessary http.HandlerFunc wrapper in gzipHandler
2020-04-01 18:14:17 +03:00
Aliaksandr Valialkin
1c9c57db1c
docs/Cluster-VictoriaMetrics.md: small fixes and updates
2020-04-01 18:10:12 +03:00
Aliaksandr Valialkin
8edc72201d
docs/Single-server-VictoriaMetrics.md: small fixes and updates
2020-04-01 18:09:07 +03:00
Aliaksandr Valialkin
b024ecd10c
docs/Cluster-VictoriaMetrics.md: swap production build and development build chapters
2020-04-01 17:49:51 +03:00
Aliaksandr Valialkin
e0d0348f36
lib/storage: add missing reset for tagFilter.matchesEmptyValue on tagFilter.Init
2020-04-01 17:42:44 +03:00
Aliaksandr Valialkin
3e55c7e069
lib/promscrape: reduce timestamp jitter when scraping targets
...
This should improve compression for timestamps
2020-04-01 16:11:35 +03:00
Aliaksandr Valialkin
c4acd20d2a
lib/storage: remove duplicate data points on 7/8*minScrapeInterval interval instead of 1/2*minScrapeInterval
...
This should reduce storage usage and should improve deduplication accuracy
2020-04-01 15:48:48 +03:00
Aliaksandr Valialkin
8661dc4624
docs/Single-server-VictoriaMetrics.md: mention that environment vars may be prefixed with -envflag.prefix
2020-03-31 22:37:44 +03:00
Aliaksandr Valialkin
16572c8722
README.md: mention that response cache must be reset after import historical data
2020-03-31 19:33:20 +03:00
Aliaksandr Valialkin
b699c46046
lib/storage: handle errors returned from TagFilters.Add when cloning TagFilters with negative filter
2020-03-31 16:18:02 +03:00
Aliaksandr Valialkin
e71519b8b2
app/victoria-metrics/testdata: add a test for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/395
2020-03-31 12:51:25 +03:00
Aliaksandr Valialkin
972713bd79
lib/storage: add fast path for the previous indexdb search if it doesn't contain per-day inverted index yet
2020-03-31 12:51:21 +03:00
Aliaksandr Valialkin
5d99ca6cfc
lib/storage: optimize per-day inverted index search for tag filters matching big number of time series
...
- Sort tag filters in the ascending number of matching time series
in order to apply the most specific filters first.
- Fall back to metricName search for filters matching big number of time series
(usually this are negative filters or regexp filters).
2020-03-31 00:48:35 +03:00
Aliaksandr Valialkin
318326c309
lib/storage: properly handle {label=~"foo|"} filters as Prometheus does
...
Such filters must match all the time series with `label="foo"` plus all the time series without `label`
Previously only time series with `label="foo"` were matched.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/395
2020-03-31 00:48:18 +03:00
Aliaksandr Valialkin
a1e4c6a2be
.github/workflows/wiki.yml: fix copying files from docs to wiki
2020-03-30 15:59:12 +03:00
Aliaksandr Valialkin
ac3ee44fa7
docs/robots.txt: trigger github actions
2020-03-30 15:54:39 +03:00
Aliaksandr Valialkin
b98ca56d94
lib/envflag: add -envflag.prefix for setting optional prefix for environment vars
2020-03-30 15:51:19 +03:00
Aliaksandr Valialkin
b41ee5f27d
vendor: make vendor-update
2020-03-30 15:06:35 +03:00
Aliaksandr Valialkin
8d35af6fdb
.github/workflows: copy all the files from docs folder to wiki and github pages
2020-03-30 15:05:37 +03:00
Aliaksandr Valialkin
0f2dd77a76
go.mod: update the minimum required Go version from go1.12 to go1.13
2020-03-30 14:56:57 +03:00
Aliaksandr Valialkin
0c485f14d1
app/vmselect/prometheus: allow passing relative time to start, end and time args of /api/v1/* queries
2020-03-29 21:57:14 +03:00
Aliaksandr Valialkin
2ebf7d86ff
app/vmselect/prometheus: code simplification: (d.Seconds()/1e3) -> d.Milliseconds()
2020-03-29 21:50:28 +03:00
kreedom
bf6c24d0f4
[vmalert] config parser ( #393 )
...
* [vmalert] config parser
* make linter be happy
* fix test
* fix sprintf add test for rule validation
2020-03-29 01:48:30 +02:00
Aliaksandr Valialkin
1f7292675a
docs: add robots.txt
2020-03-28 23:22:46 +02:00
Aliaksandr Valialkin
bd156cd088
docs/vmagent.md: add prometheus remote_write proxy use case
2020-03-28 23:16:38 +02:00
Aliaksandr Valialkin
b695087119
docs/CaseStudies.md: add Brandwatch case study
2020-03-28 20:57:54 +02:00
Aliaksandr Valialkin
80f53e5396
deployment/docker: run docker apps under default user (0, root) in order to preserve backwards compatibility
...
If docker app is upgraded from root to non-root, then the data pointed by `-storageDataPath` or similar flags
becomes denied to non-root user after the upgrade. This breaks upgrade path. So revert back to default root user
for docker apps.
Users may explicitly execute `docker run --user <non_root_user>` for running docker apps under non-root user.
2020-03-28 19:23:26 +02:00
Roman Khavronenko
7acb797595
Update dashboard according to new Grafana version. ( #390 )
...
The way how regex for column style in Table panel should be applied has changed in 6.7 Grafana version. The change supposed to fix Flags panel column styles accordingly.
2020-03-28 01:24:39 +02:00
Roman Khavronenko
3a8bbfd6b9
bump Prometheus and Grafana images ( #389 )
2020-03-28 01:15:07 +02:00
Dmitry Naumov
27373807c1
Rootless docker images by default ( #358 )
...
* Rootless docker images by default
* Migrate to rootless base image
Co-authored-by: Aliaksandr Valialkin <valyala@gmail.com >
2020-03-27 21:23:50 +02:00
Aliaksandr Valialkin
8d7f0aa632
vendor: make vendor-update
2020-03-27 21:23:30 +02:00
Aliaksandr Valialkin
149f365f74
lib/httpserver: add -http.maxGracefulShutdownDuration command-line flag for tuning the maximum duration required for graceful shutdown of http server
2020-03-27 21:23:30 +02:00
kreedom
b22da547a2
[vmalert] - parse template annotaions ( #387 )
...
* [vmalert] - parse template annotations
2020-03-27 18:31:16 +02:00
Aliaksandr Valialkin
047849e855
lib/uint64set: remove zero buckets after Set.Intersect
2020-03-27 01:15:58 +02:00
Aliaksandr Valialkin
f3ec424e7d
lib/uint64set: small code cleanup and perf tuning
...
* Remember the last accessed bucket on Has() call.
* Inline fast paths inside Add() and Has() calls.
* Remove fragile code with maxUnsortedBuckets inside bucket32.
2020-03-25 15:30:25 +02:00
Aliaksandr Valialkin
ef8aee8a2d
deployment/docker: update Go builder from Go1.14.0 to Go1.14.1
2020-03-24 22:35:26 +02:00
Aliaksandr Valialkin
dde4a97534
lib/uint64set: go fmt
2020-03-24 22:28:43 +02:00
Aliaksandr Valialkin
f3e0c55ea1
lib/storage: serialize snapshot creation process with mutex
...
This guarantees that the snapshot contains all the recently added data
from inmemory buffers when multiple concurrent calls to Storage.CreateSnapshot are performed.
2020-03-24 22:27:05 +02:00
Aliaksandr Valialkin
97fb0edd07
lib/uint64set: added more tests
2020-03-24 22:27:04 +02:00
Aliaksandr Valialkin
25f585ecf2
docs/CaseStudies.md: added a case study from MHI Vestas Offshore Wind
2020-03-14 13:22:12 +02:00
Aliaksandr Valialkin
df91d2d91f
lib/storage: remove obsolete code
2020-03-13 22:48:17 +02:00
Aliaksandr Valialkin
3c7c71a49c
app/vmselect: adjust label_map() handling for corner cases
...
The following corner cases now supported:
* label_map(q, "label", "", "foo") - adds `label="foo"` to series with missing `label`
* label_map(q, "label", "foo", "") - removes `label="foo"` from series
All the unmatched labels are kept unchanged.
2020-03-13 18:45:03 +02:00
Aliaksandr Valialkin
69f1470692
vendor: update github.com/VictoriaMetrics/metrics from v1.11.0 to v1.11.2
...
This fixes data race in Histogram
2020-03-13 12:39:57 +02:00
Aliaksandr Valialkin
4fc4912f0c
app/vmalert/datasource: typo fix in docs: Labels -> Label
2020-03-13 12:22:33 +02:00
kreedom
a746cb62b6
vmalert add vm datasource, change alertmanager ( #364 )
...
* vmalert add vm datasource, change alertmanager
* make linter be happy
* make linter be happy.2
* PR comments
* PR comments.1
2020-03-13 12:19:31 +02:00
Aliaksandr Valialkin
499594f421
lib/promscrape: allow overriding external_labels as Prometheus does
...
Prometheus docs at https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config say:
> In communication with external systems, they are always applied only
> when a time series does not have a given label yet and are ignored otherwise.
Though this may result in consistency chaos when scrape targets override `external_labels`,
let's stick with Prometheus behavior for the sake of backwards compatibility.
There is last resort in vmagent with `-remoteWrite.label`, which consistently
sets the configured labels to all the metrics before sending them to remote storage.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/366
2020-03-12 20:24:42 +02:00
Aliaksandr Valialkin
fdc2a9d1d7
app/vmselect: add label_map(q, label, srcValue1, dstValue1, ... srcValueN, dstValueN) function to MetricsQL
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/369
2020-03-12 19:13:47 +02:00
Aliaksandr Valialkin
92d67e2592
vendor: update google.golang.org/genproto from fc8f55426688 to da6875a35672
2020-03-12 18:11:33 +02:00
Aliaksandr Valialkin
8a853778d7
vendor: update golang.org/x/tools from 26f6a1b6802d to 5e2df02acb1e
2020-03-12 18:07:52 +02:00
Aliaksandr Valialkin
8d75a5dbd0
vendor: update github.com/aws/aws-sdk-go from v1.29.10 to v1.29.22
2020-03-12 17:54:58 +02:00
Aliaksandr Valialkin
cdd6171af1
vendor: update google.golang.org/api from v0.19.0 to v0.20.0
2020-03-12 17:51:49 +02:00
Aliaksandr Valialkin
cc183bc899
vendor: update golang.org/x/sys from d5e6a3e2c0ae to 5c8b2ff67527
2020-03-12 17:46:24 +02:00
Aliaksandr Valialkin
3935038e20
vendor: update github.com/klauspost/compress from v1.10.1 to v1.10.3
2020-03-12 17:32:24 +02:00
Aliaksandr Valialkin
c8dc1cd218
lib/protoparser/csvimport: add missing metric vm_rows_invalid_total{type="csvimport"}
2020-03-12 15:27:45 +02:00
Aliaksandr Valialkin
c1551a3269
README.md: mention about alternative dashboard for cluster version - https://grafana.com/grafana/dashboards/11831
2020-03-12 15:10:14 +02:00
Aliaksandr Valialkin
8023ad7dbd
app/vmselect: add -search.maxStalenessInterval for tuning Prometheus data model closer to Influx-style data model
2020-03-11 16:43:34 +02:00
Aliaksandr Valialkin
d4beb17ebe
lib/promscrape: remove possible races when registering and de-registering scrape workers for /targets page
2020-03-11 16:30:21 +02:00
Aliaksandr Valialkin
fcd91795d5
app/vmagent: mention that vmagent can filter data
2020-03-11 16:22:39 +02:00
Aliaksandr Valialkin
650830db79
docs/Articles.md: add a link to https://stas.starikevich.com/posts/disk-usage-for-vm-versus-prometheus/
2020-03-11 04:56:16 +02:00
Aliaksandr Valialkin
cdf70b7944
lib/promscrape: consistently update /targets page after SIGHUP
2020-03-11 03:20:03 +02:00
Aliaksandr Valialkin
301c2acd61
app/vmstorage: return 500 status code instead of 200 status code on internal errors inside /snapshot/* handlers
2020-03-10 23:51:55 +02:00
Aliaksandr Valialkin
61d0ee857c
docs/vmagent.md: sync with app/vmagent/README.md
2020-03-10 21:54:04 +02:00
Aliaksandr Valialkin
e17702fada
app/vmselect: add optional max_rows_per_line query arg to /api/v1/export
...
This arg allows limiting the number of data points that may be exported on a single line.
2020-03-10 21:45:56 +02:00
Aliaksandr Valialkin
1fe66fb3cc
app/{vmagent,vminsert}: add support for importing csv data via /api/v1/import/csv
2020-03-10 21:15:35 +02:00
Aliaksandr Valialkin
49d7cb1a3f
all: fix golangci-lint issues
2020-03-10 19:41:46 +02:00
Aliaksandr Valialkin
8d3869cd99
docs/FAQ.md: actualize answer about deduplication
2020-03-09 13:37:12 +02:00
Aliaksandr Valialkin
9d89b08cb5
docs: add missing vmagent.png, which is used in vmagent.md
2020-03-09 13:35:49 +02:00
Aliaksandr Valialkin
5fe38a84eb
app/vmagent: properly apply -remoteWrite.sendTimeout to fasthttp.HostClient
2020-03-09 13:31:55 +02:00
Aliaksandr Valialkin
7c432da788
lib/promscrape: do not retry idempotent requests when scraping targets
...
This should prevent from the following unexpected side-effects of idempotent request retries:
- increased actual timeout when scraping the target comparing to the configured scrape_timeout
- increased load on the target
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/357
2020-03-09 13:31:52 +02:00
Aliaksandr Valialkin
986dba5ab3
app/vmagent: do not allow non-supported fields in -remoteWrite.relabelConfig and file_sd_configs
...
This should reduce possible confusion like in the https://github.com/VictoriaMetrics/VictoriaMetrics/issues/363
2020-03-06 20:19:13 +02:00
Aliaksandr Valialkin
c386c5de57
app/vmagent: properly add labels set via -remoteWrite.label to metrics before sending them to -remoteWrite.url
2020-03-06 19:26:58 +02:00
Artem Navoiev
58a3e59d59
bump version of codecov-action to v1.0.6
2020-03-05 23:25:13 +02:00
Aliaksandr Valialkin
c5f894b361
Makefile: add build and test rules with enabled race detector. These rules have -race suffix
...
Fix also `unsafe pointer conversion` errors detected by Go1.14. See https://golang.org/doc/go1.14#compiler .
2020-03-05 12:03:38 +02:00
Aliaksandr Valialkin
9be64e34b4
docs/Articles.md: add a link to https://www.percona.com/blog/2020/02/28/better-prometheus-rate-function-with-victoriametrics/
2020-03-04 20:05:26 +02:00
Aliaksandr Valialkin
e51a0a56f4
README.md: add a link to https://github.com/VictoriaMetrics/VictoriaMetrics/wiki/Articles
2020-03-04 20:05:18 +02:00
Aliaksandr Valialkin
754db0d22e
app/vmagent/README.md: small fixes
2020-03-04 18:14:47 +02:00
Aliaksandr Valialkin
772312bf7b
app/vmagent/README.md: typo fix
2020-03-04 18:05:09 +02:00
Aliaksandr Valialkin
871abfab7a
app/vmagent/README.md: clarification
2020-03-04 18:03:48 +02:00
Aliaksandr Valialkin
007c591de8
app/vmagent/README.md: add iot and edge monitoring use case
2020-03-04 18:01:34 +02:00
Aliaksandr Valialkin
474a09c0f1
app/vmagent/README.md: add use cases section
2020-03-04 17:42:27 +02:00
Aliaksandr Valialkin
d58aa80e9b
README.md: add a link to Synthesio case study
2020-03-04 14:18:19 +02:00
Aliaksandr Valialkin
ad927575b7
docs/CaseStudies: add Synthesio
2020-03-04 14:14:39 +02:00
Aliaksandr Valialkin
0b1e877a7d
docs/Single-server-VictoriaMetrics.md: sync with README.md
2020-03-03 21:39:05 +02:00
Aliaksandr Valialkin
0ba8ee6022
README.md: mention -search.cacheTimestampOffset in Backfilling section
2020-03-03 21:38:39 +02:00
Aliaksandr Valialkin
9a944fd169
lib/promscrape: consistency renaming: stopCh -> globalStopCh
2020-03-03 20:08:08 +02:00
Aliaksandr Valialkin
032c88561b
app/vminsert/prompush: limit memory usage by pushing promscrape data in smaller blocks
2020-03-03 19:58:54 +02:00
Aliaksandr Valialkin
76036c1897
app/vmagent: add -remoteWrite.maxDiskUsagePerURL for limiting the maximum disk usage for each -remoteWrite.url buffer
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/352
2020-03-03 19:49:07 +02:00
Aliaksandr Valialkin
c31d640eb9
app/vmagent/remotewrite: do not reset empty relabelCtx
2020-03-03 15:01:03 +02:00
Aliaksandr Valialkin
02b55c72dc
app/vmagent: add -remoteWrite.urlRelabelConfig for applying individual relabeling for each -remoteWrite.url
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/320
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/308
2020-03-03 13:12:16 +02:00
Aliaksandr Valialkin
1d7ab78b55
lib/protoparser/prometheus: allow trailing comma in tags list
...
The trailing comma is generated by cloudwatch exporter.
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/350
2020-03-02 22:22:09 +02:00
Aliaksandr Valialkin
7d178a40bd
app/vmselect/prometheus: do not add __name__!= filter when searching for all the matching metric names via /api/v1/label/__name__/values with non-empty label filter
...
This should reduce query time.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/343
2020-02-28 23:35:55 +02:00
Aliaksandr Valialkin
43754ff420
README.md: put https://gitlab.com/optima_public/prometheus_oauth_proxy in third-party contributions section
2020-02-28 21:23:34 +02:00
Aliaksandr Valialkin
b785429ddb
lib/protoparser: metrics renaming: vm_protoparser_<type>_* -> vm_protoparser_*{type="<type>"}
...
This should improve composability of these metrics in PromQL queries
2020-02-28 20:20:10 +02:00
Aliaksandr Valialkin
f9a584b5c1
app/vmagent/remotewrite: yet another typo fix
2020-02-28 20:05:55 +02:00
Aliaksandr Valialkin
e22fdc1073
lib/persistentqueue: reset chunk file when the persistent queue is empty
2020-02-28 20:05:53 +02:00
Aliaksandr Valialkin
b9b46cb8dc
app/vmagent/remotewrite: typo fix
2020-02-28 19:03:16 +02:00
Aliaksandr Valialkin
db6f4e4af1
app/vmagent/remotewrite: limit memory usage when big scrape blocks are pushed to remote storage
2020-02-28 18:58:01 +02:00
Aliaksandr Valialkin
8cc88db38d
docs/Single-server-VictoriaMetrics.md: sync with README.md
2020-02-28 12:58:32 +02:00
Aliaksandr Valialkin
f3c28d2ae4
README.md: typo fix
2020-02-28 12:58:31 +02:00
Aliaksandr Valialkin
57528ca31c
docs: add a doc for vmagent
2020-02-28 12:23:56 +02:00
Aliaksandr Valialkin
5701b2f7bb
app/vmselect/prometheus: properly pass filter for labelName=__name__ in labelValuesWithMatches
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/343
2020-02-28 12:18:14 +02:00
Aliaksandr Valialkin
18af31a4c2
all: properly split vm_deduplicated_samples_total among cluster components
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/345
2020-02-27 23:48:07 +02:00
Aliaksandr Valialkin
6819db5686
lib/envflag: typo fix in docs to -envflag.enable: envoronment->environment
2020-02-27 21:47:58 +02:00
Aliaksandr Valialkin
63a88a619b
deployment/docker: update Go builder from Go1.13.8 to Go1.14.0
2020-02-26 22:15:44 +02:00
Aliaksandr Valialkin
c458b521a2
app/vmagent: allow setting -httpListenAddr to empty string in order to disable listening for http requests
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/340
2020-02-26 20:58:11 +02:00
Aliaksandr Valialkin
b459919250
make vendor-update
2020-02-26 20:45:27 +02:00
Aliaksandr Valialkin
cc5fe0b315
vendor: update github.com/VictoriaMetrics/metrics from v1.10.1 to v1.11.0
2020-02-26 20:41:02 +02:00
Aliaksandr Valialkin
117c76311c
app/vmagent/README.md: list service discovery mechanisms, which will be added soon
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/334
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/330
2020-02-26 19:27:08 +02:00
Aliaksandr Valialkin
b63e4464f4
lib/promscrape: properly reload new configs on SIGHUP
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/335
2020-02-26 13:54:00 +02:00
Edouard Hur
3ad36134f6
Readme markdown linting ( #338 )
...
* fixed MD009/no-trailing-spaces
* fixed MD033/no-inline-html: Inline HTML
* fixed MD012/no-multiple-blanks
* fixed MD007/ul-indent
* fixed MD004/ul-style
* fixed MD031/blanks-around-fences
* fixed MD040/fenced-code-language
* fixed MD032/blanks-around-lists
* fixed MD026/no-trailing-punctuation
2020-02-26 13:21:19 +02:00
Edouard Hur
1f0007d0b1
Readme envvars ( #332 )
...
* add details about env vars config
* add env var to table of contents
* remove unnecessary words
2020-02-25 22:41:34 +02:00
Aliaksandr Valialkin
6739c2749d
lib/promscrape: go fmt
2020-02-25 20:56:44 +02:00
Aliaksandr Valialkin
7a33da8fea
lib/promscrape: do not add missing port to __address__ label in order to be consistent with Prometheus behavior
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/331
2020-02-25 20:49:50 +02:00
Aliaksandr Valialkin
be37d762cd
app/vmagent: add -remoteWrite.maxBlockSize command-line flag for limiting the maximum size of unpacked block to send to remote storage
2020-02-25 19:57:47 +02:00
Aliaksandr Valialkin
4e24839a2c
app/vmagent: do not allow sending unpacked requests with sizes exceeding -maxInsertRequestSize
2020-02-25 19:34:41 +02:00
Aliaksandr Valialkin
6386aeb1e0
app/vmagent: add ability to accept Influx line protocol data via TCP and UDP
...
Just set `-influxListenAddr` command-line flag
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/333
2020-02-25 19:12:49 +02:00
Aliaksandr Valialkin
e453880084
app/vmagent/README.md: mention that vmagent exposes target statuses at /targets page
2020-02-25 18:15:58 +02:00
Aliaksandr Valialkin
4c4448b66e
app/vminsert: add /targets handler, which exposes Prometheus targets defined in -promscrape.config file
2020-02-25 18:13:11 +02:00
Aliaksandr Valialkin
7ef7c9368e
lib/fs: typo fix: read blocks bigger than 8KB via pread() call instead of using mmap
2020-02-25 18:05:06 +02:00
Aliaksandr Valialkin
e1ef72af01
app/vmagent: logo fix
2020-02-25 00:09:19 +02:00
Aliaksandr Valialkin
56c70fe856
app/vmagent: update docs
2020-02-25 00:09:18 +02:00
Aliaksandr Valialkin
e7e4aa5243
app/vmagent/README.md: small fixes
2020-02-24 21:25:38 +02:00
Aliaksandr Valialkin
fed2959658
lib/envflag: substitute dots with underscores in env var names if -envflag.enable is set
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/311
2020-02-24 21:14:44 +02:00
Aliaksandr Valialkin
ae51300973
app/vmselect/promql: properly take into account the first datapoint when calculating rollup_candlestick
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/309
2020-02-24 13:24:30 +02:00
Aliaksandr Valialkin
e65ec88779
app/vmselect/promql: do not take into account values outside the current window in rollup_candlestick
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/309
2020-02-23 18:03:57 +02:00
Yaroslav
a6d0645539
fix rollupOpen(), rollupHigh(), rollupLow() functions ( #328 )
2020-02-23 18:01:53 +02:00
Aliaksandr Valialkin
04762344c6
app/vmagent: initial implementation for vmagent
2020-02-23 13:36:03 +02:00
Aliaksandr Valialkin
4e905d6501
vendor: update github.com/valyala/fastjson from v1.4.5 to v1.5.0
2020-02-23 10:06:00 +02:00
kreedom
49390b8dbc
[vmalert] integration with AlertManager ( #325 )
2020-02-21 23:15:05 +02:00
Aliaksandr Valialkin
2f55cabaa4
app/vmselect/promql: log when rollupResult cache is cleared
2020-02-21 20:07:01 +02:00
Aliaksandr Valialkin
d21cb43e48
lib/storage: add vm_ prefix to deduplicated_samples_total metric to be conistent with other metrics
2020-02-21 19:33:59 +02:00
Aliaksandr Valialkin
ec9bf39b5b
app/vmselect: add -search.cacheTimestampOffset command-line flag
...
This flag can be used for removing gaps on graphs if the difference between the current time
and the timestamps from the ingested data exceeds 5 minutes.
This is the case when the time between data sources and VictoriaMetrics is improperly synchronized.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/312
2020-02-21 13:58:06 +02:00
Aliaksandr Valialkin
539139391c
app/vmselect: add /internl/resetRollupResultCache handler for resetting response cache
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/312
2020-02-21 13:58:05 +02:00
Aliaksandr Valialkin
5431f9cd4e
deployment/docker: update Go builder from v1.13.7 to v1.13.8
2020-02-20 19:46:20 +02:00
kreedom
3c06179184
basic vmalert backbone ( #317 )
...
* basic vmalert backbone
* Resolve code review comments for vmalert backbone
* Second review fixes for vmalert backbone
2020-02-16 20:59:02 +02:00
Aliaksandr Valialkin
71a52f5f90
lib/protoparser/prometheus: skip leading whitespace from tag names
2020-02-16 19:06:33 +02:00
Aliaksandr Valialkin
e7ba18b0d9
vendor: make vendor-udpate
2020-02-16 16:11:24 +02:00
Aliaksandr Valialkin
ce15cecae4
lib/storage: typo fix
2020-02-16 15:53:44 +02:00
Aliaksandr Valialkin
32e153e834
lib/storage: prevent from clobbering nin-nil lastError in Storage.add
2020-02-16 15:51:26 +02:00
Aliaksandr Valialkin
7b1c7051a3
app/vmselect: add sort_by_label(q, label) and sort_by_label_desc(q, label) functions
...
This is implementation of https://github.com/prometheus/prometheus/pull/1533 for VictoriaMetrics.
2020-02-13 17:01:37 +02:00
Aliaksandr Valialkin
7836ad8907
lib/mergeset: skip createing temporary part objects when merging source inmemory parts
...
This should reduce CPU usage when adding new entries to inverted index.
This should alos prevent from creating stalled cleaner goroutines for the created temporary parts,
since they were never closed.
This should fix the following issue: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/316 .
2020-02-13 14:09:32 +02:00
Aliaksandr Valialkin
eceaf13e5e
lib/{storage,mergeset}: use time.Ticker instead of time.Timer where appropriate
...
It has been appeared that time.Timer was used in places where time.Ticker must be used instead.
This could result in blocked goroutines as in the https://github.com/VictoriaMetrics/VictoriaMetrics/issues/316 .
2020-02-13 13:10:07 +02:00
Aliaksandr Valialkin
8162d58dbd
make vendor-update
2020-02-10 23:28:15 +02:00
Aliaksandr Valialkin
848d5da0be
vendor: update github.com/VictoriaMetrics/metrics from v1.9.3 to v1.10.1
2020-02-10 23:08:38 +02:00
Aliaksandr Valialkin
4cc0163c7c
docs: migrate ExtendedPromQL->MetricsQL in order to be more consistent
2020-02-10 23:02:43 +02:00
Aliaksandr Valialkin
a801a1a6e7
.github/ISSUE_TEMPLATE: ask for command-line flags and Prometheus logs
2020-02-10 22:56:17 +02:00
Aliaksandr Valialkin
02e852854a
README.md: refer to the article about data deletion via relabeling
2020-02-10 22:46:52 +02:00
Aliaksandr Valialkin
9e6e2319b9
README.md: mention that flags may be read from env vars if -envflag.enable command-line flag is set
2020-02-10 16:20:15 +02:00
Aliaksandr Valialkin
025297f15d
lib/envflag: check for incorrect flag values read from environment vars
2020-02-10 16:08:10 +02:00
Aliaksandr Valialkin
5d207b2025
lib/envflag: add -envflag.enable command-line flag for enabling reading flags from environment vars
...
By default flags are read only from command line. They can be read from environment vars if `-envflag.enable` is set.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/311
2020-02-10 16:02:37 +02:00
Aliaksandr Valialkin
8466ab0034
all: allow setting flags via environment vars
...
Now flags can be set via environment vars with the same names as flags.
Command-line flags override flags set via env vars.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/311
2020-02-10 13:29:13 +02:00
Aliaksandr Valialkin
e210cd9da1
lib/storage: move -dedup.minScrapeInterval flag outside lib/storage, so it doesnt show up in vminsert in cluster version
2020-02-10 13:09:51 +02:00
Aliaksandr Valialkin
6db573470c
docs/Single-server-VictoriaMetrics.md: sync with README.md
2020-02-07 00:02:34 +02:00
Ryota Arai
fffe5d4ba4
Fix a typo in README (selfScrapeInterval) ( #310 )
2020-02-06 13:14:31 +02:00
Aliaksandr Valialkin
a6c6a2debc
app/vmselect/promql: do not add step to range end, since this hack became obsolete since commit 9e1119dab8
2020-02-05 21:22:19 +02:00
Aliaksandr Valialkin
78b62dee87
app/vmselect/promql: properly adjust time range for data to select
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/309
2020-02-05 21:22:18 +02:00
Aliaksandr Valialkin
366693b9f1
app/vmselect: unconditionally offset -step to rollup_candlestick. This makes results more consistent
2020-02-04 23:32:12 +02:00
Aliaksandr Valialkin
525101339e
app/vmselect/promql: automatically apply offset -step to rollup_candlestick function in order to obtain the expected OHLC results
...
See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/309
2020-02-04 23:24:35 +02:00
Aliaksandr Valialkin
ada6a3da8d
app/vmselect/promql: adjust rollup_candlestick calculations to the exepcted results
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/309
2020-02-04 22:42:13 +02:00
Aliaksandr Valialkin
40c6ae2952
lib/logger: initialize output to os.Stderr by default
2020-02-04 22:40:44 +02:00
Aliaksandr Valialkin
cff0cb297c
Do not require checking for errors returned from fmt.Fprint
...
This fixes `make errcheck` error found in lib/logger
2020-02-04 22:03:37 +02:00
Aliaksandr Valialkin
e0a4c37fc1
lib/logger: add -loggerOutput command-line flag
...
This flag allows changing log output from `stderr` to `stdout` if `-loggerOutput=stdout` is set.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/306
2020-02-04 21:47:56 +02:00
Aliaksandr Valialkin
7f3e3a6034
lib/logger: do not clutter -loggerFormat=json output with stack trace
...
This should improve json parsing
2020-02-04 21:37:25 +02:00
Aliaksandr Valialkin
bd4698bb7a
lib/storage: do not deduplicate blocks with less than 32 samples during merge
...
This should improve deduplication accuracy for blocks with higher number of samples.
2020-02-04 18:41:54 +02:00
Aliaksandr Valialkin
36a1ac8360
app/vmselect: take into account the time the requests wait in the queue if -search.maxConcurrentRequests is exceeded
...
This will prevent from excess CPU usage for timed out queries.
2020-02-04 16:15:08 +02:00
Aliaksandr Valialkin
834051e5b2
app/vmselect: add a placeholder for /api/v1/metadata, which could be requested by Grafana
...
See https://prometheus.io/docs/prometheus/latest/querying/api/#querying-metric-metadata
VictoriaMetrics doesn't collect any metadata for metrics, so just return empty response.
2020-02-04 15:53:47 +02:00
Aliaksandr Valialkin
42864bb52f
all: do not clash flag description with back-quoted flag types
...
See https://golang.org/pkg/flag/#PrintDefaults for more details.
2020-02-04 15:46:52 +02:00
Roman Khavronenko
1e023c6a72
Single dashboard ( #300 )
...
* improve description for `Pending datapoints` panel
* bump VM version requirement
2020-02-03 02:09:53 +02:00
Artem Navoiev
a47f292295
[vmalert] add vmalert.png.2
2020-02-02 12:17:19 +02:00
Artem Navoiev
354232b62b
[vmalert] add vmalert.png
2020-02-02 12:16:05 +02:00
Artem Navoiev
28778be0cc
[vmalert] initial
2020-02-02 12:14:09 +02:00
Aliaksandr Valialkin
90cf356ea1
app/vmselect/promql: adjust and and unless binary operator handling to be consistent with Prometheus
2020-01-31 18:52:38 +02:00
Aliaksandr Valialkin
c0b69ed06e
deployment/docker: update Go builder from v1.13.6 to v1.13.7
2020-01-31 18:06:58 +02:00
Aliaksandr Valialkin
011a79da85
lib/fs: remove unused readerAt interface
2020-01-31 15:12:43 +02:00
Aliaksandr Valialkin
c3d86eef96
all: add -dedup.minScrapeInterval command-line flag for data de-duplication
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/86
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/278
2020-01-31 01:16:57 +02:00
Aliaksandr Valialkin
2152f6f0cd
lib/storage: re-use indexSearch inside Storage.prefetchMetricNames
2020-01-31 01:16:53 +02:00
Aliaksandr Valialkin
d70ba7eb37
lib/fs: optimize small reads for ReaderAt.MustReadAt by reading from memory-mapped space instead of reading from file descriptor
...
This should improve performance when reading many small blocks.
2020-01-30 15:09:05 +02:00
Aliaksandr Valialkin
ad8af629bb
all: rename ReadAt* to MustReadAt* in order to dont clash with io.ReaderAt
2020-01-30 15:08:58 +02:00
Aliaksandr Valialkin
d68546aa4a
lib/storage: pre-fetch metricNames for the found metricIDs in Search.Init
...
This should speed up Search.NextMetricBlock loop for big number of found time series.
2020-01-30 15:08:51 +02:00
Aliaksandr Valialkin
5bb9ccb6bf
lib/mergeset: properly update lastAccesstime in indexBlockCache entries
...
This is a follow-up for 6665f10e7b
2020-01-29 21:20:47 +02:00
Aliaksandr Valialkin
a462355b2f
app/vmselect/promql: add keep_next_value(q) for filling gaps with the next non-empty value
2020-01-29 00:48:04 +02:00
Aliaksandr Valialkin
bdbb463756
docs/Single-server-VictoriaMetrics.md: fix heading size for Third-party contributions section
2020-01-28 23:13:35 +02:00
Aliaksandr Valialkin
371e86194d
app/vminsert: moved -maxInsertRequestSize command-line flag out of lib/prompb in order to prevent its inclusion in vmselect and vmstorage apps
2020-01-28 23:02:08 +02:00
Aliaksandr Valialkin
adbbc4fa1a
app/vmselect/promql: return expected results from increase() over the beginning of time series, which start from big value
...
Examples for such counters: OS-level counters for network or cpu stats.
2020-01-28 16:30:11 +02:00
Aliaksandr Valialkin
75ad47a43c
app/victoria-metrics: check for error arg passed to filepath.Walk callback
2020-01-27 20:56:45 +02:00
Aliaksandr Valialkin
6320a19a8c
app/victoria-metrics: remove integration build tag from tests
...
This simplifies testing with `go test ./app/victoria-metrics` without
the need to remember to pass `-tags=integration` to Go commands.
2020-01-27 20:25:28 +02:00
Aliaksandr Valialkin
7b26db5527
docs/Single-server-VictoriaMetrics.md: update Retention section
2020-01-27 18:44:21 +02:00
Alexander Danilov
1a3626bbe1
Add description for retention and how it works ( #297 )
2020-01-27 18:38:22 +02:00
Aliaksandr Valialkin
8074c10590
README.md: mention https://github.com/AnchorFree/tsdb-remote-write
2020-01-27 18:35:48 +02:00
Aliaksandr Valialkin
2392a359e1
app/vmselect/promql: fix panic on a single zero vmrange bucket in prometheus_buckets() function
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/296
2020-01-27 18:04:55 +02:00
Aliaksandr Valialkin
6caa9bb51b
lib/logger: fix improperly set skipframes for all the logging functions
...
The bug has been introduced in the previous commit f6baee6efe
2020-01-26 18:34:27 +02:00
Aliaksandr Valialkin
f6baee6efe
lib/httpserver: log the caller of httpserver.Errorf
...
Previously log message contained `httpserver.Errorf`, not it contains the caller of `httpserver.Errorf`, which is more useful.
2020-01-25 20:17:59 +02:00
Aliaksandr Valialkin
9df5b2d1c3
app/victoria-metrics: add -selfScrapeInterval flag for self-scraping /metrics page
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/30
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/180
2020-01-25 19:19:59 +02:00
Aliaksandr Valialkin
2a0a0ed14d
lib/protoparser: add parser for Prometheus exposition text format
...
This parser will be used by vmagent
2020-01-24 20:11:02 +02:00
Aliaksandr Valialkin
6456c93dbb
app/vminsert: move ingestion protocol parsers to lib/protoparser, so they could be re-used in the upcoming vmagent
2020-01-24 16:53:00 +02:00
Aliaksandr Valialkin
1efea246b7
docs/Articles.md: add a link to https://medium.com/@valyala/billy-how-victoriametrics-deals-with-more-than-500-billion-rows-e82ff8f725da
2020-01-22 19:08:35 +02:00
Aliaksandr Valialkin
680080887d
all: consistently log durations in seconds with millisecond precision
...
This should improve logs readability
2020-01-22 18:28:27 +02:00
Aliaksandr Valialkin
3992984e10
vendor: make vendor-update
2020-01-22 18:08:39 +02:00
Aliaksandr Valialkin
9773022e50
app/vmselect: mention the original query and time range in error messages
...
This should simplify debugging invalid or heavy queries.
2020-01-22 17:36:36 +02:00
Aliaksandr Valialkin
f8954c7250
vendor: update github.com/klauspost/compress from v1.9.7 to v1.9.8
...
New version should have better gzip compression. See https://github.com/klauspost/compress#changelog
2020-01-22 16:50:15 +02:00
Aliaksandr Valialkin
0ef6f91410
docs: Mention Slack and Telegram channels for user questions
2020-01-22 16:50:14 +02:00
Aliaksandr Valialkin
efc7ad88ec
app/vmselect: mention command-line flag, which could be used for adjusting query timeouts, in timeout errors
2020-01-22 15:50:48 +02:00
Aliaksandr Valialkin
ec9651e266
app/vmselect/prometheus: increase default value -maxExportDuration to 30 days, since 10 minutes beat users exporting bit amounts of data
2020-01-22 15:50:47 +02:00
Aliaksandr Valialkin
a8b2f82fc6
vendor: update github.com/VictoriaMetrics/fastcache from v1.5.5 to v1.5.7
2020-01-22 12:31:32 +02:00
Aliaksandr Valialkin
582dd01f42
app/vmselect/promql: add range_over_time(m[d]) function for calculating value range for m over d
2020-01-21 19:05:17 +02:00
Aliaksandr Valialkin
36973ee975
app/vmselect/promql: add label_match(q, label, regexp) and label_mismatch(q, label, regexp) functions for filtering out time series with labels matching the given regexp
2020-01-21 15:00:20 +02:00
Aliaksandr Valialkin
6665f10e7b
lib/{mergeset,storage}: properly update lastAccessTime in index and data block cache entries
2020-01-20 14:59:47 +02:00
Aliaksandr Valialkin
04363d6511
README.md: mention that delete API shouldnt be used on a regular basis due to non-zero overhead
2020-01-20 13:28:36 +02:00
Aliaksandr Valialkin
c97ade4487
docs/FAQ.md: typo fix according to comment from https://www.reddit.com/message/messages/lezkmo
2020-01-18 18:05:13 +02:00
Aliaksandr Valialkin
970f0dfbf2
docs/CaseStudies.md: add links to COLOPL talk about VictoriaMetrics
2020-01-18 17:23:33 +02:00
Aliaksandr Valialkin
227cf53ef9
app/vminsert: increase default value for -insert.maxQueueDuration from 30s to 60s
...
This should help catching up with high ingestion rate after VictoriaMetrics restart.
2020-01-18 14:39:36 +02:00
Aliaksandr Valialkin
257e61195a
lib/uint64set: add missing bucket32.b16his values
2020-01-18 14:26:04 +02:00
Aliaksandr Valialkin
4cc0c44b9e
lib/uint64set: optimize Set.Union
...
This should improve performance for queries over big number of time series
2020-01-18 13:47:03 +02:00
Aliaksandr Valialkin
1b5f02e293
lib/uint64set: add benchmarks for Set.Union
2020-01-18 13:47:02 +02:00
Aliaksandr Valialkin
3748fb24b6
lib/storage: skip recovering timestamps order for lossless compression (PrecisionBits=64)
2020-01-18 00:09:33 +02:00
Aliaksandr Valialkin
c9472e4f3a
all: use github.com/klauspost/compress/gzip instead of compress/gzip
...
`github.com/klauspost/compress/gzip` is more optimized than `compress/gzip`.
This gives better gzip compression and decompression speeds.
2020-01-17 23:58:46 +02:00
Aliaksandr Valialkin
bc0f897fcb
lib/uint64set: reduce memory allocations in Set.AppendTo
2020-01-17 22:33:09 +02:00
Aliaksandr Valialkin
f9289b804a
lib/storage: reduce memory allocations when merging metricID sets
2020-01-17 22:10:44 +02:00
Aliaksandr Valialkin
0c8ad08578
lib/uint64set: typo fix in Set.Intersect
2020-01-17 18:10:58 +02:00
Aliaksandr Valialkin
cdcacaea6d
app/vmselect/netstorage: make fmt
2020-01-17 17:47:21 +02:00
Aliaksandr Valialkin
7327adbc86
app/vmselect/netstorage: limit the maximum size for in-memory buffer for temporary blocks file
...
This should reduce memory usage on systems with more than 8GB RAM.
2020-01-17 16:28:21 +02:00
Aliaksandr Valialkin
9f027ec176
lib/uint64set: optimize Intersect, Subtract and Union functions
...
This should improve performance for queries over big number of time series.
2020-01-17 16:11:49 +02:00
Aliaksandr Valialkin
cd53f7d177
lib/uint64set: improve benchmark for Set.Intersect
2020-01-17 16:08:17 +02:00
Aliaksandr Valialkin
d0d258b314
app/vmselect: limit the default value for -search.maxConcurrentRequests, so it plays well on systems with more than 16 vCPUs
...
A single heavy request can saturate all the available CPUs, so let's limit the number of concurrent requests to lower value.
This will give more chances for executing insert path.
2020-01-17 15:43:54 +02:00
Aliaksandr Valialkin
d88725f133
app/{vminsert,vmselect}: improve error messages when VictoriaMetrics cannot handle too high number of concurrent inserts / selects
2020-01-17 13:24:37 +02:00
Aliaksandr Valialkin
8dbf430469
lib/uint64set: add benchmark for Set.Intersect
2020-01-17 00:31:07 +02:00
Aliaksandr Valialkin
9ef4d32a9a
make vendor-update
2020-01-16 14:14:19 +02:00
Aliaksandr Valialkin
0d7505b00e
all: mention command-line flags used for limiting the incoming request size in error messages
...
This should improve error logs usability.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/287
2020-01-16 13:03:30 +02:00
Aliaksandr Valialkin
2839f4688a
app/vmselect/promql: fix panic on sum(aggr_over_time(...)) with incorrect number of args
2020-01-15 16:26:09 +02:00
Aliaksandr Valialkin
605d588ba6
lib/uint64set: reduce memory usage in Union, Intersect and Subtract methods
...
Iterate items with newly added Set.ForEach method instead of allocating `[]uint64`
slice for all the items before the iteration.
2020-01-15 12:12:49 +02:00
Aliaksandr Valialkin
7483deccca
docs/FAQ.md: add bullet comparison with Cortex and Thanos
2020-01-15 10:47:40 +02:00
Aliaksandr Valialkin
893b62c682
lib/{mergeset,storage}: fix uint64 counters alignment for 32-bit architectures (GOARCH=386, GOARCH=arm)
2020-01-14 22:47:04 +02:00
Aliaksandr Valialkin
7830c10eb2
lib/{storage,mergeset}: gradually remove stale entries from block cache and index caches
...
This should reduce memory usage in the long run when old blocks and indexes
aren't accessed anymore.
2020-01-14 21:38:44 +02:00
Aliaksandr Valialkin
e4f1bfd221
deployment/docker: update Prometheus from v2.14.0 to v2.15.2 and Grafana from v6.5.0 to v6.5.2
2020-01-12 23:14:10 +02:00
Aliaksandr Valialkin
91ee1bce2e
README.md: add a link to VictoriaMetrics subreddit - https://www.reddit.com/r/VictoriaMetrics/
2020-01-12 00:06:20 +02:00
Aliaksandr Valialkin
8b14572f70
app/vmselect/promql: add hoeffding_bound_upper(phi, m[d]) and hoeffding_bound_lower(phi, m[d]) functions
...
These functions can be used for calculating Hoeffding bounds
for `m` over `d` time range and for the given `phi` in the range `[0..1]`.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/283
2020-01-11 14:46:23 +02:00
Aliaksandr Valialkin
8eaced8cae
app/vmselect/promql: return continuous values for min_over_time and max_over_time when step is smaller than scrape_interval
2020-01-11 12:47:50 +02:00
Aliaksandr Valialkin
1585dab5a3
deployment/docker: switch Go builder from v1.13.5 to v1.13.6
2020-01-11 11:06:00 +02:00
Aliaksandr Valialkin
cd66d3fc43
README.md: mention about Prometheus->VictoriaMetrics exporter https://github.com/ryotarai/prometheus-tsdb-dump
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/93
2020-01-11 01:29:09 +02:00
Aliaksandr Valialkin
ea231f8167
app/victoria-metrics: adjust integration tests after the commit 99facd71cd6ac151d512cea1df73be91c10c7f83
2020-01-11 00:58:16 +02:00
Aliaksandr Valialkin
46bfdbe6cf
app/vmselect/promql: do not take into account the previous point before time window in square brackets for min_over_time, max_over_time, rollup_first and rollup_last functions
...
This makes the behaviour for these functions similar to Prometheus when processing broken time series with irregular data points
like `gitlab_runner_jobs`. See https://gitlab.com/gitlab-org/gitlab-exporter/issues/50 for details.
2020-01-11 00:26:26 +02:00
Aliaksandr Valialkin
4f0a645f77
vendor: update github.com/valyala/fastjson from v1.4.2 to v1.4.5
...
This should fix parsing Inf values in `/api/v1/import`. The previous attempt to fix this in VictoriaMetrics v1.32.1 was unsuccessful.
2020-01-10 23:15:15 +02:00
Aliaksandr Valialkin
b829fe5e39
app/vmselect/promql: properly handle aggr(aggr_over_time(...))
2020-01-10 21:57:18 +02:00
Aliaksandr Valialkin
164278151f
app/vmselect/promql: add aggr_over_time(("aggr_func1", "aggr_func2", ...), m[d]) function
...
This function can be used for simultaneous calculating of multiple `aggr_func*` functions
that accept range vector. For example, `aggr_over_time(("min_over_time", "max_over_time"), m[d])`
would calculate `min_over_time` and `max_over_time` for `m[d]`.
2020-01-10 21:18:06 +02:00
Aliaksandr Valialkin
c4632faa9d
app/vmselect/promql: add tmin_over_time(m[d]) and tmax_over_time(m[d]) functions
...
These functions return timestamp in seconds for the minimum and maximum value for `m` over time range `d`
2020-01-10 19:39:28 +02:00
Aliaksandr Valialkin
a768198814
docs: fix spelling typos
2020-01-09 23:42:55 +02:00
Roman Khavronenko
57f4875024
fix spellcheck issues ( #285 )
2020-01-09 23:41:52 +02:00
Aliaksandr Valialkin
b8038a14e7
lib/backup/s3remote: check whether the file exists before deleting it
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/284
2020-01-09 23:20:31 +02:00
Aliaksandr Valialkin
f358fb72d1
app/{vmbackup,vmrestore}: add backup complete file to backup when it is complete and check for this file before restoring from backup
...
This should prevent from restoring from incomplete backups.
Add `-skipBackupCompleteCheck` command-line flag to `vmrestore` in order to be able restoring from old backups without `backup complete` file.
2020-01-09 15:35:38 +02:00
Aliaksandr Valialkin
1c436b2723
vendor: update github.com/valyala/fastjson from v1.4.1 to v1.4.2
...
This fixes parsing of `inf` and `nan` values in json lines passed to `/api/v1/import`
2020-01-08 20:47:21 +02:00
Aliaksandr Valialkin
a973df6d79
README.md: remove height="200px" from logo image, since it is improperly displayed on smartphones
2020-01-08 20:29:11 +02:00
Aliaksandr Valialkin
d4132a6915
docs: typo fix
2020-01-08 14:45:27 +02:00
Aliaksandr Valialkin
d5aeda0e1a
app/vmselect/promql: skip rate calculation for the first point on time series
2020-01-08 14:42:53 +02:00
Aliaksandr Valialkin
bb71b6d47d
docs: add references to Remote Write Storage Wars
...
Also mention than VictoriaMetrics uses less RAM than Thanos Store Gateway - see https://github.com/thanos-io/thanos/issues/448 for details.
2020-01-04 23:57:35 +02:00
Aliaksandr Valialkin
fc71602039
lib/storage: limit maxRaRowsPerPartition by 500K for any number of rawRowsShardsPerPartition
...
This should reduce write amplification for high ingestion rate on multi-CPU systems
2020-01-04 23:57:31 +02:00
Aliaksandr Valialkin
c60fdbed30
docs/CaseStudies.md: add link to Remote Write Storage Wars talk from Adidas at PromCon 2019
2020-01-04 16:51:45 +02:00
Aliaksandr Valialkin
d410c78c7e
app/vmselect/promql: fix calculations for histogram_share
2020-01-04 14:44:48 +02:00
Aliaksandr Valialkin
66f3d1dac8
README.md: update Alerting section
2020-01-04 13:55:09 +02:00
Aliaksandr Valialkin
d9c4ac9978
lib/metricsql: export IsRollupFunc and IsTransformFunc, since they can be used by package users
2020-01-04 13:25:05 +02:00
Aliaksandr Valialkin
4567a59fa0
LICENSE: update year
2020-01-04 13:21:04 +02:00
Aliaksandr Valialkin
d64699bb9f
app/vmselect/promql: add missing MetricName into netstorage.Result in tests
2020-01-04 12:52:39 +02:00
Aliaksandr Valialkin
f409f2d050
app/vmselect/promql: add histogram_share(le, buckets) function
2020-01-04 12:45:55 +02:00
Aliaksandr Valialkin
b1ded7cf9a
app/vmselect/promql: add absent_over_time(m[d]) func similar to the function in Prometheus 2.16
...
See https://github.com/prometheus/prometheus/issues/2882
2020-01-04 12:45:07 +02:00
Aliaksandr Valialkin
a8360d04c0
app/vmselect/promql: add histogram_over_time(m[d]) rollup function
2020-01-04 12:44:56 +02:00
Aliaksandr Valialkin
3e09d38f29
app/vmselect/promql: fix results caching for multi-arg rollup functions such as quantile_over_time
...
Previosly only a single arg was taken into account, so caching didn't work properly for multi-arg rollup funcs.
2020-01-03 20:49:08 +02:00
Aliaksandr Valialkin
a774120460
app/vmselect/promql: use scrapeInterval instead of window in denominator when calculating rate for the first point on the time series
...
This should provide better estimation for `rate` in the beginning of time series.
2020-01-03 19:01:50 +02:00
Aliaksandr Valialkin
695682232f
lib/uint64set: reduce memory usage when storing big number of sparse metric_id values
2020-01-03 18:16:44 +02:00
Aliaksandr Valialkin
b5645ccbdf
app/vmselect/promql: increase the estimated number of time series returned by aggr() by (something) from 100 to 1K, since 100 may result in OOM for high number of time series
2020-01-03 01:02:21 +02:00
Aliaksandr Valialkin
cb3a342882
app/vmselect/promql: add share_le_over_time and share_gt_over_time functions for SLI and SLO calculations
2020-01-03 00:41:16 +02:00
Aliaksandr Valialkin
0038365206
docs: refer to standalone MetricsQL package
2020-01-02 23:43:35 +02:00
Aliaksandr Valialkin
61c9d320ed
vendor: update github.com/VictoriaMetrics/fastcache from v1.5.4 to v1.5.5
2019-12-29 18:17:49 +02:00
Aliaksandr Valialkin
a21d786d3c
lib/metricsql: add example for ExpandWithExprs
2019-12-26 21:32:11 +02:00
Aliaksandr Valialkin
192b51c246
vendor: make vendor-update
2019-12-26 19:41:02 +02:00
Aliaksandr Valialkin
17a4dc9782
vendor: update github.com/valyala/gozstd from v1.6.3 to v1.6.4
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/281
2019-12-26 19:30:08 +02:00
Aliaksandr Valialkin
6f67e0b56b
lib/metricsq: add ExpandWithExprs
2019-12-25 22:20:30 +02:00
Aliaksandr Valialkin
1925ee038d
Rename lib/promql to lib/metricsql and apply small fixes
2019-12-25 22:03:59 +02:00
Mike Poindexter
bec62e4e43
Split Extended PromQL parsing to a separate library
2019-12-25 22:03:51 +02:00
Aliaksandr Valialkin
d880325cf6
app/vmselect/promql: make sure AdjustStartEnd returns time range covering the same number of points as the initial time range
...
This should prevent from the following panic at app/vmselect/promql/binary_op.go:255:
BUG: len(leftVaues) must match len(rightValues) and len(dstValues)
2019-12-24 22:45:56 +02:00
Aliaksandr Valialkin
c18802af59
lib/fs: typo fix in fadvise_unix.go
2019-12-24 20:59:28 +02:00
Aliaksandr Valialkin
4ba4abe666
lib/encoding: log the compressed block contents if it cannot be decompressed or unmarshaled
...
This should help detecting the root cause of https://github.com/VictoriaMetrics/VictoriaMetrics/issues/281
2019-12-24 20:48:31 +02:00
Aliaksandr Valialkin
5bb39e757b
lib/encoding: mention src contents in error message returned from unmarshalInt64NearestDelta*
...
This should simplify detecting the root cause of the issue at https://github.com/VictoriaMetrics/VictoriaMetrics/issues/281
2019-12-24 20:41:52 +02:00
Aliaksandr Valialkin
d5c9841220
lib/encoding: mention unpacked block size in the error message if unparsed tail left
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/281
2019-12-24 20:35:13 +02:00
Aliaksandr Valialkin
9e19949c6b
app/vmselect/promql: adjust calculations for rate and increase for the first value
...
These calculations should trigger alerts on `/api/v1/query` for counters starting from values greater than 0.
2019-12-24 19:39:25 +02:00
Aliaksandr Valialkin
0455c03cb9
app/vmselect/promql: properly calculate rate on the first data point
...
It is calculated as `value / scrape_interval`, since the value was missing on the previous scrape,
i.e. we can assume its value was 0 at this time.
2019-12-24 15:55:52 +02:00
Aliaksandr Valialkin
5cb8d97743
all: use gozstd instead of pure Go zstd for GOARCH=amd64
2019-12-24 12:42:42 +02:00
Aliaksandr Valialkin
31d04fb5df
Revert "lib/logger: prevent from blocking when log output isn't consumed in timely manner"
...
This reverts commit e3c462f08a .
Reason to revert: this leaves incomplete logs on app shutdown.
2019-12-24 12:21:39 +02:00
Aliaksandr Valialkin
5b75984aa9
app/vmselect/netstorage: move MustAdviseSequentialRead to lib/fs
2019-12-23 23:16:11 +02:00
Aliaksandr Valialkin
097c21931c
docs: sync README.md with Single-server-VictoriaMetrics.md
2019-12-23 20:34:21 +02:00
Roman Khavronenko
85463a7199
update configuration recommendations for Prometheus remote_write ( #277 )
2019-12-23 20:33:10 +02:00
Aliaksandr Valialkin
6a1499efa3
lib/encoding/zstd: prevent from possible encoder leak when concurrent goroutines create encoders for the same compressionLevel
...
Thanks to @klauspost for the pointer to this issue. See https://github.com/klauspost/compress/issues/195 for details.
2019-12-23 18:05:41 +02:00
Aliaksandr Valialkin
bf4413e58d
README.md: document how to export and import gzipped data
2019-12-23 13:40:22 +02:00
Aliaksandr Valialkin
e3c462f08a
lib/logger: prevent from blocking when log output isn't consumed in timely manner
...
Drop log messages instead of blocking and increment `vm_log_messages_dropped_total` metric.
2019-12-20 11:49:34 +02:00
Aliaksandr Valialkin
bea5a8700a
app/vmselect: add -search.maxExportDuration command-line flag for limiting /api/v1/export duration
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/275
2019-12-20 11:35:22 +02:00
Aliaksandr Valialkin
1825893eef
lib/storage: scale ingestion performance by sharding rawRows on systems with more than 8 CPU cores
2019-12-19 18:18:29 +02:00
Aliaksandr Valialkin
97f70ccda7
lib/storage: optimize bulk import performance when multiple data points are inserted for the same time series
...
This should speed up `/api/v1/import` and make it more scalable on multi-core systems.
2019-12-19 18:18:29 +02:00
Andrii Dembitskyi
2fba7b6f35
Fix typo in log message
2019-12-19 14:33:20 +02:00
Aliaksandr Valialkin
d03827c57d
app/vminsert: return StatusNoContent http response for /api/v1/import to be consistent with other insert handlers
2019-12-19 01:21:54 +02:00
Aliaksandr Valialkin
bb530a0591
lib/httpserver: inline checkAuth code to make it more clear
2019-12-18 23:06:25 +02:00
koalaty-code
aea4c80dd7
Ignore /health endpoint when checking auth
2019-12-18 23:04:31 +02:00
Aliaksandr Valialkin
5e8e0fbc80
docs/ExtendedPromQL.md: rewording regarding scalar vs instant vector difference
2019-12-18 21:47:24 +02:00
Aliaksandr Valialkin
1e8aa89a3b
docs/Home.md: fix link to case studies
2019-12-18 01:04:20 +02:00
Aliaksandr Valialkin
56595ae12a
docs: renaming: PromQL extensions -> MetricsQL
2019-12-18 00:56:51 +02:00
Aliaksandr Valialkin
96ff8d9adb
app/vmselect: add ability to pass match[], start and end to /api/v1/labels
...
This makes the `/api/v1/labels` handler consistent with already existing functionality for `/api/v1/label/.../values`.
See https://github.com/prometheus/prometheus/issues/6178 for more details.
2019-12-15 00:20:50 +02:00
Aliaksandr Valialkin
02f6566ce1
app/vmbackup: mention that backups are possible to Ceph and Swift
2019-12-14 01:08:49 +02:00
Aliaksandr Valialkin
7535f20c98
docs: publish vmbackup and vmrestore docs on wiki and victoriametrics.github.io
2019-12-14 01:05:55 +02:00
Aliaksandr Valialkin
bc645152cb
app/vminsert: simultaneously accept telnet put and HTTP /api/put OpenTSDB metrics at -opentsdbListenAddr
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/266
2019-12-14 00:30:12 +02:00
Aliaksandr Valialkin
f5ac9b0721
lib/logger: add -loggerFormat for choosing log message formats
...
Supported formats: default, json
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/265
2019-12-13 15:10:05 +02:00
Aliaksandr Valialkin
d95a43f392
docs: sync with cluster branch
2019-12-12 20:49:55 +02:00
Aliaksandr Valialkin
87a8348062
make vendor-update
2019-12-12 19:39:52 +02:00
Aliaksandr Valialkin
cea5a14853
all: rename Extended PromQL to PromQL extensions
2019-12-12 19:25:58 +02:00
Aliaksandr Valialkin
9787c228a4
docs/CaseStudies.md: add a link to VMQL
2019-12-12 14:53:48 +02:00
Aliaksandr Valialkin
c121608205
README.md: mention that {__name__!=""} selects all the time series in /api/v1/export
2019-12-12 14:48:30 +02:00
Aliaksandr Valialkin
492f032b38
docs: add Dreamteam numbers
2019-12-12 01:01:07 +02:00
Aliaksandr Valialkin
4624c060ac
docs/Single-server-VictoriaMetrics.md: sync with README.md
2019-12-12 00:55:14 +02:00
Clémence Saussez
8454679d9f
README.md: adds link to Grafana dashboard for clustered version ( #259 )
...
Signed-off-by: Clemence Saussez <clemence@zen.ly >
2019-12-12 00:54:24 +02:00
Aliaksandr Valialkin
440a15111e
deployment/docker/Makefile: mention that the Makefile rules must be invoked from the repository root
2019-12-11 23:33:02 +02:00
Aliaksandr Valialkin
6ddcd162ed
all: publish Docker images for the following GOARCH: amd64, arm, arm64, ppc64le and 386
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/258
2019-12-11 23:32:59 +02:00
Aliaksandr Valialkin
6504f78ce4
README.md: add Docker hub shield
2019-12-11 18:34:26 +02:00
Aliaksandr Valialkin
73b2a3d4b7
app/vmselect/promql: return lower and upper bounds for the estimated percentile from histogram_quantile if third arg is passed
...
Updates https://github.com/prometheus/prometheus/issues/5706
2019-12-11 13:57:26 +02:00
Aliaksandr Valialkin
07d5bc986b
CaseStudies: clarify wording: metrics -> active time series
2019-12-11 12:05:08 +02:00
Aliaksandr Valialkin
caa4eb72d9
app/vmselect/promql: return matrix instead of vector on subqueries to /api/v1/query like Prometheus does
2019-12-11 01:00:26 +02:00
Aliaksandr Valialkin
3c076544bf
app/vmselect/promql: allow negative offsets
...
Updates https://github.com/prometheus/prometheus/issues/6282
2019-12-11 01:00:23 +02:00
Aliaksandr Valialkin
35f5ca1def
README.md: typo fixes
2019-12-09 23:30:01 +02:00
Aliaksandr Valialkin
a7d80f62be
README.md: add a chapter about Prometheus querying API usage
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/253
2019-12-09 23:27:23 +02:00
Aliaksandr Valialkin
40540397c3
README.md: use relative links to REAMDE.md
2019-12-09 23:04:34 +02:00
Aliaksandr Valialkin
c107f46b0e
docs: mention about /api/v1/import in Single-server-VictoriaMetrics.md
2019-12-09 23:02:07 +02:00
Aliaksandr Valialkin
8cce513a15
docs: mention about /api/v1/import in Cluster-VictoriaMetrics.md
2019-12-09 23:01:14 +02:00
Aliaksandr Valialkin
b01ddfdd76
deployment/docker: update Go builder from go1.13.4 to go1.13.5
2019-12-09 22:58:26 +02:00
Aliaksandr Valialkin
68e1cf8942
app/vminsert: add /api/v1/import handler
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6
2019-12-09 20:59:04 +02:00
Aliaksandr Valialkin
8501b4a48d
app/vminsert: consistency renaming for counters
2019-12-09 16:43:10 +02:00
Aliaksandr Valialkin
0ed9258545
lib/{mergeset,storage}: log info message when both source and destination part paths from txn are missing during startup
...
This is expected condition after unclean shutdown (OOM, hard reset, `kill -9`) on NFS disk.
2019-12-09 15:44:53 +02:00
Roman Khavronenko
b0d88460de
#251 - add Logging rate panel ( #254 )
2019-12-09 13:05:59 +02:00
Aliaksandr Valialkin
8db7660afe
docs/CaseStudies.md: mention that additional references and reviews can be obtained from our Slack channel
2019-12-08 14:04:18 +02:00
Aliaksandr Valialkin
18369bca42
docs/ExtendedPromQL.md: add a link to https://medium.com/@valyala/improving-histogram-usability-for-prometheus-and-grafana-bc7e5df0e350 for histogram func
2019-12-08 13:48:33 +02:00
Aliaksandr Valialkin
95328782c3
docs/CaseStudies.md: re-wording
2019-12-08 13:43:49 +02:00
Aliaksandr Valialkin
981cb66a95
docs/CaseStudies.md: improve wording
2019-12-08 13:39:29 +02:00
Aliaksandr Valialkin
f15d89bfe0
vendor: fix broken build for GOARCH=arm64 on golang.org/x/sys/unix
2019-12-08 13:27:38 +02:00
Aliaksandr Valialkin
36feb7d3e4
docs: add draft version of case studies
2019-12-08 13:23:15 +02:00
Aliaksandr Valialkin
d900184d8d
vendor: fix arm build for golang.org/x/sys/unix/zptrace_armnn_linux.go
2019-12-08 12:49:05 +02:00
Aliaksandr Valialkin
293b541784
make vendor-update
2019-12-07 23:10:16 +02:00
Aliaksandr Valialkin
84b57e8974
app/vminsert/influx: add a test case from https://community.librenms.org/t/integration-with-victoriametrics/9689
2019-12-07 23:00:40 +02:00
Aliaksandr Valialkin
b458e5a213
README.md: mention that VictoriaMetrics is built on shared nothing architecture
2019-12-05 20:39:44 +02:00
Aliaksandr Valialkin
c09472dfd9
app/vmselect/promql: add {topk|bottomk}_{min|max|avg|median} aggregate functions for returning the exact k time series on the given time range
...
The full list of functions added:
- `topk_min(k, q)` - returns top K time series with the max minimums on the given time range
- `topk_max(k, q)` - returns top K time series with the max maximums on the given time range
- `topk_avg(k, q)` - returns top K time series with the max averages on the given time range
- `topk_median(k, q)` - returns top K time series with the max medians on the given time range
- `bottomk_min(k, q)` - returns bottom K time series with the min minimums on the given time range
- `bottomk_max(k, q)` - returns bottom K time series with the min maximums on the given time range
- `bottomk_avg(k, q)` - returns bottom K time series with the min averages on the given time range
- `bottomk_median(k, q)` - returns bottom K time series with the min medians on the given time range
2019-12-05 19:26:47 +02:00
Aliaksandr Valialkin
72345eb5bd
lib/{mergeset,storage}: make sure pending transaction deletions are finished before and after runTransactions call.
...
`runTransactions` call issues async deletions for transaction files. The previously issued transaction deletions
can race with the next call to `runTransactions`. Prevent this by waiting until all the pending transaction
deletions are funished in the beginning of `runTransactions`. Also make sure that all the pending transaction
deletions are finished before returning from `runTransactions`.
2019-12-04 21:40:30 +02:00
Aliaksandr Valialkin
1244ad810d
lib/httpserver: add /ping handler for compatibility with Influx agents
...
Certain Influx agents check for `/ping` endpoint before starting
to send Influx line protocol data. See https://docs.influxdata.com/influxdb/v1.7/tools/api/#ping-http-endpoint
2019-12-04 19:15:52 +02:00
Aliaksandr Valialkin
359c4d6109
docs: add a link to https://medium.com/@valyala/prometheus-storage-technical-terms-for-humans-4ab4de6c3d48
2019-12-03 22:37:16 +02:00
Aliaksandr Valialkin
face3d57bf
app/vmselect: add placeholders for /api/v1/rules and /api/v1/alerts
2019-12-03 19:36:33 +02:00
Aliaksandr Valialkin
a247236f61
lib/storage: fall back to global inverted index if a filter match too many time series in per-day index
...
Previously this resulted to error message. The query may succeed via search in global index.
2019-12-03 14:48:31 +02:00
Aliaksandr Valialkin
54741ee578
lib/storage: fix printing tag filters in TagFilters.String
2019-12-03 14:25:13 +02:00
Aliaksandr Valialkin
efbc83a13e
lib/storage: print __name__ instead of empty string in user-visible tag filters
2019-12-03 14:18:28 +02:00
Aliaksandr Valialkin
ade453847f
docs: typo fixes
2019-12-03 00:44:50 +02:00
Aliaksandr Valialkin
f52874dab4
lib/storage: optimize regexp filter search
2019-12-03 00:43:12 +02:00
Artem Navoiev
652ba59ce9
[docs] update release page doc
2019-12-02 23:01:51 +02:00
Artem Navoiev
3e81ab2f75
[docs] change titles
2019-12-02 22:53:11 +02:00
Artem Navoiev
a778233877
[docs] change titles
2019-12-02 22:50:54 +02:00
Aliaksandr Valialkin
14100ed643
vendor: update github.com/VictoriaMetrics/metrics from v1.9.1 to v1.9.2
...
This fixes possible deadlock when metrics.WritePrometheus calls Gauge callback, which calls metrics functions with internal lock.
2019-12-02 22:33:33 +02:00
Artem Navoiev
cfc6e7df07
[docs] revert titles
2019-12-02 22:06:39 +02:00
Artem Navoiev
c07a83374c
[docs] remove double titles
2019-12-02 22:02:59 +02:00
Artem Navoiev
c76b2be21f
[ci] add github pages action
2019-12-02 21:53:33 +02:00
Aliaksandr Valialkin
638a5cbb16
lib/{mergeset,storage}: remove transaction files only after the mentioned dirs are really removed
...
This should fix the issue on NFS when incompletely removed dirs may be left
after unclean shutdown (OOM, kill -9, hard reset, etc.), while the corresponding transaction
files are already removed.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/162
2019-12-02 21:36:31 +02:00
Aliaksandr Valialkin
20812008a7
lib/storage: remove metricID with missing metricID->metricName entry
...
The metricID->metricName entry can be missing in the indexdb after unclean shutdown
when only a part of entries for new time series is written into indexdb.
Recover from such a situation by removing the broken metricID. New metricID
will be automatically created for time series with the given metricName
when new data point will arive to it.
2019-12-02 20:46:44 +02:00
Aliaksandr Valialkin
62a915f2b2
lib/storage: protect from time drift during indexdb rotation
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/248
2019-12-02 14:44:42 +02:00
Aliaksandr Valialkin
42da569bcd
lib/logger: merge file and line labels into location="file:line"
...
This should improve the usability for `vm_log_messages_total` metric during practical queries
2019-12-02 14:44:40 +02:00
Aliaksandr Valialkin
70b8191fab
lib/storage: generate more human-friendly result in TagFilters.String
2019-12-02 13:52:22 +02:00
Aliaksandr Valialkin
9476b73527
app/vmselect/promql: estimate per-series scrape interval as 0.6 quantile for the first 100 intervals
...
This should improve scrape interval estimation for tiem series with gaps.
2019-12-02 13:42:33 +02:00
Aliaksandr Valialkin
542b9c2043
lib/logger: consistency renaming from vm_log_messages_count to vm_log_messages_total, since this is a counter
2019-12-02 00:49:00 +02:00
Aliaksandr Valialkin
c567919f80
lib/logger: track the number of log messages by (level, file, line) in the vm_log_messages_count metric
2019-12-01 18:37:49 +02:00
Aliaksandr Valialkin
761645b20a
lib/netutil: use IPv6 for both listening and dialing if -enabledTCP6 is set
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/244
2019-12-01 02:57:13 +02:00
Aliaksandr Valialkin
811b7a8303
app/vminsert/influx: allow empty measurement in Influx line protocol
...
In this case metric names are mapped directly from field names without any prefixes.
2019-11-30 23:18:41 +02:00
Artem Navoiev
4972bd4c96
Update release guide add Wiki section. Change styling
2019-11-30 21:10:42 +02:00
Artem Navoiev
335e0f8f6a
Update release guide add Wiki section
2019-11-30 21:08:48 +02:00
Artem Navoiev
505e46980a
[ci] push docs/*.md file to wiki
2019-11-30 20:58:28 +02:00
Artem Navoiev
ab88b77515
rename doc to docs
2019-11-30 20:48:40 +02:00
Artem Navoiev
3d8e75e065
[ci] test wiki push
2019-11-30 20:38:37 +02:00
Artem Navoiev
74b4ccfc91
[ci] push to wiki
2019-11-30 20:36:10 +02:00
Aliaksandr Valialkin
75ff524a4e
app/vmselect/promql: fix corner case for increase over time series with gaps
...
In this case `increase` could return invalid high value for the first point after the gap.
2019-11-30 01:34:56 +02:00
Aliaksandr Valialkin
96492348cb
deployment/docker/certs: update TLS certs source from alpine:3.9 to alpine:3.10
2019-11-29 19:57:29 +02:00
Aliaksandr Valialkin
f733cb2186
lib/backup: cosmetic fixes after #243
2019-11-29 18:07:04 +02:00
glebsam
15b7406f7b
Add option to provide custom endpoint for S3, add option to specify S3 config profile ( #243 )
...
* Add option to provide custom endpoint for S3 for use with s3-compatible storages, add option to specify S3 config profile
* make fmt
2019-11-29 17:59:56 +02:00
Aliaksandr Valialkin
9010c6a1d6
lib/netutil: add -enableTCP6 command-line flag for enabling listening for IPv6 additionally to IPv4 TCP ports
2019-11-29 17:32:47 +02:00
Aliaksandr Valialkin
a7125a5b7b
lib/backup: remove flock.lock file in empty dirs
...
This fixes an issue when VictoriaMetrics doesn't see the restored data after the following operations:
1. Stop VictoriaMetrics.
2. Delete `<-storageDataPath>` dir.
3. Start VictoriaMetrics, then stop it.
4. Restore data from backup with `vmrestore`.
5. Start VictoriaMetrics.
`vmrestore` didn't delete properly empty dirs in `<-storageDataPath>/indexdb` because of the remaining `flock.lock` files in these dirs.
2019-11-28 13:38:58 +02:00
Aliaksandr Valialkin
a6d7179286
README.md: remove the unnecessary step during restoring from backups
2019-11-27 19:57:03 +02:00
Aliaksandr Valialkin
e828647d0f
vendor: make vendor-update
2019-11-27 15:37:14 +02:00
Aliaksandr Valialkin
31fb6f2b07
vendor: update github.com/VictoriaMetrics/fastcache from v1.5.2 to v1.5.4
2019-11-27 15:30:33 +02:00
Aliaksandr Valialkin
2c86816950
deployment/docker: update Grafana from v6.4.4 to v6.5.0
2019-11-27 15:10:37 +02:00
Aliaksandr Valialkin
4c859d980c
app/vmselect/prometheus: consistently apply nocache arg to /api/v1/query the same way ast to /api/v1/query_range
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/241
2019-11-26 22:55:43 +02:00
Aliaksandr Valialkin
14bcff6015
lib/httpserver: improve docs for -tls* flags to be more clear
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/242
2019-11-26 18:08:35 +02:00
Aliaksandr Valialkin
110235f789
app/vmselect/prometheus: fix content-type for /api/v1/export responses
...
The correct Content-Type should be `application/stream+json` instead of `application/json`
Thanks to Joshua Ryder for pointing to this.
2019-11-26 17:45:26 +02:00
Aliaksandr Valialkin
205233d9a7
app/vmselect/promql: remove zero timeseries from prometheus_buckets output
2019-11-25 19:10:23 +02:00
Aliaksandr Valialkin
3f99f39e9b
app/vmselect/prometheus: reduce default value for -search.latencyOffset from 60s to 30s
...
30 seconds should be enough for almost all the cases
2019-11-25 16:33:42 +02:00
Aliaksandr Valialkin
e91cb34c0e
app/vmselect/promql: allow nested parens
2019-11-25 16:13:41 +02:00
Aliaksandr Valialkin
826dfd63a5
vendor: update github.com/VictoriaMetrics/metrics from v1.9.0 to v1.9.1
2019-11-25 15:23:01 +02:00
Aliaksandr Valialkin
0401969d78
app/vmselect/promql: re-use metrics.Histogram when calculating histogram function for each point on the graph
...
This should reduce the amounts memory allocations
2019-11-25 14:24:21 +02:00
Aliaksandr Valialkin
da98703748
app/vmselect/promql: optimize binary search over big number of samples during rollup calculations
2019-11-25 14:01:46 +02:00
Aliaksandr Valialkin
c28876172f
app/vmselect/promql: adjust tests after the upgrade of github.com/VictoriaMetrics/metrics from v1.8.3 to v1.9.0
2019-11-25 13:43:57 +02:00
Aliaksandr Valialkin
66c53bf3c6
vendor: update github.com/VictoriaMetrics/metrics from v1.8.3 to v1.9.0
2019-11-25 13:19:43 +02:00
Aliaksandr Valialkin
50ae1879c6
app/vmselect/promql: add histogram aggregate function, which is useful for building heatmaps from multiple time series
2019-11-24 00:04:25 +02:00
Aliaksandr Valialkin
4ff2fbcf3f
vendor: update github.com/VictoriaMetrics/metrics from v1.8.2 to v1.8.3
2019-11-24 00:04:24 +02:00
Aliaksandr Valialkin
5285acae3e
lib/decimal: calculate ln2/ln10 constant during compile time
2019-11-23 15:52:58 +02:00
Aliaksandr Valialkin
8582b50360
app/vmselect/promql: do not take into account buckets with negative counters in prometheus_buckets
2019-11-23 14:19:25 +02:00
Aliaksandr Valialkin
19dfe52254
app/vmselect/promql: properly handle histogram_quantile(0, ...) with zero buckets
2019-11-23 14:02:35 +02:00
Aliaksandr Valialkin
4bb88843cf
app/vmselect: add vm_per_query_{rows,series}_processed_count histograms
2019-11-23 13:23:26 +02:00
Aliaksandr Valialkin
0827bb6ce5
vendor: update github.com/VictoriaMetrics/metrics from v1.8.1 to v1.8.2
2019-11-23 11:48:54 +02:00
Aliaksandr Valialkin
7753c8c0a1
app/vmselect/promql: transparently apply prometheus_buckets in histogram_quantile
2019-11-23 11:48:51 +02:00
Aliaksandr Valialkin
ef25e1b049
vendor: update github.com/VictoriaMetrics/metrics from v1.8.0 to v1.8.1
2019-11-23 00:49:13 +02:00
Aliaksandr Valialkin
9d1fcb2be6
vendor: update github.com/VictoriaMetrics/metrics from v1.7.2 to v1.8.0. This version supports histograms
2019-11-23 00:20:27 +02:00
Aliaksandr Valialkin
c4287b3c86
app/vmselect/promql: add prometheus_buckets function for converting the upcoming histogram buckets from github.com/VictoriaMetrics/metrics to Prometheus-compatible buckets
2019-11-23 00:20:20 +02:00
Aliaksandr Valialkin
1f3fd2c910
app/vmselect: adjust end arg instead of adjusting start arg if start > end
...
`start` arg has higher chances to be set properly comparing to `end` arg,
so it is expected that the `end` arg could be adjusted if it was set incorrectly.
2019-11-22 16:12:19 +02:00
Aliaksandr Valialkin
90b03309de
vendor: updated github.com/valyala/gozstd from v1.6.2 to v1.6.3
2019-11-21 23:57:00 +02:00
Aliaksandr Valialkin
7a4635f853
all: remove the remaining mentions of cluster version
2019-11-21 23:18:22 +02:00
Aliaksandr Valialkin
3e9b7addb1
lib/httpserver: typo fix in -httpAuth.password command-line description
2019-11-21 21:54:26 +02:00
Aliaksandr Valialkin
f652c0f40f
lib/storage: move non-matching tag filters to the top at matchTagFilters
...
This should reduce the amount of useless work needed for matching the next metricNames.
2019-11-21 21:35:13 +02:00
Aliaksandr Valialkin
b8cde6cce1
lib/storage: speed up time series search for queries with multiple filters
...
Use optimized specialized binary search for uint64 metricIDs instead of generic sort.Search.
2019-11-21 18:43:17 +02:00
Aliaksandr Valialkin
aeea59e280
Makefile: create files with sha256 checksums during make release
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/19
2019-11-20 22:43:37 +02:00
Aliaksandr Valialkin
74e563ca3f
README.md: added a link to https://github.com/dreamteam-gg/ansible-victoriametrics-role
2019-11-20 21:26:43 +02:00
Aliaksandr Valialkin
5c1e4143e9
lib/storage: verify the number of returned metricIDs in BenchmarkHeadPostingForMatchers
2019-11-20 15:39:28 +02:00
Aliaksandr Valialkin
52d7ca6bf0
lib/decimal: increase decimal->float speed conversion for integer numbers
2019-11-20 13:04:34 +02:00
Aliaksandr Valialkin
75eeea21ee
lib/decimal: reduce rounding error when converting from decimal to float with negative exponent
...
While at it, slightly increase the conversion performance by moving fast path to the top of the loop.
2019-11-19 23:35:33 +02:00
Artem Navoiev
c03b87dac0
update version of codecove to 1.04
2019-11-19 22:23:14 +02:00
Aliaksandr Valialkin
259dc95366
make vendor-update
2019-11-19 21:35:07 +02:00
Aliaksandr Valialkin
cfb9fa2100
lib/backup: retrieve only the required metadata when reading GCS objects
2019-11-19 21:06:34 +02:00
Aliaksandr Valialkin
355ccba81a
make vendor-update
2019-11-19 21:05:37 +02:00
Aliaksandr Valialkin
443189fb0a
app/{vmbackup,vmrestore}: add -maxBytesPerSecond command-line flag for limiting the used network bandwidth during backup / restore
2019-11-19 20:31:52 +02:00
Aliaksandr Valialkin
2db06f0ef8
lib/backup: prevent from restoring to directory which is in use by VictoriaMetrics during the restore
2019-11-19 18:36:23 +02:00
Aliaksandr Valialkin
0094bc4fc9
app/vmselect/prometheus: properly adjust too big time time on /api/v1/query
...
Too big `time` must be adjusted to `now()-queryOffset`.
2019-11-19 00:42:00 +02:00
Aliaksandr Valialkin
b6f22a62cb
lib/storage: increase the number of created time series in BenchmarkHeadPostingForMatchers in order to be on par with Promethues
...
The previous commit was accidentally creating 10x smaller number of time series than Prometheus
and this led to invalid benchmark results.
The updated benchmark results:
benchmark old ns/op new ns/op delta
BenchmarkHeadPostingForMatchers/n="1" 272756688 6194893 -97.73%
BenchmarkHeadPostingForMatchers/n="1",j="foo" 138132923 10781372 -92.19%
BenchmarkHeadPostingForMatchers/j="foo",n="1" 134723762 10632834 -92.11%
BenchmarkHeadPostingForMatchers/n="1",j!="foo" 195823953 10679975 -94.55%
BenchmarkHeadPostingForMatchers/i=~".*" 7962582919 100118510 -98.74%
BenchmarkHeadPostingForMatchers/i=~".+" 7589543864 154955671 -97.96%
BenchmarkHeadPostingForMatchers/i=~"" 1142371741 258003769 -77.42%
BenchmarkHeadPostingForMatchers/i!="" 9964150263 159783895 -98.40%
BenchmarkHeadPostingForMatchers/n="1",i=~".*",j="foo" 216995884 10937895 -94.96%
BenchmarkHeadPostingForMatchers/n="1",i=~".*",i!="2",j="foo" 202541348 10990027 -94.57%
BenchmarkHeadPostingForMatchers/n="1",i!="" 486285711 87004349 -82.11%
BenchmarkHeadPostingForMatchers/n="1",i!="",j="foo" 350776931 53342793 -84.79%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",j="foo" 380888565 54256156 -85.76%
BenchmarkHeadPostingForMatchers/n="1",i=~"1.+",j="foo" 89500296 21823279 -75.62%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",i!="2",j="foo" 379529654 46671359 -87.70%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",i!~"2.*",j="foo" 424563825 53915842 -87.30%
VictoriaMetrics uses 1GB of RAM during the benchmark (vs 3.5GB of RAM for Prometheus)
2019-11-18 19:50:58 +02:00
Aliaksandr Valialkin
8a0dfc6220
lib/storage: add BenchmarkHeadPostingForMatchers similar to the benchmark from Prometheus
...
See the corresponding benchmark in Prometheus - 23c0299d85/tsdb/head_bench_test.go (L52)
The benchmark allows performing apples-to-apples comparison of time series search
in Prometheus and VictoriaMetrics. The following article - https://www.robustperception.io/evaluating-performance-and-correctness -
contains incorrect numbers for VictoriaMetrics, since there wasn't this benchmark yet. Fix this.
Benchmarks can be repeated with the following commands from Prometheus and VictoriaMetrics source code roots:
- Prometheus: GOMAXPROCS=1 go test ./tsdb/ -run=111 -bench=BenchmarkHeadPostingForMatchers
- VictoriaMetrics: GOMAXPROCS=1 go test ./lib/storage/ -run=111 -bench=BenchmarkHeadPostingForMatchers
Benchmark results:
benchmark old ns/op new ns/op delta
BenchmarkHeadPostingForMatchers/n="1" 272756688 364977 -99.87%
BenchmarkHeadPostingForMatchers/n="1",j="foo" 138132923 1181636 -99.14%
BenchmarkHeadPostingForMatchers/j="foo",n="1" 134723762 1141578 -99.15%
BenchmarkHeadPostingForMatchers/n="1",j!="foo" 195823953 1148056 -99.41%
BenchmarkHeadPostingForMatchers/i=~".*" 7962582919 8716755 -99.89%
BenchmarkHeadPostingForMatchers/i=~".+" 7589543864 12096587 -99.84%
BenchmarkHeadPostingForMatchers/i=~"" 1142371741 16164560 -98.59%
BenchmarkHeadPostingForMatchers/i!="" 9964150263 12230021 -99.88%
BenchmarkHeadPostingForMatchers/n="1",i=~".*",j="foo" 216995884 1173476 -99.46%
BenchmarkHeadPostingForMatchers/n="1",i=~".*",i!="2",j="foo" 202541348 1299743 -99.36%
BenchmarkHeadPostingForMatchers/n="1",i!="" 486285711 11555193 -97.62%
BenchmarkHeadPostingForMatchers/n="1",i!="",j="foo" 350776931 5607506 -98.40%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",j="foo" 380888565 6380335 -98.32%
BenchmarkHeadPostingForMatchers/n="1",i=~"1.+",j="foo" 89500296 2078970 -97.68%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",i!="2",j="foo" 379529654 6561368 -98.27%
BenchmarkHeadPostingForMatchers/n="1",i=~".+",i!~"2.*",j="foo" 424563825 6757132 -98.41%
The first column (old) is for Prometheus, the second column (new) is for VictoriaMetrics.
As you can see, VictoriaMetrics outperforms Prometheus by more than 100x in almost all the test cases of this benchmark.
Prometheus was using 3.5GB of RAM during the benchmark, while VictoriaMetrics was using 400MB of RAM.
2019-11-18 18:45:06 +02:00
Aliaksandr Valialkin
2ab4cea5e5
lib/storage: always start using per-day inverted index on the next day after its creation
...
The current day could miss entries for already stopped time series before
enabling per-day index.
This fixes the issue when queries return empty results during the first hour after
upgrading to v1.29.*
2019-11-16 12:11:25 +02:00
Aliaksandr Valialkin
c050abbbad
deployment/docker: update Prometheus version from v2.12.0 to v2.14.0
2019-11-16 00:13:15 +02:00
Aliaksandr Valialkin
3f1637fae8
app/vmselect/promql: properly calculate integrate(q[d])
2019-11-13 21:10:41 +02:00
Aliaksandr Valialkin
c56b9ed03b
app/victoria-metrics: add build rules for GOARCH=ppc64le
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/235
2019-11-13 20:24:33 +02:00
Aliaksandr Valialkin
3fd32e331a
app/vmselect/promql: use universal approach for determining maxByteSliceLen on 32-bit and 64-bit archs
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/235
2019-11-13 20:24:26 +02:00
Aliaksandr Valialkin
119dfd01bb
lib/storage: add vm_cache_size_bytes{type="storage/hour_metric_ids"} metric
2019-11-13 20:24:21 +02:00
Aliaksandr Valialkin
86a1cd700b
lib/storage: remove inmemory index for recent hour, since it uses too much memory
...
Production workload shows that the index requires ~4Kb of RAM per active time series.
This is too much for high number of active time series, so let's delete this index.
Now the queries should fall back to the index for the current day instead of the index
for the recent hour. The query performance for the current day index should be good enough
given the 100M rows/sec scan speed per CPU core.
2019-11-13 17:58:07 +02:00
Aliaksandr Valialkin
33895d4a0f
lib/storage: add missing increment for recentHourInvertedIndexSearchCalls
2019-11-13 15:13:51 +02:00
Aliaksandr Valialkin
c57eb0ff83
lib/storage: add -disableRecentHourIndex flag for disabling inmemory index for recent hour
...
This may be useful for saving RAM on high number of time series aka high cardinality
2019-11-13 15:02:51 +02:00
Aliaksandr Valialkin
e14ab14e54
lib/storage: verify marshaling for iidx.pendingMetricIDs in TestInmemoryInvertedIndexMarshalUnmarshal
2019-11-13 13:35:30 +02:00
Aliaksandr Valialkin
ca259864e2
lib/storage: return back inmemory inverted index for recent hour
...
Issues fixed:
- Slow startup times. Now the index is loaded from cache during start.
- High memory usage related to superflouos index copies every 10 seconds.
2019-11-13 13:11:04 +02:00
Aliaksandr Valialkin
01bb3c06c7
lib/storage: remove inmemory inverted index for recent hours
...
Production load with >10M active time series showed it could
slow down VictoriaMetrics startup times and could eat
all the memory leading to OOM.
Remove inmemory inverted index for recent hours until thorough
testing on production data shows it works OK.
2019-11-13 10:45:53 +02:00
Aliaksandr Valialkin
66c4961ff8
README.md: mention that VictoriaMetrics executable is small
2019-11-12 16:58:15 +02:00
Aliaksandr Valialkin
3e16248ed6
README.md: small updates
2019-11-12 16:54:18 +02:00
Aliaksandr Valialkin
5e6c1cd986
README.md: typo fix
2019-11-12 16:48:40 +02:00
Aliaksandr Valialkin
6c2303764e
Revert "lib/fs: do not postpone directory removal on NFS error"
...
This reverts commit 4c02e496f7 .
Reason for revert: the commit breaks on NFS - see https://github.com/VictoriaMetrics/VictoriaMetrics/issues/234
2019-11-12 16:18:09 +02:00
Mike Poindexter
f3ad330635
Add test for invalid caching of tsids ( #232 )
...
* Add test for invalid caching of tsids
* Clean up error handling
2019-11-12 15:09:33 +02:00
Aliaksandr Valialkin
6c362d82cb
README.md: mention that backups are made to S3 or GCS
2019-11-12 14:32:37 +02:00
Aliaksandr Valialkin
661dd190bb
Refer to https://medium.com/@valyala/speeding-up-backups-for-big-time-series-databases-533c1a927883 from multiple places in README.md
2019-11-12 13:02:39 +02:00
Aliaksandr Valialkin
630ba810f1
deployment/docker: upgrade Go from v1.13.4 to v1.13.4
2019-11-12 03:49:19 +02:00
Oleg Kovalov
b4f44befa3
fix misspelled words ( #229 )
2019-11-12 00:16:42 +02:00
Roman Khavronenko
5fc8fb1323
add churn rate panel ( #230 )
2019-11-12 00:14:53 +02:00
Aliaksandr Valialkin
8e8f98f712
lib/storage: add tests for dateMetricIDCache
2019-11-11 13:21:57 +02:00
Aliaksandr Valialkin
c342f5e37e
lib/storage: eliminate data race when updating lastSyncTime in dateMetricIDCache.Has
2019-11-10 22:04:01 +02:00
Aliaksandr Valialkin
56d7cc8a0d
app/victoria-metrics: remove deprecated fs.MustStopDirRemover from main_test.go
2019-11-10 13:37:13 +02:00
Aliaksandr Valialkin
4c02e496f7
lib/fs: do not postpone directory removal on NFS error
...
Continue trying to remove NFS directory on temporary errors for up to a minute.
The previous async removal process breaks in the following case during VictoriaMetrics start
- VictoriaMetrics opens index, finds incomplete merge transactions and starts replaying them.
- The transaction instructs removing old directories for parts, which were already merged into bigger part.
- VictoriaMetrics removes these directories, but their removal is delayed due to NFS errors.
- VictoriaMetrics scans partition directory after all the incomplete merge transactions are finished
and finds directories, which should be removed, but weren't still removed due to NFS errors.
- VictoriaMetrics panics when it finds unexpected empty directory.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/162
2019-11-10 13:24:51 +02:00
Aliaksandr Valialkin
3956003dd0
lib/storage: reorganize the code in getStartDateForPerDayInvertedIndex according to golangci-lint
2019-11-10 00:38:59 +02:00
Aliaksandr Valialkin
5c3fa59181
app/vmrestore: the upcoming release would be 1.29.0
2019-11-10 00:20:41 +02:00
Aliaksandr Valialkin
ee7765b10d
lib/storage: implement per-day inverted index
2019-11-10 00:02:46 +02:00
Aliaksandr Valialkin
5810ba57c2
lib/storage: use specialized cache for (date, metricID) entries
...
This improves ingestion performance.
2019-11-09 23:06:11 +02:00
Aliaksandr Valialkin
e573ef2126
lib/storage: remove unused code from getMetricIDsForTimeRange: it is expected that time range is always non-zero
2019-11-09 19:03:34 +02:00
Aliaksandr Valialkin
823fa085ef
lib/storage: properly set time range when deleting time series
2019-11-09 18:49:49 +02:00
Aliaksandr Valialkin
695c1dc5eb
lib/storage: obtain all the time series ids from (tag->metricIDs) rows instead of (metricID->TSID) rows, since this much faster
2019-11-09 18:04:33 +02:00
Aliaksandr Valialkin
cdbe848102
lib/storage: small code prettifying
2019-11-09 14:19:52 +02:00
Aliaksandr Valialkin
5c25070556
lib/uint64set: remove superflouos check for item existence before deleting it in Set.Subtract
2019-11-09 14:19:47 +02:00
Aliaksandr Valialkin
bb08bab263
lib/storage: inmemoryInvertedIndex prettifying
2019-11-09 14:19:41 +02:00
Aliaksandr Valialkin
6ad7fe8eeb
lib/storage: export vm_new_timeseries_created_total metric for determining time series churn rate
2019-11-08 21:21:07 +02:00
Aliaksandr Valialkin
9ea549ed24
lib/storage: sync with cluster changes
2019-11-08 21:21:07 +02:00
Aliaksandr Valialkin
63b05c0b9f
app/vmselect/promql: adjust memory limits calculations for incremental aggregate functions
...
Incremental aggregate functions don't keep all the selected time series in memory -
they keep only up to GOMAXPROCS time series for incremental aggregations.
Take into account that the number of time series in RAM can be higher if they are split
into many groups with `by (...)` or `without (...)` modifiers.
This should reduce the number of `not enough memory for processing ... data points` false
positive errors.
2019-11-08 21:21:07 +02:00
Aliaksandr Valialkin
d888b21657
lib/storage: add inmemory inverted index for the last hour
...
It should improve performance for `last N hours` dashboards with update intervals smaller than 1 hour.
2019-11-08 21:21:07 +02:00
Aliaksandr Valialkin
1e46961d68
app/{vmbackup,vmrestore}: add vmbackup and vmrestore tools for creating backups on s3 or gcs from instant snapshots
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/203
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/38
2019-11-08 21:21:07 +02:00
Roman Khavronenko
72756ab8c7
#224 : add slow_queries, on-going merges and merge speed panels to dashboard ( #226 )
2019-11-08 21:20:38 +02:00
Aliaksandr Valialkin
543dc8d337
lib/storage: populate partition names from both small and big directories
...
Certain partition directories may be missing after restoring from backups
if they had no data. Re-create such directories on start.
2019-11-06 19:49:34 +02:00
Aliaksandr Valialkin
e472f0b23b
lib/storage: substitute error message about unsorted items in the index block after metricIDs merge with counter
...
The origin of the error has been detected and documented in the code,
so it is enough to export a counter for such errors at `vm_index_blocks_with_metric_ids_incorrect_order_total`,
so it could be monitored and alerted on high error rates.
Export also the counter for processed index blocks with metricIDs - `vm_index_blocks_with_metric_ids_processed_total`,
so its' rate could be compared to `rate(vm_index_blocks_with_metric_ids_incorrect_order_total)`.
2019-11-06 14:28:11 +02:00
Aliaksandr Valialkin
c51ca04a43
lib/storage: take into account the requested time range when caching TSIDs for the given tag filters
2019-11-06 14:28:11 +02:00
Aliaksandr Valialkin
e37f06dc52
lib/storage: dump incorrectly sorted items on a single line; this should simplify error reporting
2019-11-05 18:44:22 +02:00
Aliaksandr Valialkin
5c2099ecfe
lib/storage: return back finalPartsToMerge from 2 to 3 in order to prevent from excessive merges in old partitions
2019-11-05 17:27:48 +02:00
Aliaksandr Valialkin
885ba17905
lib/storage: separate the max inverted index scan loops per metric into fast and slow loops
...
Slow loops could require seeks and expensive regexp matching, while fast loops just scans
all the metricIDs for the given `tag=value` prefix. So these operations must have separate
max loops multiplier.
2019-11-05 17:27:48 +02:00
Aliaksandr Valialkin
b9a06e8e74
lib/storage: skip repeated useless work when intersection of metricIDs with the given filter is too expensive
...
This should improve performance for query filters over big number of time series.
2019-11-05 14:19:13 +02:00
Aliaksandr Valialkin
30c8301b11
lib/storage: reduce the maximum inverted index scans before giving up to label filters matching by metric name
...
The new value reduces the amount of wasted work during index scans over big number of time series.
2019-11-05 14:19:06 +02:00
Aliaksandr Valialkin
e53f9e553d
lib/storage: try potentially faster tag filters at first, then apply slower tag filters
...
The fastest tag filters are non-negative non-regexp, since they are the most specific.
The slowest tag filters are negative regexp, since they require scanning
all the entries for the given label.
2019-11-05 14:19:01 +02:00
Aliaksandr Valialkin
d6ade02fd3
Makefile: add pprof-cpu rule for inspecting CPU profiles with PPROF_FILE=/path/to/cpu.pprof make pprof-cpu
2019-11-04 12:44:09 +02:00
Aliaksandr Valialkin
3c90d77858
lib/storage: pass pointer to MetricName in Fatalf, so it is properly detected as an interface with String() method
...
This fixes lint errors
2019-11-04 01:07:19 +02:00
Artem Navoiev
478767d0ed
add unittests for bytesutil and storage ( #221 )
2019-11-04 00:54:46 +02:00
Aliaksandr Valialkin
02e0b19a62
lib/storage: tune the returned value from adjustMaxMetricsAdaptive
2019-11-04 00:44:37 +02:00
Aliaksandr Valialkin
6be4456d88
lib/{storage,uint64set}: add Set.Union() function and use it
2019-11-04 00:44:37 +02:00
Aliaksandr Valialkin
9becc26f4b
lib/storage: remove interface conversion in hot path during block merging
...
This should improve merge speed a bit for parts with big number of small blocks.
2019-11-03 12:33:34 +02:00
Aliaksandr Valialkin
c62399eb3e
lib/{storage,mergeset}: create missing partition directories after restoring from backups
...
Backup tools could skip empty directories. So re-create such directories on the first run.
2019-11-02 02:27:11 +02:00
Aliaksandr Valialkin
55d728c849
lib/{decimal,encoding}: optimize float64<->decimal conversion for arrays with zeros or ones
...
Time series with only zeros or ones frequently occur in monitoring, so it is worth optimizing their handling.
2019-11-01 16:48:12 +02:00
Aliaksandr Valialkin
808fc0971f
lib/{encoding,decimal}: add benchmarks for blocks containing zeros or ones
...
Time series with such values are quite common in monitoring space,
so it would be great to have benchmarks for them.
2019-11-01 16:48:12 +02:00
Aliaksandr Valialkin
370cfbb365
lib/uint64set: return an emptry set instead of nil set from Set.Clone, since the caller may add data to the cloned set
...
This fixes the following panic in v1.28.1:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x783a7e]
goroutine 1155 [running]:
github.com/VictoriaMetrics/VictoriaMetrics/lib/uint64set.(*Set).Add(0x0, 0x15b3bfb41e8b71ec)
github.com/VictoriaMetrics/VictoriaMetrics@/lib/uint64set/uint64set.go:57 +0x2e
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.(*indexSearch).getMetricIDsForRecentHours(0xc5bdc0dd40, 0x16e273f6b50, 0x16e2745d3f0, 0x5b8d95, 0x10, 0x4a2f51, 0xaa01000000000000)
github.com/VictoriaMetrics/VictoriaMetrics@/lib/storage/index_db.go:1951 +0x260
github.com/VictoriaMetrics/VictoriaMetrics/lib/storage.(*indexSearch).getMetricIDsForTimeRange(0xc5bdc0dd40, 0x16e273f6b50, 0x16e2745d3f0, 0x5b8d95, 0x10, 0xb296c0, 0xc00009cd80, 0x9bc640)
2019-11-01 16:12:44 +02:00
Aliaksandr Valialkin
2f58f37f07
app/vmselect/promql: add lag(q[d]) function, which returns the lag between the current timestamp and the timstamp for the last data point in q
2019-11-01 12:21:33 +02:00
Aliaksandr Valialkin
d18ea0c95b
app/vmstorage: add -bigMergeConcurrency and -smallMergeConcurrency flags for tuning the maximum number of CPU cores used during merges
2019-10-31 16:19:13 +02:00
Aliaksandr Valialkin
e0b292c6de
lib/storage: small cleanup in Storage.add
2019-10-31 14:30:34 +02:00
Aliaksandr Valialkin
86f6be40db
README.md: update information about vm_rows{type="indexdb"} metric
...
The previous information became outdated after v1.28.0, since now each row in the inverted index
can refer to multiple time series.
2019-10-31 13:30:29 +02:00
Aliaksandr Valialkin
e76e21e4c7
lib/decimal: speed up FromFloat for common case with integers
2019-10-31 13:24:59 +02:00
Aliaksandr Valialkin
cfa5e279c2
lib/decimal: increase float64->decimal conversion precision a bit
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/213
2019-10-30 02:04:56 +02:00
Aliaksandr Valialkin
fa7c3ab93a
README.md: fix delimiter between {measurement} and {field_name} in the Influx line protocol example
2019-10-30 02:04:56 +02:00
Aliaksandr Valialkin
26d570bb3a
lib/storage: get parts to merge after applying the limit on the number of concurrent merges
...
This should reduce write amplification under high ingestion rate.
2019-10-30 02:04:56 +02:00
Roman Khavronenko
62ed508546
Bump version requirements in description
2019-10-29 22:29:48 +00:00
Aliaksandr Valialkin
2e2eff90d5
lib/{mergeset,storage}: limit the maximum number of concurrent merges; leave smaller number of parts during final merge
2019-10-29 12:45:28 +02:00
Aliaksandr Valialkin
855e5c8963
vendor: update github.com/VictoriaMetrics/fastcache from v1.5.1 to v1.5.2
2019-10-29 11:31:29 +02:00
Aliaksandr Valialkin
04e48ef064
lib/fs: typo fix in comment to WriteFileAtomically
2019-10-29 11:31:26 +02:00
Roman Khavronenko
971206b514
update single-version dashboard with panels: ( #219 )
...
* concurrent inserts
* rows ignored
2019-10-28 13:54:10 +02:00
Aliaksandr Valialkin
d063bfaf83
vendor: make vendor-update
2019-10-28 13:39:05 +02:00
Roman Khavronenko
6ab48838bf
#215 : update klauspost/compress lib ( #217 )
...
* #215 : update klauspost/compress lib
* #215 : bump klauspost/compress lib to 1.9.1
2019-10-28 13:36:35 +02:00
Aliaksandr Valialkin
a42b5db39f
lib/decimal: increase float->decimal conversion precision for big numbers
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/213
2019-10-28 13:23:44 +02:00
Aliaksandr Valialkin
b0295dbf2e
app/vmselect: add -search.latencyOffset flag for tuning the time after data collection when data points become visible in query results
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/218
2019-10-28 12:31:07 +02:00
Petr Mikusek
3cea200309
Fix typo s/telergam/telegram/ in README.md
2019-10-23 19:30:36 +03:00
Aliaksandr Valialkin
32600ba4fc
deployment/docker: upgrade Go builder from go1.13.1 to go1.13.3
2019-10-20 23:50:05 +03:00
hanzai
b3c946e35a
warns during rows addition ( #214 )
2019-10-20 23:41:07 +03:00
Aliaksandr Valialkin
e83fe938c8
all: make fmt
2019-10-17 20:04:34 +03:00
Aliaksandr Valialkin
f708aa7003
Makefile: disable structcheck in golangci-lint, since it gives false positive on embedded structs
2019-10-17 19:59:10 +03:00
Aliaksandr Valialkin
97ce4e03a5
all: add support for GOARCH=386 and fix all the issues related to 32-bit architectures such as GOARCH=arm
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/212
2019-10-17 18:23:23 +03:00
Aliaksandr Valialkin
a398343bb6
vendor: update github.com/valyala/quicktemplate from v1.2.0 to v1.3.1
2019-10-17 18:23:19 +03:00
Aliaksandr Valialkin
6ebf537153
lib/memory: properly handle int overflow in sysTotalMemory
...
This should fix builds on 32-bit architectures such as arm.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/212
2019-10-17 00:50:48 +03:00
Aliaksandr Valialkin
f752479cb8
app/victoria-metrics/test: add missing docs to public funcs PopulateTimeTplString and PopulateTimeTpl
2019-10-17 00:50:46 +03:00
Aliaksandr Valialkin
61e956e175
app/victoria-metrics: add a test for max_lookback=<duration> query arg
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/209
2019-10-15 21:31:48 +03:00
Aliaksandr Valialkin
c66a691593
app/vmselect/prometheus: add -search.maxLookback command-line flag for overriding dynamic calculations for max lookback interval
...
This flag is similar to `-search.lookback-delta` if set. The max lookback interval is determined dynamically
from interval between datapoints for each input time series if the flag isn't set.
The interval can be overriden on per-query basis by passing `max_lookback=<duration>` query arg to `/api/v1/query` and `/api/v1/query_range`.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/209
2019-10-15 21:31:48 +03:00
Aliaksandr Valialkin
cc21b31502
app/victoria-metrics/test: add a test for PopulateTimeTplString
2019-10-15 21:31:48 +03:00
Aliaksandr Valialkin
195cefd81a
lib/prompb: removed outdated README.md
2019-10-14 22:12:57 +03:00
Aliaksandr Valialkin
c1581c3810
vendor: make vendor-update
2019-10-13 23:17:47 +03:00
Aliaksandr Valialkin
16cae15c45
README.md: add integrations section
2019-10-11 19:14:28 +03:00
Aliaksandr Valialkin
f6334bffa1
lib/storage: harden the check that the original items are sorted after mergeTagToMetricIDsRows fails to preserve sort order
2019-10-09 12:13:17 +03:00
Aliaksandr Valialkin
2abd5154e0
lib/storage: typo fix in comment to maxRowsPerSmallPart.
2019-10-08 18:51:20 +03:00
Aliaksandr Valialkin
c1cf7d9f93
lib/storage: add tests for mergeTagToMetricIDsRows and return the original items if the function breaks items` ordering.
...
This should save from data corruption issues revealed in the previous releases up to v1.28.0-beta5.
2019-10-08 16:27:35 +03:00
Aliaksandr Valialkin
956fdd89d3
app/vmselect/promql: take into account the previous point when calculating max_over_time and min_over_time
...
This lines up with `first_over_time` function used in `rollup_candlestick`, so `rollup=low` always returns
the minimum value.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/204
2019-10-08 12:30:05 +03:00
Alexander Danilov
1bc6377863
Improve documentation a little bit
2019-10-07 22:18:40 +03:00
Artem Navoiev
1e2c511747
Add regression test for query apo
...
Part of https://github.com/VictoriaMetrics/VictoriaMetrics/issues/187
cover:
- https://github.com/VictoriaMetrics/VictoriaMetrics/issues/153
- https://github.com/VictoriaMetrics/VictoriaMetrics/issues/150
2019-10-07 22:18:04 +03:00
Aliaksandr Valialkin
0eeffb910f
vendor: make vendor-update
2019-10-06 15:47:23 +03:00
Aliaksandr Valialkin
4ba86f501a
vendor: update github.com/VictoriaMetrics/metrics from v1.7.1 to v1.7.2
2019-10-06 11:20:45 +03:00
Aliaksandr Valialkin
fdc5cfd838
lib/mergeset: reduce the maximum number of cached blocks, since there are reports on OOMs due to too big caches
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/189
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/195
2019-09-30 12:25:40 +03:00
Artem Navoiev
a116f5e7c1
Add regression test for query apo ( #194 )
...
Part of https://github.com/VictoriaMetrics/VictoriaMetrics/issues/187
cover:
- https://github.com/VictoriaMetrics/VictoriaMetrics/issues/184
2019-09-30 11:25:54 +03:00
Aliaksandr Valialkin
4e9e1ca0f7
app/vmselect/netstorage: hint the OS that tmpBlocksFile is read almost sequentially
...
This became the case after b7ee2e7af2 .
2019-09-30 00:11:14 +03:00
Aliaksandr Valialkin
c1d3705be0
app/vmselect/netstorage: marshal block outside tmpBlocksFile.WriteBlock
...
This allows re-using the destination buffer for marshaling in the outer loop.
2019-09-28 21:07:13 +03:00
Aliaksandr Valialkin
b7ee2e7af2
app/vmselect/netstorage: reduce the number of disk seeks when the query processes big number of time series
2019-09-28 21:07:09 +03:00
Aliaksandr Valialkin
67d44b0845
app/vmselect/promql: do not generate timestamps for NaN values in timestamp function according to Prometheus logic
2019-09-27 18:54:43 +03:00
Artem Navoiev
1e6ae9eff4
Add regression test for duplicated labels and series
...
Part of https://github.com/VictoriaMetrics/VictoriaMetrics/issues/187
cover:
- https://github.com/VictoriaMetrics/VictoriaMetrics/issues/155
- https://github.com/VictoriaMetrics/VictoriaMetrics/issues/172
2019-09-27 16:52:16 +03:00
Aliaksandr Valialkin
fa81f82714
deployment/docker: switch Go builder image from v1.13.0 to v1.13.1
2019-09-26 17:09:40 +03:00
Aliaksandr Valialkin
0fa6df94a2
lib/storage: optimize TSID comparison
2019-09-26 14:16:02 +03:00
Aliaksandr Valialkin
c39355921e
lib/storage: verify whether items are sorted in the end of call to mergeTagToMetricIDsRows
...
This should prevent from inverted index corruption if bug in mergeTagToMetricIDsRows is discovered.
2019-09-26 13:13:41 +03:00
Artem Navoiev
cf4786f34a
add test for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/161
2019-09-26 12:45:19 +03:00
Aliaksandr Valialkin
3e67862676
README.md: typo fix
2019-09-26 11:03:14 +03:00
Aliaksandr Valialkin
0db9fcedd5
lib/storage: properly match labels against regexp with (?i) flag
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/161
2019-09-26 11:03:10 +03:00
Aliaksandr Valialkin
391530bb74
README.md: mention recommended ext4 options for mkfs.ext4 when creating multi-TB partition
2019-09-25 23:52:43 +03:00
Aliaksandr Valialkin
60c5b368bc
README.md: tiny updates
2019-09-25 23:29:55 +03:00
Aliaksandr Valialkin
26dc21cf64
app/vmselect/promql: add increases_over_time and decreases_over_time functions
...
`increases_over_time(q[d])` returns the number of `q` increases during the given duration `d`.
`decreases_over_time(q[d])` returns the number of `q` decreases during the given duration `d`.
2019-09-25 20:38:44 +03:00
Aliaksandr Valialkin
2444433d83
lib/storage: add missing break in removeDuplicateMetricIDs
2019-09-25 18:23:43 +03:00
Aliaksandr Valialkin
ea4c828bae
lib/storage: remove duplicate MetricIDs in tag->metricIDs items before writing them into inverted index
2019-09-25 17:55:13 +03:00
Aliaksandr Valialkin
aebc45ad26
lib/{mergeset,storage}: do not cache inverted index blocks containing tag->metricIDs items
...
This should reduce the amounts of used RAM during queries with filters over big number of time series.
2019-09-25 14:02:15 +03:00
Aliaksandr Valialkin
2cb811b42f
lib/uint64set: optimize Set.AppendTo
2019-09-25 00:34:17 +03:00
Aliaksandr Valialkin
b986516fbe
lib/storage: create and use lib/uint64set instead of map[uint64]struct{}
...
This should improve inverted index search performance for filters matching big number of time series,
since `lib/uint64set.Set` is faster than `map[uint64]struct{}` for both `Add` and `Has` calls.
See the corresponding benchmarks in `lib/uint64set`.
2019-09-24 21:17:55 +03:00
Aliaksandr Valialkin
ef2296e420
lib/storage: typo fix: return dstData instead of data from mergeTagToMetricIDsRows
2019-09-24 19:32:34 +03:00
Aliaksandr Valialkin
a6086cde78
lib/storage: limit the number of metricIDs in tag->metricIDs row
...
This reduces the overhead on index and metaindex in lib/mergeset
2019-09-24 00:49:51 +03:00
Aliaksandr Valialkin
c9063ece66
lib/storage: share tsids across all the partSearch instances
...
This should reduce memory usage when big number of time series matches the given query.
2019-09-23 22:35:15 +03:00
Aliaksandr Valialkin
4e26ad869b
lib/{storage,mergeset}: verify PrepareBlock callback results
...
Do not touch the first and the last item passed to PrepareBlock
in order to preserve sort order of mergeset blocks.
2019-09-23 20:43:13 +03:00
Aliaksandr Valialkin
0772191975
lib/mergeset: detect whether we are in test by executable suffix
2019-09-22 23:12:15 +03:00
Aliaksandr Valialkin
48999e5396
lib/workingsetcache: remove data race when resetting c.misses
2019-09-22 19:36:49 +03:00
Aliaksandr Valialkin
0adebae1f8
lib/storage: generate the first tag->metricIDs item in a mergeset block with a single metricID
...
The first item from each mergeset block goes into index (lib/mergeset.blockHeader),
so it must be short in order to reduce index size.
2019-09-22 19:21:33 +03:00
Aliaksandr Valialkin
267efde5ae
README.md: update troubleshooting and tuning sections according to recent questions from our users
2019-09-22 19:12:24 +03:00
Aliaksandr Valialkin
0686ac52c3
lib/{storage,mergeset}: merge tag->metricID rows into tag->metricIDs rows for common tag values
...
This should improve lookup performance if the same `label=value` pair exists
in big number of time series.
This should also reduce memory usage for mergeset data cache, since `tag->metricIDs` rows
occupy less space than the original `tag->metricID` rows.
2019-09-20 22:06:41 +03:00
Aliaksandr Valialkin
68722c3c74
lib/encoding: optimize UnmarshalUint* and UnmarshalInt*
2019-09-20 13:08:16 +03:00
Aliaksandr Valialkin
a544f49c2b
lib/storage: optimize selecting all the metricIDs by scanning MetricID->TSID entries instead of tag->MetricID entries
...
The number of MetricID->TSID entries is smaller than the number of tag->MetricID entries
and MetricID->TSID entries are usually shorter than tag->MetricID entries.
This should improve performance when selecting all the metricIDs.
2019-09-20 11:54:10 +03:00
Aliaksandr Valialkin
d32f88c378
app/vminsert/opentsdbhttp: remove FATAL prefix from logger.Fatalf errors for the sake of consistency with other logger.Fatalf calls
2019-09-19 22:15:59 +03:00
Aliaksandr Valialkin
00cfb2d2b9
lib/mergeset: rename misleading mergeSmallParts to mergeExistingParts
2019-09-19 21:48:20 +03:00
Aliaksandr Valialkin
37dc223e25
lib/mergeset: use sort.IsSorted instead of sort.SliceIsSorted in inmemoryBlock.isSorted in order to reduce memory allocations
2019-09-19 20:13:08 +03:00
Aliaksandr Valialkin
a84fe76677
lib/storage: use sort.Sort instead of sort.slice in getSortedMetricIDs
2019-09-19 20:07:22 +03:00
Aliaksandr Valialkin
3a697a935a
lib/storage: skip duplicate call to intersectMetricIDsWithTagFilter on zero successful intersects
2019-09-19 17:49:56 +03:00
Aliaksandr Valialkin
51a21c7d4b
lib/mergeset: fill partHeader.firstItem on first block flush
2019-09-19 17:48:09 +03:00
Aliaksandr Valialkin
3d83f5d334
lib/storage: mark tag filter returning errFallbackToMetricNameMatch as useless
...
This will save CPU on subsequent calls for this filter
2019-09-18 19:10:32 +03:00
Aliaksandr Valialkin
6f3b2fd600
deployment/docker/docker-compose.yml: update Prometheus and Grafana image tags
...
Prometheus: from v2.10.0 to v2.12.0
Grafana: v6.2.1 from to v6.3.5
2019-09-18 18:29:09 +03:00
Aliaksandr Valialkin
8d35718dc6
lib/storage: properly construct keys for uselessTagFiltersCache and register useless negative tag filters there
2019-09-17 23:20:27 +03:00
Aliaksandr Valialkin
33975513d0
vendor: update github.com/valyala/gozstd from v1.6.1 to v1.6.2
2019-09-16 21:50:49 +03:00
Aliaksandr Valialkin
63f2b539df
vendor: make vendor-update
2019-09-13 22:48:56 +03:00
Aliaksandr Valialkin
9428ec9c9f
deployment/docker: remove file system paths from the compiled binary
2019-09-13 22:45:59 +03:00
Aliaksandr Valialkin
0c8057924f
lib/mergeset: properly check for sorted block headers
...
Fix a typo for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/181
2019-09-13 21:59:29 +03:00
Aliaksandr Valialkin
d4218d27e6
app/vmselect/promql: properly handle subqueries like aggr_func(rollup_func(metric[window:step]))
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/184
2019-09-13 21:41:04 +03:00
hanzai
e2274714b1
lib/workingsetcache: adjust switching from mode=split to mode=whole smoothly and load cachefile successfully
2019-09-13 19:13:01 +03:00
Aliaksandr Valialkin
4d636c244d
app/vmselect/promql: binary operation fixes according to Prometheus behaviour
...
The follosing issues were fixed:
- VictoriaMetrics could leave superflouos labels when using `on` or `ignoring` modifiers
- VictoriaMetrics could return `duplicate timeseries` error when using `group_left` or `group_right` with non-empty label list
2019-09-13 17:42:52 +03:00
Aliaksandr Valialkin
bad53e4207
lib/mergeset: dynamically calculate the maximum number of items per part, which can be cached in OS page cache
2019-09-11 14:53:45 +03:00
Artem Navoiev
3f581a9860
[ci] github actions - run pipeline on pull request. Fix running of test in external PR from forks
2019-09-11 09:30:11 +03:00
sundy-li
398e00aa54
README.md: fix ExtendedPromQL link url
2019-09-10 14:56:19 +03:00
Artem Navoiev
4fd741f40d
[tests] check timestamp in tests ( #177 )
2019-09-08 19:48:38 +03:00
Artem Navoiev
4a2cd85b92
[ci] bump version of go to 1.13 in github actions config
2019-09-08 14:02:23 +03:00
Aliaksandr Valialkin
6c46afb087
vendor: update github.com/klauspost/compress from v1.7.6 to v1.8.2
2019-09-06 00:47:31 +03:00
Aliaksandr Valialkin
7343e8b408
vendor: update golang.org/x/sys
2019-09-06 00:47:31 +03:00
Artem Navoiev
22e3fabefd
Add OpenTSDB and Prometheus integration tests ( #168 )
...
* [WIP] open tsdb and prometheus integration tests
* app/victoria-metrics: fix race condition on parallel tests
2019-09-05 17:55:38 +03:00
Aliaksandr Valialkin
88f8670ede
lib/fs: add MustStopDirRemover for waiting until pending directories are removed on graceful shutdown
...
This patch is mainly required for laggy NFS. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/162
2019-09-05 11:13:17 +03:00
Aliaksandr Valialkin
9eb5de334f
lib/storage: typo fix
2019-09-04 19:58:01 +03:00
Aliaksandr Valialkin
6954e126fc
app/vmselect/promql: ignore grouping by destination label in count_values, since such a grouping is performed automatically
2019-09-04 19:58:01 +03:00
Aliaksandr Valialkin
bce35b8dd9
README.md: mention that Prometheus doesn't drop data when VictoriaMetrics restarts
2019-09-04 18:40:39 +03:00
Aliaksandr Valialkin
16dd145586
lib/storage: remove duplicate tag keys on MetricName.Marshal call
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/172
2019-09-04 18:13:45 +03:00
Aliaksandr Valialkin
cd2c9e39da
deployment/docker: switch Go builder from Go 1.12.9 to Go 1.13.0
2019-09-04 17:17:23 +03:00
Aliaksandr Valialkin
305e7bc981
app/vmselect/promql: do not return artificial points beyond the last point in time series
2019-09-04 16:35:34 +03:00
Aliaksandr Valialkin
9721d06c6a
app/vmselect/prometheus: do not adjust start and end args in /api/v1/query_range if nocache=1 arg is set
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/171
2019-09-04 13:10:09 +03:00
Aliaksandr Valialkin
4862e93024
lib/fs: try harder with directory removal on NFS in the event of temporary lock
...
Do not give up after 11 attempts of directory removal on laggy NFS.
Add `vm_nfs_dir_remove_failed_attempts_total` metric for counting the number of failed attempts
on directory removal.
Log failed attempts on directory removal after long sleep times.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/162
2019-09-04 12:24:50 +03:00
Aliaksandr Valialkin
db4560ca31
app/vmselect/promql: reset timeseries name on group_left and group_right as Prometheus does
2019-09-03 20:42:54 +03:00
Aliaksandr Valialkin
1575a560f0
app/vmselect/netstorage: adaptively adjust the maximum inmemory file size for storing temporary blocks
...
The maximum inmemory file size now depends on `-memory.allowedPercent`.
This should improve performance and reduce the number of filesystem calls
on machines with big amounts of RAM when performing heavy queries
over big number of samples and time series.
2019-09-03 13:32:09 +03:00
Aliaksandr Valialkin
e1d76ec1f3
lib/storage: invalidate tagFilters -> TSIDS cache when newly added index data becomes visible to search
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/163
2019-08-29 15:08:35 +03:00
Aliaksandr Valialkin
aeaa5de5fe
lib/prombp: apply ba06b47c16
...
The following commands used:
gofmt -r '(uint64(x)&0x7F)<<shift -> uint64(x&0x7F)<<shift' -w ./lib/prompb/
gofmt -r '(int64(x)&0x7F)<<shift -> int64(x&0x7F)<<shift' -w ./lib/prompb/
2019-08-29 13:35:27 +03:00
Aliaksandr Valialkin
4c0a262a2e
.github/workflows: verify builds on freebsd and darwin
2019-08-28 23:05:15 +03:00
Aliaksandr Valialkin
3685fc18d5
Makefile: extract app-local and app-local-pure build rules
2019-08-28 01:34:58 +03:00
Aliaksandr Valialkin
ede7ad3703
app/victoria-metrics: add missing victoria-metrics prefix to --version output when building with make victoria-metrics
2019-08-28 01:28:08 +03:00
Aliaksandr Valialkin
9196c085a7
all: port to FreeBSD on GOARCH=amd64
2019-08-28 01:19:23 +03:00
Aliaksandr Valialkin
3802ae9269
README.md: recommend checking which metrics will be deleted before deleting them
2019-08-27 15:01:16 +03:00
Artem Navoiev
b0090dbd86
add github actions ( #160 )
2019-08-27 14:42:46 +03:00
Aliaksandr Valialkin
603a79b357
app/vmstorage: increase default values for search.maxTagKeys, search.maxTagValues and search.maxUniqueTimeseries
2019-08-27 14:29:53 +03:00
Aliaksandr Valialkin
2655220c58
lib/storage: go fmt
2019-08-27 14:29:51 +03:00
Aliaksandr Valialkin
bf915fc0db
lib/storage: report proper maxMetrics limit when more than -search.maxUniqueTimeseries series match the given filters
2019-08-27 14:21:42 +03:00
Aliaksandr Valialkin
2fc157ff7a
lib/storage: properly handle (?i) in the tag filter regexp
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/161
2019-08-26 00:44:45 +03:00
Aliaksandr Valialkin
0dc0006f34
lib/storage: calculate the maximum number of rows per small part from -memory.allowedPercent
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/159
This simplifies error detection additionally to the `vm_rows_ignored_total` counters.
2019-08-25 15:31:47 +03:00
Aliaksandr Valialkin
4b688fffee
lib/storage: calculate the maximum number of rows per small part from -memory.allowedPercent
...
This should improve query speed over recent data on machines with big amounts of RAM
2019-08-25 14:41:12 +03:00
Aliaksandr Valialkin
1402a6b981
lib/storage: properly limit the number of output rows in small and big parts storage
...
Previously small parts storage didn't take into account the available disk space for big parts.
2019-08-25 14:41:12 +03:00
Aliaksandr Valialkin
3308279c4e
lib/storage: remove outdated comment on maxRowsPerSmallPart
...
The commend became outdated after the commit ed6ac1a5df027f0dfc22448e3b27c26b6f77c67a,
which stops merging of small parts on graceful shutdown instead of waiting
for their completion.
2019-08-25 13:47:32 +03:00
Aliaksandr Valialkin
fb909cf710
app/vminsert/influx: set db label only if Influx line doesnt have db tag
2019-08-24 13:52:48 +03:00
Aliaksandr Valialkin
c4e75f09dc
README.md: mention that -retentionPeriod must cover the backfilled data
2019-08-24 13:52:48 +03:00
Aliaksandr Valialkin
fb8840ac38
vendor: update github.com/valyala/quicktemplate from v1.1.1 to v1.2.0
2019-08-24 13:41:15 +03:00
Aliaksandr Valialkin
9c9221d1b2
app/vminsert: skip empty tags
2019-08-24 13:36:29 +03:00
Aliaksandr Valialkin
70ca018a57
app/vminsert/opentsdbhttp: skip invalid rows and continue parsing the remaining rows
...
Invalid rows are logged and counted in `vm_rows_invalid_total{type="opentsdb-http"}` metric
2019-08-24 13:36:29 +03:00
Aliaksandr Valialkin
4266091e4f
app/vminsert/opentsdb: skip invalid rows and continue parsing the remaining rows
...
Invalid rows are logged and counted in `vm_rows_invalid_total{type="opentsdb"}` metric
2019-08-24 13:36:29 +03:00
Aliaksandr Valialkin
8001d29b6e
app/vminsert/graphite: skip invalid rows and continue parsing the remaining rows
...
Invalid rows are logged and counted in `vm_rows_invalid_total{type="graphite"}` metric
2019-08-24 13:36:29 +03:00
Aliaksandr Valialkin
9d3f1fcbb9
app/vminsert/influx: skip invalid rows and continue parsing the remaining rows
...
Invalid influx lines are logged and counted in `vm_rows_invalid_total{type="influx"}` metric.
2019-08-24 13:36:29 +03:00
Aliaksandr Valialkin
ba7b3806be
app/vminsert/influx: do not allow escaping newline char, since they dont occur in real life
...
The prefious report with escaped newline chars in influx line protocol was false alarm.
2019-08-23 18:42:05 +03:00
Aliaksandr Valialkin
7fa88c6efc
app/vminsert/opentsdbhttp: allow timestamp as float64 and as string, since it occurs in real life
2019-08-23 18:35:41 +03:00
Aliaksandr Valialkin
4da34b11f8
app/vminsert/influx: handle \r\n aka crlf influx line endings from windows world
...
Such lines exist in real life.
2019-08-23 18:28:49 +03:00
Aliaksandr Valialkin
a18317adbc
app/vminsert/influx: allow escaping newline char
...
Though newline char isn't mentioned in escape rules at https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_tutorial/ ,
there are reports that such chars occur in real life
2019-08-23 15:14:46 +03:00
Aliaksandr Valialkin
44d7fc599d
app/vminsert/influx: skip comments starting with # in influx line protocol
2019-08-23 14:43:09 +03:00
Aliaksandr Valialkin
dce6079379
README.md: add a section about Go profiling
2019-08-23 13:37:09 +03:00
Aliaksandr Valialkin
98419c00ef
vendor: make vendor-update
2019-08-23 10:02:10 +03:00
Aliaksandr Valialkin
ac004665b5
all: return 503 http error if service is temporarily unavailable
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/156
2019-08-23 09:55:07 +03:00
Aliaksandr Valialkin
8c03a8c4b4
app/vminsert: allow setting the maximum number of labels per time series via -maxLabelsPerTimeseries
2019-08-23 08:45:26 +03:00
Aliaksandr Valialkin
8a126c2865
README.md: mention that VictoriaMetrics supports enterprise workloads
2019-08-22 18:00:47 +03:00
Aliaksandr Valialkin
380cae23a0
lib/storage: add benchmarks for regexp filter match / mismatch
...
These benchmarks allow estimate the performance of regexp filters in promql
2019-08-22 16:36:42 +03:00
Aliaksandr Valialkin
1272e407b2
app/vmselect/promql: attempt to repair invalid bucket counts passed to histogram_quantile
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/136
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/154
2019-08-22 14:39:46 +03:00
Aliaksandr Valialkin
5f33fc8e46
app/vminsert: add ability to ingest data via HTTP OpenTSDB /api/put requests
...
This is manual merge of the https://github.com/VictoriaMetrics/VictoriaMetrics/pull/152
Thanks to nustinov@gmail.com for the initial pull request.
2019-08-22 12:28:32 +03:00
Aliaksandr Valialkin
ec8125606d
app/vminsert/opentsdb: fix BenchmarkRowsUnmarshal by adding missing put prefixes to each line
2019-08-21 19:14:47 +03:00
Aliaksandr Valialkin
f4a38f7fb1
app/vmselect/promql: fix panic on -search.disableCache
...
Reset the cache if it is disabled instead of stopping, since it is stopped on graceful shutdown.
2019-08-21 17:11:52 +03:00
Aliaksandr Valialkin
ab740afd0d
app/vmselect/promql: explain why empty timeseries arent removed in transformLabelValue
2019-08-21 11:29:24 +03:00
Aliaksandr Valialkin
7b5168adfb
app/vmselect/promql: remove NaNs from /api/v1/query_range output like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/153
2019-08-20 23:01:41 +03:00
Aliaksandr Valialkin
a0d480fbf3
app/vmselect/promql: pre-allocate memory for map for checking for duplicate timeseries
...
This should reduce memory allocations for big number of timeseries
2019-08-20 23:01:39 +03:00
Aliaksandr Valialkin
0dfc1ace53
README.md: add a section about backfilling
2019-08-20 00:34:51 +03:00
Aliaksandr Valialkin
d3fd113a80
app/vmselect/promql: add label_value(q, label_name) func, which returns numeric value labels with name label_name in q
2019-08-20 00:28:34 +03:00
Aliaksandr Valialkin
4f738c8a15
lib/storage: try slower path for searching the tag filter with the minimum number of matching time series before giving up with increase -search.maxUniqueTimeseries error
2019-08-19 16:04:21 +03:00
Aliaksandr Valialkin
dd86e6130c
app/vmselect/promql: independently track offset hints for tStart and tEnd
...
This should improve performance if timeseries starts or ends on the selected time range
2019-08-19 13:40:14 +03:00
Aliaksandr Valialkin
6a27657d73
app/vmselect/promql: optimize search for timestamp boundaries in rollupConfig.Do
...
This should improve the performance of queries over big number of time series
with big number of output points.
2019-08-19 13:03:29 +03:00
Aliaksandr Valialkin
c23b66a1ad
lib/storage: pre-allocate memory for blockHeader slice in unmarshalBlockHeaders
...
This reduces memory usage and memory fragmentation when working with big number of time series
2019-08-19 12:46:33 +03:00
Aliaksandr Valialkin
be39414f9c
deployment/docker: switch Go builder from go1.12.8 to go1.12.9
2019-08-18 22:07:58 +03:00
Aliaksandr Valialkin
e74fb23189
app/vmselect/promql: add scrape_interval(q[d]) function, which would return scrape interval for q over d
2019-08-18 21:08:26 +03:00
Aliaksandr Valialkin
582fdc059a
app/vmselect/promql: hande comparisons with NaN similar to Prometheus
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/150
2019-08-18 00:25:50 +03:00
Aliaksandr Valialkin
1c108fc494
app/vmselect/promql: add lifetime(q[d]) function, which returns the lifetime of q over d in seconds.
...
This function is useful for determining time series lifetime.
`d` must exceed the expected lifetime of the time series, otherwise
the function would return values close to `d`.
2019-08-16 11:59:32 +03:00
Aliaksandr Valialkin
d6b5ed6d39
app/vmselect/promql: fix corner-case calculation for ideriv
2019-08-16 11:59:28 +03:00
Aliaksandr Valialkin
639b14e8ab
app/vmselect/promql: properly handle corner cases for rollup functions
2019-08-15 23:29:59 +03:00
Aliaksandr Valialkin
483de1cc06
lib/workingsetcache: automatically detect when it is better to double cache capacity
2019-08-15 22:57:55 +03:00
Aliaksandr Valialkin
9e0896055d
deployment/docker: switch Go builder from go1.12.7 to go1.12.8
2019-08-15 20:43:36 +03:00
Aliaksandr Valialkin
5bb61b8b38
vendor: update github.com/valyala/gozstd from v1.5.1 to v1.6.0
2019-08-15 12:56:42 +03:00
Aliaksandr Valialkin
75a58dee02
README.md: typo fix
2019-08-14 03:28:07 +03:00
Aliaksandr Valialkin
5b41122292
lib/storage: properly cache tagFilters -> TSIDs entries from historical index
2019-08-14 02:29:58 +03:00
Aliaksandr Valialkin
964c296f96
lib/storage: compress contents of cache for tagFilters -> TSIDs
...
This should increase cache capacity
2019-08-14 02:29:52 +03:00
Aliaksandr Valialkin
9ecb994671
app/vmselect/promql: store compressed results in the cache
...
This should increase rollup results cache capacity.
2019-08-14 02:29:45 +03:00
Aliaksandr Valialkin
9d41e0dcae
README.md: reduce the recommended max_shards value according to test results
...
See https://github.com/prometheus/prometheus/issues/5803#issuecomment-520973662
2019-08-13 22:33:10 +03:00
Aliaksandr Valialkin
09fc6e22e5
all: use workingsetcache instead of fastcache
...
This should reduce the amount of RAM required for processing time series
with non-zero churn rate.
The previous cache behavior can be restored with `-cache.oldBehavior` command-line flag.
2019-08-13 21:39:34 +03:00
Aliaksandr Valialkin
99c37c2c96
lib/fs: add test for IsTemporaryFileName
2019-08-13 21:33:45 +03:00
Aliaksandr Valialkin
06c2c25544
Makefile: consistency renaming: check_all -> check-all
2019-08-13 21:31:19 +03:00
Aliaksandr Valialkin
ec1b185991
lib/storage: remove broken BenchmarkIndexDBSearchTSIDs
2019-08-13 20:22:08 +03:00
Aliaksandr Valialkin
0967683ae9
lib: move common code for creating flock.lock file into fs.CreateFlockFile
2019-08-13 01:45:46 +03:00
Aliaksandr Valialkin
ad8a43b4e1
README.md: fix metric names in influx line protocol example
...
Default separator between `measurement` and `field_name` is `_`.
2019-08-12 15:58:34 +03:00
Aliaksandr Valialkin
7346982763
README.md: mention that Influx line protocol accepts timestamps in nanoseconds by default
2019-08-12 15:31:52 +03:00
Aliaksandr Valialkin
5d8d110010
lib/fs: atomically create file with the given contents on WriteFileAtomically
...
This should prevent from `transaction` and `metadata.json` files corruption
on unclean shutdown such as OOM, `kill -9`, power loss, etc.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/148
2019-08-12 15:02:55 +03:00
Aliaksandr Valialkin
0b488f1e37
lib/storage: do not change timestamps to constant rate if values are constant or have constant delta
...
This breaks the original timestamps, which results in issues like
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/120 and
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/141 .
2019-08-06 15:40:07 +03:00
Aliaksandr Valialkin
b8bb74ffc6
app/vmstorage: add vm_concurrent_addrows_* metrics for tracking concurrency for Storage.AddRows calls
...
Track also the number of dropped rows due to the exceeded timeout
on concurrency limit for Storage.AddRows. This number is tracked in `vm_concurrent_addrows_dropped_rows_total`
2019-08-06 15:08:33 +03:00
Aliaksandr Valialkin
5c9e48417a
vendor: update github.com/VictoriaMetrics/metrics to v1.7.1
2019-08-05 19:21:36 +03:00
Aliaksandr Valialkin
5c83f8e203
app: add vm_concurrent_ metrics for visibility in concurrency limiters for vminsert and vmselect
2019-08-05 18:30:57 +03:00
Aliaksandr Valialkin
05713469c3
vendor: make vendor-update
2019-08-05 10:33:21 +03:00
Aliaksandr Valialkin
8822079b77
lib/storage: properly reset partSearch.fetchData in partSearch.reset
2019-08-05 09:56:06 +03:00
Aliaksandr Valialkin
99e048c9df
app/vmselect: allow passing match[], start and time to /api/v1/label/<label_name>/values
...
`/api/v1/label/<label_name>/values?match[]=q` emulates emulates `label_values(q, <label_name>)`
call in Grafana templating.
2019-08-04 23:09:21 +03:00
Aliaksandr Valialkin
47e4b50112
app/vmselect: optimize /api/v1/series by skipping storage data
...
Fetch and process only time series metainfo.
2019-08-04 23:01:28 +03:00
Aliaksandr Valialkin
241170dc05
app/vmselect/prometheus: prevent from fetching and scanning all the data on /api/v1/searies call by default
2019-08-04 19:42:36 +03:00
Aliaksandr Valialkin
1c69f4eadc
app/vmselect/promql: tune automatic window adjustement
...
Increase the windows adjustement for small scrape intervals,
since they usually have higher jitter.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/139
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/134
2019-08-04 19:34:05 +03:00
Aliaksandr Valialkin
8d93b15b86
app/vmselect/promql: further increase the allowed jitter for scrape interval
...
Real-world production data shows higher jitter than 1/8 of scrape interval.
This may results in gaps on the graph. So increase the allowed jitter to 1/4
of scrape interval in order to reduce the probability of gaps on the graphs
over time series with high jitter for scrape_interval.
2019-08-02 20:10:23 +03:00
Aliaksandr Valialkin
fcc166622a
README.md: mention that monitoring is recommended for VictoriaMetrics
2019-08-02 15:27:10 +03:00
Aliaksandr Valialkin
a9f39168d2
app/vminsert/influx: round automatically generated timestamp according to the given precision arg
2019-08-02 00:24:06 +03:00
Aliaksandr Valialkin
f090b2e917
app/vmselect/promql: tolerate higher jitter in scrape interval
...
Allow jitter for up to 1/8 instead of 1/16 for the scrape interval.
This should imrpove graphs when `step` is smaller than the `scrape_interval`.
2019-08-01 23:26:00 +03:00
Aliaksandr Valialkin
10caad4728
lib/decimal: modernize tests a bit
2019-07-31 21:10:03 +03:00
Aliaksandr Valialkin
3b90c2a99a
Add CODE_OF_CONDUCT.md
2019-07-31 15:44:26 +03:00
Aliaksandr Valialkin
57ec4f5f92
Update issue templates
...
Add a template for feature request
2019-07-31 15:41:57 +03:00
Aliaksandr Valialkin
01cb15b6f5
Update issue templates
...
Add a template for bug report.
2019-07-31 15:39:41 +03:00
Aliaksandr Valialkin
b9256511e8
README.md: add join slack badge
2019-07-31 15:27:11 +03:00
Aliaksandr Valialkin
3a38b23fa3
app/vmselect/promql: add vm_slow_queries_total metric for counting slow queries
...
The query is slow if its execution time exceeds `-search.logSlowQueryDuration`
2019-07-31 03:36:37 +03:00
Aliaksandr Valialkin
8bd6f1f6df
app/vmselect/promql: return NaN from histogram_quantile if at least a single bucket is broken
2019-07-31 01:18:07 +03:00
Aliaksandr Valialkin
4aaa5c2efc
app/vmselect/promql: allow adjusting window for default rollup function
...
Default rollup function is `last_over_time`. It must support adjusting
the provided window in order to prevent from gaps on the graph
for window values smaller than scrape interval.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/134
2019-07-31 00:45:54 +03:00
Aliaksandr Valialkin
10f5a26bec
app/vmselect/promql: return NaN values if invalid bucket counts are passed to histogram_quantile
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/136
2019-07-30 22:05:10 +03:00
Aliaksandr Valialkin
c14fd6c43f
lib/storage: typo fixes after a77e88db7d
2019-07-30 15:38:52 +03:00
Aliaksandr Valialkin
a77e88db7d
lib/storage: fix matching against tag filter with empty name
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/137
2019-07-30 15:15:09 +03:00
Aliaksandr Valialkin
aad7236e5d
README.md: formatting fixes
2019-07-28 22:02:42 +03:00
Artem Navoiev
5e5de6be9a
Create CONTRIBUTING.md
2019-07-28 20:42:32 +03:00
Anton Patsev
90cf6f3fcb
change /usr/bin/victoriametrics to /usr/bin/victoria-metrics-prod ( #132 )
2019-07-28 20:40:46 +03:00
Artem Navoiev
8e3d69219f
Add roadmap ( #130 )
...
* Add roadmap
* Fix typos
2019-07-28 18:39:39 +01:00
Aliaksandr Valialkin
b842a2eccc
README.md: mention that VictoriaMetrics needs free disk space for background merges
2019-07-28 12:26:16 +03:00
Aliaksandr Valialkin
afcc7fb167
app/vmselect/netstorage: improve error message when reading data blocks from storage
...
Mention the block number in the error. This should simplify troubleshooting in this code.
2019-07-28 12:12:35 +03:00
Aliaksandr Valialkin
57a57c711a
package: changed the remaining /usr/local/bin to /usr/bin
...
This is a follo-up after 68f260d878
2019-07-28 11:08:07 +03:00
Anton Patsev
68f260d878
change /usr/local/bin to /usr/bin ( #131 )
2019-07-28 11:06:24 +03:00
Aliaksandr Valialkin
1eade9b358
app/vminsert: add vm_rows_per_insert summary metric
...
This metric should help tuning batch sizes on clients writing data to VictoriaMetrics
2019-07-27 13:21:46 +03:00
Aliaksandr Valialkin
7e8747f6ed
README.md: add a section for production ARM build
2019-07-26 22:34:31 +03:00
Aliaksandr Valialkin
0168a1b658
package: various fixes
...
- Use `-prod` binaries instead of development binaries for both deb and rpm packages.
- Fix binary directory from /usr/sbin to /usr/local/bin as outlined in package/victoria-metrics.service
- Fix binary name from `victoriametrics` to `victoria-metrics-prod` in package/victoria-metrics.service
2019-07-26 22:31:04 +03:00
Aliaksandr Valialkin
bf6cbb762c
app/vminsert: improve error messages for Influx, OpenTSDB and Graphite parsing
...
Include in the error message the line which failed to parse.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/127
2019-07-26 22:08:52 +03:00
Kostya Vasilyev
6aeac37fc5
pick up .service file from ./rpm ( #126 )
...
* pick up .service file from ./rpm
* feedback from @patsevanton
* remove 'start' from ExecStart command
2019-07-26 21:56:30 +03:00
Aliaksandr Valialkin
c98725db55
app/vmstorage: consistency renaming for ignored rows metrics
...
vm_too_big_timestamp_rows_total -> vm_rows_ignored_total{reason="big_timestamp"}
vm_too_small_timestamp_rows_total -> vm_rows_ignored_total{reason="small_timestamp"}
2019-07-26 20:02:06 +03:00
Anton Patsev
d8043f7161
Change default value storageDataPath ( #125 )
...
Fixes #124 .
2019-07-26 14:13:55 +03:00
Aliaksandr Valialkin
f586e1f83c
lib/storage: add metrics for calculating skipped rows outside the retention
...
The metrics are:
- vm_too_big_timestamp_rows_total
- vm_too_small_timestamp_rows_total
2019-07-26 14:11:01 +03:00
Kostya Vasilyev
d1132bb188
deb packaging fixes: 1) stop the service in prerm 2) reload services in postrm ( #123 )
2019-07-26 12:38:59 +03:00
Aliaksandr Valialkin
915fb6df79
README.md: mention that arm builds can run on Raspberry Pi
2019-07-26 12:28:40 +03:00
Kostya Vasilyev
89eb6d78a4
RPM packaging ( #122 )
2019-07-25 23:47:41 +03:00
Aliaksandr Valialkin
17096b5750
app/vmselect/promql: return NaN from count() over zero time series
...
This aligns `count` behavior with Prometheus.
2019-07-25 22:02:30 +03:00
Aliaksandr Valialkin
66efa5745f
app/vmselect/promql: properly calculate incremental aggregations grouped by __name__
...
Previously the following query may fail on multiple distinct metric names match:
sum(count_over_time{__name__!=''}) by (__name__)
2019-07-25 21:53:20 +03:00
Anton Patsev
106ab78a47
Add package/rpm/ ( #121 )
2019-07-25 11:21:55 +03:00
Aliaksandr Valialkin
8aa474d685
README.md: move how to build VictoriaMetrics section to the bottom
...
This streamlines `getting started` experience
2019-07-25 11:17:30 +03:00
Aliaksandr Valialkin
9e059bb330
README.md: add links to ARM build and Pure Go build in TOC
2019-07-25 11:05:35 +03:00
Aliaksandr Valialkin
2346335ea6
README.md: moved advanced topics to the bottom, so they don't clutter getting started workflow
2019-07-25 11:00:41 +03:00
Aliaksandr Valialkin
b339890dca
lib/encoding/zstd: go fmt
2019-07-25 01:37:16 +03:00
Aliaksandr Valialkin
6c4ca89d75
lib/encoding/zstd: disable CRC checks in pure Go build
...
This should give slightly better compression and decompressions performance.
Additionally this shaves off 4 bytes per each compressed block.
2019-07-24 19:17:16 +03:00
Roman Khavronenko
f0fe7b5ad6
fix typo ( #117 )
2019-07-24 07:48:28 +01:00
Aliaksandr Valialkin
22ed4e7fd4
vendor: make vendor-update
2019-07-23 20:00:19 +03:00
Aliaksandr Valialkin
162f1fb1b7
all: small updates after PR #114
2019-07-23 19:54:50 +03:00
Aliaksandr Valialkin
d07f616609
lib/encoding: small fixes in tests after the PR #114
2019-07-23 19:37:51 +03:00
Roman Khavronenko
5bf4e5ffb5
all: add Pure Go build (pull request #114 )
...
Updates #94
2019-07-23 19:26:39 +03:00
Kostya Vasilyev
8c3629a892
Debian packaging ( #116 )
...
* initial commit of deb packaging
* Incorporated feedback from @valyala:
- Put data directory under /var/lib
- More beef in systemd file
- Packaging for arm64
- Package all target which builds and packages both amd64 and arm64
* Remove PIDFile from systemd unit, useless
* per PR feedback, move debian specific files into deb subdirectory
Updates #107 .
2019-07-22 17:12:48 +03:00
Aliaksandr Valialkin
ea07cf68ba
README.md: add querying Graphite data section
...
Mention that Graphite data may be read either via Prometheus querying API
or via go-graphite/carbonapi. See https://github.com/go-graphite/carbonapi/blob/master/cmd/carbonapi/carbonapi.example.prometheus.yaml
2019-07-21 16:10:19 +03:00
Roman Khavronenko
4ee41bab43
add versioning to dashboard description ( #113 )
2019-07-21 14:34:50 +03:00
Roman Khavronenko
1273f31f19
Add CPU usage panel; rename Go runtime to Resource usage ( #112 )
...
* add CPU usage panel; rename `Go runtime` to `Resource usage`
* rm irate from CPU usage panel
Updates #92 .
2019-07-20 17:24:24 +03:00
Aliaksandr Valialkin
0f2ecde0e6
lib/encoding: improve gauge series detection
...
- Series with negative values are always gauges
- Counters may only have increasing values with possible counter resets
This should improve compression ratio for gauge series which
were previously mistakenly detected as counters.
2019-07-20 14:05:09 +03:00
Aliaksandr Valialkin
6cd77d4847
deployment: switch builder from go1.12.6 to go1.12.7
2019-07-20 12:15:05 +03:00
Roman Khavronenko
fb14f23532
mention docker-compose as option to spin up VM ( #97 )
2019-07-16 00:45:21 +03:00
Aliaksandr Valialkin
daba0cdb05
lib/netutil: do not count timeouts as network errors
2019-07-15 23:05:35 +03:00
Aliaksandr Valialkin
575d2f0a91
app/vminsert: use netutil.TCPListener for collecting network-related metrics for Graphite and OpenTSDB TCP traffic
2019-07-15 22:58:00 +03:00
Aliaksandr Valialkin
ec1b439329
README.md: expand capacity planning section a bit
2019-07-12 21:19:27 +03:00
Aliaksandr Valialkin
6a943a6a58
app/vmselect/promql: remove empty time series after applying filters like q > 0
...
This should reduce CPU and RAM usage for queries over high number of time series.
2019-07-12 19:59:27 +03:00
Aliaksandr Valialkin
998525999c
vendor: update github.com/VictoriaMetrics/metrics to v1.7.0
...
This version adds support for `process_*` metrics similar
to metrics exposed by https://github.com/prometheus/client_golang .
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/92
2019-07-12 17:22:53 +03:00
Aliaksandr Valialkin
ab88890523
app/vmselect/promql: parallelize incremental aggregation to multiple CPU cores
...
This may reduce response times for aggregation over big number of time series
with small step between output data points.
2019-07-12 15:52:22 +03:00
Aliaksandr Valialkin
374d681848
README.md: clarify that Prometheus replicates data to remote storage
2019-07-12 02:51:04 +03:00
Aliaksandr Valialkin
e75d5f47c4
lib/storage: remove unused function isTooBigTimeRangeForDateMetricIDs
2019-07-12 02:28:23 +03:00
Aliaksandr Valialkin
fc90ebf43c
lib/storage: do not reduce maxMetrics on time ranges exceeding maxDaysForDateMetricIDs
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/95
2019-07-12 02:20:34 +03:00
Aliaksandr Valialkin
62a7353479
app/vmselect/prometheus: set start arg in /api/v1/series to the minimum allowed time by default as Prometheus does
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/91
2019-07-11 17:10:14 +03:00
Aliaksandr Valialkin
54bd21eb4a
app/vmselect/prometheus: convert negative times to 0, since they arent supported by the storage
2019-07-11 17:07:20 +03:00
Aliaksandr Valialkin
2bd1a01d1a
lib/storage: do not pollute inverted index with data for samples outside the retention period
2019-07-11 17:04:56 +03:00
Artem Navoiev
cd4833d3d0
integration tests
2019-07-11 15:48:08 +03:00
Aliaksandr Valialkin
101fa258e5
app/vmstorage: prepare for integration tests with multiple Init / Stop cycles
2019-07-11 15:34:50 +03:00
Aliaksandr Valialkin
d031e04023
lib/storage: use fast path for orSuffix when searching for metricIDs against plain tag value
2019-07-11 14:48:37 +03:00
Aliaksandr Valialkin
43ea4ce428
lib/storage: remember and skip individual tag filters matching too many metrics
...
This saves CPU time by skipping useless matching for individual tag filters.
2019-07-11 14:48:30 +03:00
Aliaksandr Valialkin
a336bb4e22
app/vmselect/promql: reduce RAM usage for aggregates over big number of time series
...
Calculate incremental aggregates for `aggr(metric_selector)` function instead of
keeping all the time series matching the given `metric_selector` in memory.
2019-07-10 13:04:39 +03:00
Aliaksandr Valialkin
1fe6d784d8
all: consistency renaming: bytesSize -> sizeBytes
2019-07-10 00:47:36 +03:00
Aliaksandr Valialkin
55fe36149c
app/vmselect/promql: mention -search.logSlowQueryDuration flag value in the slow query log message
2019-07-10 00:41:24 +03:00
Aliaksandr Valialkin
9203170eb2
app/vmselect/promql: extract rmoeveGroupTags function for removing unneeded tags from MetricName according to the given modifierExpr
2019-07-09 23:20:48 +03:00
Aliaksandr Valialkin
2db685c19c
app/vmselect/promql: properly preserve metric name after applying functions in any case from transformFuncsKeepMetricGroup
2019-07-09 23:10:35 +03:00
Aliaksandr Valialkin
6ddfb06b52
README.md: add alerting section
2019-07-08 22:45:34 +03:00
Aliaksandr Valialkin
40a6c0d672
app/vmselect/prometheus: typo fix
2019-07-07 23:34:23 +03:00
Aliaksandr Valialkin
1371024747
app/vmselect/prometheus: handle minTime and maxTime values that may be set by Promxy or Prometheus client
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/88
2019-07-07 21:53:48 +03:00
Roman Khavronenko
c27c6de297
add panels for Active time series, Disk space usage (datapoints) and Disk space usage (index) ( #87 )
2019-07-04 22:15:24 +03:00
Aliaksandr Valialkin
0c629429de
README.md: clarify upgrading and applying new config sections
2019-07-04 20:07:00 +03:00
Aliaksandr Valialkin
4dbd642c86
app/vmselect/promql: remove empty timeseries left after topk call
2019-07-04 19:42:39 +03:00
Aliaksandr Valialkin
56c154f45b
all: add vm_data_size_bytes metrics for easy monitoring of on-disk data size and on-disk inverted index size
2019-07-04 19:42:30 +03:00
Aliaksandr Valialkin
8d83dcf332
README.md: update community and contributions section
2019-07-04 09:36:36 +03:00
Aliaksandr Valialkin
9a4b2b8315
app/vmselect/prometheus: update adjustLastPoints function
...
- Do not overwrite last points by the previous NaNs, since this may result in empty time series.
- Overwrite the last 2 points instead of 3. This should be enough in most cases.
2019-07-04 09:14:18 +03:00
Aliaksandr Valialkin
e06866005d
app/vmselect/promql: gracefully handle duplicate timestamps in irate and rollup_rate funcs
...
Previously such timestamps result in `+Inf` results. Now the previous timestamp is used
for the calculations.
2019-07-03 12:39:55 +03:00
Aliaksandr Valialkin
2c76a9c9ab
README.md: enumerate the most interesting metrics exported at /metrics page
2019-07-01 23:41:08 +03:00
Aliaksandr Valialkin
b9166a60ff
app/vmselect: do not return empty time series in /api/v1/query result
2019-07-01 17:16:34 +03:00
Aliaksandr Valialkin
c7034fc51b
lib/memory: attempt #3 to determine memory limit for LXC container
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/84
2019-07-01 14:01:13 +03:00
Aliaksandr Valialkin
715c423f1a
README.md: mention Thanos vs VictoriaMetrics article
2019-07-01 12:26:47 +03:00
Aliaksandr Valialkin
ca74e29458
README.md: explain how to configure HA setup for Prometheus HA pairs
2019-06-29 19:54:46 +03:00
Aliaksandr Valialkin
a41955863a
lib/mergeset: make fmt
2019-06-29 14:25:26 +03:00
Aliaksandr Valialkin
2ecb117082
lib/storage: skip non-matching metricIDs in sortedFilter
...
This should improve performance for big sorteFilter lists.
2019-06-29 13:48:32 +03:00
Aliaksandr Valialkin
0c88afa386
lib/mergeset: speed up binarySearchKey by skipping the first item during binary search
2019-06-29 13:45:49 +03:00
Aliaksandr Valialkin
74c0fb04f3
app/vmselect/promql: consistency renaming: candlestick -> rollup_candlestick
2019-06-29 03:13:02 +03:00
Aliaksandr Valialkin
828078eb45
lib/memory: remove TestReadLXCMemoryLimit, since it doesnt work in Travis
2019-06-28 18:22:46 +03:00
Aliaksandr Valialkin
7b59466667
lib/memory: attempt #2 to determine memory limit inside LXC container
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/84
2019-06-28 18:08:15 +03:00
Aliaksandr Valialkin
79ac02ba74
README.md: clean up <img> attributes
2019-06-28 17:57:43 +03:00
Aliaksandr Valialkin
593bd35aaa
lib/memory: an attempt to read proper memory limit inside LXC container
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/84
2019-06-28 15:34:30 +03:00
Aliaksandr Valialkin
7354f10336
vendor: update github.com/VictoriaMetrics/metrics to v1.6.2
...
This fixes Summary printing for *_count and *_sum values with metric names containing labels.
2019-06-28 14:17:17 +03:00
Aliaksandr Valialkin
e8998c69a7
vendor: update github.com/VictoriaMetrics/metrics to v1.6.1
2019-06-28 14:06:49 +03:00
Aliaksandr Valialkin
55bcf60ea6
app/vmselect: fix 32bit arm build
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/83
2019-06-27 19:36:17 +03:00
Aliaksandr Valialkin
796b010139
app/vmselect: add candlestick(m[d]) func for returning open, close, low and high rollups on the given time range d
...
This function is frequently used in financial apps. See https://en.wikipedia.org/wiki/Candlestick_chart
2019-06-27 18:46:13 +03:00
Aliaksandr Valialkin
0c8a09c8e1
README.md: mention about global query view
2019-06-27 17:38:37 +03:00
Aliaksandr Valialkin
c1be1e4342
lib/storage: optimize time series search by regexp filter
...
This should improve search speed on label filters like `{foo=~"bar.+baz"}`
2019-06-27 16:17:43 +03:00
Aliaksandr Valialkin
0c8d463307
README.md: mention that Prometheus 2.10.0+ works better with remote_write
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/80
2019-06-27 00:54:48 +03:00
Jiri Tyr
e0fccc6c60
Change the default influxMeasurementFieldSeparator
2019-06-26 13:22:03 +03:00
Aliaksandr Valialkin
1f7d9a213a
app/vminsert: fix inifinite loop when reading two lines without newline in the end
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/82
2019-06-26 02:51:56 +03:00
Aliaksandr Valialkin
7ce1f73ada
README.md: add more information to rough estimation of the required resources
2019-06-26 02:20:33 +03:00
Aliaksandr Valialkin
e605315f01
README.md: add link to slack chat
2019-06-26 02:05:38 +03:00
Aliaksandr Valialkin
fcef49184b
README.md: clarify docs about Influx line protocol support
2019-06-26 00:05:09 +03:00
Aliaksandr Valialkin
844ce4731e
app/vmselect/promql: suppress error when template func is used inside modifier list. Just leave it as is
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/78
2019-06-25 20:43:22 +03:00
Aliaksandr Valialkin
683bf2a11f
lib/storage: make sure non-nil args are passed to openIndexDB
2019-06-25 20:10:04 +03:00
Aliaksandr Valialkin
eb2283a029
lib/storage: reduce too big maxMetrics in getTagFilterWithMinMetricIDsCountAdaptive
...
This should improve performance on inverted index search for big amount of unique time series
when big -search.maxUniqueTimeseries is set.
2019-06-25 19:55:27 +03:00
Aliaksandr Valialkin
e8377011ab
lib/storage: free up memory from caches owned by indexDB when it is deleted
2019-06-25 14:42:44 +03:00
Aliaksandr Valialkin
33ea2120c3
lib/storage: use unversioned keys for tag cache in extDB
...
Data in ExtDB cannot be changed, so it is OK to use unversioned keys for tag cache.
This should improve performance for index lookups over big amount of time series.
2019-06-25 13:08:58 +03:00
Aliaksandr Valialkin
cf63669303
lib/storage: skip searching in extDB if it doesn't contain items for the given time range
...
This should improve inverted index search performance for big amount
of unique time series when the search is performed only on recent data.
2019-06-25 13:00:37 +03:00
Aliaksandr Valialkin
feacfffe89
app/vmselect/promql: increase default value for -search.maxPointsPerTimeSeries from 10k to 30k
...
This may be required for subqueries with small steps. See https://github.com/VictoriaMetrics/VictoriaMetrics/issues/77
2019-06-24 22:53:18 +03:00
Aliaksandr Valialkin
4bb738ddd9
app/vmselect/promql: adjust value returned by linearRegression to the end of time range like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/71
2019-06-24 22:45:58 +03:00
Aliaksandr Valialkin
90e72c2a42
app/vmselect/promql: add sum2 and sum2_over_time, geomean and geomean_over_time funcs.
...
These functions may be useful for statistic calculations.
2019-06-24 16:44:44 +03:00
Aliaksandr Valialkin
ccd8b7a003
README.md: mention how to recover from broken parts due to disk errors
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/76
2019-06-24 14:17:58 +03:00
Aliaksandr Valialkin
d32845781e
README.md: remove unused TOC items
2019-06-24 14:12:07 +03:00
Aliaksandr Valialkin
af2ceaaa0b
lib/storage: mention source parts on merge error
...
This should improve determining broken source part.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/76
2019-06-24 14:08:43 +03:00
Aliaksandr Valialkin
61926bae01
app/vmselect/promql: adjust the provided window only for range functions with dt in denominator
...
This should fix range function calculations such as `changes(m[d])` where `d` is smaller
than the scrape interval.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/72
2019-06-23 19:27:31 +03:00
Aliaksandr Valialkin
ee13256f74
app/vmselect/promql: use deriv_fast instead of deriv in ttf, since deriv calculations have been changed recently
2019-06-23 15:54:18 +03:00
Aliaksandr Valialkin
3b3b2f1e6e
app/vmselect/promql: adjust ttf calculation, so deriv(freev) for freev=m[d] could be properly calculated
2019-06-23 14:31:19 +03:00
Aliaksandr Valialkin
c9cbf5351c
vendor: update github.com/valyala/gozstd to v1.5.1
2019-06-22 00:14:19 +03:00
Aliaksandr Valialkin
146c6e1f72
app/vmselect/promql: typo fixes in comments
2019-06-21 23:22:59 +03:00
Aliaksandr Valialkin
d261fa2885
app/vmselect/promql: add deriv_fast function for calculating fast derivative
...
`deriv_fast` calculates derivative based on the first and the last point on the interval
instead of calculating linear regression based on all the data points on the interval.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/73
2019-06-21 23:05:39 +03:00
Aliaksandr Valialkin
5b47c00910
app/vmselect/promql: use linear regression in deriv func like Prometheus does
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/73
2019-06-21 22:59:46 +03:00
Aliaksandr Valialkin
9e1119dab8
app/vmselect/promql: ajdust data model to the model used in Prometheus
...
Do not take into account data points on the range `[timestamp .. timestamp+step)`
when calculating value on the given `timestamp`.
Use only data points from the past when performing these calculations like Prometheus does.
This should reduce discrepancies between results returned by VictoriaMetrics
and results returned by Prometheus.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/72
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/71
2019-06-21 21:54:48 +03:00
Aliaksandr Valialkin
47a3228108
app/vmselect/promql: do not strip __name__ form time series after binary comparison operation
...
Example:
foo > 10
Would leave `foo` name for all the matching time series on the left.
2019-06-21 13:09:38 +03:00
Aliaksandr Valialkin
e88a03323a
all: initial stubs for Windows support; see https://github.com/VictoriaMetrics/VictoriaMetrics/issues/70
2019-06-20 20:07:10 +03:00
Aliaksandr Valialkin
b75630fcf4
Makefile: enable golangci-lint in make check_all
2019-06-20 14:52:58 +03:00
Aliaksandr Valialkin
80db24386e
lib/storage: typo fixes found by golangci-lint; updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:37:55 +03:00
Aliaksandr Valialkin
296c14317f
lib/netutil: remove unused TCPListener.name; updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:36:15 +03:00
Aliaksandr Valialkin
973e4b5b76
app/vmselect/promql: remove unused func keepLastValue; updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:35:11 +03:00
Aliaksandr Valialkin
7aadec8e3c
app/vmselect/promql: typo fix; updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:33:47 +03:00
Aliaksandr Valialkin
45fc8cb72f
Makefile: add make golangci-lint rule for running golangci-lint run; updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:30:55 +03:00
Aliaksandr Valialkin
4b2523fb40
app/vminsert/opentsdb: remove unused const maxReadPacketSize; update https://github.com/VictoriaMetrics/VictoriaMetrics/issues/69
2019-06-20 14:30:06 +03:00
Aliaksandr Valialkin
70ba36fa37
app/vmselect/prometheus: return better error messages on missing args to /api/v1/*
2019-06-20 14:07:55 +03:00
Aliaksandr Valialkin
a78b3dba7f
app/vmstorage: add vm_cache_entries{type="storage/hour_metric_ids"} metric for tracking active time series count
2019-06-19 18:36:47 +03:00
Aliaksandr Valialkin
a9cfca6a72
README.md: add max_shards: 100 to the recommended Prometheus config
...
Prometheus establishes a connection per shard in remote_write config.
By default it establishes up to 1000 connections to remote storage (max_shards: 1000).
This is quite big, so set `max_shards: 100` in the recommmended Prometheus config.
2019-06-19 17:48:09 +03:00
Aliaksandr Valialkin
710d6c33ea
lib/prompb: remove superflouos bytes copying in ReadSnappy
2019-06-18 20:37:51 +03:00
Aliaksandr Valialkin
a8d4224828
app/vminsert/graphite: allow skipping timestamps in Graphite plaintext protocol
...
In this case VictoriaMetrics uses the ingestion time as a timestamp.
2019-06-18 19:04:04 +03:00
Aliaksandr Valialkin
341bed4822
README.md: mention that arbitrary number of lines may be sent in a single request via supported ingestion protocols
2019-06-18 18:59:12 +03:00
Aliaksandr Valialkin
5982e94c94
vendor: update golang.org/x/sys
2019-06-18 16:19:26 +03:00
Aliaksandr Valialkin
6d6c9eb1f8
lib/flagutil: remove unused package
2019-06-18 10:43:55 +03:00
Aliaksandr Valialkin
86d3d907a5
app/vminsert/influx: add -influxSkipSingleField flag for using {measurement} instead of {measurement}{separator}{field_name} for Influx lines with a single field
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/66
2019-06-17 19:05:57 +03:00
Aliaksandr Valialkin
269285848f
app/vminsert/influx: add -influxMeasurementFieldSeparator flag for the ability to change separator for {measurement}{separator}{field_name} metric name
2019-06-14 10:00:12 +03:00
Aliaksandr Valialkin
47e1e5eb4b
deployment/docker: switch builder from go1.12.5 to go1.12.6
2019-06-14 09:32:06 +03:00
Aliaksandr Valialkin
d2c801029b
lib/storage: persist metric ids for the current and the previous hour on graceful shutdown
...
This should improve performance after restart when the db contains a lot of time series
with high time series churn (i.e. metrics from Kubernetes with many pods and frequent deployments)
2019-06-14 07:55:14 +03:00
Aliaksandr Valialkin
beb479b8f1
app/vmselect/promql: use dynamic limit on memory for concurrent queries
2019-06-12 23:18:44 +03:00
Aliaksandr Valialkin
611c4401f8
README.md: mention about multi-tenancy
2019-06-12 21:30:36 +03:00
Aliaksandr Valialkin
a8db528930
app/vmselect/promql: merge non-overlapping duplicate time series in group_left and group_right joins
2019-06-12 20:32:32 +03:00
Aliaksandr Valialkin
15613e5338
app/vmselect/promql: swap binary operation with modifier in the error message for improved readability
2019-06-12 17:14:39 +03:00
Aliaksandr Valialkin
3237d0309c
app/vmselect/promql: list a sample of duplicate time series in the error message for group_left or group_right
...
This should improve troubleshooting for complex queries involving `group_left` and `group_right` modifiers.
2019-06-12 16:57:37 +03:00
Aliaksandr Valialkin
26f8d7ea1b
lib/fs: sync parent dir in MustRemoveAll only if it exists
...
The parent directory may be non-existing when the deleted directory
didn't exist before the MustRemoveAll call
2019-06-12 02:14:44 +03:00
Aliaksandr Valialkin
419197ba08
lib/fs: consolidate *RemoveAll* funcs into a single MustRemoveAll func
...
The func syncs parent dir in order to persist directory removal
in the event of power loss
2019-06-12 01:53:46 +03:00
Aliaksandr Valialkin
a4b4db9bf6
README.md: add a chapter about downsampling
2019-06-12 01:32:26 +03:00
Aliaksandr Valialkin
c1276edab5
lib/fs: panic with fatal error when directories cannot be removed
...
Unremoved directories may lead to inconsistent data directory,
so VictoriaMetrics will fail to start next time.
So panic on the first error when trying to remove directory in order
to simplify recover process.
2019-06-12 01:20:54 +03:00
Aliaksandr Valialkin
2322c9a45a
lib/fs: attempt #2 to work around NFS issue with directory removal
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/61
2019-06-12 01:07:05 +03:00
Aliaksandr Valialkin
89b928ff24
vendor: update github.com/VictoriaMetrics/fastcache to v1.5.1
2019-06-11 23:56:08 +03:00
Aliaksandr Valialkin
935bfd7a18
lib/fs: consistency renaming SyncPath -> MustSyncPath, since it doesnt return error
2019-06-11 23:13:49 +03:00
Aliaksandr Valialkin
3dd36b8088
lib/fs: make sure the created directory remains visible in the fs in the event of power loss
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/63
2019-06-11 23:08:09 +03:00
Aliaksandr Valialkin
afb964670a
lib/fs: use filepath.Dir instead of filepath.Split, since the filename is unused
2019-06-11 22:54:26 +03:00
Aliaksandr Valialkin
20fc0e0e54
lib/{storage,mergeset}: sync filenames inside part when finalizing the part
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/63
2019-06-11 21:51:13 +03:00
Aliaksandr Valialkin
4d9f088526
README.md: add examples on how to write data with Graphite and OpenTSDB protocols
2019-06-11 21:24:32 +03:00
Aliaksandr Valialkin
82d1707861
README.md: add missing port to example urls
2019-06-11 21:05:24 +03:00
Aliaksandr Valialkin
70d20ce8de
README.md: use proper urls for single-node version in examples
2019-06-11 20:33:52 +03:00
Aliaksandr Valialkin
723bf1af7f
README.md: add example on how to write data with Influx line protocol to VictoriaMetrics
2019-06-11 20:31:25 +03:00
Aliaksandr Valialkin
ac7b186f13
all: try hard removing directory with contents
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/61
2019-06-11 01:57:59 +03:00
Roman Khavronenko
cd1bc32158
convert dashboard for provisioning ( #62 )
2019-06-11 01:07:09 +03:00
Aliaksandr Valialkin
1c33b5937e
app/vmselect/promql: prevent from count_values explosion of timeseries, which could result in OOM
2019-06-11 01:03:13 +03:00
Aliaksandr Valialkin
8bb6bc986d
app/vmselect/promql: skip superflouos timestamps copying in count_values
2019-06-11 00:44:01 +03:00
Aliaksandr Valialkin
d2be567482
app/vmselect/promql: remove superflouos timeseries copy in histogram_quantile func
2019-06-11 00:39:41 +03:00
Aliaksandr Valialkin
7e7d4d5275
app/vmselect/promql: remove superflouos timeseries copy in union func
2019-06-11 00:35:20 +03:00
Aliaksandr Valialkin
bf9782eaf6
app/vmselect/promql: skip NaN values in count_values func
2019-06-10 22:42:32 +03:00
Aliaksandr Valialkin
cbe692f0e2
app/vmselect: add /api/v1/labels/count handler for quick detection of labels with the maximum number of distinct values
2019-06-10 19:55:38 +03:00
Aliaksandr Valialkin
7b6623558f
lib/storage: skip adaptive searching for tag filter matching the minimum number of metrics if the identical previous search didn't found such filter
...
This should improve speed for searching metrics among high number of time series
with high churn rate like in big Kubernetes clusters with frequent deployments.
2019-06-10 14:07:39 +03:00
Aliaksandr Valialkin
a1351bbaee
lib/storage: factor out getTagFilterWithMinMetricIDsCountAdaptive from updateMetricIDsForTagFilters
2019-06-10 13:26:44 +03:00
Aliaksandr Valialkin
b4d707d9bb
lib/storage: give clearer names to more functions
2019-06-10 13:01:23 +03:00
Aliaksandr Valialkin
bee7298f81
lib/storage: give more clear names to functions
2019-06-10 12:50:44 +03:00
Aliaksandr Valialkin
dbd217b8f0
lib/storage: test GetSeriesCount
2019-06-10 12:43:34 +03:00
Aliaksandr Valialkin
4d936b1524
lib/storage: make getSeriesCount func indexSearch method
2019-06-10 12:29:11 +03:00
Aliaksandr Valialkin
7354090aad
app/vmstorage: add missing _total suffixes to newly added metrics
2019-06-09 22:11:36 +03:00
Aliaksandr Valialkin
d37924900b
lib/storage: optimize time series lookup for recent hours when the db contains many millions of time series with high churn rate (aka frequent deployments in Kubernetes)
2019-06-09 19:13:56 +03:00
Aliaksandr Valialkin
c0baa977cf
app/vminsert/concurrencylimiter: typo fix in the error message
2019-06-08 22:43:33 +03:00
Aliaksandr Valialkin
f4252f87e6
app/vminsert: really fix #60
...
ReadLinesBlock may accept dstBuf with non-zero length. In this case the last line without trailing newline isn't read.
Fix this by comparing len(dstBuf) to 0 instead of its original length.
2019-06-07 23:37:03 +03:00
Aliaksandr Valialkin
0b78d228d2
app/vminsert: properly read trailing line without newline in the end
...
This fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/60
2019-06-07 23:17:59 +03:00
Aliaksandr Valialkin
0371c216a7
deployment/docker: move victoriametrics single-node docker image from valyala/victoria-metrics to victoriametrics/victoria-metrics docker hub path
2019-06-07 11:52:53 +03:00
Aliaksandr Valialkin
c1f18ee48d
app/vmselect/promql: properly handle {__name__ op "string"} queries
...
This has been broken in 7294ef333ad26f4f6578b783e97649e58b1f8945 .
2019-06-07 02:02:04 +03:00
Roman Khavronenko
fbd7044b2b
Dashboard update ( #57 )
...
* split "pending datapoints" by storage and index pending entities
* update provisioned dVM dashboard
2019-06-07 01:31:45 +03:00
Roman Khavronenko
2afe511d80
Setup Grafana provisioning for docker-compose setup ( #50 )
...
* setup Grafana provisioning for docker-compose setup
* review fixes
2019-06-06 23:37:44 +03:00
Seua Polyakov
f4e63cd070
Add SIGINT as stopsignal to docker file ( #54 )
...
Add sigint as stopsignal to docker file. You can find more here: https://docs.docker.com/engine/reference/builder/#usage
With this change, the main process inside the container will receive SIGINT, and after a grace period, SIGKILL.
2019-06-06 22:36:21 +03:00
Aliaksandr Valialkin
667115a5c7
app/vmselect/prometheus: report about incorrect time or duration instead of silently using the default value
...
This should prevent from incorrect usage of the querying API.
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/52
2019-06-06 22:18:18 +03:00
Aliaksandr Valialkin
1458450dba
app/vmselect/promql: return the correct time series from quantile
...
Previously arbitrary time series could be returned from `quantile`
depending on sort order for the last data point in the selected range.
Fix this by returning the calculated time series.
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/55
2019-06-06 17:07:31 +03:00
Aliaksandr Valialkin
5a5ba749f2
README.md: add an example on how Influx line protocol is converted into Prometheus data points
2019-06-06 16:08:29 +03:00
Aliaksandr Valialkin
a3e26de45e
lib/procutil: typo fix in comment to WaitForSigterm
2019-06-04 17:31:47 +03:00
Aliaksandr Valialkin
53ea90865d
app/vmselect/promql: add -search.disableCache flag for disabling response caching
...
This may be useful for data back-filling, when the response caching
could interfere badly with newly added data points with timestamps
in the past.
2019-06-04 17:30:45 +03:00
Aliaksandr Valialkin
17f0a53068
app/vminsert: explain that /query request emulation is required for TSBS benchmark
2019-06-03 18:40:27 +03:00
Anton Patsev
b03bdb32ff
Prettify Table of contents ( #47 )
2019-06-03 17:31:15 +03:00
Aliaksandr Valialkin
15f59c6df9
deployment/docker: remove trailing whitespace
2019-06-03 14:53:08 +03:00
Artem Navoiev
da45a20491
docker compose for VM
2019-06-03 09:57:33 +02:00
Roman Khavronenko
5859bb9556
Add grafana dashboard for VM ( #46 )
2019-06-03 00:25:07 +03:00
Aliaksandr Valialkin
28f6c36ab4
lib/storage: tune updating a map with today`s metric ids
...
- Increase update iterval from 1s to 10s. This should reduce CPU usage
for large amounts of metric ids with constant churn.
- Reduce pendingTodayMetricIDsLock lock duration during the update.
2019-06-02 21:58:16 +03:00
Aliaksandr Valialkin
4794f894a4
lib/storage: speed up checking metricID existence in the list for the current date
2019-06-02 18:34:08 +03:00
Aliaksandr Valialkin
c7280ba61a
vendor: update deps with make vendor-update
2019-06-01 23:39:58 +03:00
Aliaksandr Valialkin
fbd8b03f15
README.md: fixed the link to yum repository source codes
2019-06-01 13:55:44 +03:00
Aliaksandr Valialkin
d17a47e3e0
README.md: add setting up service chapter
2019-05-31 23:34:09 +03:00
Aliaksandr Valialkin
d6862a2d97
README.md: mention that VictoriaMetrics works with time series data from Kubernetes
2019-05-31 22:53:35 +03:00
Aliaksandr Valialkin
f2cf5d8e36
app/vmselect/promql: allow escaping identifiers with \ and \xXX
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/42
2019-05-31 17:35:17 +03:00
Aliaksandr Valialkin
27f0d098bd
app/victoria-metrics: add make victoria-metrics-arm64 rule for building GOARCH=arm64 binary
2019-05-29 23:07:14 +03:00
Aliaksandr Valialkin
a51ff2c6cb
README.md: add LICENSE shield
2019-05-29 14:09:36 +03:00
Aliaksandr Valialkin
56b952c456
app/vminsert: add -maxConcurrentInserts command-line flag for limiting the number of concurrent inserts
2019-05-29 12:41:23 +03:00
Aliaksandr Valialkin
61bad1e07e
Makefile: run go vet with -mod=vendor in order to disable downloading vendored deps
2019-05-29 01:38:13 +03:00
Artem Navoiev
be97f764f5
[ci-ci] enable CI ( #39 )
2019-05-29 01:32:49 +03:00
Artem Navoiev
a576d1f5d3
README.md: add links to slack and telegrams ( #40 )
2019-05-29 01:30:37 +03:00
Aliaksandr Valialkin
968d094524
app/vminsert: reduce memory usage for Influx, Graphite and OpenTSDB protocols
...
Do not buffer per-connection data and just store it as it arrives
2019-05-28 18:47:23 +03:00
Aliaksandr Valialkin
e307a4d92c
lib/timerpool: use timer pool in concurrency limiters
...
This should reduce the number of memory allocations in highly loaded system
2019-05-28 17:20:10 +03:00
Aliaksandr Valialkin
0eae39daa7
app/vminsert: properly reset InsertCtx.mrs - they must be empty after Reset call
2019-05-28 16:08:01 +03:00
Aliaksandr Valialkin
437e0b2300
README.md: typo fix
2019-05-27 21:37:48 +03:00
Aliaksandr Valialkin
4b3af728ea
README.md: add steps for restoring from a snapshot
2019-05-27 20:36:51 +03:00
Aliaksandr Valialkin
4a12c4c982
README.md: add Third-party contributions section
2019-05-27 20:23:39 +03:00
Anton Patsev
2e75efb64e
README.md: add unofficial yum repository ( #37 )
2019-05-27 20:19:54 +03:00
Aliaksandr Valialkin
25900162f6
Makefile: add -mod=vendor to go test, so tests use external deps from vendor folder
2019-05-27 00:35:46 +03:00
Aliaksandr Valialkin
16afcd6aff
vendor: update dependencies with make vendor-update
2019-05-26 23:25:12 +03:00
Aliaksandr Valialkin
c2a5eef5e3
Makefile: pass GO111MODULE=on to all the go invocations
2019-05-26 23:23:43 +03:00
Aliaksandr Valialkin
4859ca0cda
app/vmselect: update comment according to the updated code
2019-05-26 22:38:58 +03:00
Aliaksandr Valialkin
feb6b203a4
app/vminsert/influx: try converting string values to numeric values, since Influx agents may send numeric values as strings
...
Fixes https://github.com/VictoriaMetrics/VictoriaMetrics/issues/34
2019-05-26 22:11:19 +03:00
Aliaksandr Valialkin
51ee990902
README.md: typo fix
2019-05-26 17:59:04 +03:00
Aliaksandr Valialkin
5262aae5da
app/vmselect/promql: misspeling fix
2019-05-25 21:53:11 +03:00
Aliaksandr Valialkin
54fb8b21f9
all: fix misspellings
2019-05-25 21:51:11 +03:00
Aliaksandr Valialkin
d6523ffe90
Makefile: add -s flag to go fmt in make fmt command
2019-05-25 21:43:35 +03:00
Aliaksandr Valialkin
024560b161
README.md: add goreportcard.com badge
2019-05-25 21:38:57 +03:00
Aliaksandr Valialkin
96ac664b27
Add make victoria-metrics Makefile rule for building dev binary
2019-05-25 18:24:51 +03:00
Aliaksandr Valialkin
2ffcf7a4a5
README.md: mention that VictoriaMetrics is scalable
2019-05-25 17:09:43 +03:00
Aliaksandr Valialkin
5cbd4cfca9
app/vmselect: log slow queries if their execution time exceeds -search.logSlowQueryDuration
2019-05-24 16:12:31 +03:00
Aliaksandr Valialkin
718ce33714
app/vmselect: consume resultsCh data in exportHandler if writeResponseFunc failed to consume it
2019-05-24 14:54:31 +03:00
Aliaksandr Valialkin
f332c0d54e
README.md: add contacts chapter
2019-05-24 13:58:26 +03:00
0xflotus
eca566ed22
fixed small errors ( #31 )
2019-05-24 13:27:42 +03:00
Aliaksandr Valialkin
5bbfdff9fe
Makefile: add make publish and make package shortcuts for building and publishing docker images
2019-05-24 13:19:24 +03:00
Aliaksandr Valialkin
6b0ae332f8
lib/encoding: add vm_zstd_block_{compress|decompress}_calls_total for determining the number CompressZSTD / DecompressZSTD calls
2019-05-24 13:01:02 +03:00
Aliaksandr Valialkin
2eb3602d61
app/victoria-metrics: remove -p XXXX:XXXX from docker run options, since it is unnesessary if --net=host is set
2019-05-24 12:54:53 +03:00
Aliaksandr Valialkin
6fb9dd09f5
lib/encoding: add vm_zstd_block_{original|compressed}_bytes_total metrics for rough estimation of block compression ratio
2019-05-24 12:34:32 +03:00
Aliaksandr Valialkin
19b6643e5c
lib/encoding: substitute CompressZSTD with CompressZSTDLevel
2019-05-24 12:32:55 +03:00
Aliaksandr Valialkin
08b889ef09
lib/httpserver: add -http.disableResponseCompression flag, which may help saving CPU resources at the cost of higher network bandwidth usage
2019-05-24 12:18:40 +03:00
Aliaksandr Valialkin
d15d0127fe
app/vmselect/promql: add alias(q, name) function that sets the given name to all the time series in q
2019-05-24 02:41:45 +03:00
Aliaksandr Valialkin
674888fdc9
lib/decimal: add a comment explaining weird code in maxUpExponent. Fixes #29
2019-05-23 17:18:35 +03:00
Aliaksandr Valialkin
fb140eda33
app/vmselect/promql: add label_transform(q, label, regexp, replacement) function for replacing all the occurences of regexp with replacement in the given label for q
2019-05-23 16:26:19 +03:00
Aliaksandr Valialkin
398ec4383e
README.md: typo fix
2019-05-23 02:09:51 +03:00
Aliaksandr Valialkin
eff0debe14
README.md: mention that VictoriaMetrics is high-perf cost-effective TSDB
2019-05-23 00:36:45 +03:00