Commit graph

3204 commits

Author SHA1 Message Date
beorn7 39c4915401 federation: Collapse time series of the same name
This will avoid duplicate MetricFamilies, thereby shrinking the size
of the federation payload and also creating legal text format.

Also, add unit tests for federation. They were also needed for the
previous state of the code, but were missing.
2016-09-14 19:35:20 +02:00
Fabian Reinartz 36fbdcc30f Merge pull request #1961 from prometheus/beorn7/release
Cut 1.1.2
2016-09-08 15:04:07 +02:00
beorn7 03831e0e1e Cut 1.1.2 2016-09-08 14:17:49 +02:00
Björn Rabenstein 531991e4a1 Merge pull request #1958 from prometheus/grobie/fix-aggregator-label-error
Fix parsing of label names which are also keywords
2016-09-08 14:06:39 +02:00
Tobias Schmidt 04ae6196f2 Fix parsing of label names which are also keywords
The current separation between lexer and parser is a bit fuzzy when it
comes to operators, aggregators and other keywords. The lexer already
tries to determine the type of a token, even though that type might
change depending on the context.

This led to the problematic behavior that no tokens known to the lexer
could be used as label names, including operators (and, by, ...),
aggregators (count, quantile, ...) or other keywords (for, offset, ...).

This change additionally checks whether an identifier is one of these
types. We might want to check whether the specific item identification
should be moved from the lexer to the parser.
2016-09-07 17:45:58 -04:00
Fabian Reinartz 24db241bd5 Merge pull request #1954 from prometheus/backport
Cut v1.1.1
2016-09-07 11:27:27 +02:00
Fabian Reinartz 333e2ed92d *: cut v1.1.1 2016-09-07 11:18:06 +02:00
Fabian Reinartz a2589e7815 retrieval: correctly handle IPv6 addresses
This updates all service discoveries to correctly
build the __address__ label for IPv6 addresses.
2016-09-07 11:13:53 +02:00
Fabian Reinartz 692ddc592c retrieval: fix IPv6 port default, add tests
This fixes port defaulting for IPv6 addresses and restructures
and test the construction of target label sets.
2016-09-07 11:13:53 +02:00
Fabian Reinartz f030cb5f01 retrieval: export NewHTTPClient 2016-09-07 11:13:53 +02:00
beorn7 a60378c777 Fix release date v1.1.0 2016-09-03 21:01:04 +02:00
Björn Rabenstein 5ee84a96db Merge pull request #1940 from prometheus/beorn7/release
Cut 1.1.0
2016-09-03 20:58:42 +02:00
beorn7 a49f3f6c08 Cut 1.1.0 2016-09-03 20:54:16 +02:00
Björn Rabenstein 71fb535ad1 Merge pull request #1942 from prometheus/beorn7/revert-graph-params
Revert /graph changes.
2016-09-02 15:03:08 +02:00
beorn7 f1ea5bf232 Modify tests to adjust to reverting the /graph changes
These tests have been added after the /graph changes and therefore
already test the new syntax.

This commit has to be reverted together with the previous one to get
back to the old new state. *sigh*
2016-09-02 14:12:31 +02:00
beorn7 aa43d34a86 Revert the /graph changes.
This revert will be reverted once v1.1 is released and has its own
release branch. Since we had already change on top of this, there was
no cleaner way of cutting those changes out.

This commit reverts the following commits:

Revert "Update backend helpers and templates to new url schema"
This reverts commit fc6cdd0611.

Revert "Refactor graph.js"
This reverts commit 445fac56e0.

Revert "Use query parameters in the url"
This reverts commit 3e18d86d8a.

Revert "Point to correct place for GraphLinkForExpression"
This reverts commit 3da825fc76.

Assets are also updated.
2016-09-02 13:59:09 +02:00
Julius Volz af5c7d5616 Merge pull request #1938 from prometheus/remote-write-experimental
Mark remote write address flag as experimental.
2016-09-01 01:19:48 +02:00
Julius Volz a88e950d1f Mark remote write address flag as experimental. 2016-09-01 00:58:53 +02:00
Julius Volz 1c271897be Merge pull request #1931 from tomwilkie/1843-remote-storage-ordering
Remote storage ordering
2016-08-30 17:49:13 +02:00
Tom Wilkie d41d91388f Update for new generic remote storage. 2016-08-30 17:43:29 +02:00
Tom Wilkie a6931b71e8 Rationalise retrieval metrics so we have the state (success/failed) on both samples and batches, in a consistent fashion.
Also, report total queue capacity of all queues, i.e. capacity * shards.
2016-08-30 17:42:42 +02:00
Tom Wilkie ece12bff93 Shard/parrallelise samples by fingerprint in StorageQueueManager
By splitting the single queue into multiple queues and flushing each individual queue in serially (and all queues in parallel), we can guarantee to preserve the order of timestampsin samples sent to downstream systems.
2016-08-30 17:42:36 +02:00
Julius Volz fe29e87824 Merge pull request #1930 from prometheus/generic-write-grpc
Generic write via gRPC
2016-08-30 17:28:48 +02:00
Julius Volz aa3f2b7216 Generic write cleanups and changes.
- fold metric name into labels
- return initialization errors back to main
- add snappy compression
- better context handling
- pre-allocation of labels
- remove generic naming
- other cleanups
2016-08-30 17:24:48 +02:00
Julius Volz d8ce6e5849 Update vendoring. 2016-08-30 17:19:18 +02:00
Brian Brazil 36d2c4bd0b Add generic write path using grpc.
This uses a new proto format, with scope for multiple samples per
timeseries in future. This will allow users to pump samples out to
whatever they like without having to change the core Prometheus code.

There's also an example receiver to save users figuring out the
boilerplate themselves.
2016-08-30 17:19:18 +02:00
Brian Brazil 72475cfa84 Update vendoring 2016-08-30 17:19:18 +02:00
Björn Rabenstein 2dd651770e Merge pull request #1923 from dmilstein/fix-delta-unmarshaling
Catch errors when unmarshalling delta/doubleDelta encoded chunks
2016-08-30 15:22:41 +02:00
Dan Milstein ec064c96f6 Add field names to table-driven test fixtures 2016-08-30 07:57:39 -04:00
Dan Milstein ac8788aca6 Convert to table-driven test and inline helper func 2016-08-30 07:57:39 -04:00
Dan Milstein f50f656a66 Fix double-delta unmarshaling to respect actual min header size
Turns out its valid to have an overall chunk which is smaller than the
full doubleDeltaHeaderBytes size -- if it has a single sample, it
doesn't fill the whole header.  Updated unmarshalling check to respect
this.
2016-08-30 07:57:39 -04:00
Dan Milstein b815956341 Catch errors when unmarshalling delta/doubleDelta encoded chunks
This is (hopefully) a fix for #1653

Specifically, this makes it so that if the length for the stored
delta/doubleDelta is somehow corrupted to be too small, the attempt to
unmarshal will return an error.

The current (broken) behavior is to return a malformed chunk, which can
then lead to a panic when there is an attempt to read header values.

The referenced issue proposed creating chunks with a minimum length -- I
instead opted to just error on the attempt to unmarshal, since I'm not
clear on how it could be safe to proceed when the length is
incorrect/unknown.

The issue also talked about possibly "quarantining series", but I don't
know the surrounding code well enough to understand how to make that
happen.
2016-08-30 07:57:39 -04:00
Tobias Schmidt ee9abf4535 Merge pull request #1932 from prometheus/sdurrheimer-circleci-tests-1.6-tag
Use 1.6 tag of the test image in circleci
2016-08-30 11:49:44 +02:00
Fabian Reinartz ab88057063 Merge pull request #1908 from prometheus/on-dates
Add various time and date functions
2016-08-30 11:03:23 +02:00
Steve Durrheimer 5792eaa1e8
Use 1.6 tag of the test image in circleci 2016-08-30 09:34:17 +02:00
Fabian Reinartz a83c8156b5 Merge pull request #1926 from dmilstein/add-tests-for-targetmanager
Add basic test for TargetManager.targetSet
2016-08-30 08:14:04 +02:00
Dan Milstein b9fb9742ed Move test helper function into scope of test func 2016-08-29 16:08:40 -04:00
Brian Brazil 4680daf237 Default date functions to current time. 2016-08-29 18:22:12 +01:00
Tobias Schmidt bc1178bf70 Merge pull request #1929 from hashmap/1900_validate_relabel_conf
Forbid invalid relabel configurations
2016-08-29 17:45:05 +02:00
Alexey Miroshkin e29d9394e5 Forbid invalid relabel configurations
This fix adds check if target_label value is set in case if action is replace or
hashmod
Issue [#1900]
2016-08-29 16:56:06 +02:00
Björn Rabenstein c9d9f564ff Merge pull request #1928 from prometheus/beorn7/testing
Testing: Add more test targets
2016-08-29 11:36:53 +02:00
Bjoern Rabenstein c7bd563b26 Testing: Add more test targets 2016-08-29 10:53:10 +02:00
Fabian Reinartz 23ddbd64aa Merge pull request #1925 from hashmap/1898-test-race
Fix data race in lexer and lexer test
2016-08-29 09:28:02 +02:00
Alexey Miroshkin bf0e441576 Instantiate lexer inline for the test
Don't use the lex constructor, remove the constructor introduced in the
prevous commit.
2016-08-29 09:20:43 +02:00
Julius Volz a614e3dd27 Merge pull request #1927 from mattbostock/add_crash_recovery_metric
Storage: Add crash recovery metric 'started_dirty'
2016-08-28 18:42:32 +02:00
Matt Bostock e618af5d0b Storage: Add crash recovery metric 'started_dirty'
...to indicate when crash recovery was invoked during Prometheus
startup.

Fixes #1918.
2016-08-27 21:41:06 +02:00
Dan Milstein 79216011cb Add basic test for TargetManager.targetSet
Verify that if the configs change, target groups are cleaned on
TargetManager.reload (rather than having old ones linger around, even if
they are no longer present in the configs).

This covers the bug fixed in #1907 -- I verified that by checking out
source from before that commit.

This is a start on #1906
2016-08-26 14:30:26 -04:00
Alexey Miroshkin 485f7dde08 Fix data race in lexer and lexer test
As described in #1898 'go test -race' detects a race in lexer code. This
pacth fixes it and also add '-race' option to test target to prevent
regression.
2016-08-26 17:07:17 +02:00
Björn Rabenstein 0ac2dbe6aa Merge pull request #1917 from prometheus/beorn7/promql
promql: Fix (and simplify) populating iterators
2016-08-26 08:42:44 +02:00
Björn Rabenstein b23169d86f Merge pull request #1913 from dmilstein/fix-remote-storage-test
Fix one of the tests for a remote storage QueueManager
2016-08-24 18:56:22 +02:00