Matt T. Proud
b3e34c6658
Implement batch database sample curator.
...
This commit introduces to Prometheus a batch database sample curator,
which corroborates the high watermarks for sample series against the
curation watermark table to see whether a curator of a given type
needs to be run.
The curator is an abstract executor, which runs various curation
strategies across the database. It remarks the progress for each
type of curation processor that runs for a given sample series.
A curation procesor is responsible for effectuating the underlying
batch changes that are request. In this commit, we introduce the
CompactionProcessor, which takes several bits of runtime metadata and
combine sparse sample entries in the database together to form larger
groups. For instance, for a given series it would be possible to
have the curator effectuate the following grouping:
- Samples Older than Two Weeks: Grouped into Bunches of 10000
- Samples Older than One Week: Grouped into Bunches of 1000
- Samples Older than One Day: Grouped into Bunches of 100
- Samples Older than One Hour: Grouped into Bunches of 10
The benefits hereof of such a compaction are 1. a smaller search
space in the database keyspace, 2. better employment of compression
for repetious values, and 3. reduced seek times.
2013-04-27 17:38:18 +02:00
Julius Volz
2202cd71c9
Track alerts over time and write out alert timeseries.
2013-04-26 14:35:21 +02:00
Julius Volz
c0601abf46
Implement initial no-op alert parsing and rule parsing tests.
2013-04-23 13:48:24 +02:00
Matt T. Proud
f9e99bd08a
Refresh SampleValue to 64-bit floating point.
...
We always knew that this needed to be fixed.
2013-04-21 20:31:50 +02:00
Julius Volz
99dcbe0f94
Integrate memory and disk layers in view rendering.
2013-04-19 16:01:27 +02:00
Julius Volz
63625bd244
Make view use memory persistence, remove obsolete code.
...
This makes the memory persistence the backing store for views and
adjusts the MetricPersistence interface accordingly. It also removes
unused Get* method implementations from the LevelDB persistence so they
don't need to be adapted to the new interface. In the future, we should
rethink these interfaces.
All staleness and interpolation handling is now removed from the storage
layer and will be handled only by the query layer in the future.
2013-04-18 22:26:29 +02:00
Julius Volz
1eb586db7d
Fix rule evaluation closure.
2013-04-17 15:11:21 +02:00
Julius Volz
5f5ea03105
Run "make format".
2013-04-16 17:23:59 +02:00
Julius Volz
1cff4f3d91
Fix rate() per-second adjustment.
...
This got broken during the depointerization of the Vector type.
2013-04-15 14:41:34 +02:00
juliusv
62f33f1fc2
Merge pull request #138 from prometheus/julius-fix-aliasing
...
Correct delta()/rate() intervals and temporal aliasing.
2013-04-15 05:38:48 -07:00
Matt T. Proud
167504efd6
Merge pull request #142 from prometheus/julius-lowercase-by
...
Allow lower-case BY operator.
2013-04-15 05:13:35 -07:00
Julius Volz
d53b8cf956
Correct delta()/rate() intervals and temporal aliasing.
2013-04-15 12:30:46 +02:00
Julius Volz
000f6a2e23
Allow lower-case BY operator.
2013-04-15 11:56:23 +02:00
Julius Volz
a0d311c9e6
Constantize job name label.
2013-04-15 11:47:54 +02:00
Julius Volz
1bc83e1b65
Also allow lower-cased aggregation ops.
2013-04-11 18:25:22 +02:00
juliusv
f9c291120f
Merge pull request #123 from prometheus/julius-propagate-rule-errors
...
Propagate more errors during rule evaluation.
2013-04-11 06:38:33 -07:00
Julius Volz
9a81b9838f
Make expression parser goroutine-safe.
...
See https://github.com/prometheus/prometheus/issues/127
2013-04-10 19:17:28 +02:00
Julius Volz
6cb3c51d24
Add sort() and sort_desc() expression language functions.
2013-04-10 18:05:45 +02:00
Julius Volz
c4d0969c00
Propagate more errors during rule evaluation.
2013-04-09 13:47:20 +02:00
Julius Volz
e31591e6fe
Allow single-letter identifiers (metric and label names).
2013-03-28 18:37:54 +01:00
Julius Volz
ec413459fa
Depointerize Matrix/Vector types as well as time.Time arguments.
2013-03-28 18:07:12 +01:00
Julius Volz
676845afaf
Implement sample interpolation in query layer.
2013-03-28 16:41:51 +01:00
Matt T. Proud
c53a72a894
Test data for the curator.
2013-03-27 18:13:43 +01:00
Julius Volz
b836066c71
Eliminate need to get fingerprints during query execution time.
2013-03-27 14:42:03 +01:00
Julius Volz
55ca65aa6e
More userfriendly output when we fail to create the tiered storage.
2013-03-27 11:25:05 +01:00
Matt T. Proud
c4e971d7d9
Merge pull request #101 from prometheus/refactor/test/directory-extraction
...
Create temporary directory handler.
2013-03-26 10:46:28 -07:00
Matt T. Proud
b86b0ea41a
Create temporary directory handler.
2013-03-26 18:09:25 +01:00
Julius Volz
2b8f0b2cc7
Constantize metric name label name.
2013-03-26 16:20:23 +01:00
Julius Volz
3880a86c9c
In case of empty query results, return an empty matrix.
2013-03-25 12:14:48 +01:00
Julius Volz
8e4c5b0cea
Use AST query analyzer and views with tiered storage.
2013-03-21 18:16:52 +01:00
Julius Volz
2f814d0e6d
AST persistence adapter simplifications after storage changes.
2013-03-21 18:11:03 +01:00
Julius Volz
6001d22f87
Change Get* methods to receive fingerprints instead of metrics.
2013-03-21 18:11:03 +01:00
Matt T. Proud
5959cd9e53
Include Julius' feedback.
2013-03-21 18:08:48 +01:00
Matt T. Proud
a70ee43ad3
Niladic ``ToString()`` to idiomatic ``String()``.
2013-03-21 18:08:47 +01:00
Matt T. Proud
41068c2e84
Checkpoint.
2013-03-21 18:06:51 +01:00
Matt T. Proud
13ae29b304
Initial in-memory arena implementation.
...
It is unbounded, and nothing uses it except for a gating flag in main.
2013-02-18 09:38:14 -06:00
Julius Volz
c3d31febd6
Move durationToString to common place and cleanup error handling.
2013-02-14 19:02:23 +01:00
Matt T. Proud
efbe0e8a12
Interface simplification.
...
GetMetricForFingerprint(model.Fingerprint) (*Metric, error) ->
GetMetricForFingerprint(model.Fingerprint) (Metric, error)
2013-02-14 08:43:02 -08:00
Matt T. Proud
e8a733b525
Interface simplifications.
...
GetFingerprintsForLabelSet ([]*Fingerprint, error) ->
GetFingerprintsForLabelSet ([]Fingerprint, error)
2013-02-14 08:07:59 -08:00
Matt T. Proud
f03091b139
Interface simplifications: GetRangeValues
...
From pointers to copies.
2013-02-13 21:11:23 -08:00
Matt T. Proud
56f069b3ec
Interface simplifications: GetValueAtTime().
...
Pointer arguments to copies.
2013-02-13 21:05:01 -08:00
Matt T. Proud
900bb988c1
Simplifications of GetFingerprintsForLabelSet.
...
``MetricPersistence.GetFingerprintsForLabelSet(s *model.LabelSet)`` ->
``MetricPersistence.GetFingerprintsForLabelSet(s model.LabelSet)``.
2013-02-13 17:13:41 -08:00
Matt T. Proud
4fbcea73f5
MetricPersistence.AppendSample signature changes.
...
``MetricPersistence.AppendSample(*model.Sample)`` -> ``MetricPersistence.AppendSample(model.Sample)``.
2013-02-13 13:46:28 -08:00
Julius Volz
06ace4941d
Remove/replace last references to github.com/matttproud/...
2013-02-07 14:32:18 +01:00
Julius Volz
16d9dcd6a8
Add copyright notices to all remaining files.
2013-02-07 11:49:04 +01:00
Julius Volz
d67e4b9131
Address outstanding comments from PR/47 and other cleanups.
2013-02-07 11:38:01 +01:00
Matt T. Proud
ea54751431
Update import paths to new location.
...
This repository moved from matttproud/prometheus to
prometheus/prometheus, and all import paths need to be updated.
2013-01-27 18:49:45 +01:00
Julius Volz
c049ae39af
Cleanups to rules/persistence adapter code.
2013-01-25 12:22:55 +01:00
juliusv
619aa97025
Only close rule file if it could be opened.
2013-01-25 03:32:46 +01:00
Julius Volz
a85204a0a4
Add support for matrix duration strings without quotes.
2013-01-22 02:27:26 +01:00
Julius Volz
1760d927c8
Add error propagation to web UI via special JSON error type.
2013-01-22 02:27:26 +01:00
Julius Volz
49c87348b5
Implement per-second rate behavior for rate().
2013-01-22 02:27:26 +01:00
Julius Volz
93670aa129
Return API errors in JSON format.
2013-01-22 02:27:26 +01:00
Julius Volz
a20bf35997
Fix whitespace with "make format".
2013-01-22 02:27:26 +01:00
Julius Volz
c21450a089
Use correct label name for metric name in rule.
2013-01-22 02:27:26 +01:00
Julius Volz
6929c10acf
Add case-statement for OR, which still needs to be implemented.
2013-01-22 02:27:26 +01:00
Julius Volz
a555ded2b3
Add "w" (weeks) as a valid timeunit.
2013-01-22 02:27:26 +01:00
Julius Volz
2c8595f96e
First graphing support.
2013-01-22 02:27:26 +01:00
Matt T. Proud
efe61c18fa
Refactor target scheduling to separate facility.
...
``Target`` will be refactored down the road to support various
nuanced endpoint types. Thusly incorporating the scheduling
behavior within it will be problematic. To that end, the scheduling
behavior has been moved into a separate assistance type to improve
conciseness and testability.
``make format`` was also run.
2013-01-13 10:43:37 +01:00
Julius Volz
cb6eb30182
Fix state cleanup bug between rule/config parser runs.
...
This fixes a bug that has been annoying me minorly for some time now:
sometimes, after parse errors, a subsequent parser run would fail. The reason
is that yylex() modifies some global variables (yytext, yydata) during its run
to keep state. To make subsequent parser runs correct, these have to be reset
before each run.
Also, close files after reading them.
2013-01-12 02:35:40 +01:00
Julius Volz
17a4a442b3
Add REST API, expression browser, and text/JSON output formats.
2013-01-11 02:27:03 +01:00
Julius Volz
06162180ad
Implement matrix range and boundary fetching from metrics store.
2013-01-11 01:19:27 +01:00
Julius Volz
483bd81a44
Allow grammar to parse both rules and single expressions.
2013-01-11 01:17:37 +01:00
Julius Volz
c52b959fda
Fix matrix interval time calculation.
2013-01-11 01:12:34 +01:00
Julius Volz
fdf9a3aab7
Fix node type checks in arithmetic expressions.
2013-01-11 01:09:31 +01:00
Julius Volz
c4a2358551
Set correct interval in MatrixLiteral.Eval().
2013-01-11 01:08:47 +01:00
Julius Volz
429b66019c
Exclude metric name in vector arithmetric label matching.
2013-01-11 01:07:48 +01:00
Julius Volz
56384bf42a
Add initial config and rule language implementation.
2013-01-07 23:43:36 +01:00