Commit Graph

616 Commits

Author SHA1 Message Date
Julius Volz
51689d965d Add debug timers to instant and range queries.
This adds timers around several query-relevant code blocks. For now, the
query timer stats are only logged for queries initiated through the UI.
In other cases (rule evaluations), the stats are simply thrown away.

My hope is that this helps us understand where queries spend time,
especially in cases where they sometimes hang for unusual amounts of
time.
2013-06-05 18:32:54 +02:00
Matt T. Proud
c594d18f54 Merge pull request #282 from prometheus/fix/race/targetpool
Fix race conditions in TargetPool.
2013-06-05 07:35:16 -07:00
Matt T. Proud
d4db3cf00b Code Review: Last replacement wins. 2013-06-05 16:29:05 +02:00
Matt T. Proud
9cde48754b Fix race conditions in TargetPool.
The race condition detector found a few anomalies whereby a
TargetPool could be read during a mutation.  This has been fixed.
2013-06-05 14:44:20 +02:00
Matt T. Proud
d169e1d282 Merge pull request #281 from prometheus/feature/build/race-condition-binary
Include race condition runner.
2013-06-05 05:10:35 -07:00
Matt T. Proud
2ee6e32847 Include race condition runner. 2013-06-05 14:07:40 +02:00
juliusv
95adf1958b Merge pull request #280 from prometheus/cleanup/rules-concurrency
Put RuleManager concurrency in hands of caller, fix races.
2013-06-05 05:01:19 -07:00
Julius Volz
adb87816f4 Put RuleManager concurrency in hands of caller, fix races. 2013-06-05 13:56:56 +02:00
Matt T. Proud
9215580488 Include race condition binary target.
The race condition binary target is special in that it needs to
explicitly link against the dependent libraries and recompile the CGO
bindings.  Because of this, we have a new build target that produces
these binaries.
2013-06-05 13:56:15 +02:00
juliusv
6c36beb764 Merge pull request #269 from prometheus/feature/view-tracing
Conditionalize disk initializations.
2013-06-04 04:25:16 -07:00
Matt T. Proud
8339a189cb Code Review: Fix seriesPresent scope.
The seriesPresent scope should be constrained to the scope of a
scanJob, since this is keyed to given series.
2013-06-04 13:16:59 +02:00
Matt T. Proud
fe41ce0b19 Conditionalize disk initializations.
This commit conditionalizes the creation of the diskFrontier and
seriesFrontier along with the iterator such that they are provisioned
once something is actually required from disk.
2013-06-04 12:53:57 +02:00
juliusv
97736a030a Merge pull request #277 from prometheus/feature/exporter-prefix
Prepend "exporter_" to labels that already exist in exported metrics.
2013-06-03 01:46:17 -07:00
Julius Volz
dcfd09c801 Prepend "exporter_" to labels that already exist in exported metrics.
If the metrics exported by a process already contain any of a target's
base labels (such as "job" or "instance", but also any manually assigned
target-group label), don't overwrite that label, but instead add a new
label consisting of the original label name prepended with "exporter_".
This is to accomodate intermediate exporter jobs, which might indicate
e.g. the jobs and instances for which they are exporting data.
2013-06-02 22:48:46 +02:00
juliusv
d828b9c835 Merge pull request #276 from prometheus/fix/delta-noncounter-resets
Fix handling of negative deltas for non-counter values.
2013-05-29 02:26:20 -07:00
Julius Volz
138334fb31 Fix handling of negative deltas for non-counter values. 2013-05-28 17:36:53 +02:00
Julius Volz
a8468a2e5e Fix reversed disk flush cutoff behavior. 2013-05-28 16:14:30 +02:00
Julius Volz
eb1f956909 Revert "Revert "Ensure that all extracted samples are added to view.""
This reverts commit 4b30fb86b4.
2013-05-28 14:36:03 +02:00
juliusv
03addcd1a7 Merge pull request #273 from prometheus/fix/delta-handling
Fix handling of empty ranges in delta
2013-05-28 05:35:31 -07:00
Julius Volz
66d4620061 Don't assume delta has at least one sample per vector element. 2013-05-28 14:02:36 +02:00
Julius Volz
21c3be0814 Skip any empty range/boundary elements, not only nil ones. 2013-05-28 14:02:08 +02:00
Matt T. Proud
20d49ea169 Merge pull request #272 from prometheus/feature/status/uptime
Include uptime in the status console.
2013-05-24 02:02:28 -07:00
Matt T. Proud
0d2d6e9a27 Include uptime in the status console.
In order to help corroborate whether a Prometheus instance has
flapped until meta-monitoring is in-place, we ought to provide the
instance's start time in the console to aid in diagnostics.
2013-05-24 10:44:34 +02:00
Matt T. Proud
c10780c966 Introduce telemetry for rule evaluator durations.
This commit adds telemetry for the Prometheus expression rule
evaluator, which will enable meta-Prometheus monitoring of customers
to ensure that no instance is falling behind in answering routine
queries.

