SonarQube 통합은 SonarQube 애플리케이션의 성능을 모니터링하여 코드를 진단하고 최적화하는 데 도움을 줍니다. SonarQube 통합은 인프라 에이전트, PosgreSQL 에이전트, NRI-Prometheus 및 NRI-JMX를 활용하고 가장 중요한 SonarQube 지표가 포함된 사전 구축된 대시보드를 제공합니다.
SonarQube 통합을 설정한 후 SonarQube 지표에 대한 대시보드를 제공합니다.
인프라 에이전트 설치 두 가지 방법으로 인프라 에이전트를 설치할 수 있습니다.
가이드 설치 는 시스템을 검사하고 시스템에 가장 적합한 애플리케이션 모니터링 에이전트와 함께 인프라 에이전트를 설치하는 CLI 도구입니다. 가이드 설치 작동 방식에 대해 자세히 알아보려면 가이드 설치 개요 를 확인하세요.인프라 에이전트를 수동으로 설치하려면 Linux , Windows 또는 macOS 용 수동 설치에 대한 자습서를 따를 수 있습니다. PostgreSQL 설치 에이전트를 설치하기 전에 설명서 에서 PostgreSQL 에이전트 요구 사항을 확인하십시오. PostgreSQL 빠른 시작 페이지 열기 PostgreSQL 빠른 시작 설치 . Install now [지금 설치를] 클릭하여 PostgreSQL 빠른 시작 설치를 시작합니다.New Relic과 SonarQube 통합 다음은 SonarQube와 New Relic을 통합하기 위해 따라야 하는 두 가지 방법입니다.
nri-프로메테우스 구성 nri-jmx 구성 NRI-Prometheus 구성 다음 경로를 사용하여 nri-prometheus-config.yml
이라는 파일을 만듭니다. /etc/newrelic-infra/integrations.d/nri-prometheus-config.yml
아래 템플릿을 사용하여 nri-prometheus-config.yml
이라는 생성된 파일을 업데이트합니다.
callout.note sonarqube 비밀번호에 @ 기호를 사용하지 마세요.
다음 필드를 업데이트합니다.
클러스터 이름: YOUR_DESIRED_CLUSTER_NAME
예를 들어: sonarqube_metrics_exporter
URL: [“http://user_name:password@YOUR_HOST_IP:9000/api/monitoring/metrics”]
Insecure_skip_verify: true
nri-prometheus-config.yml
파일은 다음과 같아야 합니다.
NRI-JMX 구성 SonarQube 대시보드는 JMX 통합에서 스크랩한 데이터를 대시보드로 변환합니다. 모든 데이터를 New Relic에 저장하면 시스템 상태에 대한 전체 개요를 얻을 수 있는 원스톱 쇼핑이 가능합니다.
아직 설치하지 않았다면 JMX 모니터링 통합을 설치해야 합니다. 설치한 후에는 몇 가지 추가 구성을 수행해야 합니다.
예시: sudo apt-get install nri-jmx
SonarQube JMX 구성 아래 경로에 있는 sonar.properties 파일로 이동합니다.
sonar.properties
파일에 아래 스니펫을 추가하여 jmx sonarqube web
을 구성합니다.
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
sonar.properties
파일에 아래 스니펫을 추가하여 jmx sonarqube compute engine
을 구성합니다.
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
SonarQube JMX 검증 다음 명령을 사용하여 jconsole을 엽니다. jconsole
원격 연결을 클릭하고 아래 연결 URL을 사용하여 SonarQube 도메인을 연결하세요.
예시:
service:jmx:rmi://[YOUR_HOST]:9010/jndi/rmi://[YOUR_HOST]:9010/jmxrmi
service:jmx:rmi://[YOUR_HOST]:9011/jndi/rmi://[YOUR_HOST]:9011/jmxrmi
jconsole 도구의 MBeans 탭으로 이동하면 SonarQube JVM 메트릭을 볼 수 있습니다.
JVM 메트릭 파일 구성 이 단계에서는 측정항목이 New Relic에 있으면 사람이 읽을 수 있도록 구성합니다. jconsole이 캡처해야 하는 측정항목으로 jvm-sonarqube-web-metrics.yml
및 jvm-sonarqube-compute-engine-metrics.yml
파일을 업데이트합니다. 아래 절차에는 jvm-metrics.yml 파일의 조각이 있습니다.
시작하기 전에 스니펫 사용에 대해 알아야 할 몇 가지 사항은 다음과 같습니다.
아래 코드 조각의 경우 원하는 측정항목으로 업데이트합니다.
YOUR_BROKER_NAME
, YOUR_TOPIC_NAME
및 YOUR_QUEUE_NAME
실제 값으로 업데이트합니다. jconsole 도구를 사용하여 이러한 값을 얻을 수 있습니다.
캡처된 모든 지표는 event_type 필드에 의해 결정된 이벤트에 저장됩니다.
jvm-metrics
파일을 업데이트하려면:
아래 파일 경로로 이동하세요.
$ cd /etc/newrelic-infra/integrations.d/
jvm-sonarqube-web-metrics.yml
및 jvm-sonarqube-compute-engine-metrics.yml
파일을 만듭니다.
아래 스니펫을 jvm-sonarqube-web-metrics.yml
파일에 추가하세요.
domain: SonarQube
event_type: JVMSampleSonarQubeWebMetrics
beans:query: name=AsyncExecution
attributes:QueueSize WorkerCount LargestWorkerCount query: name=Database
attributes:MigrationStatus PoolActiveConnections PoolMaxActiveConnections PoolIdleConnections PoolMaxIdleConnections PoolMinIdleConnections PoolInitialSize PoolMaxWaitMillis PoolRemoveAbandoned PoolRemoveAbandonedTimeoutSeconds query: name=SonarQube
attributes: 아래 스니펫을 jvm-sonarqube-compute-engine-metrics.yml
파일에 추가하세요.
domain: SonarQube
event_type: JVMSampleSonarQubeComputeEngineMetrics
beans:query: name=ComputeEngineDatabaseConnection
attributes:PoolInitialSize PoolActiveConnections PoolMaxActiveConnections PoolIdleConnections PoolMaxIdleConnections PoolMinIdleConnections PoolMaxWaitMillis PoolRemoveAbandoned PoolRemoveAbandonedTimeoutSeconds query: name=ComputeEngineTasks
attributes:PendingCount LongestTimePending InProgressCount ErrorCount SuccessCount ProcessingTime WorkerMaxCount WorkerCount WorkerUuids EnabledWorkerUuids nri-jmx 파일 구성 아래 YAML 스니펫은 CONNECTION_URL
을 통해 SonarQube 측정항목을 해당 측정항목을 읽을 수 있게 만드는 Java 도구인 jconsole에 연결합니다. JMX 통합 설치를 따르는 경우 이 단계는 구성 단계에 해당합니다.
업데이트하려면:
아래 파일 경로로 이동하세요.
$ cd /etc/newrelic-infra/integrations.d/
jmx-sonarqube-web-config.yml
및 jmx-sonarqube-compute-engine-config.yml
파일을 만듭니다.
SonarQube 웹 서버의 jmx-sonarqube-web-config.yml
파일에 다음 스니펫을 추가합니다.
COLLECTION_FILES : /etc/newrelic - infra/integrations.d/jmx - sonarqube - web - config.yml
CONNECTION_URL : service : jmx : rmi : //<YOUR_IP > : 9010/jndi/rmi : //<YOUR_IP > : 9010/jmxrmi
REMOTE_MONITORING : "true"
SonarQube Compute Engine의 jmx-sonarqube-compute-engine-config.yml
파일에 다음 스니펫을 추가합니다. COLLECTION_FILES : /etc/newrelic - infra/integrations.d/jmx - sonarqube - compute - engine - config.yml
CONNECTION_URL : service : jmx : rmi : //<YOUR_IP > : 9011/jndi/rmi : //<YOUR_IP > : 9011/jmxrmi
REMOTE_MONITORING : "true"
New Relic에 SonarQube 로그 전달 로그 전달을 사용하여 SonarQube 로그를 New Relic으로 전달할 수 있습니다.
Linux 시스템에서는 logging.yml
라는 로그 파일이 다음 경로에 있어야 합니다.
$ cd /etc/newrelic-infra/logging.d/
로그 파일을 만든 후 logging.yml
파일에 다음 스크립트를 추가합니다.
file : /opt/sonarqube/logs/sonar.log
file : /opt/sonarqube/logs/ce.log
file : /opt/sonarqube/logs/es.log
file : /opt/sonarqube/logs/web.log
New Relic 인프라 에이전트 다시 시작 인프라 에이전트를 다시 시작하십시오.
$ sudo systemctl restart newrelic-infra.service
몇 분 안에 애플리케이션이 메트릭을 one.newrelic.com 으로 보냅니다.
데이터 찾기 SonarQube 애플리케이션 메트릭을 모니터링하기 위해 SonarQube
이라는 사전 빌드된 대시보드 템플릿을 선택할 수 있습니다. 사전 구축된 대시보드 템플릿을 사용하려면 다음 단계를 따르세요.
one.newrelic.com 에서, + Add data [+ 데이터 추가] 페이지로 이동합니다.대시보드 를 클릭합니다.검색창에 sonarqube
를 입력합니다. SonarQube 대시보드가 나타납니다. 그것을 클릭하여 설치하십시오. SonarQube 대시보드는 맞춤형 대시보드로 간주되며 Dashboards UI에서 찾을 수 있습니다. 대시보드 사용 및 편집에 대한 문서는 대시보드 문서 를 참조하십시오.
다음은 SonarQube 웹 상태를 확인하기 위한 NRQL 쿼리입니다.
SELECT latest ( sonarqube_web_uptime_minutes )
AS 'SonarQube Web Uptime (minutes)'
JVM 측정항목을 보려면 EVENT_NAME
사용하여 다음 NRQL 쿼리를 실행하세요.
SELECT latest ( PoolIdleConnections ) FROM JVMSampleSonarQubeWebMetrics
다음은 뭐지? NRQL 쿼리 작성 및 대시보드 생성에 대해 자세히 알아보려면 다음 문서를 확인하세요.