Versión de la integración2.1.0

El check de Solr realiza un seguimiento del estado y el rendimiento de un clúster de Solr. Recopila métricas del número de documentos indexados, los aciertos y desalojos de la caché, los tiempos medios de solicitud, las solicitudes medias por segundo, etc.
Configuración
Instalación
El check de Solr está incluido en el paquete del Datadog Agent, por lo que no necesitas instalar nada más en tus nodos de Solr.
Este check está basado en JMX, por lo que necesitas habilitar JMX Remote en tus servidores de Solr. Consulta la documentación del check de JMX para obtener más información.
Configuración
Host
Para configurar este check para un Agent que se ejecuta en un host:
Edita el archivo solr.d/conf.yaml en la carpeta conf.d/ en la raíz del directorio de configuración de tu Agent. Para conocer todas las opciones de configuración disponibles, consulta el solr.d/conf.yaml de ejemplo.
init_config:
## @param is_jmx - boolean - required
## Whether or not this file is a configuration for a JMX integration.
#
is_jmx: true
## @param collect_default_metrics - boolean - required
## Whether or not the check should collect all default metrics.
#
collect_default_metrics: true
instances:
## @param host - string - required
## Solr host to connect to.
- host: localhost
## @param port - integer - required
## Solr port to connect to.
port: 9999
Reinicia el Agent.
Lista de métricas
El parámetro conf es una lista de métricas que recopilará la integración. Solo se admiten 2 claves:
include (obligatorio): un diccionario de filtros, cualquier atributo que coincida con estos filtros se recopila a menos que también coincida con los filtros exclude (ver más abajo).exclude (opcional): un diccionario de filtros, los atributos que coinciden con estos filtros no se recopilan.
Para un bean dado, las métricas se etiquetan de la siguiente manera:
mydomain:attr0=val0,attr1=val1
En este ejemplo, tu métrica es mydomain (o alguna variación según el atributo dentro del bean) y tiene las etiquetas attr0:val0, attr1:val1 y domain:mydomain.
Si especificas un alias en una clave include con formato camel case, se convierte a snake case. Por ejemplo, MyMetricName aparece en Datadog como my_metric_name.
El filtro de atributos
El filtro attribute puede aceptar dos tipos de valores:
Un diccionario cuyas claves son nombres de atributos (ver más adelante). Para este caso, puedes especificar un alias para la métrica que se convierte en el nombre de métrica en Datadog. También puedes especificar el tipo de métrica como gauge o count. Si eliges count, se calcula una tasa por segundo para la métrica.
conf:
- include:
attribute:
maxThreads:
alias: tomcat.threads.max
metric_type: gauge
currentThreadCount:
alias: tomcat.threads.count
metric_type: gauge
bytesReceived:
alias: tomcat.bytes_rcvd
metric_type: counter
Una lista de nombres de atributos (ver más abajo). Para este caso, el tipo de métrica es un gauge y el nombre de métrica es jmx.\[DOMAIN_NAME].\[ATTRIBUTE_NAME].
conf:
- include:
domain: org.apache.cassandra.db
attribute:
- BloomFilterDiskSpaceUsed
- BloomFilterFalsePositives
- BloomFilterFalseRatio
- Capacity
- CompressionRatio
- CompletedTasks
- ExceptionCount
- Hits
- RecentHitRate
Versiones anteriores
La lista de filtros solo se admite en el Datadog Agent > 5.3.0. Si utilizas una versión anterior, utiliza singletons y varias sentencias include en su lugar.
# Datadog Agent > 5.3.0
conf:
- include:
domain: domain_name
bean:
- first_bean_name
- second_bean_name
# Older Datadog Agent versions
conf:
- include:
domain: domain_name
bean: first_bean_name
- include:
domain: domain_name
bean: second_bean_name
Contenedores
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á desactivada por defecto en el Datadog Agent, actívala en tu archivo datadog.yaml:
Solr utiliza el registrador log4j por defecto. Para personalizar el formato de registro, edita el archivo server/resources/log4j2.xml. Por defecto, el pipeline de la integración de Datadog admite el siguiente patrón de conversión:
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{collection} %X{shard} %X{replica} %X{core}] %c{1.} %m%notEmpty{ =>%ex{short}}}{10240}%n
Clona y edita el pipeline de integración si tienes un formato diferente.
Anula los comentarios y edita el bloque de configuración de logs en tu archivo solr.d/conf.yaml. Cambia los valores de los parámetros type, path y service en función de tu entorno. Consulta solr.d/solr.yaml de ejemplo para conocer todas las opciones disponibles de configuración.
logs:
- type: file
path: /var/solr/logs/solr.log
source: solr
# To handle multi line that starts with yyyy-mm-dd use the following pattern
# log_processing_rules:
# - type: multi_line
# pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
# name: new_log_start_with_date
Reinicia el Agent.
Para habilitar logs para entornos de Kubernetes, consulta Recopilación de log de Kubernetes.
Validación
Ejecuta el subcomando de estado del Agent y busca solr en la sección Checks.
Datos recopilados
Métricas
| |
|---|
solr.document_cache.evictions (gauge) | The total number of cache evictions per second. Shown as eviction |
solr.document_cache.hits (gauge) | The number of cache hits per second. Shown as hit |
solr.document_cache.inserts (gauge) | The total number of cache inserts per second. Shown as set |
solr.document_cache.lookups (gauge) | The total number of cache lookups per second. Shown as get |
solr.filter_cache.evictions (gauge) | The total number of cache evictions per second. Shown as eviction |
solr.filter_cache.hits (gauge) | The number of cache hits per second. Shown as hit |
solr.filter_cache.inserts (gauge) | The total number of cache inserts per second. Shown as set |
solr.filter_cache.lookups (gauge) | The total number of cache lookups per second. Shown as get |
solr.query_result_cache.evictions (gauge) | The total number of cache evictions per second. Shown as eviction |
solr.query_result_cache.hits (gauge) | The number of cache hits per second. Shown as hit |
solr.query_result_cache.inserts (gauge) | The total number of cache inserts per second. Shown as set |
solr.query_result_cache.lookups (gauge) | The total number of cache lookups per second. Shown as get |
solr.search_handler.errors (gauge) | Number of errors per second encountered by the handler. Shown as error |
solr.search_handler.request_times.50percentile (gauge) | Request processing time in milliseconds (50percentile). Shown as millisecond |
solr.search_handler.request_times.75percentile (gauge) | Request processing time in milliseconds (75percentile). Shown as millisecond |
solr.search_handler.request_times.95percentile (gauge) | Request processing time in milliseconds (95percentile). Shown as millisecond |
solr.search_handler.request_times.98percentile (gauge) | Request processing time in milliseconds (98percentile). Shown as millisecond |
solr.search_handler.request_times.999percentile (gauge) | Request processing time in milliseconds (999percentile). Shown as millisecond |
solr.search_handler.request_times.99percentile (gauge) | Request processing time in milliseconds (99percentile). Shown as millisecond |
solr.search_handler.request_times.mean (gauge) | The average time per request. Shown as millisecond |
solr.search_handler.request_times.mean_rate (gauge) | Average number of requests received per second since the Solr core was first created. Shown as request |
solr.search_handler.request_times.one_minute_rate (gauge) | Requests per second received over the past minutes. Shown as request |
solr.search_handler.requests (gauge) | Number of requests per second processed by the handler. Shown as request |
solr.search_handler.time (gauge) | The sum of all request processing times (in milliseconds) per second. |
solr.search_handler.timeouts (gauge) | Number of responses per second received with partial results. Shown as timeout |
solr.searcher.maxdocs (gauge) | One greater than the largest possible document number. Shown as document |
solr.searcher.numdocs (gauge) | The total number of indexed documents. Shown as document |
solr.searcher.warmup (gauge) | The time spent warming up. Shown as millisecond |
Eventos
El check de Solr no incluye ningún evento.
Checks de servicio
solr.can_connect
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored SolR instance, WARNING if no metrics are collected, and OK otherwise.
Statuses: ok, critical, warning
Solucionar problemas
Comandos para ver las métricas disponibles
El comando datadog-agent jmx se añadió en la versión 4.1.0.
- Mostrar una lista de atributos que coincidan con, al menos, una de tus configuraciones de instancias:
sudo datadog-agent jmx list matching - Mostrar una lista de atributos que coinciden con una de tus configuraciones de instancias, pero no se recopilan porque se superaría el número de métricas que es posible recopilar.
sudo datadog-agent jmx list limited - Mostrar una lista de atributos que se espera que recopile tu configuración de instancias actual:
sudo datadog-agent jmx list collected - Mostrar una lista de atributos que no coincidan con ninguna de tus configuraciones de instancias:
sudo datadog-agent jmx list not-matching - Mostrar cada atributo disponible que tenga un tipo compatible con JMXFetch:
sudo datadog-agent jmx list everything - Iniciar la recopilación de métricas según tu configuración actual y mostrarlas en la consola:
sudo datadog-agent jmx collect
¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.
Referencias adicionales
Parseo de un valor de cadena en un número
Si tu jmxfetch devuelve solo valores de cadena como false y true y quieres transformarlo en una métrica gauge de Datadog para usos avanzados. Por ejemplo, si deseas la siguiente equivalencia para tu jmxfetch:
"myJmxfetch:false" = myJmxfetch:0
"myJmxfetch:true" = myJmxfetch:1
Puedes utilizar el filtro attribute como se indica a continuación:
# ...
attribute:
myJmxfetch:
alias: your_metric_name
metric_type: gauge
values:
"false": 0
"true": 1