Skip to content
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

Identify numbers in Kibana that are not displayed with full precision #17307

Closed
alexfrancoeur opened this issue Mar 21, 2018 · 3 comments
Closed
Labels
Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc

Comments

@alexfrancoeur
Copy link

There is a longstanding issue opened for supporting 64bit integers in Kibana (#1274). While I understand that this is currently a known limitation with JavaScript, it would be great if we could identify or provide warning to users when viewing numbers that are displaying full precision. This will help reduce confusion around what is thought to be data corruption and miscalculations.

We would need to support throughout Kibana, including responses returned in Console (#1274 (comment))

cc: @epixa @spalger @ppf2 @jpountz

@alexfrancoeur alexfrancoeur added the Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc label Mar 21, 2018
@ppf2
Copy link
Member

ppf2 commented Mar 21, 2018

We would need to support throughout Kibana, including responses returned in Console (#1274 (comment))

And also the spy/inspector thing in Kibana where it is often used to inspect the raw response coming back from ES - which is also being altered due to the precision issue.

@epixa
Copy link
Contributor

epixa commented Apr 2, 2018

Your intention is good here, but this is hardly any easier than the original issue you linked to. The moment JavaScript parses the response from the server, all of the 64 bit integers are wrangled, and we have no way of identifying whether that happened or not. This is just how JavaScript works.

In order to alter how Kibana works with 64 bit integers, we must develop and roll out a completely custom JSON parsing solution that identifies 64 bit integers in the raw serialized json string and then parses them as strings rather than integers. Then we need to update the Kibana server and UI to recognize and handle the number-represented-as-string use case universally.

Whether or not we handle these things by rendering the original integer value as a string or whether we render some sort of indication that the number has been rolled over is inconsequentially small relative to the effort I described above, so there's not really a good reason to do one over the other. I suspect we'll want/need to do a combination of both, where we render the string value where possible and the number with a warning indicator in situations where it isn't possible.

And all of this going to have a non-trivial impact on Kibana performance because JSON parsing implemented in JavaScript is a good deal slower than the native JSON parsing that is built into the language, so we'll probably want to make this opt-in or something.

I hope this clarifies that the high fruit part of this whole thing is universal regardless of how we handle the actual integers in the end user experience. I'm going to close this in favor of the original high level issue #1274

@epixa epixa closed this as completed Apr 2, 2018
@alexfrancoeur
Copy link
Author

++ thanks for the additional info @epixa, this helps clarify the scope and complexity of the problem. I'm fine with continuing to track in #1274

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Team:Core Core services & architecture: plugins, logging, config, saved objects, http, ES client, i18n, etc
Projects
None yet
Development

No branches or pull requests

3 participants