Commit graph

1538 commits

Author SHA1 Message Date
Fabian Reinartz 3ca11bcaf5 Switch Prometheus to promql package.
This commit removes all functionality from rules/ that is now handled in
promql/.
All parts of Prometheus are changed to use the promql/ package.
2015-04-28 16:19:23 +02:00
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