Solr
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Solr

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Graphique Solr

Présentation

Le check Solr permet de surveiller l’état et les performances d’un cluster Solr. Il recueille diverses métriques telles que le nombre de documents indexés, les hits et expulsions du cache, les temps de traitement moyens des requêtes, le nombre moyen de requêtes par seconde, et plus encore.

Configuration

Installation

Le check Solr est inclus avec le paquet de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos nœuds Solr.

Ce check étant basé sur JMX, vous devez activer les connexions JMX à distance sur vos serveurs Solr. Consultez la documentation relative au check JMX pour en savoir plus.

Configuration

Host

Suivez les instructions ci-dessous pour configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

  1. Modifiez le fichier solr.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent. Consultez le fichier d’exemple solr.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    instances:
     ## @param host - string - required
     ## Solr host to connect to.
     - host: localhost
    
       ## @param port - integer - required
       ## Solr port to connect to.
       port: 9999
  2. Redémarrez l’Agent.

Liste des métriques

Le paramètre conf correspond à la liste des métriques devant être recueillies par l’intégration. Seules deux clés sont autorisées :

  • include (requis) : dictionnaire de filtres. Tout attribut qui correspond à ces filtres est recueilli, sauf s’il correspond également aux filtres exclude (voir ci-dessous).
  • exclude (facultatif) : dictionnaire de filtres. Les attributs qui correspondent à ces filtres ne sont pas recueillis.

Pour chaque bean, les métriques sont taguées de la manière suivante :

mydomain:attr0=val0,attr1=val1

Dans cet exemple, votre métrique est mondomaine (ou un nom similaire, en fonction de l’attribut au sein du bean). Elle est associée aux tags attr0:val0, attr1:val1 et domain:mondomaine.

Si vous spécifiez un alias dans une clé include au format camel case, il est converti au format snake case. Par exemple, MonNomMétrique s’affiche sous la forme mon_nom_métrique dans Datadog.

Le filtre attribute

Le filtre attribute accepte deux types de valeurs :

  • Un dictionnaire dont les clés correspondent à des noms d’attributs (voir ci-dessous). Vous pouvez alors spécifier un alias pour la métrique, qui correspondra au nom de la métrique dans Datadog. Vous pouvez également indiquer le type de métrique, à savoir « gauge » ou « counter ». Si vous choisissez counter, un taux par seconde est calculé pour cette métrique.

    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
  • Une liste de noms d’attributs (voir ci-dessous). La métrique est alors de type gauge, et son nom correspond à jmx.\[NOM_DOMAINE].\[NOM_ATTRIBUT].

    conf:
    - include:
      domain: org.apache.cassandra.db
      attribute:
        - BloomFilterDiskSpaceUsed
        - BloomFilterFalsePositives
        - BloomFilterFalseRatio
        - Capacity
        - CompressionRatio
        - CompletedTasks
        - ExceptionCount
        - Hits
        - RecentHitRate

Anciennes versions

La liste de filtres est uniquement prise en charge pour les versions > 5.3.0 de l’Agent Datadog. Si vous utilisez une version antérieure, utilisez plutôt des singletons et plusieurs déclarations include.

# Agent Datadog > 5.3.0
  conf:
    - include:
      domain: nom_domaine
      bean:
        - premier_nom_domaine
        - deuxieme_nom_domaine
# Anciennes versions de l'Agent Datadog
  conf:
    - include:
      domain: nom_domaine
      bean: premier_nom_bean
    - include:
      domain: nom_domaine
      bean: deuxieme_nom_bean

Environnement conteneurisé

Pour les environnements conteneurisés, consultez le guide Autodiscovery avec JMX.

Validation

Lancez la sous-commande status de l’Agent et cherchez solr dans la section Checks.

Données collectées

Métriques

solr.cache.evictions
(gauge)
The total number of cache evictions per second.
Shown as eviction
solr.cache.hits
(gauge)
The number of cache hits per second.
Shown as hit
solr.cache.inserts
(gauge)
The total number of cache inserts per second.
Shown as set
solr.cache.lookups
(gauge)
The total number of cache lookups per second.
Shown as get
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.request_times.50percentile
(gauge)
Request processing time in milliseconds (50percentile).
Shown as request
solr.search_handler.request_times.75percentile
(gauge)
Request processing time in milliseconds (75percentile).
Shown as request
solr.search_handler.request_times.95percentile
(gauge)
Request processing time in milliseconds (95percentile).
Shown as request
solr.search_handler.request_times.98percentile
(gauge)
Request processing time in milliseconds (98percentile).
Shown as request
solr.search_handler.request_times.99percentile
(gauge)
Request processing time in milliseconds (99percentile).
Shown as request
solr.search_handler.request_times.999percentile
(gauge)
Request processing time in milliseconds (999percentile).
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.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.mean
(gauge)
The average time per request.
Shown as millisecond
solr.search_handler.avg_requests_per_sec
(gauge)
Average number of requests received per second since the Solr core was first created.
Shown as request
solr.search_handler.avg_time_per_req
(gauge)
The average time per request.
Shown as millisecond
solr.search_handler.errors
(gauge)
Number of errors per second encountered by the handler.
Shown as error
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.maxdoc
(gauge)
One greater than the largest possible document number (Solr version <= 6).
Shown as document
solr.searcher.maxdocs
(gauge)
One greater than the largest possible document number (Solr version >= 7).
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

Événements

Le check Solr n’inclut aucun événement.

Checks de service

solr.can_connect :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à l’instance SolR qu’il surveille et d’y recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Dépannage

Commandes pour afficher les métriques disponibles

La commande datadog-agent jmx a été ajoutée dans la version 4.1.0.

  • Énumérer les attributs qui correspondent au moins à l’une de vos configurations d’instance : sudo datadog-agent jmx list matching
  • Énumérer les attributs qui correspondent à l’une de vos configurations d’instance, mais qui ne sont pas recueillis afin de ne pas dépasser le nombre maximum de métriques pouvant être recueillies : sudo datadog-agent jmx list limited
  • Énumérer les attributs devant être recueillis par vos configurations d’instance actuelles : sudo datadog-agent jmx list collected
  • Énumérer les attributs qui ne correspondent à aucune de vos configurations d’instance : sudo datadog-agent jmx list not-matching
  • Énumérer l’ensemble des attributs disponibles dont le type est pris en charge par JMXFetch : sudo datadog-agent jmx list everything
  • Démarrer la collecte de métriques en fonction de votre configuration actuelle et les afficher dans la console : sudo datadog-agent jmx collect

Pour aller plus loin

Parsing d’une valeur de chaîne en tant que nombre

Cela peut être utile si votre JMXFetch renvoie uniquement des valeurs de chaîne telles que false et true et que vous souhaitez les transformer en métriques gauge Datadog pour une utilisation avancée. Par exemple, si vous souhaitez obtenir l’équivalence suivante pour votre JMXFetch :

"myJmxfetch:false" = myJmxfetch:0
"myJmxfetch:true" = myJmxfetch:1

Vous pouvez utiliser le filtre attribute comme suit :

# ...
attribute:
  myJmxfetch:
    alias: nom_votre_métrique
    metric_type: gauge
    values:
      "false": 0
      "true": 1