SonarQube 統合は、SonarQube アプリケーションのパフォーマンスを監視し、コードの診断と最適化を支援します。 当社の SonarQube インテグレーションは、インフラストラクチャエージェント、PosgreSQL インテグレーション、NRI-Prometheus、NRI-JMX を活用し、最も重要な SonarQube メトリックを含む事前構築されたダッシュボードを提供します。
SonarQube 統合をセットアップすると、SonarQube メトリクスのダッシュボードが提供されます。
インフラストラクチャエージェントをインストールします
SonarQube 統合を使用するには、まず同じホストにインフラストラクチャエージェントをインストールする必要があります。 すべてのオンホスト インテグレーションには、メトリックをNew Relicに公開してレポートするインフラストラクチャ エージェントが必要です。
PostgreSQLインテグレーションのインストール
SonarQube 統合を使用するには、まず PostgreSQL 統合をインストールする必要があります。
インテグレーションをインストールする前に、 ドキュメントで PostgreSQL インテグレーションの要件を確認してください。 互換性を確認してから、このドキュメントに戻ってください。
PostgreSQL クイックスタート ページ PostgreSQL クイックスタート インストールを開きます。
Install now
をクリックして PostgreSQL クイックスタート インストレーションを開始します。
NRI-Prometheus の構成
次のコマンドを実行して、NRI-Prometheus 構成ファイルを作成します。
bash$touch /etc/newrelic-infra/integrations.d/nri-prometheus-config.yml次のスニペットを新しい構成ファイルに貼り付けます。 関連するフィールドで
cluster_name
とurls
必ず更新してください。integrations:- name: nri-prometheusconfig:# When standalone is set to false nri-prometheus requires an infrastructure agent to work and send data. Defaults to truestandalone: false# When running with infrastructure agent emitters will have to include infra-sdkemitters: infra-sdk# The name of your cluster. It's important to match other New Relic products to relate the data.cluster_name: "YOUR_CLUSTER_NAME"targets:- description: Sonarqube metrics listurls: ["http://user_name:password@YOUR_HOST_IP:9000/api/monitoring/metrics"]# tls_config:# ca_file_path: "/etc/etcd/etcd-client-ca.crt"# cert_file_path: "/etc/etcd/etcd-client.crt"# key_file_path: "/etc/etcd/etcd-client.key"# Whether the integration should run in verbose mode or not. Defaults to falseverbose: false# Whether the integration should run in audit mode or not. Defaults to false.# Audit mode logs the uncompressed data sent to New Relic. Use this to log all data sent.# It does not include verbose mode. This can lead to a high log volume, use with careaudit: false# The HTTP client timeout when fetching data from endpoints. Defaults to 30s.# scrape_timeout: "30s"# Length in time to distribute the scraping from the endpointsscrape_duration: "5s"# Number of worker threads used for scraping targets.# For large clusters with many (>400) endpoints, slowly increase until scrape# time falls between the desired `scrape_duration`.# Increasing this value too much will result in huge memory consumption if too# many metrics are being scraped.# Default: 4# worker_threads: 4# Whether the integration should skip TLS verification or not. Defaults to falseinsecure_skip_verify: truetimeout: 10s
JMXインテグレーションのインストールと設定
SonarQube インテグレーションを使用するには、 JMX 監視インテグレーションもインストールする必要があります。 JMX インテグレーションは SonarQube データをスクレイピングし、後でダッシュボードとクエリ可能なデータに変換します。
次のコード スニペットを
/opt/sonarqube/conf/sonar.properties
に追加します。# SonarQube Web Server JMX configuration.sonar.web.javaOpts=-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=9010 \-Dcom.sun.management.jmxremote.authenticate=false \-Dcom.sun.management.jmxremote.ssl=false# SonarQube Compute Engine JMX configuration.sonar.ce.javaOpts=-Dcom.sun.management.jmxremote \-Dcom.sun.management.jmxremote.port=9011 \-Dcom.sun.management.jmxremote.authenticate=false \-Dcom.sun.management.jmxremote.ssl=false次のコード スニペットを
/etc/newrelic-infra/integrations.d/jvm-sonarqube-web-metrics.yml/
に追加します。collect:- domain: SonarQubeevent_type: JVMSampleSonarQubeWebMetricsbeans:- query: name=AsyncExecutionattributes:- QueueSize- WorkerCount- LargestWorkerCount- query: name=Databaseattributes:- MigrationStatus- PoolActiveConnections- PoolMaxActiveConnections- PoolIdleConnections- PoolMaxIdleConnections- PoolMinIdleConnections- PoolInitialSize- PoolMaxWaitMillis- PoolRemoveAbandoned- PoolRemoveAbandonedTimeoutSeconds- query: name=SonarQubeattributes:- Version- ServerId- LogLevel次のコード スニペットを
/etc/newrelic-infra/integrations.d/jvm-sonarqube-compute-engine-metrics.yml
に追加します。collect:- domain: SonarQubeevent_type: JVMSampleSonarQubeComputeEngineMetricsbeans:- query: name=ComputeEngineDatabaseConnectionattributes:- PoolInitialSize- PoolActiveConnections- PoolMaxActiveConnections- PoolIdleConnections- PoolMaxIdleConnections- PoolMinIdleConnections- PoolMaxWaitMillis- PoolRemoveAbandoned- PoolRemoveAbandonedTimeoutSeconds- query: name=ComputeEngineTasksattributes:- PendingCount- LongestTimePending- InProgressCount- ErrorCount- SuccessCount- ProcessingTime- WorkerMaxCount- WorkerCount- WorkerUuids- EnabledWorkerUuids次のコード スニペットを
/etc/newrelic-infra/integrations.d/jmx-sonarqube-compute-engine-config.yml
に追加します。integrations:- name: nri-jmxenv:COLLECTION_FILES: /etc/newrelic-infra/integrations.d/jvm-sonarqube-compute-engine-metrics.ymlJMX_HOST: <YOUR_HOST>JMX_PASS: adminJMX_PORT: 9010JMX_USER: adminCONNECTION_URL: service:jmx:rmi://<YOUR_IP>:9010/jndi/rmi://<YOUR_IP>:9010/jmxrmiREMOTE_MONITORING: "true"interval: 15slabels:env: staging次のコード スニペットを
/etc/newrelic-infra/integrations.d/jmx-sonarqube-web-config.yml
に追加します。integrations:- name: nri-jmxenv:COLLECTION_FILES: /etc/newrelic-infra/integrations.d/jvm-sonarqube-web-metrics.ymlJMX_HOST: <YOUR_HOST>JMX_PASS: adminJMX_PORT: 9011JMX_USER: adminCONNECTION_URL: service:jmx:rmi://<YOUR_IP>:9011/jndi/rmi://<YOUR_IP>:9011/jmxrmiREMOTE_MONITORING: "true"interval: 15slabels:env: staging
SonarQube ログを New Relic に転送する
SonarQube ログを New Relic に転送するには、次の手順に従います。
次のパスに
logging.yml
という名前のログファイルを作成します。bash$cd /etc/newrelic-infra/logging.d次のスクリプトを
logging.yml
ファイルに追加します。logs:- name: sonar_logsfile: /opt/sonarqube/logs/sonar.logattributes:logtype: sonar_logs- name: ce_logsfile: /opt/sonarqube/logs/ce.logattributes:logtype: sonar_ce_logs- name: es_logsfile: /opt/sonarqube/logs/es.logattributes:logtype: sonar_es_logs- name: web_logsfile: /opt/sonarqube/logs/web.logattributes:logtype: sonar_web_logs
New Relic インフラストラクチャ エージェントを再起動します
インフラストラクチャを再起動します:
$sudo systemctl restart newrelic-infra.service
数分以内に、アプリケーションはメトリクスをone.newrelic.comに送信します。
データを検索する
SonarQube
という名前の事前に構築されたダッシュボード テンプレートを選択して、SonarQube アプリケーションのメトリクスを監視できます。事前に構築されたダッシュボード テンプレートを使用するには、次の手順に従います。
+ Integrations & Agents
ページに移動します。
Dashboards
をクリックします。
検索バーに
sonarqube
と入力します。SonarQube ダッシュボードが表示されます。それをクリックしてインストールします。
SonarQube ダッシュボードはカスタム ダッシュボードとみなされ、Dashboards UIに表示されます。 ダッシュボードの使用と編集に関するドキュメントについては、ダッシュボードのドキュメントを参照してください。
Postfix データに対する NRQL クエリの例をいくつか示します。
次は何ですか?
NRQL クエリの作成とダッシュボードの生成の詳細については、次のドキュメントをご覧ください。
- 基本的なクエリと高度なクエリを作成するためのクエリ ビルダーの概要。
- ダッシュボードをカスタマイズしてさまざまなアクションを実行するためのダッシュボードの概要。
- ダッシュボードを管理して、ダッシュボードの表示モードを調整したり、ダッシュボードにコンテンツを追加したりします。