Commit Graph

33 Commits

Author SHA1 Message Date
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
Matt T. Proud
a55602df4a Validate diskFrontier domain for series candidate.
It is the case with the benchmark tool that we thought that we
generated multiple series and saved them to the disk as such, when
in reality, we overwrote the fields of the outgoing metrics via
Go map reference behavior.  This was accidental.  In the course of
diagnosing this, a few errors were found:

1. ``newSeriesFrontier`` should check to see if the candidate fingerprint is within the given domain of the ``diskFrontier``.  If not, as the contract in the docstring stipulates, a ``nil`` ``seriesFrontier`` should be emitted.

2. In the interests of aiding debugging, the raw LevelDB ``levigoIterator`` type now includes a helpful forensics ``String()`` method.

This work produced additional cleanups:

1. ``Close() error`` with the storage stack is technically incorrect, since nowhere in the bowels of it does an error actually occur.  The interface has been simplified to remove this for now.
2013-04-09 11:47:16 +02:00
Julius Volz
e096896932 PR comment fixups. 2013-03-26 15:28:00 +01:00
Julius Volz
dd67ab115b Change GetAllMetricNames() to GetAllValuesForLabel(). 2013-03-26 14:47:07 +01:00
Julius Volz
bdb067b47f Implement remaining View Get* methods. 2013-03-21 18:11:04 +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
8cc5cdde0b checkpoint. 2013-03-21 18:08:46 +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
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
f1245e8dda Interface simplifications.
GetFingerprintsForLabelName ([]*Fingerprint, error) ->
GetFingerprintsForLabelName ([]Fingerprint, error)
2013-02-14 08:19:41 -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
14788cf4f3 Interface simplifications.
GetBoundaryValues() from pointers to values.
2013-02-13 21:07:42 -08:00
Matt T. Proud
56f069b3ec Interface simplifications: GetValueAtTime().
Pointer arguments to copies.
2013-02-13 21:05:01 -08:00
Matt T. Proud
1e2d6c7418 GetFingerprintsForLabelName simplifications.
``MetricPersistence.GetFingerprintsForLabelName(l *model.LabelName)``
->
``MetricPersistence.GetFingerprintsForLabelName(l model.LabelName)``
2013-02-13 17:44:35 -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
d67e4b9131 Address outstanding comments from PR/47 and other cleanups. 2013-02-07 11:38:01 +01:00
Julius Volz
2659304380 Add interface for getting all metrics from a MetricsPersistence. 2013-02-06 17:06:39 +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
Matt T. Proud
3ac5d48b1a Impl' storage i'faces and fix non-idiomatic warts.
This change includes implementation of most major storage layer
features, albeit some imperfect.  It also includes nascent telemetry
bindings, too.
2013-01-04 10:39:38 +01:00
Matt T. Proud
a14dbd5bd0 Interim commit for Julius. 2012-12-19 20:34:54 +01:00
Matt T. Proud
0886592ebc New interface definition after discussion. 2012-12-12 12:53:34 +01:00
Matt T. Proud
59a708f25a Provide prototype of storage layer interfaces. 2012-12-12 12:13:27 +01:00
Matt T. Proud
6589fc92f8 Strip web services, which weren't adding value. 2012-12-12 12:04:46 +01:00
Matt T. Proud
577acf4fe7 Exploding the storage infrastructure by contexts. 2012-12-09 16:27:12 +01:00
Matt T. Proud
15a6681651 Various cleanups.
Kill LevelDB watermarks due to redundancy.

General interface documentation has begun.

Creating custom types for the model to prevent errors down the
road.

Renaming of components for easier comprehension.

Exposition of interface in LevelDB.

Slew of simple refactorings.
2012-12-08 14:03:08 +01:00
Matt T. Proud
044a5b4e14 Add nascent Travis CI configuration. 2012-11-29 20:00:09 +01:00
Matt T. Proud
6ed67b02e2 Incorporate new interface tests. 2012-11-28 18:52:04 +01:00
Matt T. Proud
44f8802ae7 Add Apache License 2.0 boilerplate. 2012-11-26 20:11:34 +01:00
Matt T. Proud
2bbdaa5790 Initial directory re-arrangement for storage. 2012-11-26 19:56:51 +01:00