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

[XY] Add normalizeTable function to correct works with esdocs #131917

Merged

Conversation

VladLasitsa
Copy link
Contributor

@VladLasitsa VladLasitsa commented May 10, 2022

Completes part of #127115

Summary

As elastic-chart expect number format of data for time x-axis we should add normalizeTable so that convert string timestamps to number. Also as part of that was decided to use row values from table to configure x domain for time charts if column doesn't include information about time range.

Testing notes

kibana
| selectFilter
| esdocs index="kibana_sample_data_logs" fields="@timestamp, bytes"
| tail 10
| xyVis seriesType="line" xAccessor="@timestamp" xScaleType="time" accessors={visdimension "bytes" format="bytes"} annotationLayers={annotationLayer annotations={manual_point_event_annotation time="2022-05-12T12:00:00.000" label="1212" icon="alert" textVisibility=true}}
| render

@VladLasitsa VladLasitsa requested a review from Kuznietsov May 10, 2022 13:47
@VladLasitsa VladLasitsa self-assigned this May 12, 2022
@VladLasitsa VladLasitsa added WIP Work in progress Feature:XYAxis XY-Axis charts (bar, area, line) Team:Visualizations Visualization editors, elastic-charts and infrastructure release_note:skip Skip the PR/issue when compiling release notes backport:skip This commit does not require backporting v8.3.0 labels May 12, 2022
@VladLasitsa VladLasitsa changed the title Add normalizeTable function to correct works with esdocs [XY] Add normalizeTable function to correct works with esdocs May 12, 2022
@VladLasitsa VladLasitsa marked this pull request as ready for review May 12, 2022 12:11
@VladLasitsa VladLasitsa requested a review from a team as a code owner May 12, 2022 12:11
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-vis-editors @elastic/kibana-vis-editors-external (Team:VisEditors)

@VladLasitsa
Copy link
Contributor Author

@elasticmachine merge upstream

