-
Notifications
You must be signed in to change notification settings - Fork 24.8k
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
index going to "completed" ILM phase instead of "warm" #46357
Comments
@TomLawler : Change the filter on your indices from |
Pinging @elastic/es-core-features |
@DanRoscigno after the rollover, ILM moves the index into the |
Thanks @dakrone , If this is the thinking, then I would like it to show up in the ILM UI when I set the filter to show me |
That's right, ILM is single pass execution, and once a policy has been completely executed it moves to the
This is something that would probably have to be addressed on the UI side, perhaps @bmcconaghy who worked on the original UI could direct you to where to file an appropriate issue for it? |
Hmm this seems like a deficiency in the ES API. Not sure how the UI could figure out that something is still in warm phase if the phase is "complete". We filter based on phase (just a dumb string filter). |
I think the disconnect is thinking that an index resides in a phase permanently, for example, an index is only in the "warm" phase whilst operations are being executed in that phase. To clarify this, we could potentially add a "last_phase" output to the ILM explain output for an index so the UI could use |
To be clear, there isn't really any "logic" to the filtering, it's a dumb UI component. I'm sure something could be coded to make this filtering work for the user, but the data needs to be in the return from ES. An issue should be filed in the Kibana repo linked to this one for the corresponding Kibana work. |
Another thing to discuss, is this something we event want? Perhaps a |
To me, "completed" is not a phase. An index stays in the last defined phase, so in the case described in this issue, it remains in "warm". This seems like what the person who filed this issue thinks makes the most sense, and I agree. "Completed" is about the lifecycle as a whole, not a phase I think. |
I would defer to Elasticsearch UI on this one, though, as I don't work on this any longer. @cjcenizal any thoughts on this one? |
My concern with showing |
@dakrone : Do we need completed at all? Does this phase prevent some actions from considering those indices for action? If there is a check for phase == completed, maybe the checks could look at |
@DanRoscigno as Gordon mentioned, the We already have confusion with ILM's single pass execution, removing the |
I hear you, but I think it is way more confusing to have a dropdown filter that does not work. If the choices are hot, warm, cold, delete then I expect to be able to see the indices that are in hot, warm, or cold phases (I don't know why delete is in there, if the indices are deleted, then they should not show up in the manage indices UI, right?). I think that users should expect changes to an ILM policy to only be in effect for new indices. A short "these changes will be in effect for new indices" message near the save button could be added to remind the user. |
I do think the dropdown is a little strange, I think having |
The |
Ahh yeah, good point Gordon, I forgot about the snapshots blocking deletion so yeah, we should keep |
This doesn't give the user the right understanding either, because changes to policies don't just effect new indices. If a policy is changed, indices which enter new phases after that will use the new version. For example, if an index is in the This is, honestly, the source of a lot of confusion, probably second only to the required alias setup. |
I can't imagine clicking on |
regarding the alias, hopefully most users are using Beats. If so, then they have an easy time. The policy and alias are created for them, they never see any JSON at all (unless they are self managed, then they have to set the node attributes for hot, warm, cold) |
This I think gets to the crux of the problem, we have two different conceptions of "warm", from a user's perspective an index is "warm" during a range of time (which may be perpetual if there is no |
I mean, it might be possible for us to just park an index in
That's what I expected too, and have been proven very painfully wrong by experience. But that's a different issue than the one under discussion here. |
We already do this, we have a elasticsearch/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/LifecyclePolicy.java Lines 187 to 195 in f336c74
The thing is that we need to progress to the next phase when reaching this step assuming that the |
Yes, I meant rework the design so that there's no As I said, this would be a very significant breaking change and well behind a lot of other changes in terms of priority, and I'm not sure the current setup is unintuitive enough to justify the effort it would require. |
The UI is extremely unintuitive. As someone with 25 years ops experience, when I clicked on warm and found no indices I figured I screwed something up and wasted hours trying to convince myself that I had broken something. I think that if we provide a UI to our users and in the UI there is a filter, then the filter should match something. Since it is a breaking change to change the way we label the phases, and the UI does not work as is, then can we just remove that dropdown completely? Without the dropdown nobody will be confused. |
@DanRoscigno Thanks for your feedback! The ES UI team owns this UI. I've been out for a couple days so apologies for not chiming in sooner. We'll review this discussion and create a plan for resolving the UX problems you've pointed out. |
Thanks all! |
I'm caught up on this discussion now, and I'm inclined to agree with @DanRoscigno. As Lee touched upon, users hear "phase" and think about the stages in the Index Lifecycle Policy form, and reasonably form a mental model of an index moving from phase to phase -- but always being in a phase. Engineers hear "phase" and think of the actions a lifecycle policy takes upon an index entering a particular phase, actions which are of course finite. These two concepts are out of alignment. I think the long-term solution is to align the users' and engineers' perspectives. We need to let users view their indices in the UI in a way that aligns with their mental model. It seems like there's no quick solution here, so I'd like to keep this issue open or replace it with another terser one to track that goal. In the short-term, I'll open an issue and corresponding PR that removes this filter from Index Management because I feel like it will cause confusion among the majority of our users. |
Issue: elastic/kibana#45484 |
IssueCurrent phase depicts Below screenshot shows that the index successfully executed the ILM policy, however due to ILM misconfiguration/error/etc, the shards didn't get moved to the warm nodes. Upon checking _cat/shards/, i find the index is still in the hot nodes. ProposalCan the UI also show which node (with attribute) the index is in? (E.g,. hot, warm) |
The names of the phases does not automatically translate to shards moving to those nodes. In your policy you have no |
As @dakrone says, the phase and the allocation are orthogonal - you could set up some fairly complex allocation with an ILM policy in necessary. There may be an argument for displaying allocation on that page, but if you want to request that feature @slimsheddy, please open a new issue in the Kibana repo rather than requesting it in this issue so that we can keep this discussion focused on a single topic. |
Note that indices start in the "new" phase (which hasn't been mentioned in this discussion so far). So there are 6 phases, from the point of view of the 'explain' API method. So to summarise what I have learned from experiments in ES 6.7, from reading this discussion, and reading the ES docs for index-lifecycle-management (note: I've used the phase/action/step notation as others have above):
|
It took me about a day of reading/experimenting/reading/experimenting/etc. to figure all of this out. Key insights:
So yes, the behaviour of jumping to the |
Thank you for the detailed feedback @david-in-perth! What you describe in your comments looks correct. When writing this documentation it's always a balance between including too much detail and not enough, and it can take a few iterations to get it right. I think we can certainly do a better job of documenting some of this, regardless of any code/product changes we make to make this more intuitive in the first place. I'll try to take a crack at it soon (although anyone else reading this is welcome to as well if you want to beat me to it!). |
This has been resolved by #51631 |
Bug report
Elasticsearch version
7.2.0 and 7.3.1 ESS
Description of the problem including expected versus actual behavior:
When I look at my indices under index management and apply the Lifecycle filters (hot, warm, cold) I see that I have a bunch of Filebeat indices that are not in any of the above states. When I look at the details I see the state is "completed":
Using the following ILM policy index should go to "warm" on rollover:
Steps to reproduce:
filebeat setup
filebeat
The text was updated successfully, but these errors were encountered: