Matt T. Proud
d79c932a8e
Merge pull request #120 from prometheus/feature/storage/compaction
...
Spin up curator run in the tests.
2013-04-05 04:55:59 -07:00
Matt T. Proud
c3e3460ca6
Spin up curator run in the tests.
...
After this commit, we'll need to add validations that it does the
desired work, which we presently know that it doesn't. Given the
changes I made with a plethora of renamings, I want to commit this
now before it gets even larger.
2013-04-05 13:55:11 +02:00
Matt T. Proud
461da0b3a8
Merge pull request #117 from prometheus/feature/storage/compaction
...
Spin up storage layers for made fixtures.
2013-04-03 04:41:52 -07:00
Matt T. Proud
d0ad6cbeaa
Spin up storage layers for made fixtures.
2013-04-03 12:09:05 +02:00
Julius Volz
c59f3fc538
Fix formatting in tiered_test.go.
2013-03-28 12:16:31 +01:00
juliusv
39826d7335
Merge pull request #107 from prometheus/julius-fix-get-fingerprints
...
Fix bug in GetFingerprintsForLabelSet().
2013-03-27 10:54:17 -07:00
Julius Volz
2668700e54
Fix bug in GetFingerprintsForLabelSet().
2013-03-27 18:50:30 +01:00
Matt T. Proud
c53a72a894
Test data for the curator.
2013-03-27 18:13:43 +01:00
Matt T. Proud
6dcaa28806
Include LevelDB fixture generators for curator.
...
This will help reduce common boilerplate for our test process
with respect to LevelDB-related things.
2013-03-27 15:13:40 +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
8cf2af3923
Abort view job processing on timeout.
2013-03-26 17:18:51 +01:00
Julius Volz
2b8f0b2cc7
Constantize metric name label name.
2013-03-26 16:20:23 +01: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
42bdf921d1
Fetch integrated memory/disk data for simple Get* functions.
2013-03-26 14:47:07 +01:00
Julius Volz
11bb94a7e5
Implement GetAllMetricNames() for memory storage.
2013-03-26 14:47:07 +01:00
Julius Volz
991dc68d78
Rename misnamed oldestSampleTimestamp variable.
2013-03-26 11:56:10 +01:00
Matt T. Proud
3e97a3630d
Include nascent curator scaffolding.
...
The curator doesn't do anything yet; rather, this is the type
definition including the anciliary testing scaffold.
Improve Makefile and Git developer experience.
The top-level Makefile was a bit overloaded in terms of generation of
assets and their management. This has been offloaded into separate
Makefiles.
The Git developer experience sucked due to lack of .gitignore
policies.
Also: Fix faulty skiplist naming from old merge.
2013-03-25 19:38:14 +01:00
Matt T. Proud
b2e4c88b80
Wrap LevelDB iterator operations behind interface.
...
The LevelDB storage types return an interface type now that wraps
around the underlying iterator. This both enhances testability but
improves upon, in my opinion, the interface design for the LevelDB
iterator.
Secondarily, the resource reaping behaviors for the LevelDB iterators
have been improved by dropping the externalized io.Closer object.
Finally, the iterator provisioning methods provide the option for
indicating whether one wants a snapshotted iterator or not.
2013-03-25 12:57:58 +01:00
Matt T. Proud
f2a30cf20c
Several important cleanups and deprecations.
...
EachFunc is deprecated.
Remove deprecated ``Pair`` and ``GetAll``.
These were originally used for forensic and the old gorest impl.
Nothing today in the user-facing path nor the tests uses them,
especially since the advent of the ForEach protocol in the
interface.
2013-03-25 08:38:21 +01:00
Matt T. Proud
70448711ec
Merge pull request #95 from prometheus/feature/persistence/batching
...
Several interface cleanups.
2013-03-24 00:19:46 -07:00
Matt T. Proud
8f6b55be71
Several interface cleanups.
...
- Kill Close in Persistent and document interface.
- Extract batching behavior into interface.
- Kill IteratorManager, which was used for unknown reasons.
2013-03-24 07:35:43 +01:00
Julius Volz
a33d2726bc
Mark range op as consumed if it receives no data points in range.
2013-03-22 11:50:02 +01:00
Julius Volz
3c9d6cb66c
Add several needed persistence proxy methods to tiered storage.
2013-03-21 18:16:43 +01:00
Julius Volz
081d250929
Fix view's GetRangeValues() reverse iteration behavior.
2013-03-21 18:16:31 +01:00
Julius Volz
0be0aa59c2
Wait until storage is drained before closing the underlying leveldb.
2013-03-21 18:16:07 +01:00
Julius Volz
becc278eb6
Fix two bugs in range op time advancement.
2013-03-21 18:15:52 +01:00
Matt T. Proud
ceb6611957
Fix regression in subsequent range op. compactions.
...
We have an anomaly whereby subsequent range operations fail to be
compacted into one single range operation. This fixes such
behavior.
2013-03-21 18:11:04 +01:00
Matt T. Proud
669abdfefe
`make format
` invocation.
2013-03-21 18:11:04 +01:00
Julius Volz
bdb067b47f
Implement remaining View Get* methods.
2013-03-21 18:11:04 +01:00
Julius Volz
1f42364733
Fix typo in comment.
2013-03-21 18:11:03 +01:00
Matt T. Proud
758a3f0764
Add documentation and cull junk.
2013-03-21 18:11:03 +01:00
Matt T. Proud
bd8bb0edfd
One additional reduction.
2013-03-21 18:11:03 +01:00
Matt T. Proud
73b463e814
Additional simplifications.
2013-03-21 18:11:03 +01:00
Matt T. Proud
fd47ac570f
Implied simplifications.
2013-03-21 18:11:03 +01:00
Matt T. Proud
51a0f21cf8
Interim documentation
2013-03-21 18:11:03 +01:00
Matt T. Proud
b470f925b7
Extract rewriting of interval queries.
2013-03-21 18:11:03 +01:00
Matt T. Proud
eb721fd220
Include note about greediest range.
2013-03-21 18:11:03 +01:00
Julius Volz
e50de005f9
Populate metric in SampleSet returned from GetRangeValues()
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
Julius Volz
95f8885c8a
Adopt new ops sorting interface in view rendering.
2013-03-21 18:11:02 +01:00
Julius Volz
4d79dc3602
Replace renderView() by cleaner and more correct reimplementation.
2013-03-21 18:11:02 +01:00
Julius Volz
e0dbc8c561
Fix edge cases in data extraction for point and interval ops.
2013-03-21 18:11:02 +01:00
Julius Volz
a4361e4116
Rename extractSampleValue -> extractSampleValues.
2013-03-21 18:08:49 +01:00
Julius Volz
4e7db57e76
Fix iterator behavior in view.GetSampleAtTime()
2013-03-21 18:08:49 +01:00
Julius Volz
bb9c5ed7aa
Fix nil pointer exception in frontier building.
2013-03-21 18:08:48 +01:00
Matt T. Proud
896e172463
Extract time group optimizations.
2013-03-21 18:08:48 +01:00
Matt T. Proud
5a71814778
Additional greediness.
2013-03-21 18:08:48 +01:00
Matt T. Proud
b00ca7e422
Refactor some greediness computations.
2013-03-21 18:08:48 +01:00
Matt T. Proud
978acd4e96
Simplify time group optimizations.
...
The old code performed well according to the benchmarks, but the
new code shaves 1/6th of the time off the original and with less
code.
2013-03-21 18:08:48 +01:00
Matt T. Proud
d7b534e624
Update documentation.
2013-03-21 18:08:48 +01:00
Matt T. Proud
1f7ed52b46
Start writing high watermarks.
2013-03-21 18:08:48 +01:00
Julius Volz
a224dda9f0
Fix diskFrontier.ContainsFingerprint() return value.
2013-03-21 18:08:48 +01:00
Matt T. Proud
47ce7ad302
Extract appending from goroutine.
2013-03-21 18:08:48 +01:00
Matt T. Proud
187cd4cdbc
Extract indexing of Fingerprint to Metrics.
2013-03-21 18:08:48 +01:00
Matt T. Proud
532589f728
Extract Label Pair to Fingerprint indexing.
2013-03-21 18:08:48 +01:00
Matt T. Proud
84acfed061
Extract finding unindexed metrics.
2013-03-21 18:08:48 +01:00
Matt T. Proud
67300af137
Extract indexing to separate routine.
2013-03-21 18:08:47 +01:00
Matt T. Proud
582354f6de
Fix remaining `make advice
` issues.
2013-03-21 18:08:47 +01:00
Matt T. Proud
615e6d13d7
Run `make format
`.
2013-03-21 18:08:47 +01:00
Julius Volz
caeb759ed7
Add tests for and fix getValuesAlongRangeOp value extraction.
2013-03-21 18:08:47 +01:00
Julius Volz
69a24427b7
Minor tiered storage fixups.
2013-03-21 18:08:47 +01:00
Julius Volz
3621148e7f
Comment out panicking test until proper support is implemented.
2013-03-21 18:08:47 +01:00
Julius Volz
e2fb497eba
Add operator value extraction tests.
2013-03-21 18:08:47 +01:00
Julius Volz
12a8863582
Add data extraction methods to operator types.
2013-03-21 18:08:47 +01:00
Julius Volz
1d5df867d1
Set test time to fixed value.
2013-03-21 18:08:47 +01:00
Julius Volz
2f06b8bea6
Fix tiered storage test to trigger iterator rewinding case.
2013-03-21 18:08:47 +01:00
Julius Volz
894ecfe161
Small cleanups and comments in tiered storage.
2013-03-21 18:08:47 +01:00
Julius Volz
f238b23b04
Set -leveldbFlushOnMutate to false by default.
2013-03-21 18:08:47 +01:00
Julius Volz
8939e0723a
Make LevelDB chunk size a flag.
2013-03-21 18:08:46 +01:00
Julius Volz
ce4f560e48
Encapsulate fingerprint frontier checks in renderView().
2013-03-21 18:08:46 +01:00
Julius Volz
1a1cba1bb2
Address outstanding PR comments.
2013-03-21 18:08:46 +01:00
Matt T. Proud
62b5d7ce20
Oops.
2013-03-21 18:08:46 +01:00
Matt T. Proud
1e0d740f2a
Conditionalize LevelDB index retrievals.
...
The LevelDB index retrievals could be repeated in a given operation
batch if multiple queued mutations affect the same (Label Name) singles
and (Label Name, Label Value) doubles. This is wasteful and
inefficient, as a single retrieval suffices. Thusly this commit
retrieves the canonical index mappings if the said mapping has not
been looked up in a given batch.
2013-03-21 18:08:46 +01:00
Matt T. Proud
34a921e16d
Checkpoint.
2013-03-21 18:08:46 +01:00
Matt T. Proud
8cc5cdde0b
checkpoint.
2013-03-21 18:08:46 +01:00
Matt T. Proud
d5380897c3
Cleanups and adds performance regression.
2013-03-21 18:06:51 +01:00
Matt T. Proud
f39b9c3c8e
Checkpoint.
2013-03-21 18:06:51 +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
Matt T. Proud
4502b49524
Swap out fingerprinting infrastructure.
...
All old database entries should be deleted. :-(
2013-02-08 15:58:53 +01: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
Julius Volz
e23ac0adbd
Implement bulk iteration/operation storage interface.
2013-02-06 17:05:23 +01:00
Matt T. Proud
ec3e98b365
Include Snappy in Runtime.
...
Snappy should have been explicitly included in the runtime, for I
erroneously thought that LevelDB bundled this into its runtime as-is.
It turns out that this assumption is wrong, and I thought we had
Snappy compression support all-along.
2013-02-01 13:35:07 +01:00
Matt T. Proud
79ba248bbe
Make LevelDB operating modes invocation-time conf.
...
Presently our use of LevelDB and its operating modes are hardcoded
into the storage stack. This pull request decouples this and
re-exposes this through flags. We can now perform benchmarking
and remedial tuning.
2013-01-27 20:28:37 +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
f2ded515b7
Support versioned telemetry providers.
...
client_golang was updated to support full label-oriented telemetry,
which introduced interface incompatibilities with the previous
version of Prometheus. To alleviate this, a general fetching and
processing dispatching system has been created, which discriminates
and processes according to the version of input.
2013-01-27 17:45:50 +01:00
Matt T. Proud
88d15373c5
Upgrade Prometheus to new API.
2013-01-23 17:18:45 +01:00