[ 
https://issues.apache.org/jira/browse/SOLR-10649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cassandra Targett reassigned SOLR-10649:
----------------------------------------

    Assignee: Cassandra Targett

> Document new metrics config changes
> -----------------------------------
>
>                 Key: SOLR-10649
>                 URL: https://issues.apache.org/jira/browse/SOLR-10649
>             Project: Solr
>          Issue Type: Task
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: documentation, metrics
>    Affects Versions: master (7.0)
>            Reporter: Andrzej Bialecki 
>            Assignee: Cassandra Targett
>             Fix For: master (7.0)
>
>
> SOLR-10262 made several improvements to the configuration of metrics in Solr.
> Internally, the {{<metrics>}} configuration section of {{solr.xml}} is now 
> represented as {{MetricsConfig}} class, which makes it easier to add new 
> properties there.
> A new section {{<solr><metrics><suppliers>}} has been added to {{solr.xml}}, 
> which allows users to define what implementations of metrics they want to use 
> as well as to configure their parameters. This is useful eg. when selecting 
> what kind of reservoir to use for histograms and timers, or to change the 
> reference clock type, or for providing any other configuration parameters for 
> custom implementations of metrics.
> The {{<suppliers>}} section specifies implementations and configurations of 
> metric suppliers, ie. classes responsible for creating instances of metrics. 
> There are default implementations provided for all types of metrics, and they 
> are used if no {{class}} attribute is specified, or an invalid one. Custom 
> suppliers must implement {{MetricSupplier<T>}} interface and have a zero-args 
> constructor. Bean setter methods will be used for applying values from their 
> plugin configuration, alternatively they may also implement 
> {{PluginInfoInitialized}}. These rules also apply to any other custom classes 
> loaded in the metrics config, eg. custom Reservoir implementations.
> Each configuration element in the {{<suppliers>}} section follows a general 
> plugin configuration format, ie. it may optionally contain "name" and "class" 
> attributes and contain sub-elements that define typed configuration 
> parameters. As mentioned above, if the "class" attribute is missing or 
> invalid (the class can't be loaded or it doesn't implement the right 
> interface) a default implementation will be used. If an element is missing 
> then default configuration will be used.
> The following elements are supported in this section:
> * {{<counter>}} - this element defines the implementation and configuration 
> of a {{Counter}} supplier. The default implementation doesn't support any 
> configuration.
> * {{<meter>}} - implementation and configuration of a {{Meter}} supplier. The 
> default implementation supports one optional config parameter:
> ** {{<str name="clock">}} - type of clock to use for calculating EWMA rates; 
> supported values are "user" (default, which uses {{System.nanoTime()}}) and 
> "cpu" (which uses current thread's CPU time).
> * {{<histogram>}} - implementation and configuration of a {{Histogram}} 
> supplier. In addition to the {{clock}} parameter the following parameters are 
> supported by the default supplier implementation:
> ** {{<str name="reservoir">}} - a fully-qualified class name of 
> implementation of {{Reservoir}} to use. Default value is 
> {{com.codahale.metrics.ExponentiallyDecayingReservoir}}. Note: all 
> implementations of {{Reservoir}} that ship with the metrics library are 
> supported, even though they don't follow the custom class rules listed above. 
> The following config parameters can be used with these implementations:
> *** {{size}} - (int, default is 1028) reservoir size.
> *** {{alpha}} - (double, default is 0.015) decay parameter for 
> {{ExponentiallyDecayingReservoir}}.
> *** {{window}} - (long, default is 300) window size parameter for 
> {{SlidingTimeWindowReservoir}}, in seconds. 300 seconds = 5 minutes, which 
> more or less fits the default bias of {{ExponentiallyDecayingReservoir}}.
> * {{<timer>}} - implementation and configuration of a {{Timer}} supplier. 
> Default implementation supports configuration parameters related to clock and 
> reservoir, as specified above.
> Example section of {{solr.xml}}. The default {{Meter}} supplier is used with 
> non-default clock, and the default {{Timer}} supplier is used but with a 
> non-default reservoir configuration:
> {code}
> <solr>
>  <metrics>
>   <suppliers>
>     <meter>
>       <str name="clock">cpu</str>
>     </meter>
>     <timer>
>       <str 
> name="reservoir">com.codahale.metrics.SlidingTimeWindowReservoir</str>
>       <long name="window">600</long>
>     </timer>
>    </suppliers>
>   </metrics>
> </solr>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to