Conversation
…istry lookup
Metric registry MBeans were looked up with ad-hoc patterns at every call site,
and the node's JMX client was memoized for the whole life of the node object.
* metric_registry_pattern(registry) builds the exact MBean name pattern of a
registry: split at the first dot like JmxMetricExporterSpi, values spelled
like IgniteUtils.escapeObjectNameValue(), escaped for grep -E, anchored at
the end of the line ('name' sorts last). A registry without a group is
filtered from the system view of the same name. The old
'group=cacheGroups.*name="%s"' pattern could not find an alphanumeric
(unquoted) name at all. Names with a quote, a backslash or '?' are
rejected, as the jmxterm command quoting cannot carry them.
* The node's JmxClient is rebuilt on every start_node(). Before, a restarted
node kept the pid and the clsLdr-bearing MBean names of its previous JVM,
so callers had to build a client of their own. JmxClient takes an explicit
pid for the CDC JVM.
* node.metric_registry_mbean() and JmxMBean.value()/bool_value() replace the
hand-built patterns and next(mbean.X) reads in rebalance, dump, snapshot
and CDC.
check_jmx_utils.py runs every pattern case through Python re and grep -E.
maksaska
force-pushed
the
ducktests-jmx-helpers
branch
from
September 17, 2026 11:44
076b564 to
8d3a35f
Compare
An unescaped '[' right after the class opener made Python emit 'FutureWarning: Possible nested set' on every JMX metric lookup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The MBean name of a metric registry was spelled out at every call site, and every one of them read an attribute as next(mbean.Attr).strip(). Both are now in one place:
Also documents why IgniteAwareService.await_rebalance() builds a JmxClient of its own instead of the node's memoized one: the memoized client holds the pid of the incarnation it was built for, and await_rebalance() runs right after a restart.
check_jmx_utils.py covers the pattern, including both cases that used to be wrong.
Thank you for submitting the pull request to the Apache Ignite.
In order to streamline the review of the contribution
we ask you to ensure the following steps have been taken:
The Contribution Checklist
The description explains WHAT and WHY was made instead of HOW.
The following pattern must be used:
IGNITE-XXXX Change summarywhereXXXX- number of JIRA issue.(see the Maintainers list)
the
green visaattached to the JIRA ticket (see tabPR Checkat TC.Bot - Instance 1 or TC.Bot - Instance 2)Notes
If you need any help, please email dev@ignite.apache.org or ask anу advice on http://asf.slack.com #ignite channel.