Docs » Integrations Guide » Integrations Reference » Apache Solr

../../_images/integrations_solr.png Apache Solr πŸ”—

DESCRIPTION πŸ”—

This integration primarily consists of the Smart Agent monitor collectd/solr. Below is an overview of that monitor.

Smart Agent Monitor πŸ”—

Monitors Solr instances by using the collectd Solr plugin. Supports Solr 6.6 and later.

NOTE: This plugin can collect metrics from Solr only when a Solr instance is running in SolrCloud mode

The solr-collectd plugin collects metrics from solr instances hitting these endpoints:

Sample YAML configuration πŸ”—

monitors:
- type: collectd/solr
  host: 127.0.0.1
  port: 8983

INSTALLATION πŸ”—

This integration is part of the SignalFx Smart Agent as the collectd/solr monitor. You should first deploy the Smart Agent to the same host as the service you want to monitor, and then continue with the configuration instructions below.

CONFIGURATION πŸ”—

To activate this monitor in the Smart Agent, add the following to your agent config:

monitors:  # All monitor config goes under this key
 - type: collectd/solr
   ...  # Additional config

For a list of monitor options that are common to all monitors, see Common Configuration.

Config option Required Type Description
pythonBinary no string Path to a python binary that should be used to execute the Python code. If not set, a built-in runtime will be used. Can include arguments to the binary as well.
host yes string
port yes integer
cluster no string Cluster name of this solr cluster.
enhancedMetrics no bool EnhancedMetrics boolean to indicate whether stats from /metrics are needed (default: false)
includeMetrics no list of strings IncludeMetrics metric names from the /admin/metrics endpoint to include (valid when EnhancedMetrics is "false")
excludeMetrics no list of strings ExcludeMetrics metric names from the /admin/metrics endpoint to exclude (valid when EnhancedMetrics is "true")

USAGE πŸ”—

Interpreting Built-in dashboards πŸ”—

  • SOLR CLUSTER:

    • Number of Collections: Shows the number of collections in the cluster.

      ../../_images/chart-solr-cluster-collections.png

    • Number of Nodes: Shows the number of nodes in the cluster.

      ../../_images/chart-solr-cluster-nodes.png

    • Index Size per Collection: Shows the total index size by collection for all the collections in the cluster.

      ../../_images/chart-solr-cluster-collection-index-sizes.png

    • Document Cache Hit Ratio: Shows the cumulative document cache hit ration for all collections in the cluster.

      ../../_images/chart-solr-cluster-document-cache-hit-ratio.png

    • Query Result Cache Hit Ratio: Shows the cumulative query result cache hit ration for all collections in the cluster.

      ../../_images/chart-solr-cluster-query-result-cache-hit-ratio.png

    • Overall Heap Usage: Shows the average, minimum, maximum, percentile distribution heap usage of the cluster.

      ../../_images/chart-solr-cluster-heap-usage.png

    • GC Invocations: Shows the mean parnew & cms GC invocations over last minute in the cluster.

      ../../_images/chart-solr-cluster-gc-over-last-minute.png

    • Search Request Latency: Shows the average time taken to process a search request in the cluster.

      ../../_images/chart-solr-cluster-search-request-latency.png

  • SOLR COLLECTION:

    • Number of Documents: Shows the number of documents in the collection.

      ../../_images/chart-solr-collection-num-docs.png

    • Number of Shards: Shows the number of shards & cores per shard in the collection.

      ../../_images/chart-solr-collection-shards-heatmap.png

    • Documents Growth: Shows growth in the number of documents in the collection.

      ../../_images/chart-solr-collection-doc-growth.png

    • Overall Cache Hit Ratio: Shows the various caches cumulative hit ratio in the collection.

      ../../_images/chart-solr-collection-cache-hit-ratio.png

  • SOLR NODE:

    • Number of Cores: Shows the number of cores in the node.

      ../../_images/chart-solr-node-num-cores.png

    • Cores by Indexed Documents: Shows the top cores by number of indexed documents in the node.

      ../../_images/chart-solr-node-top-cores-indexed-docs.png

    • Http Request Latency: Shows the response time of http requests to the cores in the node.

      ../../_images/chart-solr-node-response-time.png

    • JVM Memory Pools Usage: Shows the usage of JVM memory pools.

      ../../_images/chart-solr-node-jvm-memory-pools-usage.png

  • SOLR NODES:

    • Number of Nodes: Shows the total number of Solr nodes monitored in the org.

      ../../_images/chart-solr-nodes-num-nodes.png

    • Number of Cores Heatmap: Shows the total number of cores in heapmap for each node.

      ../../_images/chart-solr-nodes-cores-per-node.png

    • Http response time: Shows the http response time of each node.

      ../../_images/chart-solr-nodes-response-times.png

    • Number of Requests: Shows the number of requests for each node.

      ../../_images/chart-solr-nodes-requests-per-sec.png

