QualInsight / qualinsight-plugins-sonarqube-badges

Plugin for SonarQube that generates badges displaying information about a project's or view's quality.
GNU Lesser General Public License v3.0
109 stars 141 forks source link

SVG generation is slow on sonar 4.5.6 (even curl on localhost) #21

Closed edgedalmacio closed 8 years ago

edgedalmacio commented 8 years ago

We have 491 projects on our sonarqube server v4.5.6.

SVG generation is really slow.

curling on localhost takes about 5 mins before a response is received.

pawlakm commented 8 years ago

Hi, you need to provide more information about your setup : java version, badges plugin version (are you using the latest version?), server logs (when enabling debug), access rights on your projects (open/restricted?), how are you trying to generate the images ? (bulk / single call to the web service), what url are you trying to call ? What are the steps required to reproduce the problem.

Without such information I won't be able to help you.

By the way, given the fact that images are cached and shared among projects, I doubt that the problem comes from image generation itself.

I'm looking forward to your answer (and happy Easter)

edgedalmacio commented 8 years ago

Happy Easter! Hope this helps.

server logs (when enabling debug): how do i enable this? access rights on your projects: open how are you trying to generate the images: single call to the web service via markdown in readme what url are you trying to call: http:///api/badges/gate?key= What are the steps required to reproduce the problem: curl the url or load the readme markdown ... either way it either times out or the response time is really long

SONARQUBE INFO
Version 4.5.6
Database MySQL 5.6.19-log
Database URL jdbc:mysql://xxx:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
Database Driver MySQL Connector Java mysql-connector-java-5.1.27 ( Revision: alexander.soklakov@oracle.com-20131021093118-gtm1bh1vb450xipt )
Database Active Connections 2
Database Max. Active Connections 20
Database Max. Pool Wait 5000
External User Authentication -
Automatic User Creation -
Allow Users to Sign Up true
Force Authentication -
SONARQUBE PLUGINS
Branding 1.0
Build Breaker 1.1
Checkmarx 7.1.2-3.0.1
Cobertura 1.6.3
Findbugs 3.3
Groovy 1.3.1
JIRA 1.2
Java 3.12
JavaScript 2.11
PMD 2.5
SCM Activity 1.8
SVG Badges 1.2.1
Scm Stats 0.3.1
Web 2.4
SYSTEM INFO
JVM Vendor Oracle Corporation
JVM Name OpenJDK 64-Bit Server VM
JVM Version 24.65-b04
Java Version 1.7.0_71-mockbuild_2014_10_17_00_21-b00
JIT Compiler -
Application Server Container Apache Tomcat/7.0.54
User TimeZone Asia/Manila
OS Linux / amd64 / 3.14.20-20.44.amzn1.x86_64
Processors 2
pawlakm commented 8 years ago

Hi again,

I'll have to to investigate, but in the meantime:

edgedalmacio commented 8 years ago

INFO web[o.s.s.app.Logging] Web server is started INFO web[o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000 INFO app[o.s.p.m.Monitor] Process[web] is up INFO web[o.a.c.h.Http11Processor] Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. INFO web[o.s.s.s.BaseIndex] Index rules:activeRules has last update of Mon Mar 28 13:11:12 PHT 2016 INFO web[o.s.s.s.BaseIndex] Index logs:sonarLogs has last update of Mon Mar 28 13:11:12 PHT 2016 INFO web[o.s.s.s.BaseIndex] Index rules:rules has last update of Mon Mar 28 13:03:38 PHT 2016

  • Is your sonar.core.serverBaseURL property correctly configured (see README.md) ? YES
  • do you experience similar durations when calling /api/resources/index/?resource=&metrics=quality_gate_details&format=json ? NO. JSON response is very fast.
  • in your conf/sonar.properties file please change the value of sonar.log.profilingLevel to BASIC then restart your server and try again to retrieve a badge (then check the logs, and search for execution calls duration)

INFO web[http] 127619ms GET /api/badges/gate?key=key INFO web[http] 127280ms GET /api/badges/gate?key=key INFO web[http] 131087ms GET /api/badges/gate?key=key

pawlakm commented 8 years ago

@edgedalmacio Sorry for the long delay. I couldn't find a reason that may lead to such long delays and couldn't reproduce this behaviour. Unfortunately I don't have a 4.5.6 SQ instance with 400+ projects (max 120 and we have no performance issue), and on Nemo the plugins is reactive.

More than 2 minutes to render a small SVG file is really strange. Do you have by any chance a tool to analyse performance issues on Java projects (such as dynaTrace for instance) ?

If not, I'll try to build a version of the plugin that will provide more information about where time is lost (but I won't be able to do it this week.)

Regards,

Michel

pawlakm commented 8 years ago

@edgedalmacio Starting with release 2.0.1, badges are not generated using Apache Batik anymore and generation does not imply calling web services through HTTP under the hood anymore. I only use XSLT and local connectors now.

If you're running SonarQube 5.5 and are not affected by #42 you can give it a try. If #42 impacts you, you'll need to wait until SonarQube 5.6 is out.

Regards,

Michel