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

Configure the aggregation time interval #142

Closed
MoritzSalein opened this issue Feb 17, 2022 · 24 comments
Closed

Configure the aggregation time interval #142

MoritzSalein opened this issue Feb 17, 2022 · 24 comments

Comments

@MoritzSalein
Copy link

MoritzSalein commented Feb 17, 2022

Currently the charts calculate aggregation time interval themselve. But sometimes it will be helpful to see the interval less detailed. E.g. in a 10 minute run, my chart shows every 3 Second and some Miliseconds a new point in the graph. For this it will be good to set the interval in the settings with an individual value like 10 Seconds, 1 Minute or another.
It it possible to integrate such setting for the interval?

@MoritzSalein MoritzSalein changed the title Configure the aggregation timeinterval Configure the aggregation time interval Feb 17, 2022
@ludeknovy
Copy link
Owner

Technically its possible, but there are some tradeoffs – currently all the charts are pre-aggregated. That means they are fast to load upon report opening. The thing you are asking for would mean to either create multiple chart versions—the same way it is now, but with different time internals. Or make it live—but that would mean the loading would take much longer (especially for long running tests) and the need to keep all the data, and again with long running tests it might be costly.

@MoritzSalein
Copy link
Author

Ok, then I'll live with this limitation.

@ludeknovy
Copy link
Owner

I will do some experiments with creating charts with multiple aggregation intervals, eg - one with more points, and one with fewer points.

@ludeknovy
Copy link
Owner

ludeknovy commented Mar 11, 2022

@MoritzSalein
I see two options here:

  1. Have scenario settings where you could set up some custom intervals
  2. Define a couple of additional intervals eg - 10sec, 1 min, 10min, 30min, 1hour - and create charts on the processing, the same way its done now.

And maybe to add some logic, if the interval has less than N points, then to not to display it? Eg. a run of 30mins of runtime would show like only 1 point for an interval of 1 hour.

What do you think?

@MoritzSalein
Copy link
Author

MoritzSalein commented Mar 11, 2022

@MoritzSalein I see two options here:

  1. Have scenario settings where you could set up some custom intervals
  2. Define a couple of additional intervals eg - 10sec, 1 min, 10min, 30min, 1hour - and create charts on the processing, the same way its done now.

And maybe to add some logic, if the interval has less than N points, then to not to display it? Eg. a run of 30mins of runtime would show like only 1 point for an interval of 1 hour.

What do you think?

I think your ideas are very good. It's good to pre process all additional interval and store it in the db.

One extra wish of me is an interval of 5 sec.

Of course, if it doesn't make sense to display only one point of an graph. If it isn't possible to divide the timespan of an testrun or the result of a division is less 2 then you shouldn't provide this calculated graph.

@ludeknovy ludeknovy reopened this Mar 11, 2022
@ludeknovy
Copy link
Owner

There must be an upper limit as well - long runs could be end up with too many points, and that would not make the chart very useful either.

@ludeknovy
Copy link
Owner

@MoritzSalein
Copy link
Author

@ludeknovy
Copy link
Owner

But you will need to wait for it a bit longer, still a bunch of codes to change and need to make it optional; thus new scenario settings need to be created.

@MoritzSalein
Copy link
Author

No problem, I look forward to it.

@ludeknovy
Copy link
Owner

ludeknovy commented Apr 19, 2022

@MoritzSalein available in "latest" tag. To test it out, you will need to upgrade be, fe and migration services in docker-compose file.

@ludeknovy
Copy link
Owner

Hi @MoritzSalein! By any chance, did you have time to try it out?

@MoritzSalein
Copy link
Author

Hi @ludeknovy I have tried out the change. The granularity is available. The graphs changes when I set a different granularity. But I have a problem with the tool tip for the data point of the selected granularity. I addition I have tool tips for data points that are not in the selected graph. In the first screenshot, you'll see a data point for the selection. The second screenshot will shown a data point outside the selection.
And I don't see the virtual users label ih the first screenshot.
image
image

@ludeknovy
Copy link
Owner

ludeknovy commented May 6, 2022

Hi @MoritzSalein. Thanks for the feedback. I am not able to reproduce this locally. From the screenshots, it looks like focus issue - 1) the virtual users line seems to be faded (disabled, inactive?) and thus not shown in the tooltip. 2) Actually, only the virtual users line seems to be active.

Based on the font rendering, I can see the app looks a bit different - what browser/platform do you use?

@csvtuda
Copy link

csvtuda commented May 6, 2022

I can confirm that there seem to be issues when hovering over the graph. I can either get labels for all datapoints except the virtual users to show up, or the virtual users on their own without any of the other datapoints. It's quite erratic behaviour and hard to explain in screenshots. I recorded a little video in Firefox version 100.0 (😎):

2022-05-06.15-18-44.mp4

@ludeknovy
Copy link
Owner

ludeknovy commented May 6, 2022

Hi @csvtuda ! I understand the issue, but still not able to reproduce it :|

I tried FF as well, and it behaves correctly - could you try another browser?

Screen.Recording.2022-05-06.at.16.01.01.mov

@csvtuda
Copy link

csvtuda commented May 6, 2022

Yes, the issue also persists in Chrome, Version 101.0.4951.54 (64-Bit). In both browsers it only appears when using aggregation types other than Auto.

FYI: I'm using a local build of the JTL reporter with the following commits checked out:

  • jtl: 6a1aa60
  • jtl-be: 80c24e6
  • jtl-fe: d0b02d7
  • jtl-listener: f35eaf1
  • jtl-scheduler: f1f7bb1

Edit: I just tried the docker hub version using latest everywhere and v0.0.2 for the scheduler. The issue also appears in both browsers for the docker hub version.

Feel free to attach the log file you're using for your report, maybe I can double check against your functioning report. I would like to attach mine, but some of its contents are confidential unfortunately :(

@MoritzSalein
Copy link
Author

@ludeknovy On my own installation I get the problem with Firefox, Edge and Chrome. The problem is not with the Auto aggregation. Only when I switch to another aggregation.
My installation is completely fresh, without old data in the database. Could it a problem with my JMeter jtl-Data? I additionally collect the hostname in my jtl, because I ran the JMeter project in a master-slave installation.
I work with the following commits of the main branches:
jtl: 6a1aa60
jtl-be: 80c24e6
jtl-fe: cee6faf
jtl-listener: f35eaf1
jtl-scheduler: f1f7bb1

@ludeknovy
Copy link
Owner

Unfortunately, I still cannot replicate it - even with "hostname" included.

Could you, please, anonymize the labels/hostname and share the .jtl file with me?

@csvtuda
Copy link

csvtuda commented May 9, 2022

Okay so I just tried again with anonymized request labels and an arbitrary IP for hostname and it worked fine, no issue whatsoever.

I then anonymized step-by-step and to me it looks like multiple host names are the cause. When I replace them with a single hostname, everything works smoothly.

I attached a mini report containing different host names: results_mini.csv.
With the file as-is, the virtual users aren't aggregated into the specified interval, which is why they randomly pop up in between the other datapoints all the time:
image

@ludeknovy
Copy link
Owner

@csvtuda Thanks! Now I am able to reproduce it. 👀

@ludeknovy
Copy link
Owner

ludeknovy commented May 10, 2022

I hope I found it and should be fixed now. If you want to test it, update jtl-reporter-be to the latest commit in master branch

@csvtuda
Copy link

csvtuda commented May 10, 2022

Looks good to me, thank you very much! Also works for the big thing if I reimport it. How about you, @MoritzSalein?

@MoritzSalein
Copy link
Author

It works perfectly now on my installation. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants