-
Notifications
You must be signed in to change notification settings - Fork 1.3k
CLOUDSTACK-9783: Improve metrics view performance #1944
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
Conversation
|
@blueorangutan package |
|
@rhtyd a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress. |
|
Packaging result: ✔centos6 ✔centos7 ✔debian. JID-492 |
|
@blueorangutan test |
|
@rhtyd a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests |
borisstoyanov
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Rohit, this really improves the load time of the infrastructure page.
LGTM
|
Thanks for testing/reviewing @borisstoyanov |
|
Trillian test result (tid-833)
|
|
Just triggered Trillian env to check the test failure. |
3aba6ad to
3881d24
Compare
|
I've created a Trillian env out of the PR and run the test and it has passed: |
|
Thanks @borisstoyanov test results LGTM. |
|
Requesting for review - @abhinandanprateek @DaanHoogland @rashmidixit @karuturi @koushik-das |
|
seen it work in practice: LGTM |
|
@rhtyd Will be trying this out today - will post my comments. |
|
Thanks @rashmidixit awaiting your review |
| </dependency> | ||
| </dependencies> | ||
| <build> | ||
| <plugins> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be nice to follow maven standards on new modules. Since you cannot inherit from cloud-maven-standard you have to put all those lines:
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${basedir}/src/test/resources</directory>
</testResource>
</testResources>
...
</build>
|
@rhtyd I pulled the code and was able to run it as well. Otherwise LGTM. |
|
@borisstoyanov can you see the failure in Travis with test_list_infrastructure_metrics test case? From the UI, to remove this service they can modify the core metrics widget to do no-operation (in ui/scripts/ui-custom/metricsView.js) and the rendered button can be modified to be hidden, alternatively metricsView section can be removed across the resources (zones, cluster, host, vms, volumes and storage pool). |
|
@rhtyd On the contrary, I think you adding metrics as pluggable API is a good idea. However, to seriously make the feature pluggable the UI component should also load based on a plugin based flag. For example (I am not sure if the current design makes this possible), the plugin should return a flag in the listCapabilities API which tells the UI that metrics is enabled. If this flag is present, the metrics button should appear, else not. |
|
@rashmidixit the current UI does not support support pluggability of components within UI like the backend does. We can have a separate tab but not the implementation that the current metrics view UI has i.e. embedded across resource views. It's a general purpose feature that works for all deployments/environments and I think most users would want to keep it so we never implemented a way to disable it. |
|
@rhtyd I guess this is fine for now. Thanks! |
|
Thanks @rashmidixit @karuturi this is ready for merge, as soon as Travis passes. Thanks. |
This improves the metrics view feature by improving the rendering performance
of metrics view tables, by reimplementing the logic at the backend and data
served via APIs. In large environments, the older implementation would
make several API calls that increases both network and database load.
List of APIs introduced for improving the performance:
listClustersMetrics
listHostsMetrics
listInfrastructure
listStoragePoolsMetrics
listVMsMetrics
listVolumesMetrics
listZonesMetrics
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
6950feb to
4022535
Compare
|
@karuturi ping? can this be merged as well, this greatly improves the UI performance for the existing metrics view feature as well as improves the load time of the infrastructure tab |
|
@karuturi this is merge-able and much needed enhancement to improve UI performance for large environments |
|
Hi @rhtyd, thanks for this great improvement! Along with @serg38 we've been testing in our env and got some failures on Exception is thrown by In our case it failed for this And Did you have a failure like this? |
|
Please ommit my last comment, we were using commons-beanutils version 1.8.3 instead of 1.9.2 LGTM |
|
merging now |
CLOUDSTACK-9783: Improve metrics view performanceThis improves the metrics view feature by improving the rendering performance
of metrics view tables, by re-implementing the logic at the backend and data
served via APIs. In large environments, the older implementation would
make several API calls that increases both network and database load.
List of APIs introduced for improving the performance that re-implement the frontend logic at backend:
listClustersMetrics
listHostsMetrics
listInfrastructure
listStoragePoolsMetrics
listVMsMetrics
listVolumesMetrics
listZonesMetrics
Pinging for review - @abhinandanprateek @DaanHoogland @borisstoyanov @karuturi @rashmidixit
Marvin test results:
=== TestName: test_list_clusters_metrics | Status : SUCCESS ===
=== TestName: test_list_hosts_metrics | Status : SUCCESS ===
=== TestName: test_list_infrastructure_metrics | Status : SUCCESS ===
=== TestName: test_list_pstorage_metrics | Status : SUCCESS ===
=== TestName: test_list_vms_metrics | Status : SUCCESS ===
=== TestName: test_list_volumes_metrics | Status : SUCCESS ===
=== TestName: test_list_zones_metrics | Status : SUCCESS ===
* pr/1944:
CLOUDSTACK-9783: Improve metrics view performance
Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
|
master is broken after the merge. Pom version changes |
CLOUDSTACK-9783: corrected the version number in metrics pommaster is broken after fwd-merging metrics PR #1944 from 4.9 This is due to the incorrect parent version number in the metrics pom. Corrected the same to reflect master version number. * pr/2032: CLOUDSTACK-9783: corrected the version number in metrics pom Signed-off-by: Rajani Karuturi <rajani.karuturi@accelerite.com>
|
@karuturi thanks for fixing it |
master is broken after fwd-merging metrics PR apache#1944 from 4.9 This is due to the incorrect parent version number in the metrics pom. Corrected the same to reflect master version number.
This improves the metrics view feature by improving the rendering performance
of metrics view tables, by re-implementing the logic at the backend and data
served via APIs. In large environments, the older implementation would
make several API calls that increases both network and database load.
List of APIs introduced for improving the performance that re-implement the frontend logic at backend:
Pinging for review - @abhinandanprateek @DaanHoogland @borisstoyanov @karuturi @rashmidixit
Marvin test results:
=== TestName: test_list_clusters_metrics | Status : SUCCESS ===
=== TestName: test_list_hosts_metrics | Status : SUCCESS ===
=== TestName: test_list_infrastructure_metrics | Status : SUCCESS ===
=== TestName: test_list_pstorage_metrics | Status : SUCCESS ===
=== TestName: test_list_vms_metrics | Status : SUCCESS ===
=== TestName: test_list_volumes_metrics | Status : SUCCESS ===
=== TestName: test_list_zones_metrics | Status : SUCCESS ===