private Metric.Context getDegradedMetricContext(String chainName, Coverage coverage) {
        Map<DegradedReason, Metric.Context> reasons = degradedReasonContexts.get(chainName);
        if (reasons == null) {
            reasons = new HashMap<>(4);
            for (DegradedReason reason : DegradedReason.values() ) {
                Map<String, String> dimensions = new HashMap<>();
                dimensions.put("chain", chainName);
                dimensions.put("reason", reason.toString());
                Metric.Context context = this.metric.createContext(dimensions);
                reasons.put(reason, context);
            }
            degradedReasonContexts.put(chainName, reasons);
        }
        return reasons.get(getMostImportantDegradeReason(coverage));
    }
<p>A searcher to gather statistics such as queries completed and query latency.  There
may be more than 1 StatisticsSearcher in the Searcher chain, each identified by a
Searcher ID.  The statistics accumulated by all StatisticsSearchers are stored
in the singleton StatisticsManager object. </p>
<p>
TODO: Fix events to handle more than one of these searchers properly.

@author Gene Meyers
@author Steinar Knutsen
@author bergum
container-search/src/main/java/com/yahoo/prelude/statistics/StatisticsSearcher.java