lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Otis Gospodnetic (JIRA)" <>
Subject [jira] [Updated] (SOLR-8785) Use Metrics library for core metrics
Date Sun, 18 Dec 2016 05:38:58 GMT


Otis Gospodnetic updated SOLR-8785:
    Component/s: metrics

> Use Metrics library for core metrics
> ------------------------------------
>                 Key: SOLR-8785
>                 URL:
>             Project: Solr
>          Issue Type: Improvement
>          Components: metrics
>    Affects Versions: 4.1
>            Reporter: Jeff Wartes
>            Assignee: Shalin Shekhar Mangar
>              Labels: patch, patch-available
>             Fix For: master (7.0), 6.4
>         Attachments: SOLR-8785-increment.patch, SOLR-8785.patch, SOLR-8785.patch, SOLR-8785.patch,
> The Metrics library ( is a well-known way
to track metrics about applications. 
> In SOLR-1972, latency percentile tracking was added. The comment list is long, so here’s
my synopsis:
> 1. An attempt was made to use the Metrics library
> 2. That attempt failed due to a memory leak in Metrics v2.1.1
> 3. Large parts of Metrics were then copied wholesale into the org.apache.solr.util.stats
package space and that was used instead.
> Copy/pasting Metrics code into Solr may have been the correct solution at the time, but
I submit that it isn’t correct any more. 
> The leak in Metrics was fixed even before SOLR-1972 was released, and by copy/pasting
a subset of the functionality, we miss access to other important things that the Metrics library
provides, particularly the concept of a Reporter. (
> Further, Metrics v3.0.2 is already packaged with Solr anyway, because it’s used in
two contrib modules. (map-reduce and morphines-core)
> I’m proposing that:
> 1. Metrics as bundled with Solr be upgraded to the current v3.1.2
> 2. Most of the org.apache.solr.util.stats package space be deleted outright, or gutted
and replaced with simple calls to Metrics. Due to the copy/paste origin, the concepts should
mostly map 1:1.
> I’d further recommend a usage pattern like:
> SharedMetricRegistries.getOrCreate(System.getProperty(“solr.metrics.registry”, “solr-registry”))
> There are all kinds of areas in Solr that could benefit from metrics tracking and reporting.
This pattern allows diverse areas of code to track metrics within a single, named registry.
This well-known-name then becomes a handle you can use to easily attach a Reporter and ship
all of those metrics off-box.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message