Skip to content

Commit d91e138

Browse files
author
kgedminas
committed
Support ObjectName patterns in excludeObjectNameAttributes
Signed-off-by: kgedminas <kgedminas@eisgroup.com>
1 parent 8e4e62f commit d91e138

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

collector/src/main/java/io/prometheus/jmx/ObjectNameAttributeFilter.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,23 @@ public void add(ObjectName objectName, String attributeName) {
129129
public boolean exclude(ObjectName objectName, String attributeName) {
130130
boolean result = false;
131131

132+
// concrete objectName definition gets precedence
132133
if (excludeObjectNameAttributesMap.size() > 0) {
133134
Set<String> attributeNameSet = excludeObjectNameAttributesMap.get(objectName);
134135
if (attributeNameSet != null) {
135-
result = attributeNameSet.contains(attributeName);
136+
return attributeNameSet.contains(attributeName);
137+
}
138+
}
139+
for (Map.Entry<ObjectName, Set<String>> objectNameSetEntry :
140+
excludeObjectNameAttributesMap.entrySet()) {
141+
if (objectNameSetEntry.getKey().isPattern()
142+
&& objectNameSetEntry.getKey().apply(objectName)) {
143+
// if exclusion found - return
144+
// otherwise keep searching as checked object may match multiple patterns
145+
// and checked attribute may be defined only under one of them
146+
if (objectNameSetEntry.getValue().contains(attributeName)) {
147+
return true;
148+
}
136149
}
137150
}
138151

0 commit comments

Comments
 (0)