Commit graph

11126 commits

Author SHA1 Message Date
Julien Pivotto 48a101be1b
Allow to tune the scrape tolerance (#9283)
* Allow to tune the scrape tolerance

In most of the classic monitoring use cases, a few milliseconds
difference can be omitted.

In Prometheus, a few millisecond difference can however make a big
difference.

Currently, Prometheus will ignore up to 2 ms difference in the
alignments.

It turns out that for users who can afford a 10ms difference, there is a
lot of resources and disk space to win, as shown in this graph, which
shows the bytes / samples over a production Prometheus server. You can
clearly see the switch from 2ms to 10ms tolerance.

This pull request enables the adjustment of the scrape timestamp
alignment tolerance.

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>

* Fix golint

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2021-09-08 17:27:33 +05:30
Bryan Boreham 2327236bb5
Decrement active_appenders metric when no samples added (#9230)
* Decrement active_appenders metric when no samples added

Also add a test that the metric is incremented and decremented as
expected with and without samples.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Fix comment

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-09-08 14:49:58 +05:30
Bryan Boreham 87d909df4a
Remove symbols map from TSDB head (#9301)
This saves memory, effort and locking.

Since every symbol is also added to postings, `Symbols()` can be
implemented there instead. This now has to build a map for
deduplication, but `Symbols()` is only called for compaction, and `gc()`
used to rebuild the symbols map after every compaction so not an
additional cost.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2021-09-08 14:48:48 +05:30
fpetkovski 449f874679 promtool: add extended flag for tsdb analysis
The compaction analysis which runs under promtool tsdb analyze can be an
intensive process which slows down the entire command.

This commit adds an --extended flag to tsdb analyze which can be toggled
for running long running tasks, such as compaction analysis.

Signed-off-by: fpetkovski <filip.petkovsky@gmail.com>
2021-09-08 10:50:01 +02:00
Bryan Boreham 92a3eeac55
Create less garbage when parsing metrics (#9299)
* Refactor: extract function to make scrapeLoop for testing

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Add benchmarks for ScrapeLoopAppend

For Prometheus and OpenMetrics

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Create less garbage when parsing metrics

Exemplar escapes to heap due to being passed through text-parser
interface, but we can reduce the impact by hoisting it out of the loop
and resetting it after every use.

(Note the cost was paid on every line even when exemplars were disabled)

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* Create less garbage when parsing OpenMetrics

After calling parseLVals() we always append the return value, so pass in
what we want to append it to and save garbage.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2021-09-08 13:39:21 +05:30
Julien Pivotto ad642a85c0
Merge pull request #9304 from LeviHarrison/backfill-fix-date
Rules backfill: fix new rule importer message
2021-09-07 18:01:03 +02:00
Julien Pivotto bd24e2fb92
Merge pull request #9303 from LeviHarrison/backfill-return-1
Rules backfill: return 1 if unsuccessful
2021-09-07 18:00:42 +02:00
Ganesh Vernekar 1a5b21b78b
Update dependencies for v2.30.0 (#9308)
* Update Go dependencies

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Update React dependencies

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-09-07 20:17:21 +05:30
Augustin Husson b67c49a9ff Merge branch 'main' into update-react-and-ts
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-07 16:39:54 +02:00
Augustin Husson e785a0a31f set canvas mock
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-07 16:34:41 +02:00
Julien Pivotto d7d5d8ac02
Merge pull request #9307 from prometheus/superq/bump_pkg
Update various react-app dependencies
2021-09-07 12:28:36 +02:00
Augustin Husson c827413755 Merge branch 'main' into update-react-and-ts
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-07 11:51:39 +02:00
SuperQ 6281d26002
Update various react-app dependencies
Update several dependencies to cleanup `npm outdated`.

Signed-off-by: SuperQ <superq@gmail.com>
2021-09-07 11:34:37 +02:00
Julien Pivotto 218ea2eb16
Merge pull request #9300 from prometheus/feature/upgrade-ts
upgrade react-app to typescript 4
2021-09-07 11:09:26 +02:00
Augustin Husson 405198f430 upgrade react-app to typescript 4
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-07 10:51:59 +02:00
Julien Pivotto 143fce73cd
Merge pull request #9296 from prometheus/feature/smooth-upgrade
upgrade react-script to v4
2021-09-07 10:49:44 +02:00
David Leadbeater c244fe27a3
Merge pull request #9306 from dgl/zecke/fasta
promtool: Speed up checking for duplicate rules

Running promtool check config on large rule files is rather slow. Improve this by adding a testcase, benchmark and changing the algorithm used to find duplicates.
2021-09-07 14:55:18 +10:00
Levi Harrison ded95ff434
Fix new rule importer message
Signed-off-by: Levi Harrison <git@leviharrison.dev>
2021-09-06 22:19:29 -04:00
Levi Harrison 34e1b47968
Fixed error handling
Signed-off-by: Levi Harrison <git@leviharrison.dev>
2021-09-06 21:55:57 -04:00
Holger Hans Peter Freyther 5edec40d60 promtool: Speed up checking for duplicate rules
Trade space for speed. Convert all rules into our temporary struct, sort
and then iterate. This is a significant when having many rules.

Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
2021-09-06 23:10:26 +08:00
Holger Hans Peter Freyther 3a309c1ae5 promtool: Add simple benchmark checkDuplicates benchmark
Add a simple benchmark with a large number of rules.

Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
2021-09-06 23:10:26 +08:00
Holger Hans Peter Freyther 794937b3d6 promtool: Add testcase for detecting duplicates
Introduce a basic test for checking for duplicate rules.

Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
2021-09-06 23:10:26 +08:00
Augustin Husson 5bcf2e6511 upgrade react-script to v4
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-04 15:56:36 +02:00
Julien Pivotto dc586b2495
Merge pull request #9295 from prymitive/scrape_sample_limit
Add scrape_sample_limit metric
2021-09-04 13:30:08 +02:00
Łukasz Mierzwa f0a26266c0 Add scrape_sample_limit metric
This adds a new metric exposing per target scrape sample_limit value. Metrics are only exposed if extra-scrape-metrics feature flag is enabled.
scrape_sample_limit will make it easy to monitor and alert on targets getting close to configured sample_limit, which is important given than exceeding sample_limit results in the entire scrape results being rejected.

Signed-off-by: Łukasz Mierzwa <l.mierzwa@gmail.com>
2021-09-03 15:42:41 +01:00
Augustin Husson 8fe97cc614 rely on react-scripts for most of the dev-deps
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-03 15:01:32 +02:00
Julien Pivotto 9de62707b3
Merge pull request #9247 from prometheus/superq/scrape_timeout_feature
Add scrape_timeout_seconds metric (behind feature flag)
2021-09-03 00:56:41 +02:00
Callum Styan 93886d8417
Fix div by 0 panic is resize function. (#9286)
Signed-off-by: Callum Styan <callumstyan@gmail.com>
2021-09-02 11:08:05 -07:00
Björn Rabenstein 2a5dde2f87
Merge pull request #9289 from gerobinson/require-error-message-in-template-tests
Fix template_test.go to check that error messages match the expected error message
2021-09-02 17:52:23 +02:00
George Robinson 9397402bd3 Fix template_test.go to check that error messages match the expected error message
Signed-off-by: George Robinson <george.robinson@grafana.com>
2021-09-02 15:52:07 +01:00
Augustin Husson 4f67eb3979 fix EndpointLink test
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-02 15:31:33 +02:00
Augustin Husson 242d459685 fix 'window.ResizeObserver is not a constructor' issue
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-02 14:46:46 +02:00
SuperQ 31f4108758
Add scrape_timeout_seconds metric
Add a new built-in metric `scrape_timeout_seconds` to allow monitoring
of the ratio of scrape duration to the scrape timeout. Hide behind a
feature flag to avoid additional cardinality by default.

Signed-off-by: SuperQ <superq@gmail.com>
2021-09-02 12:15:35 +02:00
Augustin Husson 5d29b7b6f7 specify the type returned for most of the function that is missing it
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-02 11:12:25 +02:00
Augustin Husson 27bd8fef40 fix condition in withStartingIndicator
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-09-02 10:29:20 +02:00
Julius Volz ff2d297b0a Update React 16->17, TypeScript, and some other node deps
This updates React, TypeScript, and some other node packages (but not
everything).

A couple of notes:

- `enzyme-adapter-react-16` does not have a React 17 equivalent yet, so I
  switched to the fork `@wojtekmaj/enzyme-adapter-react-17`
- A bunch of tests are still failing because I think in the enzyme testing
  environment, a browser API (`ResizeObserver`) is missing, and maybe for other
  reasons. This needs to be explored + fixed.
- The TypeScript update introduced more stringent rules, which required fixing
  up a bunch of pieces of code a bit.
- The `use-media` package doesn't work with React 17 yet, so I just built our
  own minimal `useMedia` hook instead (just a couple of lines).
- I commented out part of the code in `withStartingIndicator.tsx` because it
  fails the now-stricter lint checks. It needs to be fixed (and not commented
  out).

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2021-09-01 16:03:09 +02:00
Oleg Zaytsev 0a43e788af
Allow VectorSelector.String() without matchers (#9282)
* Allow VectorSelector.String() without matchers

Previously this method was panicking because it was trying to allocate a
slice with capacity -1. There's nothing saying that VectorSelector
should have matchers, and it's actually prepared to have zero matcher
strings, so it's worth checking instead of panicking.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2021-09-01 09:48:18 +02:00
DrAuYueng e8be1d0a5c
Check relabel action at yaml unmarshal stage (#9224)
Signed-off-by: DrAuYueng <ouyang1204@gmail.com>
2021-08-31 17:52:57 +02:00
Levi Harrison 70f597b033
Configure Scrape Interval and Timeout Via Relabeling (#8911)
* Configure scrape interval and timeout with labels

Signed-off-by: Levi Harrison <git@leviharrison.dev>
2021-08-31 17:37:32 +02:00
Ganesh Vernekar 1315d8ecb6
Remove query hacks in the API and fix metrics (#9275)
* Remove query hacks in the API and fix metrics

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Tests for the metrics

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Better way to count series on restart

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-08-31 17:01:19 +05:30
Björn Rabenstein 4a85354a2c
Fix protobuf parsing of quantile-less summaries (#9277)
Signed-off-by: beorn7 <beorn@grafana.com>
2021-08-31 10:47:57 +05:30
Julien Pivotto 6a31b28ca9
Merge pull request #9280 from roidelapluie/ingressc
kubernetes ingress: adjust comment style
2021-08-31 01:58:22 +02:00
Julien Pivotto b1bdde46c3 kubernetes ingress: adjust comment style
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2021-08-30 22:34:24 +02:00
Julien Pivotto 50d506ef48
Merge pull request #9276 from roidelapluie/merge2292
Merge release 2.29
2021-08-30 22:25:11 +02:00
Julien Pivotto 0d0fd22bc1 Merge remote-tracking branch 'origin/release-2.29' 2021-08-30 17:48:54 +02:00
Ganesh Vernekar 35b1a82594
Exemplars in snapshot (#9255)
* Exemplars in snapshot

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix lint

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Add docs

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix lint

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix comments

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-08-30 19:34:38 +05:30
Ganesh Vernekar eeace6bcab
Add couple of metrics to track sparse histograms in TSDB (#9271)
* Add couple of metrics to track sparse histograms in TSDB

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix Beorn's comments

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-08-30 19:08:44 +05:30
Julius Volz dff78eb508
Switch from Reach Router to React Router (#9273)
We want to upgrade to React 17, but Reach Router does not work with React 17:
https://github.com/reach/router/issues/429

Also, the Reach + React Router projects announced an intention to join forces
and just continue as React Router:
https://reacttraining.com/blog/reach-react-router-future/

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2021-08-30 14:05:49 +02:00
Augustin Husson b8da617798
Update CODEOWNERS (#9272)
Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-08-30 14:02:46 +02:00
Augustin Husson a2665a9f73
add lezer-promql module (#9229)
* add lezer-promql module

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>

* integrate lezer-promql in codemirror-promql

Signed-off-by: Augustin Husson <husson.augustin@gmail.com>
2021-08-29 15:16:25 +02:00