Aliaksandr Valialkin
7b41c9ac72
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-02-11 01:07:13 -08:00
Aliaksandr Valialkin
b11bdc46be
app/vmselect/promql: add mad_over_time(m[d])
function
...
See https://github.com/prometheus/prometheus/issues/5514
2023-02-11 01:06:20 -08:00
Aliaksandr Valialkin
a39140baef
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-02-09 13:08:34 -08:00
Aliaksandr Valialkin
513707a8c7
app/vmui: UX enhancements for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3706
...
- Display `min` value additionally to `avg`, `max` and `last`
- Allow copy-n-pasting metric name with its labels from both legend and tooltup
2023-02-09 11:04:51 -08:00
Yury Molodov
bff18cb5dd
vmui: lazy loading predefined panels ( #3795 )
...
* fix: change logic lazy loading predefined panels
* app/vmselect/vmui: `make vmui-update`
---------
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-02-09 00:11:55 -08:00
Yury Molodov
8afc0aef8d
vmui: add last/max/avg values ( #3789 )
...
* feat: add last/max/avg values (#3706 )
* fix: change filter exclude values
* app/vmui: wip
- improve the visualization for avg/max/last values
- make getAvgFromArray() function resilient against inf/undefined/nil
- export getLastFromArray() function, which is resilient against inf/undefined/nil
- run `make vmui-update`
---------
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-02-08 22:41:20 -08:00
Aliaksandr Valialkin
0a824d9490
app/vmselect/vmui: make vmui-update
after e4c04b6dbe
2023-02-03 19:34:01 -08:00
Aliaksandr Valialkin
32e46ea35f
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-02-01 13:02:21 -08:00
Aliaksandr Valialkin
3d331e4c5d
app/vmselect/vmui: make vmui-update
after dcc5616126
2023-01-31 13:24:43 -08:00
Yury Molodov
ac14d50c18
vmui: add select of Tenant ID ( #3673 )
...
* feat: add select of tenantID
* feat: replace tenantID to default url
* fix: move the tenantID selector to the top header
* fix: hide tenantID selector by condition
* fix: correct z-index
* app/vmselect/vmui: `make vmui-update`
---------
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-27 15:53:14 -08:00
Aliaksandr Valialkin
1b81d8f542
lib/netutil: move IsTrivialNetworkError() function there, since it is used in multiple places across the code
2023-01-27 13:24:30 -08:00
Aliaksandr Valialkin
21140318cc
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-24 09:33:54 -08:00
Yury Molodov
99d49e3ceb
vmui: include fonts in its bundle ( #3705 )
...
* feat: include fonts in the build
* fix: reduce size fonts
* wip
- Document the change at docs/CHANGELOG.md
- Run `make vmui-update`
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-24 09:30:56 -08:00
Aliaksandr Valialkin
30e968df6d
app/vmselect: use consistent randomizer in tests
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3683
2023-01-23 19:27:25 -08:00
Aliaksandr Valialkin
74df30456b
app/vmselect: make vmui-update
after df7b81b44d
2023-01-20 12:07:13 -08:00
Aliaksandr Valialkin
fad61eafc1
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-18 01:42:05 -08:00
Aliaksandr Valialkin
e867df5ef5
app/vmui: increase perceived performance by 2.5x by reducing the delay before the query execution from 0.8s to 0.3s
...
The delay cannot be removed, since it is used for limiting the rate of queries sent to VictoriaMetrics during graph scrolling.
2023-01-18 01:33:48 -08:00
Aliaksandr Valialkin
7737321133
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-18 00:01:57 -08:00
Aliaksandr Valialkin
0c625185cb
app/vmselect/promql: updates tests for https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3664
2023-01-17 23:25:45 -08:00
Aliaksandr Valialkin
a2ab1f0ec9
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-17 21:49:03 -08:00
Yury Molodov
fcef2ff6b2
vmui: correctly display range results in Table view ( #3657 )
...
* fix: properly display range results
* fix: set range values to empty array
* wip
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-17 21:03:28 -08:00
Yury Molodov
04c408e986
vmui: make the step input field global across all the tabs and views ( #3644 )
...
* feat: make the step input field global
* fix: correct get step from url
* fix: set minimumSignificantDigits to 1
* app/vmselect/vmui: `make vmui-update`
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-15 13:47:08 -08:00
Aliaksandr Valialkin
207a62a3c2
app/vmselect/promql: reduce memory allocations when searching for time series pairs with identical labelsets in q1 op q2
queries
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3641
2023-01-15 13:03:23 -08:00
Aliaksandr Valialkin
27afe7bc38
app/vmselect/promql: reduce the number of memory allocations inside getCommonLabelFilters()
...
This should improve performance a bit for `q1 op q2` queries
2023-01-15 13:03:23 -08:00
Aliaksandr Valialkin
be8fba9b6a
app/vmselect/netstorage: tune the number of blocks per series which should be unpacked by a single goroutine instead of spinning up multiple goroutines
...
This reduces overhead on time series data unpacking for typical cases,
this reducing CPU usage at vmselect
2023-01-12 09:31:44 -08:00
Aliaksandr Valialkin
7067e8206c
app/vmselect/promql: reduce memory allocations at getCommonLabelFilters() function
...
Intern tag keys and values there
2023-01-12 01:27:41 -08:00
Aliaksandr Valialkin
a092df3f84
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-12 01:13:39 -08:00
Aliaksandr Valialkin
9f5b5708ff
app/vmselect: handle the /custom-dashboards request from /graph/ page in the same way as from the /vmui/ page
...
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3322
2023-01-11 23:41:04 -08:00
Aliaksandr Valialkin
a194982117
app/vmselect: follow-up after 820312a2b1
...
- Move the feature description at the correct place at docs/CHANGELOG.md
- Run `make vmui-update`
- Various cosmetic fixes
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/3322
2023-01-11 23:28:00 -08:00
Dmytro Kozlov
820312a2b1
app/vmui: define custom path for dashboards json file ( #3545 )
...
* app/vmui: define custom path for dashboards json file
* app/vmui: remove unneeded code
* app/vmui: move handler to own file, fix show dashboards,
* app/vmui: move flag to handler, add flag description
* app/vmauth: fix part of the comments
* feat: add store for dashboards
* fix: prevent fetch dashboards for app mode
* app/vmauth: use simple cache for predefined dashboards
* app/vmauth: update dashboards doc
* app/vmauth: fix ci
* app/vmui: decrease timeout
* app/vmselect: removed cache, fix comments
* app/vmselect: remove unused const
* app/vmselect: fix error log, use slice byte instead of struct
Co-authored-by: Yury Moladau <yurymolodov@gmail.com>
2023-01-11 23:06:07 -08:00
Yury Molodov
5c8bb029b5
vmui: small changes on explore metrics page ( #3634 )
...
* fix: change issue link
* fix: remove legend toggle
* fix: move select graph size
* feat: save url params on explore metrics page
* wip
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-11 22:16:10 -08:00
Aliaksandr Valialkin
c3f178aa53
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-11 01:34:37 -08:00
Aliaksandr Valialkin
dff47c73b7
app/vmselect: improve logging when the incoming query cannot be executed because of timeout in the wait queue
2023-01-11 01:06:05 -08:00
Aliaksandr Valialkin
65b9dcfcca
app/vmselect/promql: typo fix after 0771d57860
2023-01-11 01:05:31 -08:00
Aliaksandr Valialkin
0771d57860
app/vmselect/promql: make a copy of per-series timestamps before their modification
...
The per-series timestamps are usually shared among series, so it is unsafe modifying them.
The issue has been appeared after the optimization at 2f3ddd4884
2023-01-11 00:59:13 -08:00
Aliaksandr Valialkin
31fc29599f
app/vmselect/promql: move the eval function args in parallel
query trace outside the loop
2023-01-10 22:23:30 -08:00
Aliaksandr Valialkin
ebc200846c
Merge branch 'public-single-node' into pmm-6401-read-prometheus-data-files
2023-01-10 16:11:27 -08:00
Aliaksandr Valialkin
95ce1ba6ce
lib/httpserver: directly pass flag value to CheckAuthFlag()
...
There is no sense in passing a pointer to flag value there.
This is a follow-up for 4225a0bd75
2023-01-10 15:52:23 -08:00
Zakhar Bessarab
4225a0bd75
Use httpAuth.*
flags as a fallback for endpoints protected by *AuthKey
flags ( #3582 )
...
* {lib/server, app/}: use `httpAuth.*` flag as fallback for `*AuthKey` if it is not set
* lib/ingestserver/opentsdbhttp: fix opentdb HTTP handler not respecting `httpAuth.*` flags
* Apply suggestions from code review
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-01-10 15:46:13 -08:00
Aliaksandr Valialkin
53d871d0b1
app/vmselect/netstorage: reduce tail latency during query processing
...
Previously the selected time series were split evenly among available CPU cores
for further processing - e.g unpacking the data and applying the given rollup
function to the unpacked data.
Some time series could be processed slower than others.
This could result in uneven work distribution among available CPU cores,
e.g. some CPU cores could complete their work sooner than others.
This could slow down query execution.
The new algorithm allows stealing time series to process from other CPU cores
when all the local work is done. This should reduce the maximum time
needed for query execution (aka tail latency).
The new algorithm should also scale better on systems with many CPU cores,
since every CPU processes locally assigned time series without inter-CPU communications.
The inter-CPU communications are used only when all the local work is finished
and the pending work from other CPUs needs to be stealed.
2023-01-10 13:43:14 -08:00
Aliaksandr Valialkin
e640ff72f1
app/vmselect/netstorage: reduce memory allocations when unpacking time series
...
Unpack time series with less than 400K samples in the currently running goroutine.
Previously a new goroutine was being started for unpacking the samples.
This was requiring additional memory allocations.
2023-01-09 23:18:17 -08:00
Aliaksandr Valialkin
9a563a6aef
app/vmselect/promql: eliminate memory allocation when sorting values inside float64s
2023-01-09 23:06:46 -08:00
Aliaksandr Valialkin
30ed33fae0
app/vmselect/promql: pre-allocate memory for values to be merged in mergeTimeseries()
...
This should reduce the number of memory re-allocations
2023-01-09 22:51:17 -08:00
Aliaksandr Valialkin
645c24dc5f
app/vmselect/promql: consistently intern series names obtained from marshalMetricNameSorted
...
This reduces memory allocations when the returned series names are used as map keys later
2023-01-09 22:45:40 -08:00
Aliaksandr Valialkin
2f3ddd4884
app/vmselect/promql: avoid memory allocations and copying from source timeseries to the returned result at timeseriesToResult()
2023-01-09 22:38:59 -08:00
Aliaksandr Valialkin
26cf680468
app/vmselect/promql: remove memory allocations from sortMetricTags()
2023-01-09 22:22:15 -08:00
Aliaksandr Valialkin
4f0c11ee93
app/vmselect/promql: intern output series names inside timeseriesToResult()
...
This reduces the number of memory allocations for repeated queries,
which return (almost) the same set of time series.
2023-01-09 22:19:56 -08:00
Aliaksandr Valialkin
562d6bca08
app/vmselect/promql: intern output series names during normal aggregation
2023-01-09 22:15:24 -08:00
Aliaksandr Valialkin
21ee9a1fab
app/vmselect/promql: intern output series names during incremental aggregation
...
This should reduce the number of memory allocations for repeated queries
2023-01-09 22:11:36 -08:00
Aliaksandr Valialkin
df2a494a7c
app/vmselect/netstorage: pre-allocate 4 block references per each time series during querying
...
Usually the number of blocks returned per each time series during queries is around 4.
So it is a good idea to pre-allocate 4 block references per time series
in order to reduce the number of memory allocations.
2023-01-09 22:03:23 -08:00