Commit Graph

726 Commits

Author SHA1 Message Date
Brian Brazil
d66799d7f3 Show gaps in graphs. (#2766)
Fixes #345
2017-05-26 16:17:48 +01:00
Fabian Reinartz
4c31061251 Merge branch 'master' into dev-2.0 2017-05-24 15:36:17 +02:00
Brian Brazil
e5f94145b8 Drop series for federation if latest sample is stale. 2017-05-24 14:27:17 +01:00
Brian Brazil
220e78b9c3 Consider a series stale after 4.1 intervals with no data.
To cover the cases where stale markers may not be available,
we need to infer the interval and mark series stale based on that.
As we're lacking stale markers this is less accurate, however
it should be good enough for these cases.

We need 4 intervals as if say we had data at t=0 and t=10,
coming via federation. The next data point should be at t=20 however it
could take up to t=30 for it actually to be ingested, t=40 for it to be
scraped via federation and t=50 for it to be ingested.
We then add 10% on to that for slack, as we do elsewhere.
2017-05-24 14:27:17 +01:00
Brian Brazil
c02c25d5ba Allow peeking back further in buffer. 2017-05-24 14:27:17 +01:00
conorbroderick
9c953064c3 check if result is a scalar in order to display correct number of returned time series 2017-05-24 14:07:24 +01:00
Frederic Branczyk
ad22606a3d
web: prefix redirect with ExternalURL path 2017-05-22 14:56:52 +02:00
Frederic Branczyk
45df5c2daf
Merge branch 'release-1.6' 2017-05-22 13:44:44 +02:00
conorbroderick
9287a01bbf Fixed fixed yaxis of stacked graph being cut off 2017-05-18 15:18:29 +01:00
Fabian Reinartz
06c2b76cd4 Merge branch 'master' into uptsdb 2017-05-16 16:48:37 +02:00
Julius Volz
ac203ef0ee Add externalURL template function (#2716)
This allows users to e.g. add links back to the generating Prometheus
right in their alert templates.
2017-05-13 15:47:04 +02:00
Fabian Reinartz
6e804b3497 Merge branch 'master' into dev-2.0 2017-05-12 13:29:58 +02:00
Fabian Reinartz
9a9211845e ui: fix alert template 2017-05-10 15:30:10 +02:00
Tom Wilkie
4d9b917d11 Instrument Prometheus with OpenTracing (#2554)
* Use request.Context() instead of a global map of contexts.

* Add some basic opentracing instrumentation on the query path.

* Remove tracehandler endpoint.
2017-05-02 18:49:29 -05:00
Fabian Reinartz
73b8ff0ddc Merge branch 'master' into dev-2.0 2017-04-27 10:19:55 +02:00
David Symonds
04ad889751 Preserve Alertmanager URLs as *url.URL.
Render a nicer link in the web UI.
2017-04-25 16:17:46 +10:00
Conor Broderick
9eb1a5d6bf Handle invalid query in graph UI (#2652) 2017-04-24 10:50:57 +01:00
Conor Broderick
ee62807b62 Added min/max to graph to accomodate for constant time series (#2612)
Added min/max to graph to accommodate constant time series
2017-04-12 14:25:25 +01:00
Conor Broderick
c72692fd75 Fixed issue of partially hidden y-axis values on graph (#2589) 2017-04-06 16:04:44 +01:00
Julius Volz
beeb0b55c0 Merge pull request #2572 from weaveworks/2571-propagate-api-error
Add promql.ErrStorage, which the API propagates as a 500.
2017-04-06 16:36:20 +02:00
Tom Wilkie
f0e8a5f37c Add promql.ErrStorage, which is interpreted by the API as a 500. 2017-04-06 14:41:23 +01:00
Brian Brazil
26bedc9e00 Revert use of buildVersion in console templates. (#2579)
This function isn't available in console templates,
so go back to pre-#2468 state to get things working again.
2017-04-05 15:19:17 +01:00
Alexey Palazhchenko
17f15d024a Small fixes. (#2578)
Fix typos. Simplify with gofmt -s
2017-04-05 14:24:22 +01:00
Fabian Reinartz
8c768f2ca3 web: Fix federation for instance label 2017-04-05 14:53:34 +02:00
Fabian Reinartz
8ffc851147 Merge branch 'master' into dev-2.0 2017-04-04 15:17:56 +02:00
Fabian Reinartz
bbcf20ba01 web: deduplicate series in federation 2017-04-04 11:20:23 +02:00
Fabian Reinartz
f56644e3ae api/v1: deduplicate selected series 2017-04-04 11:09:11 +02:00
Conor Broderick
dafae52efa Display total number of returned elements on console (#2532)
Display total number of returned elements on console
2017-04-03 11:52:25 +01:00
Julius Volz
947c83be3b Sort targets by instance within a job
Fixes https://github.com/prometheus/prometheus/issues/2536
2017-03-31 13:14:20 +02:00
Brian Brazil
8cd5aff8fe Send instance="" with federation if instance not set.
This is needed for federating non-instance level metrics, so they don't
end up with the instance label of the prometheus target.

Also sort external labels, so label output order is consistent.
2017-03-30 06:48:48 +01:00
Brian Brazil
d42e01b07c Sort labelnames for federation.
This makes unittests with multiple labels possible,
and may be needed for performance with the new
ingestion text parser.
2017-03-30 06:48:48 +01:00
Brian Brazil
dbb65846f1 Add unittest for federation external_labels behaviour 2017-03-30 06:48:48 +01:00
Fabian Reinartz
397f001ac5 Merge branch 'master' into dev-2.0 2017-03-20 14:12:11 +01:00
Julius Volz
107c33545b Don't truncate build version 2017-03-19 18:37:23 +01:00
Fabian Reinartz
c389193b37 Merge branch 'master' into dev-2.0 2017-03-17 16:27:07 +01:00
Bplotka
1823ae8bc4 Fixed int64 overflow for timestamp in v1/api parseDuration and parseTime (#2501)
* Fixed int64 overflow for timestamp in v1/api parseDuration and parseTime

This led to unexpected results on wrong query with "(...)&start=148966367200.372&end=1489667272.372"
That query is wrong because of `start > end` but actually internal int64 overflow caused start to be something around MinInt64 (huge negative value) and was passing validation.

BTW: Not sure if negative timestamp makes sense even.. But model.Earliest is actually MinInt64, can someone explain me why?

Signed-off-by: Bartek Plotka <bwplotka@gmail.com>

* Added missing trailing periods on comments.

Signed-off-by: Bartek Plotka <bwplotka@gmail.com>

* MOved to only `<` and `>`. Removed equal.

Signed-off-by: Bartek Plotka <bwplotka@gmail.com>
2017-03-16 15:16:20 +01:00
Fabian Reinartz
de1e4322d7 Merge pull request #2474 from Gouthamve/custom-timeouts-1399
Support Custom Timeout for Queries
2017-03-12 14:20:59 +01:00
Erdem Agaoglu
90625b0400 Use revision as cachebuster 2017-03-07 18:03:52 +03:00
Goutham Veeramachaneni
4b0270290b
Fix comments to match convention 2017-03-06 23:21:27 +05:30
Goutham Veeramachaneni
c6b329c55b
Support Custom Timeouts for Queries 2017-03-06 23:02:21 +05:30
Goutham Veeramachaneni
6634984a38
Comments and Typo Fixes 2017-03-06 17:16:37 +05:30
Erdem Agaoglu
241da87f7f Adding version to names of static files
to prevent browsers using old files in local caches after an upgrade.
2017-03-03 23:36:06 +03:00
Fabian Reinartz
9304179ef7 Merge branch 'master' into dev-2.0 2017-03-02 08:16:58 +01:00
Derek Marcotte
0a7fb56b16 Expose PromConsole.Graph.buildQueryUrl, refactor dispatch to use (#2461)
Expose buildQueryUrl, refactor dispatch to use

buildQueryUrl will allow users to execute queries over the range of an
existing graph.  This will be helpful to select data series they wish to
annotate the graph with, for example.
2017-03-01 22:37:50 +00:00
Julius Volz
7e14533b32 Merge pull request #2396 from lightpriest/fuzzy-fix-lookup
Fix fuzzy search lookup issues
2017-02-28 19:06:30 +01:00
Derek Marcotte
74a3b1051a Add rickshawGraph proerty to the Graph object. (#2438)
Add rickshawGraph property to the Graph object.

This allows further changes to be made to the graph, for example,
annotations.
2017-02-18 10:03:32 +00:00
Or Cohen
93d20d2d2b Improve fuzzy search
The fuzzy library didn't try to find a "best match", but settled on the
first fuzzy match that exists. This patch includes a modified version of
the fuzzy library, which recursivley tries on the rest of the search
string to find a better match. If found, returns that one.

Another small modification is that if a pattern fully matches, it
skips the lookup entirley and returns the highest score possible for
that match.
2017-02-05 17:38:05 +02:00
Or Cohen
81d37a04aa Fix autocomplete misses certain queries
For some of the queries, the fuzzy lookup was not filtering properly.
The problem is due to the "replace" beind made on the query itself. It
accidently removes only the first underscore. This patch changes it so
that it removes all of the whitespaces, letting the fuzzy algorithm do
its magic, also fixing this problem.

Originally, the underscore were replaced by a space for this specific
reason, to let the user type a space and have the lookup treat it as the
word break.

Fixes #2380
2017-02-05 16:20:52 +02:00
Fabian Reinartz
87bea50b85 web: fix /targets for new label types 2017-02-02 13:18:17 +01:00
Fabian Reinartz
1d3cdd0d67 Merge branch 'master' into dev-2.0-rebase 2017-01-30 17:43:01 +01:00
Fabian Reinartz
d80a3de235 pkg/textparse: add documentation 2017-01-17 08:16:47 +01:00
Fabian Reinartz
157e698958 web/api: fix min/max timestamps to valid range 2017-01-16 14:09:59 +01:00
Frederic Branczyk
bd92571bdd
web/api: make target and alertmanager api responses consistent 2017-01-16 11:53:00 +01:00
Frederic Branczyk
389c6d0043
web/api: add alertmanager api 2017-01-13 15:30:20 +01:00
beorn7
767c0709b1 Retrieval: Avoid copying Target
retreival.Target contains a mutex. It was copied in the Targets()
call. This potentially can wreak a lot of havoc.

It might even have caused the issues reported as #2266 and #2262 .
2017-01-06 18:43:41 +01:00
Fabian Reinartz
c9f4aea8e2 Merge pull request #2305 from alicebob/favicon
Add a favicon to the web GUI
2017-01-04 10:15:27 +01:00
Fabian Reinartz
bc20d93f0a storage: rename iterator value getters to At() 2017-01-02 13:33:37 +01:00
Fabian Reinartz
61bd698143 web: implement federation for new storage 2016-12-30 19:34:45 +01:00
Fabian Reinartz
28f547bcc7 api/v1: fix tests, restore series queries 2016-12-30 10:43:44 +01:00
Fabian Reinartz
f8fc1f5bb2 *: migrate ingestion to new batch Appender 2016-12-29 11:03:56 +01:00
Ed Schouten
b3a39ccd8a Use lexicographic order to sort alerts by name.
Right now the /alerts page of Prometheus sorts alerts by severity
(firing, pending, inactive). Once multiple alerts have the same
severity, their order seems to correlate to how they are placed in the
configuration files, but not always. Looking at the code, we make use of
sort.Sort(), which is documented not to provide a stable sort. The
Less() function also only takes the alert state into account.

This change extends the Less() function to provide a lexicographic order
on both the alert state and the name. This means I can finally find the
alerts I'm looking for without using my browser's search feature.
2016-12-27 14:28:44 +01:00
Harmen
135d32ea22 make assets 2016-12-27 13:59:20 +01:00
Harmen
dfa4f79bcd add favicon 2016-12-27 13:58:51 +01:00
Fabian Reinartz
5817cb5bde *: migrate from model.* to promql.* types 2016-12-25 00:37:46 +01:00
Brian Brazil
bed4635802 Use irate consistently in console template examples. (#2296)
I must have forgotten my 'g' when switching these.
2016-12-21 13:19:23 +00:00
Brian Brazil
2e3b42ad6c Correctly handle the end time being 0 in the URL. (#2290) 2016-12-18 19:30:52 +00:00
Fabian Reinartz
9ecea36ef9 Merge pull request #2259 from prometheus/federationerr
web: don't return federation errors over HTTP
2016-12-06 16:18:03 +01:00
Fabian Reinartz
cef2e04aa3 web: add error counter for federation responses 2016-12-06 16:09:50 +01:00
Fabian Reinartz
0ea0a19848 Merge pull request #2240 from agaoglu/read-timeout
Set read-timeout for http.Server
2016-12-06 16:01:45 +01:00
Fabian Reinartz
9d68e81b32 web: don't return federation errors over HTTP
We are writing federation responses streaming. So after
the first byte we wrote, the status header is fixed. We cannot
return an HTTP error for intermediate error but should just abort
and log instead.
2016-12-06 15:52:50 +01:00
Erdem Agaoglu
e487477a17 LimitListener to limit max number of connections
This also drops tcp keep-alive in ListenAndServe but it's no longer
necessary since we now close idle connections long before that.
2016-12-06 12:45:59 +03:00
Morten Siebuhr
c5b17263a6 web: Display current working directory on status-page 2016-12-05 19:46:41 +01:00
Frederic Branczyk
33b583d50e
web/api: add targets endpoint 2016-12-05 13:13:21 +01:00
Frederic Branczyk
8f8cea4fbd
retrieval: refactor TargetManager to return flat list of Targets 2016-12-02 13:28:58 +01:00
Erdem Agaoglu
9986b28380 Set read-timeout for http.Server
This also specifies a timeout for idle client connections, which may
cause "too many open files" errors.
See #2238
2016-12-01 16:29:45 +03:00
Fabian Reinartz
d4deb8bbf2 web: show discovered Alertmanagers in UI 2016-11-24 15:06:50 +01:00
Martín Ferrari
4298d91a9c Update bindata.go 2016-11-17 02:33:31 +00:00
Martín Ferrari
fe83ea511f Replace handlebars with the simpler and saner mustache library. 2016-11-17 02:33:12 +00:00
Martín Ferrari
0a6972b6a3 Replace datetimepicker library with a more maintained version.
Adds also the moment.js library, which is a dependency of it.

Following conventions in the web/ui directory, I am not including the original
sources or LICENSE files.
2016-11-17 02:29:08 +00:00
Brian Brazil
79f8514c9c Point user to POST if they try to GET /-/reload (#2172) 2016-11-07 15:14:22 +00:00
Fabian Reinartz
30af47535d Merge remote-tracking branch 'origin/release-1.2' 2016-11-01 15:42:13 +01:00
Anders Daljord Morken
5c025a2f41 query_range: Validate that start comes before end 2016-11-01 15:28:28 +01:00
beorn7
5b16d6bd6e Merge branch 'release-1.2' 2016-10-31 00:06:23 +01:00
beorn7
f0acde7721 Regenerate assets after cherry-pick 2016-10-28 14:16:48 +02:00
Stuart Olivera
223a22457f ui: don’t consider aborted requests complete
If an existing request is aborted due to a new request, ignore the completion of the initial request.

Example:
1. Chrome dev tools: enable 5 second network latency
2. Execute query
3. A second later, execute the query again
4. Currently, the spinner will hide, and the stats will immediately display, as if the request had completed. Instead, the spinner and stats should wait until the 2nd execution finishes.
2016-10-28 14:15:11 +02:00
beorn7
569a1d78eb Regenerate bindata after merge 2016-10-25 12:15:55 +02:00
beorn7
7e4d005ee1 Merge branch 'release-1.2' 2016-10-25 12:15:41 +02:00
tattsun
68e20bd9ac ISSUE-2109 ui: fix decode query params bug 2016-10-25 07:41:24 +09:00
Or Cohen
50f8e35c54 Add fuzzy search to /graph textarea (#2081)
* Add fuzzy search to /graph textarea

We have a few thousands different metrics and looking up some of them
can be quite annoying with the simple string matching.

This patch adds a fuzzy search to the textarea lookup box on the /graph
page. It uses a small neat library from github.com/mattyork/fuzzy.

* Add fuzzy lib to NOTICE and re-build assets

Previously built assets changed the mode.
2016-10-17 09:37:11 +02:00
Fabian Reinartz
630b96c5f3 Merge pull request #2079 from prometheus/fabxc-storage
storage: enhance Querier interface usage
2016-10-16 10:48:51 +02:00
Fabian Reinartz
8fa18d564a storage: enhance Querier interface usage
This extracts Querier as an instantiateable and closeable object
rather than just defining extending methods of the storage interface.
This improves composability and allows abstracting query transactions,
which can be useful for transaction-level caches, consistent data views,
and encapsulating teardown.
2016-10-16 10:39:29 +02:00
Stuart Olivera
b76d59e68b ui: don’t consider aborted requests complete
If an existing request is aborted due to a new request, ignore the completion of the initial request.

Example:
1. Chrome dev tools: enable 5 second network latency
2. Execute query
3. A second later, execute the query again
4. Currently, the spinner will hide, and the stats will immediately display, as if the request had completed. Instead, the spinner and stats should wait until the 2nd execution finishes.
2016-10-12 17:20:44 -07:00
Matthias Rampke
4f96d28e60 Always show instance label on target page. (#2062) 2016-10-12 12:45:47 +02:00
Julius Volz
4f79072fd1 Update common/route vendoring for contextFn errors 2016-10-02 23:04:03 +02:00
Julius Volz
f92532f254 api: Consolidate web API contexts
This is based on the common/route changes in
https://github.com/prometheus/common/pull/61.
2016-09-21 03:22:20 +02:00
Julius Volz
c187308366 storage: Contextify storage interfaces.
This is based on https://github.com/prometheus/prometheus/pull/1997.

This adds contexts to the relevant Storage methods and already passes
PromQL's new per-query context into the storage's query methods.
The immediate motivation supporting multi-tenancy in Frankenstein, but
this could also be used by Prometheus's normal local storage to support
cancellations and timeouts at some point.
2016-09-19 16:29:07 +02:00
Julius Volz
ed5a0f0abe promql: Allow per-query contexts.
For Weaveworks' Frankenstein, we need to support multitenancy. In
Frankenstein, we initially solved this without modifying the promql
package at all: we constructed a new promql.Engine for every
query and injected a storage implementation into that engine which would
be primed to only collect data for a given user.

This is problematic to upstream, however. Prometheus assumes that there
is only one engine: the query concurrency gate is part of the engine,
and the engine contains one central cancellable context to shut down all
queries. Also, creating a new engine for every query seems like overkill.

Thus, we want to be able to pass per-query contexts into a single engine.

This change gets rid of the promql.Engine's built-in base context and
allows passing in a per-query context instead. Central cancellation of
all queries is still possible by deriving all passed-in contexts from
one central one, but this is now the responsibility of the caller. The
central query context is now created in main() and passed into the
relevant components (web handler / API, rule manager).

In a next step, the per-query context would have to be passed to the
storage implementation, so that the storage can implement multi-tenancy
or other features based on the contextual information.
2016-09-19 15:38:17 +02:00
Bora Tunca
2e9de70267 generate assets 2016-09-16 18:20:12 -04:00
Bora Tunca
44377dc458 Add backward compatibility to old query format 2016-09-16 18:20:00 -04:00
beorn7
1f2785ebb7 Merge branch 'release-1.1' 2016-09-16 16:33:28 +02:00
beorn7
717dd8adac web: add more federation test scenarios 2016-09-15 15:23:55 +02:00
beorn7
784a8ad7c5 web: Inline httptest.NewRequest because it only exists in Go1.7+ 2016-09-15 15:06:36 +02:00
beorn7
39c4915401 federation: Collapse time series of the same name
This will avoid duplicate MetricFamilies, thereby shrinking the size
of the federation payload and also creating legal text format.

Also, add unit tests for federation. They were also needed for the
previous state of the code, but were missing.
2016-09-14 19:35:20 +02:00
beorn7
094a098ce6 Revert "Revert the /graph changes."
This reverts commit aa43d34a86.

This brings back the /graph changes so that @grandbora can continue to
work on the redirect for backwards compatibility. And other changes
can already take the new /graph parameters into account.
2016-09-03 21:05:23 +02:00
beorn7
aa43d34a86 Revert the /graph changes.
This revert will be reverted once v1.1 is released and has its own
release branch. Since we had already change on top of this, there was
no cleaner way of cutting those changes out.

This commit reverts the following commits:

Revert "Update backend helpers and templates to new url schema"
This reverts commit fc6cdd0611.

Revert "Refactor graph.js"
This reverts commit 445fac56e0.

Revert "Use query parameters in the url"
This reverts commit 3e18d86d8a.

Revert "Point to correct place for GraphLinkForExpression"
This reverts commit 3da825fc76.

Assets are also updated.
2016-09-02 13:59:09 +02:00
Anders Daljord Morken
e9885ecb94 Bugfix: Avoid divide-by-zero panic on query_range?step=0 2016-08-16 15:20:34 +02:00
Fabian Reinartz
df22684b5b web/ui: fix job link 2016-08-08 19:03:51 +02:00
Fabian Reinartz
cfe5c5fa15 Merge branch 'master' of https://github.com/cambridge-university-press/prometheus into cambridge-university-press-master 2016-08-08 10:46:36 +02:00
Bora Tunca
12bcc92311 Generate bindata.go 2016-08-08 09:52:14 +02:00
Bora Tunca
445fac56e0 Refactor graph.js 2016-08-08 09:52:13 +02:00
Bora Tunca
3e18d86d8a Use query parameters in the url 2016-08-06 17:28:18 +02:00
Bora Tunca
3da825fc76 Point to correct place for GraphLinkForExpression 2016-08-06 17:28:18 +02:00
Julius Volz
d770783777 Neurotic cleanups to graph.js 2016-08-05 23:35:11 +02:00
Fabian Reinartz
70490fe568 Merge pull request #1805 from prometheus/higher-level-storage-interface
Make the storage interface higher-level.
2016-08-05 16:17:14 +02:00
Harmen
7b4a67f651 make assets build 2016-07-31 16:32:25 +02:00
Harmen
0b883e24ba Add a 'Remove Graph' link to the 'Graph' screen 2016-07-31 16:30:23 +02:00
Andrew Hemming
7ebcd678ea Added HTML link for each job name
Useful for quick navigation on the target page when there are many jobs
and targets

Corrected HTML link for each job name

Regenerated bindata
2016-07-28 17:10:34 +01:00
Tobias Schmidt
5416518178 Fix go fmt of ui/bindata.go 2016-07-27 18:35:01 -04:00
Harmen
a1443280b4 make assets build 2016-07-27 12:56:08 +02:00
Harmen
512b3f8d95 Friendlier message when there are no alerting rules 2016-07-27 12:54:46 +02:00
Matt Bostock
78715e4182 Alerts template: remove silence table header
There's no corresponding table column for this table header. The
placeholder link for silences was removed in e8800730.

Accordingly, regenerate `web/ui/bindata.go` by running:

    make assets format
2016-07-26 21:33:21 +01:00
Harmen
afc5873b0e don't store empty values in the URL 2016-07-25 21:08:05 +02:00
Julius Volz
3bfec97d46 Make the storage interface higher-level.
See discussion in
https://groups.google.com/forum/#!topic/prometheus-developers/bkuGbVlvQ9g

The main idea is that the user of a storage shouldn't have to deal with
fingerprints anymore, and should not need to do an individual preload
call for each metric. The storage interface needs to be made more
high-level to not expose these details.

This also makes it easier to reuse the same storage interface for remote
storages later, as fewer roundtrips are required and the fingerprint
concept doesn't work well across the network.

NOTE: this deliberately gets rid of a small optimization in the old
query Analyzer, where we dedupe instants and ranges for the same series.
This should have a minor impact, as most queries do not have multiple
selectors loading the same series (and at the same offset).
2016-07-25 13:59:22 +02:00
beorn7
1bb077b5ef Merge branch 'release-1.0' into beorn7/release 2016-07-21 14:55:05 +02:00
beorn7
4ff4857112 Recreate assets 2016-07-21 14:11:09 +02:00
Brian Brazil
56151e57ba Update example console templates to new HTTP API.
Fixes #1819
2016-07-21 14:01:09 +02:00
Brian Brazil
9e58070c04 Merge pull request #1820 from prometheus/console-api
Update example console templates to new HTTP API.
2016-07-18 21:59:21 +01:00
Brian Brazil
d458ecd4b9 Update example console templates to new HTTP API.
Fixes #1819
2016-07-18 20:36:47 +01:00
Dmitry Vorobev
273e457da4 web: return status code and error message for config resource 2016-07-15 10:15:24 +02:00
Fabian Reinartz
59d26e8536 web: add -web.route-prefix flag
Fixes #1191
2016-07-07 11:49:16 +02:00
Fabian Reinartz
62af249d06 Merge pull request #1761 from prometheus/fabxc-legacyapi
api: drop legacy API
2016-06-27 14:26:03 +02:00
Fabian Reinartz
425736a377 *: remove last remainers of non-second metrics 2016-06-23 17:50:39 +02:00
Fabian Reinartz
97f62c021e api: drop legacy API 2016-06-23 17:14:32 +02:00
Brian Brazil
4dbe689632 Do our own date parsing in console template graph controls.
Fixes #1442
2016-06-10 10:23:40 +01:00
Fabian Reinartz
25135c3691 web: round last scrape timestamp to milliseconds 2016-06-08 20:23:54 +02:00
David Gstir
2dd80225a4 Fix JS XHR requests in prom_console.js on IE11
IE11 does not support automatic JSON parsing for responses with
xhr.responseType = 'json', so we have to to do it manually.
2016-06-01 19:44:04 +02:00
Julius Volz
194a486c60 Merge pull request #1660 from alileza/add_http_errorlog
Log HTTP server errors using common/log
2016-05-26 15:03:15 -05:00
Ali Reza
624717e801 Log HTTP server errors using common/log
change naming to be more descriptive.
Fixes #1651

remove pointer receiver

use common/log error logger
2016-05-27 00:20:40 +07:00
Roman Vynar
9d616952b3
Added missed pathPrefix to Status sub-menus 2016-05-26 17:42:28 +03:00
beorn7
93460fb853 Remove a spurious "w" from _base.html 2016-05-25 13:59:50 +02:00
Bjoern Rabenstein
52a133d4d2 Make assets without debug settings 2016-05-23 11:13:08 +02:00
beorn7
da8cb10b43 Partition the status tab into items in a dropdown
I got feedback from different sources about rules and targets being
too heavy in the status tab if their are lots of them.

This change also allows for more fine-granular locking.
2016-05-18 18:13:55 +02:00
Fabian Reinartz
54de6afd22 Merge pull request #1625 from prometheus/series-api-time-bounds
Support time range in /api/v1/series endpoint.
2016-05-12 11:53:31 +02:00
Julius Volz
0c1e7a5b00 Support time range in /api/v1/series endpoint.
This adds optional "start" and "end" form values that may be used to
restrict the time range of returned series.

Fixes https://github.com/prometheus/prometheus/issues/1542
2016-05-12 07:28:02 +02:00
Steve Durrheimer
399d5c6375
Make version informations consistent between prometheus components 2016-05-05 22:33:18 +02:00
Julius Volz
c78bd13a2b Include date and time in graph hover detail.
This is the same solution as applied to PromDash in
https://github.com/prometheus/promdash/pull/72.

Fixes https://github.com/prometheus/prometheus/issues/1569
2016-04-22 23:00:18 +02:00
Julius Volz
c0b430b8e5 Improve before-relabeling label tooltips.
Yes, the label names and values really need double HTML escaping in
order to end up correctly in the tooltip after two levels of unescaping.

Fixes https://github.com/prometheus/prometheus/issues/1563
2016-04-18 20:23:41 +02:00
Jonathan Boulle
38098f8c95 Add missing license headers
Prometheus is Apache 2 licensed, and most source files have the
appropriate copyright license header, but some were missing it without
apparent reason. Correct that by adding it.
2016-04-13 16:08:22 +02:00
beorn7
4b574e8a61 Switch chunk encoding to type 2 where it was hardcoded type 1 before
The chunk encoding was hardcoded there because it mostly doesn't
matter what encoding is chosen in that test. Since type 1 is
battle-hardened enough, I'm switching to type 2 here so that we can
catch unexpected problems as a byproduct. My expectation is that the
chunk encoding doesn't matter anyway, as said, but then "unexpected
problems" contains the word "unexpected".
2016-03-20 23:32:20 +01:00
beorn7
836f1db04c Improve MetricsForLabelMatchers
WIP: This needs more tests.

It now gets a from and through value, which it may opportunistically
use to optimize the retrieval. With possible future range indices,
this could be used in a very efficient way. This change merely applies
some easy checks, which should nevertheless solve the use case of
heavy rule evaluations on servers with a lot of series churn.

Idea is the following:

- Only archive series that are at least as old as the headChunkTimeout
  (which was already extremely unlikely to happen).

- Then maintain a high watermark for the last archival, i.e. no
  archived series has a sample more recent than that watermark.

- Any query that doesn't reach to a time before that watermark doesn't
  have to touch the archive index at all. (A production server at
  Soundcloud with the aforementioned series churn and heavy rule
  evaluations spends 50% of its CPU time in archive index
  lookups. Since rule evaluations usually only touch very recent
  values, most of those lookup should disappear with this change.)

- Federation with a very broad label matcher will profit from this,
  too.

As a byproduct, the un-needed MetricForFingerprint method was removed
from the Storage interface.
2016-03-09 00:25:59 +01:00
beorn7
d77d625ad3 Merge branch 'master' into beorn7/storage6 2016-03-08 17:39:14 +01:00
Fabian Reinartz
f2e359962c Sort exported targets 2016-03-08 17:12:27 +01:00
beorn7
f7fc542db6 Merge branch 'master' into beorn7/storage4
Conflicts:
	storage/local/persistence.go
2016-03-08 00:14:00 +01:00
Fabian Reinartz
1ede7b9d72 Consolidate TargetStatus into Target.
This commit simplifies the TargetHealth type and moves the target
status into the target itself. This also removes a race where error
and last scrape time could have been out of sync.
2016-03-01 14:33:21 +01:00
beorn7
1e13f89039 Return SamplePair istead of *SamplePair consistently
Formalize ZeroSamplePair as return value for non-existing samples.

Change LastSamplePairForFingerprint to return a SamplePair (and not a
pointer to it), which saves allocations in a potentially extremely
frequent call.
2016-02-19 17:00:40 +01:00
Fabian Reinartz
37c709f917 Fix global config YAML issues 2016-02-15 14:08:25 +01:00
Fabian Reinartz
915a7c09a8 Adjust labels on status page 2016-02-15 11:10:14 +01:00
Tobias Schmidt
211cb10f13 Use https://prometheus.io 2016-02-05 00:07:03 -05:00
beorn7
a7408bfb47 Unify duration parsing
It's actually happening in several places (and for flags, we use the
standard Go time.Duration...). This at least reduces all our
home-grown parsing to one place (in model).
2016-01-29 15:41:50 +01:00
Julius Volz
1ae23bf5e9 Handle OPTIONS HTTP requests correctly.
Fixes https://github.com/prometheus/prometheus/issues/1346
2016-01-26 12:31:44 +01:00
Fabian Reinartz
b0adfea8d5 Fix swapped constants, improve instrumentation 2016-01-21 12:15:29 +01:00
Fabian Reinartz
8a67110041 Revert autocomplete changes 2016-01-11 15:18:39 +01:00
Fabian Reinartz
37d80c4b25 Fix premature rule evaluation
This commit prevents rule evaluation from starting until after
the storage is ready.
2016-01-08 17:51:22 +01:00
Fabian Reinartz
bf6abac8f4 Send resolved notifications 2015-12-17 15:42:26 +01:00
Fabian Reinartz
52e5224f5a Refactor rules/ package 2015-12-17 15:42:25 +01:00
Fabian Reinartz
b35e25a082 Don't federate stale samples 2015-12-16 13:45:44 +01:00
Fabian Reinartz
e0f70ed5ca Update common/{expfmt,model}
Closes #1232
2015-12-10 11:19:46 +01:00
Fabian Reinartz
29a69eecb8 Do not panic in Consul SD creation 2015-11-30 18:41:48 +01:00
Tobias Schmidt
7a6a0630d1 Merge pull request #1213 from prometheus/fix-wrong-http-status-codes
Return HTTP server error codes for execution errors
2015-11-12 09:12:17 -08:00
Tobias Schmidt
6c49edfce2 Merge pull request #1211 from prometheus/default-time-parameter
Make time parameter optional in v1 query API
2015-11-12 09:11:55 -08:00
Julius Volz
bce5202354 Minor fixups to web/ui/README.md 2015-11-12 02:54:14 +01:00
Tobias Schmidt
bf84faa010 Return HTTP server error codes for execution errors 2015-11-11 16:22:20 -08:00
Fabian Reinartz
7cbd31f7b6 Merge pull request #1212 from prometheus/uidev
Document convenient development of UI files.
2015-11-11 23:49:04 +01:00
Tobias Schmidt
50079a85a1 Make time parameter optional in v1 query API
If no time paramter is provided, the current server timestamp is used.
2015-11-11 13:30:06 -08:00
Fabian Reinartz
69e6ac735e Document convenient development of UI files. 2015-11-11 21:17:54 +01:00
Sam Starling
1901875595 Tidy up .js files based on static analysis from jshint 2015-11-11 20:06:47 +01:00
Fabian Reinartz
a542cc8609 Remove -web.use-local-assets 2015-11-11 17:58:03 +01:00
Fabian Reinartz
57ca7108aa Enable debug generation of go-bindata, rename blob/ to ui/ 2015-11-11 15:55:16 +01:00
Fabian Reinartz
33aab4169c Anchor regexes in vector matching
This commit makes the regex behavior of vector matching consistent with
configuration and label_replace() by anchoring it.

Fixes #1200
2015-11-05 11:23:43 +01:00
Julius Volz
a635f5451e Don't autocomplete metrics in range specifications. 2015-10-25 19:36:28 +01:00
Tobias Schmidt
ee600cf949 Format web/blob/files.go after generation 2015-10-23 02:51:29 -04:00
Julius Volz
c27400de21 Recompile web assets for autocomplete change. 2015-10-13 15:18:03 -04:00
Julius Volz
15c58c0f3e Enable autocomplete anywhere in expression.
This enables metric name autocompletion for every word in an expression,
not just the very first one. It would be great to also support all
language keywords during autocompletion in the future.
2015-10-13 15:17:56 -04:00
Julius Volz
0088aa4d45 Merge pull request #1132 from prometheus/fix-quoting-and-escaping
Support escape sequences in strings and add raw strings
2015-10-08 20:51:18 +02:00
Julius Volz
46c5260761 Support escape sequences in strings and add raw strings.
This adapts some functionality from the Go standard library for string
literal lexing and unquoting/unescaping.

The following string types are now supported:

Double- or single-quoted strings:

  These support all escape sequences that Go supports in double-quoted
  string literals. The difference is that Prometheus also has
  single-quoted strings (instead of single-quoted runes in Go). Raw
  newlines are not allowed.

Backtick-quoted raw strings:

  Strings quoted in backticks are treated as raw strings just like in Go
  and may contain raw newlines and other special characters directly.

Fixes https://github.com/prometheus/prometheus/issues/1122
Fixes https://github.com/prometheus/prometheus/issues/1121
2015-10-08 19:17:21 +02:00
Roy Miloh
189416cb34 Remove duplicated bootstrap js on the graph template, it's already included on the base template. 2015-10-05 22:50:16 +03:00
Fabian Reinartz
e3b6ec9784 Switch to common/log 2015-10-03 10:21:43 +02:00
Julius Volz
3008a35c04 HTML-escape string return values in web UI.
Querying for the string literal "<script>alert(1)</script>" would alert
otherwise.
2015-10-01 13:21:39 +02:00
Julius Volz
dac26cef71 Rename global "labels" config option to "external_labels". 2015-09-29 20:54:20 +02:00
Fabian Reinartz
398bbf906b Switch to common/route package 2015-09-24 17:08:47 +02:00
Julius Volz
0179bbfe03 Fix / -> /graph redirect when using a path prefix. 2015-09-23 12:36:18 +02:00
Björn Rabenstein
cf12e890a6 Merge pull request #1098 from prometheus/fix-direct-access-of-protobuf-fields
Fix creation of protobuf fields
2015-09-21 13:40:29 +02:00
beorn7
ca63c05b4e Fix creation of protobuf fields 2015-09-18 19:00:53 +02:00
Fabian Reinartz
171f50706a Fix unkeyed field errors. 2015-09-18 17:00:08 +02:00
Fabian Reinartz
ac9554539c Merge pull request #1092 from prometheus/makefile
Native go building
2015-09-18 10:29:57 +02:00
Fabian Reinartz
92ffeadb7b Move assets generation to top level make file 2015-09-17 17:53:54 +02:00
Fabian Reinartz
d85cee0277 Remove compression from web interface 2015-09-17 16:33:14 +02:00
Fabian Reinartz
f8a25f6af7 Apply HTTP handler compression everywhere 2015-09-17 14:49:50 +02:00
Fabian Reinartz
896928ad00 Fix redirect path 2015-09-12 09:02:34 +02:00
Fabian Reinartz
d7b21f2fdb Merge pull request #1039 from prometheus/startpage
Change UI start page
2015-09-12 08:44:54 +02:00
Fabian Reinartz
87b1d47e2b Change UI start page 2015-09-12 08:40:46 +02:00
Fabian Reinartz
9bbd9264e2 Add global labels to federation 2015-09-03 16:38:03 +02:00
Julius Volz
da2499d5a5 Add POST handler for /debug to fix CPU profiling.
`go tool pprof` sends a POST request to enable CPU profiling, so we also
need to handle that method.
2015-08-26 17:42:25 +02:00
Julius Volz
995d3b831d Fix most golint warnings.
This is with `golint -min_confidence=0.5`.

I left several lint warnings untouched because they were either
incorrect or I felt it was better not to change them at the moment.
2015-08-26 12:44:46 +02:00
Fabian Reinartz
d6b8da8d43 Switch promql types to common/model 2015-08-25 13:49:14 +02:00
Fabian Reinartz
d6d88f8950 Add missing license headers 2015-08-24 19:19:21 +02:00
Fabian Reinartz
1535ef1457 Replace metric.SamplePair with model.SamplePair 2015-08-22 14:52:35 +02:00
Fabian Reinartz
438e232c9b Fix grouping of import blocks 2015-08-22 09:42:45 +02:00
Fabian Reinartz
47aa0d536c Use common/expfmt in federation 2015-08-21 13:33:38 +02:00
Fabian Reinartz
306e8468a0 Switch from client_golang/model to common/model 2015-08-21 13:33:38 +02:00
Julius Volz
274e9d6955 Exit when web server encounters a startup error 2015-08-20 18:23:57 +02:00
Julius Volz
e88007306c Remove broken alert silencing links.
Let's remove the silencing links until we actually have support for that.
A silencing link shouldn't only redirect to Alertmanager, but also open a
silencing dialog for the respective alert name or active alert element.
2015-08-18 14:48:57 +02:00
Brian Brazil
eb82a4b948 web: Support multiple names for console graphs. 2015-08-11 23:37:09 +01:00
Brian Brazil
a8605825a0 Rollback, meant to send a PR 2015-08-11 20:02:03 +01:00
Brian Brazil
1ad449d233 web: Support multiple names for console graphs. 2015-08-11 19:59:00 +01:00
Jan Berktold
fa929a8345 Change /reload to /-/reload & and fix channel type 2015-08-11 12:26:41 +02:00
Jan Berktold
2bf7048dbb Add reload handler to web 2015-08-11 11:27:15 +02:00
Dan Williams
0441518a71 Add IDs to H2 tags to allow anchored linking
Allow sharing links directly to areas of the status page f.e. http://prometheus.internal/#config/
2015-07-30 15:39:05 -04:00
Julius Volz
c5c7f92960 Fix /debug/pprof endpoint with new web router.
This got broken in
78047326b4
since it stopped using the DefaultServeMux.

This approach will defer pprof requests to the DefaultServeMux, which
may or may not have pprof enabled (in Prometheus, it gets it included in
main.go). An alternative approach would be to duplicate the four lines in
https://golang.org/src/net/http/pprof/pprof.go#L62. When choosing that
approach though, we would not automatically gain any new endpoints added
by net/http/pprof or other /debug endpoints in the future.
2015-07-22 12:28:46 +02:00
Fabian Reinartz
62b4e89b39 Restore legacy API scalar format 2015-07-16 20:19:18 +02:00
Brian Brazil
87b9813be4 Merge pull request #883 from brian-brazil/fix-menu
web: Fix regression in .Path
2015-07-10 10:38:30 +01:00
Brian Brazil
7b5a29fc8f web: Fix regression in .Path
.Path is documented as removing /consoles/,
recent changes added in a leading / which broke
the provided console templates menu system.
2015-07-10 10:31:35 +01:00
Fabian Reinartz
9e599976c4 web/js: fix display error for vectors in console 2015-07-10 00:43:43 +02:00
Fabian Reinartz
75ba840d88 web/js: adjust Javascript to new response format 2015-07-06 13:09:26 +02:00
Fabian Reinartz
3d67d75935 promql: implement JSON array format for scalar and string 2015-07-06 13:09:26 +02:00
Fabian Reinartz
77e8983221 promql: add MarshalJSON method for SamplePair 2015-07-06 10:29:59 +02:00
Julius Volz
0f57b403a9 Add tests for "globalURL" template function. 2015-07-03 14:47:52 +02:00
Julius Volz
fcff35b43e Consolidate external reachability flags into one.
Besides fixing https://github.com/prometheus/prometheus/issues/805 by
making the entire externally reachable server URL configurable, this
adds tests for the "globalURL" template function and makes it easier to
test other such functions in the future.

This breaks the `web.Hostname` flag (and introduces `web.external-url`).
This flag is likely only used by few users, so I hope that's
justifiable.

Fixes https://github.com/prometheus/prometheus/issues/805
2015-07-03 13:39:10 +02:00
Fabian Reinartz
8f904d6a54 api/v1: fix response format tests 2015-07-02 14:12:26 +02:00
Fabian Reinartz
b36fa7ad61 api/v1: fix Content-Type in response 2015-07-01 22:47:25 +02:00
Fabian Reinartz
4db3eeb054 web: generate embedded assets. 2015-06-25 17:26:26 +02:00
Julius Volz
cf2a7a7ca9 Use v1 API for querying.
Also remove hidden input fields that are not used anymore, because the
query params are now passed as JSON to the AJAX function. This also has
the wonderful side effect that we're no longer sending all the other
non-hidden fields along to the query endpoints anymore.
2015-06-25 15:05:04 +02:00
Julius Volz
9607b8bbdb Merge pull request #840 from prometheus/fix-scrape-errors-ui
Fix blown-up scrape error display in web UI.
2015-06-24 17:55:01 +02:00
Julius Volz
bc1c789bab Disallow cross-origin DELETE and POST requests. 2015-06-24 17:26:49 +02:00
Julius Volz
c7039c3a73 Fix blown-up scrape error display in web UI. 2015-06-24 17:22:16 +02:00
Julius Volz
535a7f2640 Update web/blog/files.go with new web content. 2015-06-24 15:26:01 +02:00
Julius Volz
bbc8b8490e Switch human-readable times to UTC.
This fixes https://github.com/prometheus/prometheus/issues/829
2015-06-23 21:26:05 +02:00
Julius Volz
d868264bb8 Improve UI of /alerts page.
Changes to the UI:
- "Active Since" timestamps are now human-readable.
- Alerting rules are now pretty-printed better.
- Labels are no longer just strings, but alert bubbles (like we do on
  the status page for base labels).
- Alert states and target health states are now capitalized in the
  presentation layer rather than at the source.
2015-06-23 18:48:45 +02:00
Julius Volz
d7ea0397d4 Use templates.TemplateExpander for all page templates.
This will allow us to use all of our shiny templating functions in the
main page templates as well.
2015-06-23 17:53:06 +02:00
Fabian Reinartz
53b9d5917d web: improve target URL handling and display. 2015-06-23 13:45:15 +02:00
Fabian Reinartz
39a8254963 web: add basic federation support.
This commit adds a federation handler on /federate. It accepts `match[]`
query parameters containing vector selectors. Their intersection determines
the in-memory metrics that are returned in the same way as the
/metrics endpoint does (modulo sorting).
2015-06-23 13:45:15 +02:00
Fabian Reinartz
1eff186555 Merge pull request #810 from prometheus/fabxc/lmatch
Match empty labels.
2015-06-22 15:45:50 +02:00
Fabian Reinartz
5b91ea9b36 storage: improve label matching and allow unset matching.
Matching of empty labels now also matches metrics where the label
was not explicitly set to the empty string.
2015-06-22 15:33:44 +02:00
Fabian Reinartz
94cd321be1 promql: error if all label matchers are empty. 2015-06-22 15:33:44 +02:00
Fabian Reinartz
119801027f web: expose a version information endpoint 2015-06-17 14:49:31 +02:00
Fabian Reinartz
39edc2df7a version: move version information into separate package.
Version information is determined at build-time and thus there is
no need to pass it down from main. In its own package it can
be used from various other packages.
2015-06-16 14:48:29 +02:00
Fabian Reinartz
85d7c7640a web: remove flags, refactor handlers 2015-06-15 19:01:06 +02:00
Brian Brazil
27ef54263e Web: Format files.go when it is built.
This will avoid unrelated changes appearing
when you do a make fmt
2015-06-13 15:27:08 +01:00
Julius Volz
b9b20fd80e Always show selected range, regardless of returned data. 2015-06-12 17:22:06 +02:00
Julius Volz
395a0b3b11 Merge pull request #799 from prometheus/multiline-expr-input
Change expression input field to multi-line textarea.
2015-06-12 17:03:54 +02:00