A few other sundry simplifications are introduced, too.
2013-05-23 21:29:27 +02:00
Johannes 'fish' Ziemke
8507c58bf2 Fix filename in Makefile. 2013-05-23 16:54:21 +02:00
Matt T. Proud
fe5c70fc61 Merge pull request #270 from prometheus/fix/expression/index-error
Revert "Ensure that all extracted samples are added to view."
2013-05-23 06:27:27 -07:00
Matt T. Proud
4b30fb86b4 Revert "Ensure that all extracted samples are added to view."
This reverts commit 008314b5a8. By
running an automated git bisection described in
https://gist.github.com/matttproud-soundcloud/22a371a8d2cba382ea64
this commit was found.
2013-05-23 13:36:22 +02:00
Matt T. Proud
9553971239 Merge pull request #267 from prometheus/fix/delta-boundaries
Use GetBoundaryValues() for non-counter deltas.
2013-05-22 10:23:54 -07:00
Julius Volz
750f862d9a Use GetBoundaryValues() for non-counter deltas. 2013-05-22 19:13:47 +02:00
juliusv
cc07b9ce74 Merge pull request #268 from prometheus/fix/value-extraction
Interval value extraction fixes and optimizations.
2013-05-22 09:24:46 -07:00
Julius Volz
f2b48b8c4a Make getValuesAtIntervalOp consume all chunk data in one pass.
This is mainly a small performance improvement, since we skip past the last
extracted time immediately if it was also the last sample in the chunk, instead
of trying to extract non-existent values before the chunk end again and again
and only gradually approaching the end of the chunk.
2013-05-22 18:14:45 +02:00
Julius Volz
83d60bed89 extractValuesAroundTime() code simplification. 2013-05-22 18:14:45 +02:00
Julius Volz
008314b5a8 Ensure that all extracted samples are added to view.
The current behavior only adds those samples to the view that are extracted by
the last pass of the last processed op and throws other ones away. This is a
bug. We need to append all samples that are extracted by each op pass.

This also makes view.appendSamples() take an array of samples.
2013-05-22 18:14:37 +02:00
Matt T. Proud
556be84c73 Merge pull request #265 from prometheus/feature/memory-arena-simplification
Move In-Memory Arena Away from Skiplist
2013-05-22 09:10:52 -07:00
Matt T. Proud
93da3f684a Instruct `make binary` to build binary file. 2013-05-22 17:59:53 +02:00
Matt T. Proud
b586801830 Code Review: Fix to-disk queue infinite growth.
We discovered a bug while manually testing this branch on a live
instance, whereby the to-disk queue was never actually dumped to
disk.
2013-05-22 17:59:53 +02:00
Matt T. Proud
285a8b701b Code Review: Extend lock. 2013-05-22 17:59:53 +02:00
Matt T. Proud
2526ab8c81 Code Review: Extend lock scope for appending. 2013-05-22 17:59:53 +02:00
Matt T. Proud
f994482d15 Code Review: Avenues for future improvemnet noted. 2013-05-22 17:59:53 +02:00
Matt T. Proud
298a90c143 Code Review: Initial arena size name. 2013-05-22 17:59:53 +02:00
Matt T. Proud
c07abf8521 Initial move away from skiplist. 2013-05-22 17:59:53 +02:00
Matt T. Proud
d8259cd10d Merge pull request #266 from prometheus/tool/dumper
Simple LevelDB sample dumper tool.
2013-05-22 07:18:53 -07:00
Julius Volz
6d68626125 Simple LevelDB sample dumper tool.
This very simple tool dumps all samples in a LevelDB metrics storage
together with their chunk information. This is very crude for now - I
just whipped it up because I needed to debug something. We should add
printf-style formatting support for it in the future to indicate what
information to output for each sample in the database. We could also
support inspecting the index databases.
2013-05-22 16:12:39 +02:00
Matt T. Proud
39a3e69779 Merge pull request #263 from prometheus/ui/negative-graph-values
Support negative graph values.
2013-05-21 07:59:52 -07:00
Julius Volz
8586c7520c Support negative graph values.
Currently graph Y-Axes were hardcoded to start at 0. Choose the Y-scale
automatically based on the graph data instead.
2013-05-21 16:54:33 +02:00
juliusv
1958063cc7 Merge pull request #262 from prometheus/feature/storage/fix-grouping
Spawn grouping of fingerprints with free semaphore.
2013-05-21 07:17:51 -07:00
Matt T. Proud
74a66fd938 Spawn grouping of fingerprints with free semaphore.
The previous implementation spawned N goroutines to group samples
together and would not start work until the semaphore unblocked.
While this didn't leak, it polluted the scheduling space.  Thusly,
the routine only starts after a semaphore has been acquired.
2013-05-21 16:11:35 +02:00
Matt T. Proud
053f4296d0 Merge pull request #260 from prometheus/feature/show-scrape-errors
Remember and display last scrape errors in web UI.
2013-05-21 06:40:39 -07:00
Julius Volz
081191afb8 Remember and display last scrape errors in web UI. 2013-05-21 15:31:27 +02:00
Matt T. Proud
32c3510e66 Merge pull request #259 from prometheus/optimize/fingerprinting-time
Optimize fingerprinting time and repointerize fingerprint usage
2013-05-21 05:44:33 -07:00