-
Notifications
You must be signed in to change notification settings - Fork 9.8k
3.0 migration guide #15099
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
3.0 migration guide #15099
Conversation
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
docs/stability.md
Outdated
function](https://github.com/prometheus/prometheus/issues/2458) | ||
* Remote remote read and the remote read endpoint | ||
* Server-side HTTPS and basic authentication | ||
* Service discovery integrations, with the exception of `static_configs` and `file_sd_configs` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should HTTP SD be included in this list now as well?
docs/migration.md
Outdated
- Some previously deprecated feature flags have been removed. Check that you no | ||
longer pass any of the following to `--enable-feature`: `promql-at-modifier` | ||
`promql-negative-offset`, `remote-write-receiver`, | ||
`new-service-discovery-manager`, `expand-external-labels`, | ||
`no-default-scrape-port`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would be easier to follow with the options as a proper list
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. And state that you can still pass in these flags, just that they don't do anything anymore, and that a warning will be logged.
We should remove references to 2.0 and link to the 2.55 docs to migrate from prom1 to prom2. STABILITY should only contain 3.0 stuff. we should mention that it is only possible to rollback to 2.55 because of indexing change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great start.
Left some comments and ideas.
docs/migration.md
Outdated
|
||
## PromQL | ||
|
||
- Regular expressions in PromQL not match newline characters. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not → now
But maybe also explain this better. IIRC this is about .
that did not match newline before but now does, while you could of course create a regexp matching the newline character even in the old world (just not by using .
).
As this is a migration guide, we should maybe provide a few examples (old regexp now also matches this other string, here is what you have to do to keep the old behavior).
docs/migration.md
Outdated
- Regular expressions in PromQL not match newline characters. | ||
- Lookback and range selectors are left open and right closed (previously left | ||
closed and right closed). This mostly means that the result size of range | ||
selectors is more predictable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to explain more details, like that this is happening with "perfect" alignment, most typically happening in tests, so you probably have to change a lot of tests, but not a lot in practice.
With the special caveat of sub queries. As some frontends create nicely aligned queries (like Grafana), and sub-queries are internally always aligned to multiples of their step size, you will get this a lot with sub queries.
docs/migration.md
Outdated
closed and right closed). This mostly means that the result size of range | ||
selectors is more predictable. | ||
- The `holt_winters` function has been renamed to `double_exponential_smoothing` | ||
and is now guarded by the `experimental_promql` feature flag. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The flag is called promql-experimental-functions
.
We need to say things more clearly, along these lines:
If you want to keep using holt_winters
, you have to do both of these things:
- Rename
holt_winters
todouble_exponential_smoothing
in your query. - Make sure to pass
--enable-feature=promql-experimental-functions
.
(Wordsmithing still required.)
docs/migration.md
Outdated
- Some previously deprecated feature flags have been removed. Check that you no | ||
longer pass any of the following to `--enable-feature`: `promql-at-modifier` | ||
`promql-negative-offset`, `remote-write-receiver`, | ||
`new-service-discovery-manager`, `expand-external-labels`, | ||
`no-default-scrape-port`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. And state that you can still pass in these flags, just that they don't do anything anymore, and that a warning will be logged.
`new-service-discovery-manager`, `expand-external-labels`, | ||
`no-default-scrape-port`. | ||
|
||
## PromQL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think each point in the list below needs to be an own paragraph (or even subsection with heading) with examples and concrete migration steps (see comments below for inspiration).
Going through Prometheus 3.0 (view) should give more inspiration what to add here (and looking at the changelog, and making sure that all is consistent with each other). Some things I have spotted:
|
#15092 should be mentioned, too, i.e. the whole "selectors are actually expected to return matching results". This will only affect a few, but because it is so subtle, I would still call it out. Mostly for people who use "remote read hacks" (i.e. the whole "let's put a MySQL query in a label selector", maybe even with a hint how to still make the hack work (by adding a corresponding label to the result)). |
Thanks everyone so far. I'll address the feedback later this week, until then please keep it coming. |
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Here is a first update according to reviews. There are some formatting warts to fix.. I'm still unsure about the "regex match \n" examples. its tricky to strike the right balance between accurate and succinct. Happt to incorporate feedback via PRs against https://github.com/jan--f/prometheus/tree/3.0-migration too. |
Oh and I still want to add links to issues and PRs. |
docs/migration.md
Outdated
### UTF-8 names | ||
Prometheus v3 supports UTF-8 in metrics and label names. This means metrics and | ||
label names can change after upgrading according to what is exposed by | ||
endpoints. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need to expand this to explain how to adjust configs to disallow utf8. Should I do that here or in a subsequent PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can either create a PR against https://github.com/jan--f/prometheus/tree/3.0-migration or we merge this soon and then incremental improvements can be parallelized in p/p.
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Signed-off-by: Owen Williams <owen.williams@grafana.com>
This document offers guidance on migrating from Prometheus 1.8 to Prometheus 2.0 and newer versions. | ||
In line with our [stability promise](https://prometheus.io/docs/prometheus/latest/stability/), | ||
the Prometheus 3.0 release contains a number of backwards incompatible changes. | ||
This document offers guidance on migrating from Prometheus 2.x to Prometheus 3.0 and newer versions. | ||
|
||
## Flags |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add # Configuration
#15178 got renamed. While native histograms were experimental, it's worth mentioning the rename?
docs/migration: details on enabling legacy name validation
The change to log/slog should be mentioned as it changes the logging format. old:
new:
|
Scrape config option |
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Ok I addressed all recent comments. I would like to merge the current state if there are no glaring errors so its included in the RC release due at the end of this week. Further additions and fixes can be added after that. |
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
Signed-off-by: Jan Fajerski <jfajersk@redhat.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Just a first outline of the 3.0 migration guide. Looking forward to feedback!