Commit graph

11101 commits

Author SHA1 Message Date
Julius Volz 60c7748a17 Merge pull request #598 from prometheus/binop-special-float-values
Fix special value handling in division and modulo.
2015-03-16 14:52:45 +01:00
Julius Volz b2651027fc Fix special value handling in division and modulo.
This fixes https://github.com/prometheus/prometheus/issues/597
2015-03-16 14:23:40 +01:00
beorn7 be11cb2b07 Remove the sample ingestion channel.
The one central sample ingestion channel has caused a variety of
trouble. This commit removes it. Targets and rule evaluation call an
Append method directly now. To incorporate multiple storage backends
(like OpenTSDB), storage.Tee forks the Append into two different
appenders.

Note that the tsdb queue manager had its own queue anyway. It was a
queue after a queue... Much queue, so overhead...

Targets have their own little buffer (implemented as a channel) to
avoid stalling during an http scrape. But a new scrape will only be
started once the old one is fully ingested.

The contraption of three pipelined ingesters was removed. A Target is
an ingester itself now. Despite more logic in Target, things should be
less confusing now.

Also, remove lint and vet warnings in ast.go.
2015-03-15 14:08:22 +01:00
beorn7 0056eaeb4f Redesign series maintenance and chunk persistence. 2015-03-14 22:05:23 +01:00
beorn7 5bea942d8e Improve various things around chunk encoding.
A number of mostly minor things:

- Rename chunk type -> chunk encoding.

- After all, do not carry around the chunk encoding to all parts of
  the system, but just have one place where the encoding for new
  chunks is set based on the flag. The new approach has caveats as
  well, but the polution of so many method signatures is worse.

- Use the default chunk encoding for new chunks of existing
  series. (Previously, only new _series_ would get chunks with the
  default encoding.)

- Use an enum for chunk encoding. (But keep the version number for the
  flag, for reasons discussed previously.)

- Add encoding() to the chunk interface (so that a chunk knows its own
  encoding - no need to have that in a different top-level function).

- Got rid of newFollowUpChunk (which would keep the existing encoding
  for all chunks of a time series). Now only use newChunk(), which
  will create a chunk encoding according to the flag.

- Simplified transcodeAndAdd.

- Reordered methods of deltaEncodedChunk and doubleDeltaEncoded chunk
  to match the order in the chunk interface.

- Only transcode if the chunk is not yet half full. If more than half
  full, add a new chunk instead.
2015-03-14 19:03:20 +01:00
Julius Volz 6b0ef506f3 Merge pull request #595 from prometheus/show-special-values-as-gaps
Show special float values as gaps.
2015-03-14 03:29:58 +01:00
Julius Volz 91da12ad6a Show special float values as gaps. 2015-03-13 21:08:22 +01:00
Björn Rabenstein c63dfbfab5 Merge pull request #592 from prometheus/beorn7/fix
Remove hopelessly outdated tutorial.
2015-03-13 16:14:15 +01:00
beorn7 33ef2e411b Remove hopelessly outdated tutorial. 2015-03-13 15:50:57 +01:00
Björn Rabenstein d797546b2d Merge pull request #590 from prometheus/beorn7/fix
Sync the checkpoints.
2015-03-11 23:39:07 +01:00
beorn7 9ecf93526d Sync the checkpoints.
Because that's what should be done with checkpoints.
2015-03-11 19:10:51 +01:00
Julius Volz 7de2cf2fce Merge pull request #588 from prometheus/update-vendoring
Update vendored client_golang to 0.3.2.
2015-03-11 18:45:14 +01:00
Julius Volz 18efed761b Update vendored client_golang to 0.3.2.
For the Prometheus server, this fixes a bug where rules with a
right-hand-side that had a metric name would not correctly replace that
metric name with the left-hand side's rule name.
2015-03-11 18:20:02 +01:00
Björn Rabenstein afa7375d36 Merge pull request #587 from prometheus/beorn7/chunk-encoding
Actually use double-delta encoding for transcoding. :-o
2015-03-11 17:18:57 +01:00
beorn7 853f971540 Actually use double-delta encoding for transcoding. :-o 2015-03-11 16:52:58 +01:00
Björn Rabenstein d4ef509b0f Merge pull request #579 from prometheus/beorn7/chunk-encoding
Implement double-delta encoded chunks.
2015-03-07 23:57:47 +01:00
Julius Volz a9cbcf442d Merge pull request #583 from prometheus/nicer-target-health
Nicer formatting of target health table on /status.
2015-03-07 23:55:45 +01:00
Julius Volz 52ce3599c9 Nicer formatting of target health table on /status. 2015-03-07 23:35:28 +01:00
Julius Volz c0b71b2b6e Merge pull request #582 from prometheus/rename-unreachable
Rename UNREACHABLE to UNHEALTHY.
2015-03-07 23:32:30 +01:00
Julius Volz 140eede5e0 Rename UNREACHABLE to UNHEALTHY.
The current wording suggests that a target is not reachable at all,
although it might also get set when the target was reachable, but there
was some other error during the scrape (invalid headers or invalid
scrape content). UNHEALTHY is a more general wording that includes all
these cases.

For consistency, ALIVE is also renamed to HEALTHY.
2015-03-07 23:18:18 +01:00
beorn7 66e768f05e Improve docstring for chunk type flag. 2015-03-06 17:04:07 +01:00
beorn7 23ba8a5516 Make floats exact again.
This should do the right thing for the old delta chunks, too.
2015-03-06 17:03:56 +01:00
beorn7 a8d4f8af9a Improve minor things after review.
The problem of float precision will be addressed in the next commit.
2015-03-06 12:53:00 +01:00
beorn7 13fcf1ddbc Implement double-delta encoded chunks. 2015-03-05 20:33:26 +01:00
Björn Rabenstein 38ab8cc39b Merge pull request #580 from prometheus/beorn7/fix
Fix embed-static.sh.
2015-03-05 14:36:53 +01:00
beorn7 cbe92347ef Fix embed-static.sh.
Some versions of the cd command print out the directory they have
changed into.
2015-03-05 14:27:46 +01:00
Björn Rabenstein 9376e0520f Merge pull request #578 from prometheus/beorn7/fix
Update persistQueueLength after chunks were persisted.
2015-03-04 20:37:17 +01:00
Julius Volz 9219aab87b Merge pull request #577 from josephwilk/patch-1
typo
2015-03-04 18:51:17 +01:00
beorn7 5ed8f6c205 Update persistQueueLength after chunks were persisted. 2015-03-04 18:46:16 +01:00
Joseph Wilk 3d423b7864 typo 2015-03-04 17:54:48 +01:00
Björn Rabenstein 5101c58f6c Merge pull request #576 from prometheus/beorn7/license-cleanup
Add license files left out by godep.
2015-03-04 17:00:02 +01:00
beorn7 b98622094f Add license files left out by godep.
As it looks, `godep update ...` will preserve the files.

Obviously, if you blow away everything and run a `godep save ...` from
scratch, those files will be missing again. A `godep save` to add new
dependencies without blowing away the `Godeps` directory should work
fine, though.
2015-03-04 15:48:51 +01:00
Björn Rabenstein 55dcb55498 Merge pull request #575 from prometheus/beorn7/release
Cut 0.12.0.
2015-03-04 13:58:57 +01:00
beorn7 34396f75ea Cut 0.12.0. 2015-03-04 13:50:58 +01:00
beorn7 5ed3bf2e4b Update vendoring of client_golang to 0.3.1. 2015-03-04 13:42:06 +01:00
Björn Rabenstein ecf3449222 Merge pull request #574 from tomprince/patch-1
Use docker volume to store metric data
2015-03-04 13:02:02 +01:00
Tom Prince 6874377e9b Use docker volume to store metric data 2015-03-03 16:34:35 -07:00
Björn Rabenstein 0a1678b5f1 Merge pull request #573 from prometheus/beorn7/fingerprint
The big and scary fingerprint update.
2015-03-03 19:00:38 +01:00
beorn7 0167083da6 Improvements after review. 2015-03-03 18:59:39 +01:00
beorn7 a18cb29fa8 Update vendored client_golang to v0.3.0. 2015-03-03 18:34:01 +01:00
beorn7 9e85ab0eef Apply the new signature/fingerprinting functions from client_golang.
This requires the new version of client_golang (vendoring will follow
in the next commit), which changes the fingerprinting for
clientmodel.Metric.
2015-03-03 18:34:01 +01:00
beorn7 ebac14eff3 Add version guard to persistence. 2015-03-03 18:34:01 +01:00
Julius Volz 938290624b Merge pull request #572 from fabxc/fabxc/unary_fix
Fix unary +/- expressions.
2015-03-03 13:43:49 +01:00
Fabian Reinartz 182de6b99f Fix unary +/- expressions.
Unary expressions cause parsing errors if they are done in the lexer
by tokenizing them into the number.
This fix moves unary expressions to the parser.
2015-03-03 13:30:08 +01:00
Julius Volz 0b5dd24fd2 Merge pull request #554 from fabxc/fabxc/or
or operation and vector matching opts implemented
2015-03-03 13:05:57 +01:00
Fabian Reinartz 6f754073d5 Add OR operation and vector matching options.
This commits implements the OR operation between two vectors.
Vector matching using the ON clause is added to limit the set of
labels that define a match between two elements. Group modifiers
(GROUP_LEFT/GROUP_RIGHT) to request many-to-one matching are added.
2015-03-03 11:35:10 +01:00
Julius Volz cce2f30a8b Merge pull request #567 from prometheus/floats
Support scientific notation and special float values.
2015-03-02 13:05:21 +01:00
Julius Volz 0ac931aed1 Also support parsing float formats like "2.". 2015-03-02 12:58:05 +01:00
Julius Volz c2ab54e9a6 Support scientific notation and special float values.
This adds support for scientific notation in the expression language, as
well as for all possible literal forms of +Inf/-Inf/NaN.

TODO: Keep enough state in the parser/lexer to distinguish contexts in
which "Inf", "NaN", etc. should be parsed as a number vs. parsed as a
label name. Currently, foo{nan="bar"} would be a syntax error. However,
that is an existing bug for all our reserved words. E.g. foo{sum="bar"}
is a syntax error as well. This should be fixed separately.
2015-03-01 19:31:16 +01:00
Julius Volz ae832c9e63 Merge pull request #566 from prometheus/beorn7/makefile
Upgrade to go1.4.2.
2015-02-27 15:19:43 +01:00