Versión de la integración5.1.0
Este check monitoriza SonarQube.
Configuración
Instalación
El check de SonarQube está incluido en el paquete del Datadog Agent.
No es necesaria ninguna instalación adicional en tu servidor.
Configuración
SonarQube expone métricas desde dos fuentes: su API web y JMX. Para recopilar todas las
métricas especificadas a continuación, configura tres instancias de este check. Una para monitorizar la API web de SonarQube y
las otras dos para monitorizar los beans JMX de SonarQube.
La documentación sobre la API web de SonarQube está disponible en /web_api
en tu interfaz de usuario web de SonarQube. Por defecto, esta integración
recopila todas las métricas de rendimiento pertinentes de SonarQube expuestas a través de beans JMX de SonarQube. La configuración para estas
métricas por defecto está disponible en el archivo sonarqube.d/metrics.yaml. La documentación sobre estos beans está disponible en
el sitio web de SonarQube.
El servidor JMX de SonarQube no está habilitado por defecto, esto significa que a menos que esté habilitado, las métricas sonarqube.server.*
no se recopilan. Puedes encontrar más información sobre cómo habilitar y configurar JMX dentro de SonarQube en la documentación de SonarQube. A continuación, se muestran las configuraciones necesarias para habilitar el servidor JMX para algunos procesos comunes de Java:
# WEB SERVER
sonar.web.javaAdditionalOpts="
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=10443
-Dcom.sun.management.jmxremote.rmi.port=10443
...
"
# COMPUTE ENGINE
sonar.ce.javaAdditionalOpts="
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=10444
-Dcom.sun.management.jmxremote.rmi.port=10444
...
"
# ELASTICSEARCH
sonar.search.javaAdditionalOpts="
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=10445
-Dcom.sun.management.jmxremote.rmi.port=10445
...
"
Este es un ejemplo básico de sonarqube.d/conf.yaml
basado en los valores por defecto de SonarQube y JMX. Puedes utilizarlo como punto de partida para configurar tanto la instalación del Agent basada en host como la basada en contenedor.
init_config:
is_jmx: false
collect_default_metrics: true
instances:
# Instancia de API web
- is_jmx: false
web_endpoint: http://localhost:9000
auth_type: basic
username: <username> # Definido en la IU Web
password: <password> # Definido en la IU Web
default_tag: component # Opcional
components: # Obligatorio
my-project:
tag: project_name
# Instancia de JMX web
- is_jmx: true
host: localhost
port: 10443 # Consulta sonar.web.javaAdditionalOpts en el archivo sonar.properties de SonarQube
user: <username> # Definido en el archivo sonar.properties de SonarQube
password: <password> # Definido en el archivo sonar.properties de SonarQube
# Instancia JMX de motor de cómputo
- is_jmx: true
host: localhost
port: 10444 # Consulta sonar.ce.javaAdditionalOpts en el archivo sonar.properties de SonarQube
user: <username> # Definido en el archivo sonar.properties de SonarQube
password: <password> # Definido en el archivo de sonar.properties
Nota: Una vez configurada la integración, haz que SonarQube escanee al menos un proyecto para enviar métricas a Datadog.
Las métricas recopiladas por esta integración se etiquetan por defecto con una etiqueta component
. Si deseas cambiar el nombre de etiqueta
por componente, especifica la propiedad tag
en la definición del componente. Para establecerlo para todos los proyectos,
establece la propiedad default_tag
en la configuración de instancia.
Nota: Los proyectos en SonarQube a menudo contienen múltiples ramas de control de código fuente. Esta integración sólo puede recopilar métricas de la rama por defecto en SonarQube (normalmente main
).
Buscar métricas de servidor
SonarQube expone un servidor de búsqueda, que puede ser monitorizado mediante una instancia adicional de esta integración y una configuración de las métricas de JMX. Para aprender a personalizar las métricas a recopilar, consulta la documentación de checks de JMX para obtener instrucciones más detalladas. A modo de ejemplo, utiliza la siguiente configuración y la configuración predeterminada de métrica de JMX en sonarqube.d/metrics.yaml.
init_config:
# La lista de métricas a recopilar por la integración.
config:
- include:
domain: SonarQube
name: <name>
exclude_tags:
- name
attribute:
MyMetric:
alias: sonarqube.search_server.my_metric
metric_type: gauge
instances:
# Buscar instancia JMX de servidor
- is_jmx: true
host: localhost
port: 10445 # Consulta sonar.search.javaAdditionalOpts en el archivo sonar.properties de SonarQube
user: <username> # Definido en el archivo sonar.properties de SonarQube
password: <password> # Definido en el archivo sonar.properties de SonarQube
Host
Para configurar este check para un Agent que se ejecuta en un host:
Recopilación de métricas
Edita el archivo sonarqube.d/conf.yaml
, en la carpeta conf.d/
en la raíz de tu
directorio de configuración del Agent para empezar a recopilar los datos de SonarQube.
Consulta el sonarqube.d/conf.yaml de ejemplo para conocer todas las opciones disponibles de configuración.
Este check tiene un límite de 350 métricas por instancia de JMX. El número de métricas se indica en la página de estado.
Puedes especificar las métricas que te interesan editando la siguiente configuración.
Para saber cómo personalizar las métricas a recopilar, consulta la documentación de checks de JMX para obtener instrucciones más detalladas.
Si necesitas monitorizar más métricas ponte en contacto con el soporte de Datadog.
Reinicia el Agent.
Recopilación de logs
Activar el registro de SonarQube.
La recopilación de logs está desactivada por defecto en el archivo del Datadog Agent. Actívala en tu archivo datadog.yaml
:
Añade el siguiente bloque de configuración a tu archivo sonarqube.d/conf.yaml
. Cambia los valores de los parámetros path
y service
en función de tu entorno. Consulta el sonarqube.d/conf.yaml de ejemplo para ver todas las opciones disponibles de configuración.
logs:
- type: file
path: /opt/sonarqube/logs/access.log
source: sonarqube
- type: file
path: /opt/sonarqube/logs/ce.log
source: sonarqube
log_processing_rules:
- type: multi_line
name: log_start_with_date
pattern: \d{4}\.\d{2}\.\d{2}
- type: file
path: /opt/sonarqube/logs/es.log
source: sonarqube
log_processing_rules:
- type: multi_line
name: log_start_with_date
pattern: \d{4}\.\d{2}\.\d{2}
- type: file
path: /opt/sonarqube/logs/sonar.log
source: sonarqube
log_processing_rules:
- type: multi_line
name: log_start_with_date
pattern: \d{4}\.\d{2}\.\d{2}
- type: file
path: /opt/sonarqube/logs/web.log
source: sonarqube
log_processing_rules:
- type: multi_line
name: log_start_with_date
pattern: \d{4}\.\d{2}\.\d{2}
Reinicia el Agent.
Contenedores
Recopilación de métricas
Para obtener información sobre entornos en contenedores, consulta la guía Autodiscovery con JMX.
Recopilación de logs
La recopilación de logs está deshabilitada por defecto en el Datadog Agent. Para activarla, consulta recopilación de logs de Docker.
Parámetro | Valor |
---|
<LOG_CONFIG> | {"source": "sonarqube"} |
Detección de componentes
Puedes configurar cómo se detectan tus componentes con el parámetro components_discovery
.
limit
- número máximo de elementos a detectar automáticamente.
Valor por defecto: 10
include
- asignación de claves de expresiones regulares y valores de configuración de componentes para la detección automática.
Valor por defecto: asignación vacía exclude
- lista de expresiones regulares con los patrones de componentes a excluir de Autodiscovery.
Valor por defecto: lista vacía
Ejemplos:
Incluye un máximo de 5
componentes cuyos nombres empiecen por my_project
:
components_discovery:
limit: 5
include:
'my_project*':
Incluye un máximo de 20
componentes y excluye los que empiecen por temp
:
components_discovery:
limit: 20
include:
'.*':
exclude:
- 'temp*'
Incluye todos los componentes cuyos nombres empiecen por issues
, aplica la etiqueta (tag) issues_project
y recopila solo las métricas pertenecientes a la categoría issues
. Como limit
no está definido, el número de componentes detectados se limita al valor por defecto 10
:
components_discovery:
include:
'issues*':
tag: issues_project
include:
- issues.
Validación
Ejecuta el subcomando de estado del Agent y busca sonarqube
en la sección JMXFetch:
========
JMXFetch
========
Initialized checks
==================
sonarqube
instance_name : sonarqube-localhost-10444
message : <no value>
metric_count : 33
service_check_count : 0
status : OK
instance_name : sonarqube-localhost-10443
message : <no value>
metric_count : 38
service_check_count : 0
status : OK
Si configuras una instancia sin is_jmx: true
, busca también sonarqube
en la sección Collector (Recopilador):
=========
Collector
=========
Running Checks
==============
sonarqube (1.1.0)
-----------------
Instance ID: sonarqube:1249c1ed7c7b489a [OK]
Configuration Source: file:/etc/datadog-agent/conf.d/sonarqube.d/conf.yaml
Total Runs: 51
Metric Samples: Last Run: 39, Total: 1,989
Events: Last Run: 0, Total: 0
Service Checks: Last Run: 1, Total: 51
Average Execution Time : 1.19s
Last Execution Date : 2021-03-12 00:00:44.000000 UTC
Last Successful Execution Date : 2021-03-12 00:00:44.000000 UTC
Datos recopilados
Métricas
Eventos
SonarQube no incluye eventos.
Checks de servicio
Solucionar problemas
¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.
Referencias adicionales
Más enlaces, artículos y documentación útiles: