Class SolrClusterReporter

  • All Implemented Interfaces:
    Closeable, AutoCloseable, PluginInfoInitialized

    public class SolrClusterReporter
    extends SolrCoreContainerReporter
    This reporter sends selected metrics from local registries to Overseer.

    The following configuration properties are supported:

    • handler - (optional str) handler path where reports are sent. Default is MetricsCollectorHandler.HANDLER_PATH.
    • period - (optional int) how often reports are sent, in seconds. Default is 60. Setting this to 0 disables the reporter.
    • report - (optional multiple lst) report configuration(s), see below.
    Each report configuration consist of the following properties:
    • registry - (required str) regex pattern matching source registries (see SolrMetricManager.registryNames(String...)), may contain capture groups.
    • group - (required str) target registry name where metrics will be grouped. This can be a regex pattern that contains back-references to capture groups collected by registry pattern
    • label - (optional str) optional prefix to prepend to metric names, may contain back-references to capture groups collected by registry pattern
    • filter - (optional multiple str) regex expression(s) matching selected metrics to be reported.
    NOTE: this reporter uses predefined "cluster" group, and it's always created even if explicit configuration is missing. Default configuration uses report specifications from DEFAULT_REPORTS.

    Example configuration:

           <reporter name="test" group="cluster" class="solr.SolrClusterReporter">
             <str name="handler">/admin/metrics/collector</str>
             <int name="period">11</int>
             <lst name="report">
               <str name="group">overseer</str>
               <str name="label">jvm</str>
               <str name="registry">solr\.jvm</str>
               <str name="filter">memory\.total\..*</str>
               <str name="filter">memory\.heap\..*</str>
               <str name="filter">os\.SystemLoadAverage</str>
               <str name="filter">threads\.count</str>
             </lst>
             <lst name="report">
               <str name="group">overseer</str>
               <str name="label">leader.$1</str>
               <str name="registry">solr\.core\.(.*)\.leader</str>
               <str name="filter">UPDATE\./update/.*</str>
             </lst>
           </reporter>