mirror of https://github.com/apache/lucene.git
SOLR-14683: move "Missing Metrics" section down to config section; add short blurb to intro text
This commit is contained in:
parent
02514e5bd6
commit
2b5b0f999c
|
@ -26,51 +26,16 @@ Internally this feature uses the http://metrics.dropwizard.io[Dropwizard Metrics
|
||||||
* *timers* - measure the number and duration of events. They provide a count and histogram of timings.
|
* *timers* - measure the number and duration of events. They provide a count and histogram of timings.
|
||||||
* *gauges* - offer instantaneous reading of a current value, e.g., current queue depth, current number of active connections, free heap size.
|
* *gauges* - offer instantaneous reading of a current value, e.g., current queue depth, current number of active connections, free heap size.
|
||||||
|
|
||||||
|
Some of these meters may be missing or empty for any number of valid reasons.
|
||||||
|
In these cases, missing values of any type will be returned as `null` by default so empty values won't impact averages or histograms.
|
||||||
|
This is configurable for several types of missing values; see the <<The <metrics> <missingValues> Element>> section below.
|
||||||
|
|
||||||
Each group of related metrics with unique names is managed in a *metric registry*. Solr maintains several such registries, each corresponding to a high-level group such as: `jvm`, `jetty`, `node`, and `core` (see <<Metric Registries>> below).
|
Each group of related metrics with unique names is managed in a *metric registry*. Solr maintains several such registries, each corresponding to a high-level group such as: `jvm`, `jetty`, `node`, and `core` (see <<Metric Registries>> below).
|
||||||
|
|
||||||
For each group (and/or for each registry) there can be several *reporters*, which are components responsible for communication of metrics from selected registries to external systems. Currently implemented reporters support emitting metrics via JMX, Ganglia, Graphite and SLF4J.
|
For each group (and/or for each registry) there can be several *reporters*, which are components responsible for communication of metrics from selected registries to external systems. Currently implemented reporters support emitting metrics via JMX, Ganglia, Graphite and SLF4J.
|
||||||
|
|
||||||
There is also a dedicated `/admin/metrics` handler that can be queried to report all or a subset of the current metrics from multiple registries.
|
There is also a dedicated `/admin/metrics` handler that can be queried to report all or a subset of the current metrics from multiple registries.
|
||||||
|
|
||||||
=== Missing metrics
|
|
||||||
Long-lived metrics values are still reported when the underlying value is unavailable (eg. "INDEX.sizeInBytes" when
|
|
||||||
IndexReader is closed). Short-lived transient metrics (such as cache entries) that are properties of complex gauges
|
|
||||||
(internally represented as `MetricsMap`) are simply skipped when not available, and neither their names nor values
|
|
||||||
appear in registries (or in /admin/metrics reports).
|
|
||||||
|
|
||||||
When a missing value is encountered by default it's reported as null value, regardless of the metrics type.
|
|
||||||
This can be configured in the `solr.xml:/solr/metrics/missingValues` element, which recognizes the following child elements
|
|
||||||
(for string elements a JSON payload is supported):
|
|
||||||
|
|
||||||
`nullNumber`::
|
|
||||||
value to use when a missing (null) numeric metrics value is encountered.
|
|
||||||
|
|
||||||
`notANumber`::
|
|
||||||
value to use when an invalid numeric value is encountered.
|
|
||||||
|
|
||||||
`nullString`::
|
|
||||||
value to use when a missing (null) string metrics is encountered.
|
|
||||||
|
|
||||||
`nullObject`::
|
|
||||||
value to use when a missing (null) complex object is encountered.
|
|
||||||
|
|
||||||
Example configuration that returns null for missing numbers, -1 for
|
|
||||||
invalid numeric values, empty string for missing strings, and a Map for missing
|
|
||||||
complex objects:
|
|
||||||
|
|
||||||
[source,xml]
|
|
||||||
----
|
|
||||||
<metrics>
|
|
||||||
<missingValues>
|
|
||||||
<null name="nullNumber"/>
|
|
||||||
<int name="notANumber">-1</int>
|
|
||||||
<str name="nullString"></str>
|
|
||||||
<str name="nullObject">{"value":"missing"}</str>
|
|
||||||
</missingValues>
|
|
||||||
</metrics>
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
== Metric Registries
|
== Metric Registries
|
||||||
|
|
||||||
Solr includes multiple metric registries, which group related metrics.
|
Solr includes multiple metric registries, which group related metrics.
|
||||||
|
@ -202,6 +167,45 @@ As an example of a section of `solr.xml` that defines some of these custom param
|
||||||
</metrics>
|
</metrics>
|
||||||
----
|
----
|
||||||
|
|
||||||
|
=== The <metrics> <missingValues> Element
|
||||||
|
Long-lived metrics values are still reported when the underlying value is unavailable (e.g., "INDEX.sizeInBytes" when
|
||||||
|
IndexReader is closed). Short-lived transient metrics (such as cache entries) that are properties of complex gauges
|
||||||
|
(internally represented as `MetricsMap`) are simply skipped when not available, and neither their names nor values
|
||||||
|
appear in registries (or in `/admin/metrics` reports).
|
||||||
|
|
||||||
|
When a missing value is encountered by default it's reported as null value, regardless of the metrics type.
|
||||||
|
This can be configured in the `solr.xml:/solr/metrics/missingValues` element, which recognizes the following child elements
|
||||||
|
(for string elements a JSON payload is supported):
|
||||||
|
|
||||||
|
`nullNumber`::
|
||||||
|
The value to use when a missing (null) numeric metrics value is encountered.
|
||||||
|
|
||||||
|
`notANumber`::
|
||||||
|
The value to use when an invalid numeric value is encountered.
|
||||||
|
|
||||||
|
`nullString`::
|
||||||
|
The value to use when a missing (null) string metrics is encountered.
|
||||||
|
|
||||||
|
`nullObject`::
|
||||||
|
The value to use when a missing (null) complex object is encountered.
|
||||||
|
|
||||||
|
Example configuration that returns null for missing numbers, -1 for
|
||||||
|
invalid numeric values, empty string for missing strings, and a Map for missing
|
||||||
|
complex objects:
|
||||||
|
|
||||||
|
[source,xml]
|
||||||
|
----
|
||||||
|
<metrics>
|
||||||
|
<missingValues>
|
||||||
|
<null name="nullNumber"/>
|
||||||
|
<int name="notANumber">-1</int>
|
||||||
|
<str name="nullString"></str>
|
||||||
|
<str name="nullObject">{"value":"missing"}</str>
|
||||||
|
</missingValues>
|
||||||
|
</metrics>
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
== Reporters
|
== Reporters
|
||||||
|
|
||||||
Reporter configurations are specified in `solr.xml` file in `<metrics><reporter>` sections, for example:
|
Reporter configurations are specified in `solr.xml` file in `<metrics><reporter>` sections, for example:
|
||||||
|
|
Loading…
Reference in New Issue