-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[UnifiedFieldList] Fields are not marked as Empty in Discover sidebar #147124
Comments
Pinging @elastic/kibana-data-discovery (Team:DataDiscovery) |
Hi @jughosta - I see this issue on 8.7.0 as well. Would this be fixed in the next update? |
@metalshanked So far it has not been fixed, you can track this issue to get notified when it will be fixed. Since it has a |
Thanks @kertal. Had a quick question. I see this issue opened in Dec 2022 however I don't see this issue occur in 8.6.2 (which has a hide empty fields toggle) Is it because the new UnifiedFieldList feature was implemented starting 8.7.0 and so this issue is first seen by users in the 8.7.0 release? |
So we changed the underlying implementation of getting the available fields in 8.7.0. Correct! |
We aligned Empty fields in Discover to the way it works in Lens. Additionally, to the request for all fields, we send a request via the data views API for fields providing the actual query. But the way fields capabilities API works is not returning all fields that have values, but filtering out indices that return no results for the query. This is done by the This is why in the given case e.g. Before this change Apart from the given setup described in this issue, it can be easily reproduced by using our demo data, by adding a Data View for |
In our demo data this ain't a big issue, but given users have a large mapping, that's just partially contains actual values, the alignment with Lens leads to having much more Example from #154632 |
Related ER: https://github.com/elastic/enhancements/issues/16766 A request for being able to only see fields in a dropdown that has values and not empty fields. |
@kertal @ninoslavmiskovic - Sorry, had a related question on mapping which I hope you can help clarify. If so, how does a mapping explosion exactly happen in this case, since I understand only the metadata for the mapping is synced to the indices/shards? Thanks in advance! |
@metalshanked I'm interested where you think this could cause performance issues? On ingestion? On search? In the UI? |
Thanks @kertal - Yes. in any of the places, ingestion, search, ui
|
hi all, A couple of comments and perhaps a path forward. Comments:
I suggest we do the following as a path forward:
Improving our templates for ingesting should be driven by the responsible team for the ECS templates. |
Hey @ninoslavmiskovic and all, Congrats on the Unified Field List feature 🎉 We're observing what we classify as regression with a similar behaviour after upgrading from 8.6.2 to 8.8.2: After narrowing down a search to the aws elb integration logs, for example, we still see all (or most) of the fields from other logs as well under Before the upgrade we only saw fields that are available after search filters got applied. Should I open a new issue or this is the right place? |
@georgivalentinov Thanks for sharing, and I can confirm this is the right issue for what you're encountering. While we don't have a fix for this issue currently, we're in communication with the Elasticsearch team to figure out if/how an API can be provided which properly supports this functionality. Regarding the old behaviour, it too didn't actually function as intended unfortunately. Here's an except from a comment I just left on another issue related to this bug (#162239 (comment)) explaining why:
For your specific use case, are the fields you expect to see prefixed in a particular way? If so, using the field name filter in the field list with a wildcard could be a potential workaround in the meantime (e.g. |
👋
Yep, we've noticed it works this way, but was good enough for us, and we weren't really hit by the drawbacks of this method.
Oh, so we/you are on the right track with intentions around a proper fix 👏 Thank you.
Some are (e.g. We'll definitely watch this space and wait for the proper fix. |
cc @ruflin |
Hi @artificial-aidan @georgivalentinov @metalshanked Would it resolve your issue when we would filter out fields that have no values in the indices that contain documents matching a query? Filtering into less fields would just work by using the filter of the UnifiedFieldList, we improved this are recently. Now you just can enter "kub awe" to get fields like "kubernetes.fieldlength.is.awesome". I'm interested in your opinion. |
Thanks @kertal. Can the filter be applied automatically in the background? i.e. Automatic filtering out fields that have no values in the indices. |
The issue for our team is field discoverability. If I know what field I'm looking for I can filter for it easily. But when exploring and debugging, not knowing which fields have data makes it very difficult. |
@metalshanked yes, this would work automatically. It also works like today, with the difference that request in background would provide just fields that have value on index level, this would reduce the amount of Available fields significantly e.g. in filebeat based scenarios @artificial-aidan so I'd assume the suggested change would be valuable to your use case, you could also use it beyond kibana on the ES field_caps API level |
Maybe I'm misunderstanding this statement.
I understood that is that the field filter would allow you to find fields you knew about. How would the filtering of fields without data happen? |
We evaluate a new way to filter out fields on index level that never had any value. Currently all fields of an index mapping that contain documents matching a query are displayed in the Available fields section. We would reduce that to just fields that have values. |
That makes sense. Yes that would work for us. |
For us, as we use a common data view, and "shared" data streams/indices (and I imagine others do, as that's probably quite common when the system is used for infra observability), it'd be best if fields list gets automatically reduced to what's available only for the current query/filter. This won't force people to use distinct Indices for different log types, which frequently leads to oversharding (too small, too many shards), which in turn is a known anti-pattern (we've been there, it's painful). |
Is this issue supposed to have been fixed by #174063 ? I just deployed the latest snapshot versions of elasticsearch and kibana 8.13 in a new development environment and still see nearly all (798) fields marked as "Available Fields" |
@baileygm I can't speak to why the snapshots were outdated, but I can confirm that this functionality should be included in the released version of 8.13. I also can't give exact details on the release date, but it will be available soon. |
Noticing in 8.14.1 that empty fields are once again being returned as available fields, raised #190175. |
Just pushed out Kibana 8.14.3 and it’s working perfectly |
I've tested with a standard config where Kibana is connected directly to elasticsearch and using a cross cluster search node |
I now notice that I have the opposite issue to @chris-stytch I'm seeing fields categorised as empty fields where they are not empty In this view, all 3 fields listed as empty have values |
|
thx for reporting, could you help us triage this issue by running a field_caps request like this?
we use |
Looking into this further I can see that when Kibana is accessing the elasticsearch cluster directly then it is correctly showing available fields and empty fields. It is when we are accessing the cluster via a cross cluster search node that I am seeing fields containing data categorised as empty fields I have run the fields_caps request though for both scenarios and get identical results though
|
Yes, all nodes and kibana are using 8.14.3 |
then it sounds like a bug on ES side, could you open an issue at https://github.com/elastic/elasticsearch/issues/new/choose |
Some fields are expected to be under "Empty fields" section in the sidebar but they appear under Available fields section. It might be a bug in fields existence API https://github.com/elastic/kibana/blob/main/src/plugins/unified_field_list/public/hooks/use_existing_fields.ts#L122
Example: "ip_range", "phpmemory" in Logs sample data
The text was updated successfully, but these errors were encountered: