You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/10 10:02:33 UTC
[lucene] 15/15: SOLR-12765: Incorrect format of JMX cache stats.
This is an automated email from the ASF dual-hosted git repository.
dweiss pushed a commit to branch branch_7_4
in repository https://gitbox.apache.org/repos/asf/lucene.git
commit 8cfc86b419d0db5cd2bc692a144e32bbdee7ae2f
Author: Andrzej Bialecki <ab...@apache.org>
AuthorDate: Mon Sep 17 14:40:36 2018 +0200
SOLR-12765: Incorrect format of JMX cache stats.
---
solr/CHANGES.txt | 2 ++
.../apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java | 10 +++++++---
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index e031271..42bb0c7 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -37,6 +37,8 @@ Bug Fixes
* SOLR-12594: MetricsHistoryHandler.getOverseerLeader fails when hostname contains hyphen. (ab)
+* SOLR-12765: Incorrect format of JMX cache stats. (Bojan Smid, ab)
+
================== 7.4.0 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
diff --git a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
index 54da5fa..7b0b8ac 100644
--- a/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
+++ b/solr/core/src/java/org/apache/solr/metrics/reporters/jmx/JmxMetricsReporter.java
@@ -50,6 +50,7 @@ import com.codahale.metrics.ObjectNameFactory;
import com.codahale.metrics.Reporter;
import com.codahale.metrics.Timer;
import org.apache.solr.metrics.MetricsMap;
+import org.apache.solr.metrics.SolrMetricManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -558,9 +559,12 @@ public class JmxMetricsReporter implements Reporter, Closeable {
try {
if (filter.matches(name, gauge)) {
final ObjectName objectName = createName("gauges", name);
- if (gauge instanceof MetricsMap) {
- ((MetricsMap)gauge).setAttribute(new Attribute(INSTANCE_TAG, tag));
- registerMBean(gauge, objectName);
+ if (gauge instanceof SolrMetricManager.GaugeWrapper &&
+ ((SolrMetricManager.GaugeWrapper)gauge).getGauge() instanceof MetricsMap) {
+ MetricsMap mm = (MetricsMap)((SolrMetricManager.GaugeWrapper)gauge).getGauge();
+ mm.setAttribute(new Attribute(INSTANCE_TAG, tag));
+ // don't wrap it in a JmxGauge, it already supports all necessary JMX attributes
+ registerMBean(mm, objectName);
} else {
registerMBean(new JmxGauge(gauge, objectName, tag), objectName);
}