Thomas Jackson
92c6f0c92e
Add offset to selectParams ( #4226 )
...
* Add Start/End to SelectParams
* Make remote read use the new selectParams for start/end
This commit will continue sending the start/end time of the remote read
query as the overarching promql time and the specific range of data that
the query is intersted in receiving a response to is now part of the
ReadHints (upstream discussion in #4226 ).
* Remove unused vendored code
The genproto.sh script was updated, but the code wasn't regenerated.
This simply removes the vendored deps that are no longer part of the
codegen output.
Signed-off-by: Thomas Jackson <jacksontj.89@gmail.com >
2018-07-18 04:58:00 +01:00
Tom Wilkie
f83155b11e
Review feedback.
...
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com >
2018-07-13 19:31:23 +01:00
Tom Wilkie
ccb2ee607b
Log errors encountered when marshalling and writing responses.
...
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com >
2018-07-06 18:44:45 +01:00
Tom Wilkie
fcc3f43acd
spelling.
...
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com >
2018-06-18 17:32:44 +01:00
Tom Wilkie
ae29512444
Extend API tests to cover remote read API.
...
Signed-off-by: Tom Wilkie <tom.wilkie@gmail.com >
2018-06-18 17:21:12 +01:00
Fabian Reinartz
e7cfc7dae5
web: restore old path prefix behavior
...
Signed-off-by: Fabian Reinartz <freinartz@google.com >
2018-06-15 09:08:14 +01:00
Fabian Reinartz
7a74689973
Merge pull request #4258 from prometheus/rmsecheaders
...
web: remove security headers
2018-06-12 16:21:35 +02:00
Fabian Reinartz
8a4bda8d57
web: remove security headers
...
Signed-off-by: Fabian Reinartz <freinartz@google.com >
2018-06-12 08:59:13 -04:00
Fabian Reinartz
057a5ae2b1
Address comments
...
Signed-off-by: Fabian Reinartz <freinartz@google.com >
2018-06-06 11:21:17 -04:00
Fabian Reinartz
ad4c33c1ff
scrape,api: provide per-target metric metadata
...
This adds a per-target cache of scraped metadata. The metadata is only
available for the lifecycle of the attached target. An API endpoint allows
to select metadata by metric name and a label selection of targets.
Signed-off-by: Fabian Reinartz <freinartz@google.com >
2018-06-06 05:56:10 -04:00
Fabian Reinartz
9c83e815d1
Merge branch 'release-2.2' into update
2018-06-05 05:29:11 -04:00
Simon Pasquier
097439b0f9
web: limit the number of dropped targets ( #4212 )
...
Displaying all the dropped targets in the service-discovery page hurts
the Prometheus server as well as the browser when thousands of dropped
targets exist. This change limits this number to 1,000 and display the
number of active/total targets per scrape configuration.
Add warning when more than 100 targets are dropped
Signed-off-by: Simon Pasquier <spasquie@redhat.com >
2018-06-05 10:20:32 +01:00
Brian Brazil
dd6781add2
Optimise PromQL ( #3966 )
...
* Move range logic to 'eval'
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make aggregegate range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* PromQL is statically typed, so don't eval to find the type.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Extend rangewrapper to multiple exprs
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Start making function evaluation ranged
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make instant queries a special case of range queries
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Eliminate evalString
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Evaluate range vector functions one series at a time
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make unary operators range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make binops range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Pass time to range-aware functions.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make simple _over_time functions range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reduce allocs when working with matrix selectors
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Add basic benchmark for range evaluation
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reuse objects for function arguments
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Do dropmetricname and allocating output vector only once.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Add range-aware support for range vector functions with params
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Optimise holt_winters, cut cpu and allocs by ~25%
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make rate&friends range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make more functions range aware. Document calling convention.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make date functions range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make simple math functions range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Convert more functions to be range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make more functions range aware
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Specialcase timestamp() with vector selector arg for range awareness
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove transition code for functions
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove the rest of the engine transition code
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove more obselete code
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove the last uses of the eval* functions
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove engine finalizers to prevent corruption
The finalizers set by matrixSelector were being called
just before the value they were retruning to the pool
was then being provided to the caller. Thus a concurrent query
could corrupt the data that the user has just been returned.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Add new benchmark suite for range functinos
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Migrate existing benchmarks to new system
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Expand promql benchmarks
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Simply test by removing unused range code
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* When testing instant queries, check range queries too.
To protect against subsequent steps in a range query being
affected by the previous steps, add a test that evaluates
an instant query that we know works again as a range query
with the tiimestamp we care about not being the first step.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reuse ring for matrix iters. Put query results back in pool.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reuse buffer when iterating over matrix selectors
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Unary minus should remove metric name
Cut down benchmarks for faster runs.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reduce repetition in benchmark test cases
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Work series by series when doing normal vectorSelectors
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Optimise benchmark setup, cuts time by 60%
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Have rangeWrapper use an evalNodeHelper to cache across steps
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Use evalNodeHelper with functions
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Cache dropMetricName within a node evaluation.
This saves both the calculations and allocs done by dropMetricName
across steps.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reuse input vectors in rangewrapper
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Reuse the point slices in the matrixes input/output by rangeWrapper
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make benchmark setup faster using AddFast
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Simplify benchmark code.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Add caching in VectorBinop
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Use xor to have one-level resultMetric hash key
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Add more benchmarks
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Call Query.Close in apiv1
This allows point slices allocated for the response data
to be reused by later queries, saving allocations.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Optimise histogram_quantile
It's now 5-10% faster with 97% less garbage generated for 1k steps
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make the input collection in rangeVector linear rather than quadratic
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Optimise label_replace, for 1k steps 15x fewer allocs and 3x faster
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Optimise label_join, 1.8x faster and 11x less memory for 1k steps
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Expand benchmarks, cleanup comments, simplify numSteps logic.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Address Fabian's comments
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Comments from Alin.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Address jrv's comments
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Remove dead code
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Address Simon's comments.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Rename populateIterators, pre-init some sizes
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Handle case where function has non-matrix args first
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Split rangeWrapper out to rangeEval function, improve comments
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Cleanup and make things more consistent
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Make EvalNodeHelper public
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
* Fabian's comments.
Signed-off-by: Brian Brazil <brian.brazil@robustperception.io >
2018-06-04 15:47:45 +02:00
Henri DF
2952387ed1
Pass query hints down into remote read query proto ( #4122 )
...
Signed-off-by: Henri DF <henridf@gmail.com >
2018-05-08 09:48:13 +01:00
Ivan Voronchihin
b3441cb0e7
Fix graph page for IE11 ( #4148 )
...
Signed-off-by: bege13mot <bege13mot@gmail.com >
2018-05-07 13:26:38 +01:00
Eric V
c207920500
Added HTTP security headers to web.go ( #3583 )
...
Signed-off-by: Eric Valenzuela <evalenzuela@thousandeyes.com >
2018-05-03 07:27:34 +01:00
Karsten Weiss
d79d573f71
Fix spelling mistakes found by codespell ( #4065 )
...
Signed-off-by: Karsten Weiss <knweiss@gmail.com >
2018-04-27 13:04:02 +01:00
beorn7
94ff07b81d
Merge branch 'release-2.2'
...
Signed-off-by: beorn7 <beorn@soundcloud.com >
2018-04-10 16:50:35 +02:00
Krasi Georgiev
ddd46de6f4
Races/3994 ( #4005 )
...
Fix race by properly locking access to scrape pools. Use separate mutex for information needed by UI so that UI isn't blocked when targets are being updated.
2018-04-09 15:18:25 +01:00
Mario Trangoni
464e747f1e
fix some comments typos ( #4059 )
2018-04-08 10:51:54 +01:00
Ganesh Vernekar
b44ce11d1b
Added test to check pathPrefix
2018-03-30 11:55:54 +05:30
Ganesh Vernekar
cd2820e165
Fix pathPrefix bug from PR-4025
2018-03-30 11:04:15 +05:30
Ganesh Vernekar
f30b37e00b
Fixed pathPrefix for web pages
2018-03-29 18:02:25 +05:30
Krasi Georgiev
5fec98d0a7
simplify server error handling ( #4006 )
2018-03-25 10:05:59 +01:00
Marek Siarkowicz
bb86c3f62b
Report internal runtime information on status page ( #3921 )
...
Add information about tsdb, wal and config reload
2018-03-21 16:08:37 +00:00
Brian Brazil
cc39021b2b
Provide custom marshalling for Point
...
Point has a non-standard marshalling, and is also
where the vast majority of CPU time is spent so
it is worth optimising.
2018-03-21 15:02:01 +00:00
Brian Brazil
299b78a887
Switch to json-iterator for v1 api.
...
This makes queries ~15% faster and cuts cpu
time spent on json encoding by ~40%.
2018-03-21 15:02:01 +00:00
Brian Brazil
8ede14b24c
Add unittests for Point json output
2018-03-21 15:02:01 +00:00
Brian Brazil
ecd0a9c6ba
web: Add benchmark for respond()
2018-03-21 15:02:01 +00:00
Anton Tereshchenkov
4cb8f6c260
web: remove unused MetricsPath option ( #3964 )
2018-03-21 09:29:40 +00:00
Simon Pasquier
83325c8d82
web: replace deprecated InstrumentHandler() ( #3862 )
...
* web: replace deprecated InstrumentHandler()
This change replaces the deprecated InstrumentHandler function by the
equivalent functions from the promhttp package.
The following metrics are removed:
* http_request_duration_microseconds (Summary).
* http_request_size_bytes (Summary).
* http_requests_total (Counter).
And the following metrics are added instead:
* prometheus_http_request_duration_seconds (Histogram).
* prometheus_http_response_size_bytes (Histogram).
* promhttp_metric_handler_requests_in_flight (Gauge).
* promhttp_metric_handler_requests_total (Counter).
* Update github.com/prometheus/common/route package
* web: refactor using the new prometheus/common/route package
2018-03-21 08:16:16 +00:00
James Turnbull
4486ef013b
Make show annotations checkbox match query history checkbox ( #3936 )
...
After removing the checkbox in #3913 the only remaining element that
looked like it was the new Show Annotations checkbox on the Alerts page.
Which in turn didn't look like the Enable query history checkout on the
graph page. So:
1. This takes the Enable query history button as canonical.
2. Updates the show annotations button code to match it.
3. Simplifies the JS for the checkbox.
2018-03-09 14:39:28 +01:00
James Turnbull
50e6aff3fd
Make job heading on service discovery consistent ( #3937 )
...
The new Service Discovery page uses the CSS/JS from the Targets page but
used slightly differently. This makes the job header match in the
Service Discovery page for a more consistent look-n-feel.
2018-03-09 14:33:53 +01:00
James Turnbull
c3f4f2204f
Refactor/redesign Unhealthy checkbox on Targets page ( #3913 )
...
* Added only healthy to Targets
This adds a "Only heathly" button to supplement the "Only unhealthy"
button. The two are mutually exclusive.
I've also added a red/green text color to the buttons.
Arguably this could be a toggle instead if folks think this is
worthwhile... Happy to modify it.
* Moved functions above init
* Simplifed code and made prettier
* Appeased codeacy
* Made buttons square
2018-03-09 11:19:09 +01:00
Fabian Reinartz
3e6c890aea
api: add flag to skip head on snapshots
2018-03-08 13:07:12 +01:00
Marek Siarkowicz
1f71caf23f
Add golang runtime information to status page. ( #3914 )
2018-03-07 15:14:46 +00:00
Julien Pivotto
155faab7a2
Display annotations on Alerts page ( #3900 )
...
Fixes #1219
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu >
2018-03-01 15:26:36 +00:00
ferhat elmas
ffa673f7d8
General simplifications ( #3887 )
...
Another try as in #1516
2018-02-26 07:58:10 +00:00
Callum Jones
090e7e0959
Place Service Discovery labels inline ( #3872 )
...
Fixes #3739
2018-02-24 19:44:37 +00:00
Conor Broderick
99006d3baf
Added dropped targets API to targets endpoint ( #3870 )
2018-02-21 17:26:18 +00:00
Conor Broderick
1fd20fc954
Add dropped alertmanagers to alertmanagers API ( #3865 )
2018-02-21 09:00:07 +00:00
Bartek Plotka
93a63ac5fd
api: Added v1/status/flags endpoint. ( #3864 )
...
Endpoint URL: /api/v1/status/flags
Example Output:
```json
{
"status": "success",
"data": {
"alertmanager.notification-queue-capacity": "10000",
"alertmanager.timeout": "10s",
"completion-bash": "false",
"completion-script-bash": "false",
"completion-script-zsh": "false",
"config.file": "my_cool_prometheus.yaml",
"help": "false",
"help-long": "false",
"help-man": "false",
"log.level": "info",
"query.lookback-delta": "5m",
"query.max-concurrency": "20",
"query.timeout": "2m",
"storage.tsdb.max-block-duration": "36h",
"storage.tsdb.min-block-duration": "2h",
"storage.tsdb.no-lockfile": "false",
"storage.tsdb.path": "data/",
"storage.tsdb.retention": "15d",
"version": "false",
"web.console.libraries": "console_libraries",
"web.console.templates": "consoles",
"web.enable-admin-api": "false",
"web.enable-lifecycle": "false",
"web.external-url": "",
"web.listen-address": "0.0.0.0:9090",
"web.max-connections": "512",
"web.read-timeout": "5m",
"web.route-prefix": "/",
"web.user-assets": ""
}
}
```
Signed-off-by: Bartek Plotka <bwplotka@gmail.com >
2018-02-21 08:49:02 +00:00
Fabian Reinartz
309c666426
Merge pull request #3671 from prometheus/queryparams
...
*: implement query params
2018-02-15 12:24:34 +01:00
Lovisa Svallingson
04f723ca44
[Fix 3789]: storing/loading multiple graphs from URL ( #3813 )
...
* Fix JS error: cannot read source of undefined
When the page was refreshed with queries on the page,
the updateTypeaheadMetricsSet function was called before
the typeahead had been initialized.
* Fix: updates URL when query submits
When queries were submitted by pressing enter, the URL did not update
to reflect the change. Not sure why, but this was only the case when
the queries were non-simple, meaning when either labels werre specified
or other promql functions were used.
* Rebase master and make assets
2018-02-15 13:23:12 +07:00
James Turnbull
d127a21071
Removed alert_header ( #3836 )
...
This is a very minor UX change. The current "No Alert rules" present
table row has the `alert_header` class attached. This changes the cursor
and some other stuff and makes sense with the populated table but less
sense with the unpopulated table. So removing it the latter case.
2018-02-14 13:15:39 +07:00
Fabian Reinartz
7ccd4b39b8
*: implement query params
...
This adds a parameter to the storage selection interface which allows
query engine(s) to pass information about the operations surrounding a
data selection.
This can for example be used by remote storage backends to infer the
correct downsampling aggregates that need to be provided.
2018-02-13 12:17:22 +01:00
James Turnbull
816d755956
Added "No rules" to Web UI ( #3834 )
...
When you have no alerting rules defined you get a screen sharing this
information in the WebUI. If no rules are defined then you instead see
an empty white screen. This adds a "No rules" defined `else` clause and
a `Rules` header to the page.
2018-02-13 14:51:34 +07:00
Lovisa Svallingson
460fe4dd0c
Fix: Improve typeahead on /graph page ( #3742 )
...
* Do not autoselect the first item in the dropdown
* Historical queries only show in dropdown when toggled on
* Move shared behavior to queryHistory.isEnabled function
* Do not auto submit selected history queries
2018-02-02 19:16:29 +01:00
Krasi Georgiev
6ce84dbcb1
rename ScrapeManager struct to Manager to remove stutter
2018-02-01 10:06:24 +00:00
Krasi Georgiev
b75428ec19
rename package retrieve to scrape
...
no fucnctinal changes just renaming retrieval to scrape
2018-02-01 09:55:07 +00:00