A few other details:

  • plugin is always set to solr
  • plugin_instance will contain the IP address and the port of the node given in the configuration
  • To add metrics from the /admin/metrics endpoint, use the configuration options mentioned in configuration. If metrics are being included individually, make sure to give names that are valid.

METRICS πŸ”—

Metric Name Description Type
counter.solr.http_2xx_responses Total number of 2xx http responses counter
counter.solr.http_4xx_responses Total number of 4xx http responses counter
counter.solr.http_5xx_responses Total number of 5xx http responses counter
counter.solr.http_requests Total number of http requests counter
counter.solr.jvm_classes_loaded Number of JVM classes loaded counter
counter.solr.node_collections_requests Number of collection level requets to Solr node counter
counter.solr.node_cores_requests Number of core level requets to Solr node counter
counter.solr.node_metric_request_count Number of metric requests counter
counter.solr.node_metrics_requests Number of metrics level requets to Solr node counter
counter.solr.node_zookeeper_requests Number of zookeeper level requets to Solr node counter
counter.solr.openFileDescriptorCount Number of open file descriptors counter
counter.solr.replication_handler_requests Number of replication handler requets counter
counter.solr.search_query_requests Number of search query requests counter
counter.solr.update_handler_requests Number of update handler requets counter
counter.solr.zookeeper_errors Number of failures/error at Zookeeper counter
gauge.solr.core_deleted_docs Number of deleted docs in Solr core gauge
gauge.solr.core_index_size Size of a core index gauge
gauge.solr.core_max_docs Total number of docs in Solr core gauge
gauge.solr.core_num_docs Total number of indexed docs in Solr core gauge
gauge.solr.core_totalspace Total space allocated for core gauge
gauge.solr.core_usablespace Usable space available in core gauge
gauge.solr.document_cache_cumulative_hitratio Cummulative hit ration of document cache gauge
gauge.solr.field_value_cache_cumulative_hitratio Cummulative hit ration of filed value cache gauge
gauge.solr.http_active_requests Number of http active requests gauge
gauge.solr.jetty_get_request_latency Time to process http get request gauge
gauge.solr.jetty_post_request_latency Time to process http post request gauge
gauge.solr.jetty_request_latency Http request response time gauge
gauge.solr.jvm_gc_cms_count JVM Garbage Collector - CMS invocation count gauge
gauge.solr.jvm_gc_cms_time JVM Garbage Collector - CMS prcoess time gauge
gauge.solr.jvm_gc_parnew_count JVM Garbage Collector - Parnew invocation count gauge
gauge.solr.jvm_gc_parnew_time JVM Garbage Collector - Parnew process time gauge
gauge.solr.jvm_heap_usage JVM Heap usage gauge
gauge.solr.jvm_mapped_memory_capacity Total JVM mapped memory capacity gauge
gauge.solr.jvm_mapped_memory_used Total JVM mapped memory used gauge
gauge.solr.jvm_memory_pools_Code-Cache_usage JVM memory pools - PCode Cache usage gauge
gauge.solr.jvm_memory_pools_Metaspace_usage JVM memory pools - Metaspace usage gauge
gauge.solr.jvm_memory_pools_Par-Eden-Space_usage JVM memory pools - Par Eden space usage gauge
gauge.solr.jvm_memory_pools_Par-Survivor-Space_usage JVM memory pools - Par Survivor space usage gauge
gauge.solr.jvm_total_memory JVM total memory allocated gauge
gauge.solr.jvm_total_memory_used JVM memory used gauge
gauge.solr.node_metric_request_time Time to process a metric request gauge
gauge.solr.query_result_cache_cumulative_hitratio Cummulative hit ration of query cache gauge
gauge.solr.replication_handler_response Resplication handler response time gauge
gauge.solr.search_query_response Search query response time gauge
gauge.solr.searcher_warmup Time to new searcher to warm up gauge
gauge.solr.shard_cumulative_docs gauge
gauge.solr.update_request_handler_response Update request handler response time gauge
gauge.solr.zookeeper_request_time Time to process a request at zookeeper gauge

counter.solr.http_2xx_responses πŸ”—

counter

Total number of 2xx http responses

counter.solr.http_4xx_responses πŸ”—

counter

Total number of 4xx http responses

counter.solr.http_5xx_responses πŸ”—

counter

Total number of 5xx http responses

counter.solr.http_requests πŸ”—

counter

Total number of http requests

counter.solr.jvm_classes_loaded πŸ”—

counter

Number of JVM classes loaded

counter.solr.node_collections_requests πŸ”—

counter

Number of collection level requets to Solr node

counter.solr.node_cores_requests πŸ”—

counter

Number of core level requets to Solr node

counter.solr.node_metric_request_count πŸ”—

counter

Number of metric requests

counter.solr.node_metrics_requests πŸ”—

counter

Number of metrics level requets to Solr node

counter.solr.node_zookeeper_requests πŸ”—

counter

Number of zookeeper level requets to Solr node

counter.solr.openFileDescriptorCount πŸ”—

counter

Number of open file descriptors

counter.solr.replication_handler_requests πŸ”—

counter

Number of replication handler requets

counter.solr.search_query_requests πŸ”—

counter

Number of search query requests

counter.solr.update_handler_requests πŸ”—

counter

Number of update handler requets

counter.solr.zookeeper_errors πŸ”—

counter

Number of failures/error at Zookeeper

gauge.solr.core_deleted_docs πŸ”—

gauge

Number of deleted docs in Solr core

gauge.solr.core_index_size πŸ”—

gauge

Size of a core index

gauge.solr.core_max_docs πŸ”—

gauge

Total number of docs in Solr core

gauge.solr.core_num_docs πŸ”—

gauge

Total number of indexed docs in Solr core

gauge.solr.core_totalspace πŸ”—

gauge

Total space allocated for core

gauge.solr.core_usablespace πŸ”—

gauge

Usable space available in core

gauge.solr.document_cache_cumulative_hitratio πŸ”—

gauge

Cummulative hit ration of document cache

gauge.solr.field_value_cache_cumulative_hitratio πŸ”—

gauge

Cummulative hit ration of filed value cache

gauge.solr.http_active_requests πŸ”—

gauge

Number of http active requests

gauge.solr.jetty_get_request_latency πŸ”—

gauge

Time to process http get request

gauge.solr.jetty_post_request_latency πŸ”—

gauge

Time to process http post request

gauge.solr.jetty_request_latency πŸ”—

gauge

Http request response time

gauge.solr.jvm_gc_cms_count πŸ”—

gauge

JVM Garbage Collector - CMS invocation count

gauge.solr.jvm_gc_cms_time πŸ”—

gauge

JVM Garbage Collector - CMS prcoess time

gauge.solr.jvm_gc_parnew_count πŸ”—

gauge

JVM Garbage Collector - Parnew invocation count

gauge.solr.jvm_gc_parnew_time πŸ”—

gauge

JVM Garbage Collector - Parnew process time

gauge.solr.jvm_heap_usage πŸ”—

gauge

JVM Heap usage

gauge.solr.jvm_mapped_memory_capacity πŸ”—

gauge

Total JVM mapped memory capacity

gauge.solr.jvm_mapped_memory_used πŸ”—

gauge

Total JVM mapped memory used

gauge.solr.jvm_memory_pools_Code-Cache_usage πŸ”—

gauge

JVM memory pools - PCode Cache usage

gauge.solr.jvm_memory_pools_Metaspace_usage πŸ”—

gauge

JVM memory pools - Metaspace usage

gauge.solr.jvm_memory_pools_Par-Eden-Space_usage πŸ”—

gauge

JVM memory pools - Par Eden space usage

gauge.solr.jvm_memory_pools_Par-Survivor-Space_usage πŸ”—

gauge

JVM memory pools - Par Survivor space usage

gauge.solr.jvm_total_memory πŸ”—

gauge

JVM total memory allocated

gauge.solr.jvm_total_memory_used πŸ”—

gauge

JVM memory used

gauge.solr.node_metric_request_time πŸ”—

gauge

Time to process a metric request

gauge.solr.query_result_cache_cumulative_hitratio πŸ”—

gauge

Cummulative hit ration of query cache

gauge.solr.replication_handler_response πŸ”—

gauge

Resplication handler response time

gauge.solr.search_query_response πŸ”—

gauge

Search query response time

gauge.solr.searcher_warmup πŸ”—

gauge

Time to new searcher to warm up

gauge.solr.shard_cumulative_docs πŸ”—

gauge

gauge.solr.update_request_handler_response πŸ”—

gauge

Update request handler response time

gauge.solr.zookeeper_request_time πŸ”—

gauge

Time to process a request at zookeeper

Metrics that are categorized as container/host (default) are in bold and italics in the list below.

These are the metrics available for this integration.

  • counter.solr.http_2xx_responses (counter)
    Total number of 2xx http responses
  • counter.solr.http_4xx_responses (counter)
    Total number of 4xx http responses
  • counter.solr.http_5xx_responses (counter)
    Total number of 5xx http responses
  • counter.solr.http_requests (counter)
    Total number of http requests
  • counter.solr.jvm_classes_loaded (counter)
    Number of JVM classes loaded
  • counter.solr.node_collections_requests (counter)
    Number of collection level requets to Solr node
  • counter.solr.node_cores_requests (counter)
    Number of core level requets to Solr node
  • counter.solr.node_metric_request_count (counter)
    Number of metric requests
  • counter.solr.node_metrics_requests (counter)
    Number of metrics level requets to Solr node
  • counter.solr.node_zookeeper_requests (counter)
    Number of zookeeper level requets to Solr node
  • counter.solr.openFileDescriptorCount (counter)
    Number of open file descriptors
  • counter.solr.replication_handler_requests (counter)
    Number of replication handler requets
  • counter.solr.search_query_requests (counter)
    Number of search query requests
  • counter.solr.update_handler_requests (counter)
    Number of update handler requets
  • counter.solr.zookeeper_errors (counter)
    Number of failures/error at Zookeeper
  • gauge.solr.core_deleted_docs (gauge)
    Number of deleted docs in Solr core
  • gauge.solr.core_index_size (gauge)
    Size of a core index
  • gauge.solr.core_max_docs (gauge)
    Total number of docs in Solr core
  • gauge.solr.core_num_docs (gauge)
    Total number of indexed docs in Solr core
  • gauge.solr.core_totalspace (gauge)
    Total space allocated for core
  • gauge.solr.core_usablespace (gauge)
    Usable space available in core
  • gauge.solr.document_cache_cumulative_hitratio (gauge)
    Cummulative hit ration of document cache
  • gauge.solr.field_value_cache_cumulative_hitratio (gauge)
    Cummulative hit ration of filed value cache
  • gauge.solr.http_active_requests (gauge)
    Number of http active requests
  • gauge.solr.jetty_get_request_latency (gauge)
    Time to process http get request
  • gauge.solr.jetty_post_request_latency (gauge)
    Time to process http post request
  • gauge.solr.jetty_request_latency (gauge)
    Http request response time
  • gauge.solr.jvm_gc_cms_count (gauge)
    JVM Garbage Collector - CMS invocation count
  • gauge.solr.jvm_gc_cms_time (gauge)
    JVM Garbage Collector - CMS prcoess time
  • gauge.solr.jvm_gc_parnew_count (gauge)
    JVM Garbage Collector - Parnew invocation count
  • gauge.solr.jvm_gc_parnew_time (gauge)
    JVM Garbage Collector - Parnew process time
  • gauge.solr.jvm_heap_usage (gauge)
    JVM Heap usage
  • gauge.solr.jvm_mapped_memory_capacity (gauge)
    Total JVM mapped memory capacity
  • gauge.solr.jvm_mapped_memory_used (gauge)
    Total JVM mapped memory used
  • gauge.solr.jvm_memory_pools_Code-Cache_usage (gauge)
    JVM memory pools - PCode Cache usage
  • gauge.solr.jvm_memory_pools_Metaspace_usage (gauge)
    JVM memory pools - Metaspace usage
  • gauge.solr.jvm_memory_pools_Par-Eden-Space_usage (gauge)
    JVM memory pools - Par Eden space usage
  • gauge.solr.jvm_memory_pools_Par-Survivor-Space_usage (gauge)
    JVM memory pools - Par Survivor space usage
  • gauge.solr.jvm_total_memory (gauge)
    JVM total memory allocated
  • gauge.solr.jvm_total_memory_used (gauge)
    JVM memory used
  • gauge.solr.node_metric_request_time (gauge)
    Time to process a metric request
  • gauge.solr.query_result_cache_cumulative_hitratio (gauge)
    Cummulative hit ration of query cache
  • gauge.solr.replication_handler_response (gauge)
    Resplication handler response time
  • gauge.solr.search_query_response (gauge)
    Search query response time
  • gauge.solr.searcher_warmup (gauge)
    Time to new searcher to warm up
  • gauge.solr.shard_cumulative_docs (gauge)
  • gauge.solr.update_request_handler_response (gauge)
    Update request handler response time
  • gauge.solr.zookeeper_request_time (gauge)
    Time to process a request at zookeeper

Non-default metrics (version 4.7.0+) πŸ”—

The following information applies to the agent version 4.7.0+ that has enableBuiltInFiltering: true set on the top level of the agent config.

To emit metrics that are not default, you can add those metrics in the generic monitor-level extraMetrics config option. Metrics that are derived from specific configuration options that do not appear in the above list of metrics do not need to be added to extraMetrics.

To see a list of metrics that will be emitted you can run agent-status monitors after configuring this monitor in a running agent instance.

Legacy non-default metrics (version < 4.7.0) πŸ”—

The following information only applies to agent version older than 4.7.0. If you have a newer agent and have set enableBuiltInFiltering: true at the top level of your agent config, see the section above. See upgrade instructions in Old-style whitelist filtering.

If you have a reference to the whitelist.json in your agent’s top-level metricsToExclude config option, and you want to emit metrics that are not in that whitelist, then you need to add an item to the top-level metricsToInclude config option to override that whitelist (see Inclusion filtering. Or you can just copy the whitelist.json, modify it, and reference that in metricsToExclude.