-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve compatibility testing against Prometheus and TSDB. #758
Comments
Proposed solution:
Any thoughts? |
A quick idea to solve those problems:
Could we execute
Add |
Agree, but controlling with what version of Prometheus to run ALL tests might be not enough as some tests requires some versions by design.. But we could skip tests that has versions below of something (for code that does not need to be backward compatible) (: That would work. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
We still need that ^^ (: |
This issue/PR has been automatically marked as stale because it has not had recent activity. Please comment on status otherwise the issue will be closed in a week. Thank you for your contributions. |
Hello 👋 Looks like there was no activity on this issue for last 30 days. |
I have some ideas that are slowly unblocked with the work on https://github.com/bwplotka/gobin (: Otherwise no movement, but would be nice to have. |
Hello 👋 Looks like there was no activity on this issue for last 30 days. |
Hello 👋 Looks like there was no activity on this issue for last 30 days. |
Closing for now as promised, let us know if you need this to be reopened! 🤗 |
Hello 👋 Looks like there was no activity on this issue for the last two months. |
Hello 👋 Looks like there was no activity on this issue for the last two months. |
Hello 👋 Looks like there was no activity on this issue for the last two months. |
@GiedriusS is this still needed? If needed should I give it a try? |
@GiedriusS @bwplotka I would like to work on this issue can you assign it to me? |
Let's start with acceptance criteria for our compatibity tests:
But what we mean by supports? We have essentially 2 points of contact:
api/v1/flags
,api/v1/config
,api/v1/label/
,api/v1/read
, api/v1/snapshot` etc)Storage format can change but is versioned (index and metadata separatedly e.g index version changed somewhere between 2.0 and 2.2.1), HTTP API should not for
v1
but things get added (e.gapi/v1/flags
was added inv2.2.1
, snaphot endpoint was extended etc)Goal: Support all minor Prometheus versions (e.g 2.0, 2.2, ... 2.7.. etc) There are expections. For example broken Prometheus releases like
2.1.x
. This means that we would like to test and support to tip of minor version (e.g 2.4.3 for 2.4).How we test this now?
Now (Before #704 PR or #730 lands, depending which will land first), our current method for testing compatibility is to perform on CI:
This runs ALL our tests with different
THANOS_TEST_PROMETHEUS_PATH
var which controlled which Prometheus binary is used for our e2e tests (we have quite few of them. All tests that ends up withe2e
suffix in name). This tests were fine to check if we support our common points as mentioned above.The problems we see:
Note that upgrading TSDB and Prometheus dependencies is essential to stay up to date with fixes and recent optimizations. We reuse lots of packages.
Extra:
As a nice-to-have we would like to make sure anyone can grab TSDB block from object storage to Prometheus and use it there. This means that we need test if compactor produced block is compatible with Prometheus and if yes, with what version (aiming for just latest is fine). How to test that?
The text was updated successfully, but these errors were encountered: