This has been a frequent source of debugging pain since errors are
potentially delayed to a much later point. They bubble up in an
unrelated execution path.
* Adds a test covering the case where a target providers sends updated versions of the same target groups and the system should reconcile to the latest version of each of the target groups
* Refactors how input data is represented in the tests. It used to be literal declarations of necessary structs, now it is parsing yaml. Yaml declarations are half as long as the former. And these can be put in a fixture file
* Adds a tiny bit of refactoring on test timeouts
The labelsets returned from remote read are mutated in higher levels
(like seriesFilter.Labels()) and since the concreteSeriesSet didn't
return a copy, the external mutation affected the labelset in the
concreteSeries itself. This resulted in bizarre bugs where local and
remote series would show with identical label sets in the UI, but not be
deduplicated, since internally, a series might come to look like:
{__name__="node_load5", instance="192.168.1.202:12090", job="node_exporter", node="odroid", node="odroid"}
(note the repetition of the last label)
* flaky test caused by invalid fsnotify updates before the test files are written to disk causing the fd service to send empty `group[]` struct
* `close(filesReady)` needs to be before the file closing so that fsnotify triggers a new loop of the discovery service.
* nits
* use filepath.Join for the path url to be cross platform
* stupid mistake revert
* Use testutil in rules subpackage
* Fix manager test
* Use testutil in rules subpackage
* Fix manager test
* Fix rebase
* Change to testutil for applyConfig tests
This PR fixes#3072 by providing POST endpoints for `query` and `query_range`.
POST request must be made with `Content-Type: application/x-www-form-urlencoded` header.
This replaces the builtin byte slice with an interface for the index
reader. This allows the complex decoding of the index file format
to be used against more generalized implementations.
At the moment tsdb cannot be built on Illumos/Solaris due to
- An exclude tag against Solaris is added in db_unix.go
- We use built-in syscall package, which doesn't have nmmap and munmap support
This PR supports build on Illumos/Solaris by remove the Solaris exclude tag in db_unix.go
At the same time use golang.org/x/sys/unix package instead of syscall package, since it has Solaris nmmap and munmap implementation.
* promu: Use same go invocation as prometheus' for building
If you override $(GO) var in prometheus Makefile in order to use
a custom go binary you might encounter errors while building promu
as promu's Makefile $(GO) var is also defined to look for go in the
$PATH and you might end up using different go binaries for building
prometheus and promu.
This patch makes prometheus Makefile pass its $(GO) var to promu's makefile
as environmental variable.
Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>
* Makefile: Allow $(GO) to be set with environmental variable
Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>
* Makefile: Fix hardcoded call to gofmt
Signed-off-by: Sylvain Rabot <s.rabot@lectra.com>