@VladLasitsa VladLasitsa mentioned this pull request May 16, 2022
31 tasks
const from = appliedTimeRange?.from;
const to = appliedTimeRange?.to;
const baseDomain = isTimeViz
? {
min: from ? moment(from).valueOf() : NaN,
max: to ? moment(to).valueOf() : NaN,
min: from ? moment(from).valueOf() : xValues[0],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is breaking the endzones in a weird way in case the time field of a date histogram is not bound to the time range (in this case appliedTimeRange is not defined). I also think it's not "correct" because the the last data point is not the end of the chart necessarily. I'm not sure why we need it, could you elaborate? I would like to keep this logic in the elatic-charts implementation instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought that is good fallback for time viz if we don't have appliedTimeRange.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if there is no specific reason let's roll it back, elastic-charts should handle it already

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I don't understand if we don't have appliedTimeRange how the last data point will not the end of the chart?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The min interval is also taken into account (the data point marks the beginning of a bin/bucket, not the end)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

However, passing NaN here is the official way of telling elastic-charts there is no defined min/max which is exactly the case we are dealing with here.

Copy link
Contributor Author

@VladLasitsa VladLasitsa May 16, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

esdocs doesn't provide not only appliedTimeRange but also interval.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

However, passing NaN here is the official way of telling elastic-charts there is no defined min/max which is exactly the case we are dealing with here.

Okay, I will check if annotations will work with that way.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@flash1293 Annotations work fine with NaN as min/max for domain, I'll remove my fallback

@VladLasitsa VladLasitsa requested a review from flash1293 May 16, 2022 12:56
Copy link
Contributor

@Kuznietsov Kuznietsov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope, haven't missed anything. Code LGTM 👍

Screenshot 2022-05-16 at 18 43 30

# Conflicts:
#	src/plugins/chart_expressions/expression_xy/common/expression_functions/xy_vis_fn.ts
@kibana-ci
Copy link
Collaborator

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
expressionXY 92 93 +1

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
expressionXY 60.6KB 61.5KB +1015.0B

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @VladLasitsa

Copy link
Contributor

@flash1293 flash1293 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, everything works as expected

@VladLasitsa VladLasitsa merged commit 2bab78a into elastic:main May 17, 2022
academo pushed a commit to XavierM/kibana that referenced this pull request May 17, 2022
…c#131917)

* Add normalizeTable function to correct works with esdocs

* Fix types

* Fix types

* Fix CI

* Fix CI

* Some fixes

* Remove fallback with min/max value for domain

* Added tests

* Some refactoring

Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Yaroslav Kuznietsov <[email protected]>
XavierM added a commit that referenced this pull request May 17, 2022
* wip I

* add alert table state in case

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

* add new API to get FeatureID form registrationContext and update UI to use this new API

* rm dead code

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

* remove unnecessary memo

* adds tests for case view helpers

* Move http call to API and add tests for getFeatureIds

* fix type + unit test

* add unit tests + cleanup

* add new api integration test for _feature_ids

* [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix'

* Fix small type creating typescript slowness

* remove console log

* use import type for validfeatureId

* force any to improve typescript performance

* Update APM (#132270)

Co-authored-by: Renovate Bot <[email protected]>

* [ResponseOps][Docs] Updating ServiceNow docs with OAuth setup instructions (#131344)

* Updating ServiceNow docs. Need screenshots

* Adding screenshots

* Fix nested screenshots and lists

* Tweaks and screenshots

* Updates

* blergh

* Apply suggestions from code review

Co-authored-by: Lisa Cawley <[email protected]>

* Apply suggestions from code review

Co-authored-by: Mike Côté <[email protected]>

Co-authored-by: lcawl <[email protected]>
Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Mike Côté <[email protected]>

* Show polling options when 'Data streams' option is selected in the Console Settings modal. (#132277)

* [Osquery] Make Osquery All with All base privillege (#130523)

* [XY] Add normalizeTable function to correct works with esdocs (#131917)

* Add normalizeTable function to correct works with esdocs

* Fix types

* Fix types

* Fix CI

* Fix CI

* Some fixes

* Remove fallback with min/max value for domain

* Added tests

* Some refactoring

Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Yaroslav Kuznietsov <[email protected]>

* [Osquery] Add default osquery_saved_query objects (#129461)

* [Unified Search] Show error message for invalid date filter value (#131290)

* feat: added show error message for invalid date

* refact: move logic in HOC

* feat: refactoring code and added translation

* refact show error

* refact: show error message

* refact: remove translation

* refactor: changed menu for show FilterEdit

* fix: open/close popover

* feat: field.type => KBN_FIELD_TYPES

* feat: remove extra code with with input check and refactored filter item

* feat: added tests and refactoring code

* refact: getFieldValidityAndErrorMessage

* feat: return isInvalid checking in valur input type for string, ip

* Update navigation landing pages to use appLinks config (#132027)

* Update navigation landing pages to use appLinks config

* Please code review

* align app links changes

* Update links descriptions

* Rollback title changes

* Fix wrong links descriptions

* Fix unit tests

* Fix description

Co-authored-by: semd <[email protected]>

* [Cloud Posture] add resource findings page flyout  (#132243)

* [Discover] Add a tour for Document Explorer (#131125)

* [Discover] Add "Take a tour" button to the Document Explorer callout

* [Discover] Tmp

* [Discover] Add a first Document Explorer tour step

* [Discover] Add other Document Explorer tour steps

* [Discover] Update tour steps positioning

* [Discover] Add gifs to tour steps

* [Discover] Refactor how tour steps are registered

* [Discover] Add new step to the tour. Update tour steps text.

* [Discover] Improve steps positioning

* [Discover] Fix positioning for Add field step

* [Discover] Add icons to tour steps

* [Discover] Reorganize components

* [Discover] Skip Columns step when it's not available

* [Discover] Rename components

* [Discover] Add some tests

* [Discover] Fix positioning

* [Discover] Fix props

* [Discover] Render steps only if the tour is active

* [Discover] Update gifs

* [Discover] Add image alt text for gifs

* [Discover] Tag the Take tour button

* [Discover] Update text and tests

* [Discover] Add more tests

* [Discover] Rename assets directory

* [Discover] Fix tour in mobile view. Improve steps positioning and animation.

* [Discover] Update text in tour steps

* [Discover] Update sort.gif

* [Discover] Update image width

* Update src/plugins/discover/public/components/discover_tour/discover_tour_provider.tsx

Co-authored-by: gchaps <[email protected]>

* Update src/plugins/discover/public/components/discover_tour/discover_tour_provider.tsx

Co-authored-by: gchaps <[email protected]>

* [Discover] Update sort.gif

* [Discover] Fix code style

Co-authored-by: gchaps <[email protected]>
Co-authored-by: Kibana Machine <[email protected]>

* [XY] Add `minTimeBarInterval` arg (#128726)

* Added `xAxisInterval` arg

* Add validation

* Add tests

* Rename xAxisInterval to minTimeBarInterval and add validation

* Fix imports

* Add tests to validation

* Fix conflicts

* [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix'

* Fix tests

Co-authored-by: Kibana Machine <[email protected]>

* do not use barrel imports

* do not use barrel import

* do not use barrel import

* do not use barrel imports

* do not use barrel import

* import types

* Add tests

* Fix cases bundle size

* Add more tests

* [Fleet] Add new API to get current upgrades (#132276)

* Add support of Data View switching for Agg-Based visualizations (#132184)

* Add support of Data View switching for Agg-Based visualizations

* fix CI

* add use_date_view_updates

* implement sync with state

* cleanup

* cleanup

* cleanup

* Update index.ts

* fix PR comments

* Update use_data_view_updates.ts

* Update use_data_view_updates.ts

Co-authored-by: Kibana Machine <[email protected]>

* [Security Solution] Responsive styling fixes (#131951)

* [Discover] Add Analytics No Data Page (#131965)

* [Discover] Add Analytics No Data Page

* Make showEmptyPrompt parameter optional

* Remove unused import

* Remove unnecessary test

* Fix test

* Update failing test?

* Update failing test

* Changing the order of functional tests

* Fix error handling

* Addressing PR comments

Co-authored-by: Kibana Machine <[email protected]>

* Remove barrel export from public index file

* remove barrel export

* Re-export missing exports

* Turn off feature flag

Co-authored-by: kibanamachine <[email protected]>
Co-authored-by: Esteban Beltran <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Renovate Bot <[email protected]>
Co-authored-by: Ying Mao <[email protected]>
Co-authored-by: lcawl <[email protected]>
Co-authored-by: Mike Côté <[email protected]>
Co-authored-by: CJ Cenizal <[email protected]>
Co-authored-by: Tomasz Ciecierski <[email protected]>
Co-authored-by: Uladzislau Lasitsa <[email protected]>
Co-authored-by: Yaroslav Kuznietsov <[email protected]>
Co-authored-by: Nodir Latipov <[email protected]>
Co-authored-by: Pablo Machado <[email protected]>
Co-authored-by: semd <[email protected]>
Co-authored-by: Or Ouziel <[email protected]>
Co-authored-by: Julia Rechkunova <[email protected]>
Co-authored-by: gchaps <[email protected]>
Co-authored-by: Christos Nasikas <[email protected]>
Co-authored-by: Nicolas Chaulet <[email protected]>
Co-authored-by: Alexey Antonov <[email protected]>
Co-authored-by: Steph Milovic <[email protected]>
Co-authored-by: Maja Grubic <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting Feature:XYAxis XY-Axis charts (bar, area, line) release_note:skip Skip the PR/issue when compiling release notes Team:Visualizations Visualization editors, elastic-charts and infrastructure v8.3.0 WIP Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants