Commit Graph

1537 Commits

Author SHA1 Message Date
Fabian Reinartz
5602328c7c Refactor query evaluation.
This copies the evaluation logic from the current rules/ package.
The new engine handles the execution process from query string to final result.
It provides query timeout and cancellation and general flexibility for
future changes.

functions.go: Add evaluation implementation. Slight changes to in/out data but
	not to the processing logic.
quantile.go: No changes.
analyzer.go: No changes.
engine.go: Actually new part. Mainly consists of evaluation methods
	which were not changed.
setup_test.go: Copy of rules/helpers_test.go to setup test storage.
promql_test.go: Copy of rules/rules_test.go.
2015-04-28 14:19:05 +02:00
Fabian Reinartz
089f019660 Merge pull request #639 from fabxc/fabxc/promql_1
Create promql package with lexer/parser.
2015-04-23 16:10:56 +02:00
Fabian Reinartz
32b7595c47 Create promql package with lexer/parser.
This commit creates a (so far unused) package. It contains the a custom
lexer/parser for the query language.

ast.go: New AST that interacts well with the parser.
lex.go: Custom lexer (new).
lex_test.go: Lexer tests (new).
parse.go: Custom parser (new).
parse_test.go: Parser tests (new).
functions.go: Changed function type, dummies for parser testing (barely changed/dummies).
printer.go: Adapted from rules/ and adjusted to new AST (mostly unchanged, few additions).
2015-04-23 16:04:50 +02:00
Julius Volz
54f5c524e5 Merge pull request #637 from fabxc/fix/scrape_timeout
Fix scrape timeout in config.
2015-04-15 14:14:04 +02:00
Fabian Reinartz
0280d74167 Fix scrape timeout in config.
The scrape timeout helper was wrapping the scrape interval.
2015-04-15 13:46:27 +02:00
Björn Rabenstein
ad7ef406d3 Merge pull request #635 from prometheus/beorn7/persistence
Improve chunk and chunkDesc loading.
2015-04-14 16:11:24 +02:00
Johannes 'fish' Ziemke
defcafb33c Merge pull request #636 from sdurrheimer/master
Dockerfile improvements
2015-04-14 13:42:49 +02:00
beorn7
a052d32609 Comment improvement. 2015-04-14 10:49:43 +02:00
beorn7
66fc61f9b7 Make bufPool a member of the persistence struct. 2015-04-14 10:43:09 +02:00
Steve Durrheimer
77ddbad97f Duplicated packages already present in inherited images (mercurial => buildpack-deps:jessie-scm, gcc => golang:1.4)
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-04-14 10:01:28 +02:00
Steve Durrheimer
5a284257f0 Better package cache cleanup
Signed-off-by: Steve Durrheimer <s.durrheimer@gmail.com>
2015-04-14 09:36:34 +02:00
beorn7
b02d900e61 Improve chunk and chunkDesc loading.
Also, clean up some things in the code (especially introduction of the
chunkLenWithHeader constant to avoid the same expression all over the place).

Benchmark results:

BEFORE
BenchmarkLoadChunksSequentially     5000            283580 ns/op          152143 B/op        312 allocs/op
BenchmarkLoadChunksRandomly        20000             82936 ns/op           39310 B/op         99 allocs/op
BenchmarkLoadChunkDescs            10000            110833 ns/op           15092 B/op        345 allocs/op

AFTER
BenchmarkLoadChunksSequentially    10000            146785 ns/op          152285 B/op        315 allocs/op
BenchmarkLoadChunksRandomly        20000             67598 ns/op           39438 B/op        103 allocs/op
BenchmarkLoadChunkDescs            20000             99631 ns/op           12636 B/op        192 allocs/op

Note that everything is obviously loaded from the page cache (as the
benchmark runs thousands of times with very small series files). In a
real-world scenario, I expect a larger impact, as the disk operations
will more often actually hit the disk. To load ~50 sequential chunks,
this reduces the iops from 100 seeks and 100 reads to 1 seek and 1
read.
2015-04-13 21:06:04 +02:00
beorn7
c563398c68 Remove obsolete debug message. 2015-04-13 16:59:52 +02:00
Björn Rabenstein
c44c81ebb0 Merge pull request #634 from fabxc/fix/dns-error
Show correct error on wrong DNS response.
2015-04-12 01:34:50 +02:00
Fabian Reinartz
36184f3530 Show correct error on wrong DNS response. 2015-04-11 16:14:38 +02:00
Björn Rabenstein
15cd8b3134 Merge pull request #633 from prometheus/beorn7/doc
Add warning about tarballs.
2015-04-10 14:57:52 +02:00
beorn7
f81cbb00c6 Add warning about tarballs. 2015-04-10 13:53:32 +02:00
Björn Rabenstein
04a078f5d4 Merge pull request #631 from prometheus/beorn7/release
Cut 0.13.1.
2015-04-09 16:41:06 +02:00
beorn7
54fc50e58c Cut 0.13.1. 2015-04-09 16:36:04 +02:00
Björn Rabenstein
dc8c9a37ce Merge pull request #630 from prometheus/beorn7/persistence
Fix the case where a series in memory has 0 chunks, but chunks on disk.
2015-04-09 16:31:15 +02:00
beorn7
c5fa0b90c3 Fix the case where a series in memory has 0 chunks, but chunks on disk.
This is actually completely normal for a freshly unarchived series.

Test added to expose.
2015-04-09 15:57:11 +02:00
Tobias Schmidt
49d67fc834 Merge pull request #629 from prometheus/improve-usage-formatting
Improve readability of usage text
2015-04-08 17:51:29 -04:00
Tobias Schmidt
7d71d354fd Remove special listing of config.file in usage
The -config.file parameter isn't required or any more special than the
other flags. In order to avoid confusion, this change removes the
special mention again. Instead, the error message if a config file
couldn't be loaded is changed to mention the flag name.
2015-04-08 17:36:15 -04:00
Tobias Schmidt
35a44509fb Improve readability of usage text
Separates flag and description by a newline to make it easier to read
the flags with long descriptions.
2015-04-08 17:33:25 -04:00
Björn Rabenstein
2d7d1a34b6 Merge pull request #628 from prometheus/beorn7/release
Update vendoring and release 0.13.0.
2015-04-08 18:51:43 +02:00
beorn7
cb1650b5a9 Cut v0.13.0. 2015-04-08 18:44:58 +02:00
beorn7
191c728152 Update vendoring. 2015-04-08 18:24:23 +02:00
Björn Rabenstein
7991b4be51 Merge pull request #627 from fabxc/flag_grouping
Make help output readable.
2015-04-08 13:50:27 +02:00
Fabian Reinartz
c012ca6039 Make help output readable.
This commit increases the usability by grouping flags based on their
first dot-separated group. Long flag descriptions are broken into lines
printed with indentation.
2015-04-08 12:41:49 +02:00
Björn Rabenstein
e1b5f18dee Merge pull request #626 from quinox/fix-625
#625 Fix incorrect consoles URL
2015-04-07 17:19:35 +02:00
Björn Rabenstein
d8e515e9cb Merge pull request #617 from prometheus/influxdb-write-support
Add experimental InfluxDB write support.
2015-04-07 13:23:06 +02:00
Ceesjan Luiten
6f5f33bd4d #625 Fix incorrect consoles URL 2015-04-06 17:30:13 +02:00
Julius Volz
059ab9383f Merge pull request #614 from quinox/master
Make all URLs absolute to support proxies
2015-04-02 20:49:21 +02:00
Ceesjan Luiten
0e18784c64 Make all paths absolute to support proxies 2015-04-02 20:36:47 +02:00
Julius Volz
593e565688 Allow writing to InfluxDB/OpenTSDB at the same time. 2015-04-02 20:24:38 +02:00
Björn Rabenstein
440d5df6e2 Merge pull request #621 from prometheus/beorn7/release
Cut release 0.13.0rc2.
2015-04-02 14:30:06 +02:00
beorn7
4a452b4274 Cut release 0.13.0rc2. 2015-04-02 14:25:02 +02:00
Björn Rabenstein
621ac10060 Merge pull request #620 from prometheus/beorn7/persistence
Adaptively reduce the wait time for memory series maintenance.
2015-04-02 14:09:27 +02:00
beorn7
3035b8bfdd Adaptively reduce the wait time for memory series maintenance.
This will make in-memory series maintenance the faster the more chunks
are waiting for persistence.
2015-04-01 17:52:03 +02:00
Julius Volz
9f198cc7b5 Merge pull request #619 from fabxc/fabxc/rule_checker
Increase the usability of the rule_checker CLI.
2015-04-01 16:36:56 +02:00
Fabian Reinartz
c4e762adbf Increase the usability of the rule_checker CLI.
This commit allows to invoke the rule_checker with a chain of
filepaths as arguments. If no paths are provided it reads from standard
input.
The -rule-file flag remains for backward-compatibility.
On processing errors the return code is now 1. For bad arguments
the return code is now 2.
2015-04-01 08:17:12 +02:00
Julius Volz
61fb688dd9 Add experimental InfluxDB write support. 2015-04-01 02:03:16 +02:00
Julius Volz
b456240c46 Merge pull request #612 from prometheus/strip-am-url-slash
Strip trailing slash in alertmanager URL.
2015-03-30 20:18:03 +02:00
Julius Volz
52d89b2173 Merge pull request #616 from brian-brazil/yotta-infinity
Avoid +InfYs and similar, just display +Inf.
2015-03-28 20:27:56 +01:00
Julius Volz
7793651b7d Merge pull request #615 from prometheus/api-tests
Add initial HTTP API tests.
2015-03-28 20:24:35 +01:00
Brian Brazil
941f585164 Avoid +InfYs and similar, just display +Inf. 2015-03-28 18:51:41 +00:00
Björn Rabenstein
b841ae41cd Merge pull request #604 from prometheus/beorn7/benchmark
Add benchmark for loading chunks and chunk descs.
2015-03-28 11:56:17 +01:00
Julius Volz
188aec0e6d Remove now-unused utility.Time type. 2015-03-27 23:45:11 +01:00
Julius Volz
33702da8a8 Use simple Now() func in API instead of utility.Time. 2015-03-27 23:43:47 +01:00
Julius Volz
a5a553f1da Add initial HTTP API tests.
This covers the /query (instant query) endpoint for now. Others to
follow.
2015-03-27 21:37:55 +01:00