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

[performance] Add performance telemetry #2560

Open
markov00 opened this issue Oct 29, 2024 · 0 comments
Open

[performance] Add performance telemetry #2560

markov00 opened this issue Oct 29, 2024 · 0 comments
Labels
:performance Performance related issues :test Missing or to be fixed test :xy Bar/Line/Area chart related

Comments

@markov00
Copy link
Member

In order to benchmark the performance gain in elastic-charts, we should add telemetry marks on at a series of specific processing points in the chart.

Looking at elastic/kibana#182551 is possible to identify a set of at least 3 phases in elastic-charts where the time spent can be significant with the increase of the number of data points:

  • the initial data alignment/formatting (a data processing phase where data tables are created based on the passed input, domains are computed, and stacking/formatting/grouping are done)
  • a subsequent phase that generates an object per geometry (line, area, bar, point), their screen positions, their color, their rendering order
  • a final phase where this is drawn on the canvas

The first 2 phases can also be broken down into smaller chunks, but for now, I believe this is enough to understand time improvements.
We also need to understand that telemetry can change significantly in different browser contexts, and there isn't a stable way to rerun the same test with exactly the same CPU and memory conditions then the previous test. The differences can be in the order of 10/50ms within our current rendering time is a lot and can hide improvements. So for now better to keep the phases as large as possible.

The strategy for the telemetry, that will be collected in Kibana, could be:

  • create specific PerformanceMark in the charts (probably only in development environment) and generate the required measures
  • Within the EBT journeys, extract these performance measurements and use them in the telemetry.
@markov00 markov00 added :performance Performance related issues :test Missing or to be fixed test :xy Bar/Line/Area chart related labels Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:performance Performance related issues :test Missing or to be fixed test :xy Bar/Line/Area chart related
Projects
None yet
Development

No branches or pull requests

1 participant