使用 Grafana 管理 SonarQube KPI

文章目錄

需求

一般來講, 我們會直接在 SonarQube 上面看各 project 的各項 KPI 如下

Project 的 build history 的部分也可以直接看到

在 Grafana 上面顯示 SonarQube KPI

不過也有人做出來一些 SonarQube exporter, 可以把 SonarQube 的 KPI 轉放到 Grafana.

方案1

  1. Exporter: https://github.com/dmeiners88/sonarqube-prometheus-exporter: 他是做成 SonarQube plugin, 但他只支援 5 個 KPI, 而且最後一次更新是 2018/11/9. 他有支援 SonarQube 7, 不太確定有沒有支援 8 或 9, 就算了.

方案2

  1. Exporter: https://github.com/nthienan/sonarqube-exporter
  2. Grafana dashboard: 同上, 請在首頁找 dashboard overview.json 和 dashboard details.json
  3. 請產生一個 SonarQube token, 可參考 https://docs.sonarqube.org/latest/user-guide/user-token/
  4. 啟動方式
    1. 直接跑的指令如下
      1docker run --expose 9102 -p 9102:9102 nthienan/sonarqube-exporter sqe -p 9102 --url http://sonar.x.x.x:9000 --user-token xxxxxxxxxxx --ignore-ssl-verification --log-level DEBUG
      
    2. docker-compose.yml 的方式如下
       1sonarqube-exporter:
       2container_name: sonarqube-exporter
       3image: nthienan/sonarqube-exporter
       4ports:
       5- 9102:9102
       6expose:
       7- 9102
       8command: ' sqe --url http://sonar.x.x.x:9000 --user-token xxxxxxxxxxx --ignore-ssl-verification --log-level DEBUG '
       9environment:
      10- TZ=Asia/Taipei
      11depends_on:
      12- sonarqube
      
  5. prometheus.yml 請設定如下
    1- job_name: 'sonarqube'
    2    scrape_interval: 5s
    3    metrics_path: '/metrics'
    4    static_configs:
    5    - targets: ['xxx.xxx.xxx.xxx:9102']
    

成果

  1. 重開程式完後, 試著 re-build project, 就可以到 Grafana 看結果了, 如下

  2. 他也有另一個 detail 的 dashboard 可以看更細的資訊, 包含歷史趨勢圖等, 這圖資料還不多, 以後再來更新.

Posts in this Series