Skip to content

Commit f7fe48b

Browse files
authored
VisualVM is not showing V1 gRPC Connections (#103)
1 parent 251578b commit f7fe48b

File tree

4 files changed

+40
-3
lines changed

4 files changed

+40
-3
lines changed

coherence-visualvm-plugin/src/main/java/com/oracle/coherence/plugin/visualvm/VisualVMModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ public List<Entry<Object, Data>> getData(RequestSender requestSender, Class<?> c
491491
// manual check as version numbering changed after 35
492492
nVersion = 353;
493493
}
494-
else if (sCoherenceVersion.startsWith("2"))
494+
else if (sCoherenceVersion.startsWith("2") || sCoherenceVersion.startsWith("3"))
495495
{
496496
// check for versions such as 20.06 or 20.06.01 and convert them to an ever-increasing number
497497
// 20.06 -> 2006000

coherence-visualvm-plugin/src/main/java/com/oracle/coherence/plugin/visualvm/helper/JMXRequestSender.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,13 @@ public void dumpClusterHeap(String sRole) throws Exception
454454
new String[] {String.class.getName()});
455455
}
456456

457+
public Set<ObjectName> getV1GrpcProxyMBean()
458+
throws Exception
459+
{
460+
return f_connection.queryNames(new ObjectName("Coherence:type=GrpcProxy,*"), null);
461+
}
462+
463+
457464
@Override
458465
public String[] getSnapshots(String sService, String sDomainPartition)
459466
throws Exception

coherence-visualvm-plugin/src/main/java/com/oracle/coherence/plugin/visualvm/tablemodel/model/GrpcProxyData.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,15 @@
2727

2828
import java.util.List;
2929
import java.util.Map;
30+
import java.util.Set;
3031
import java.util.SortedMap;
3132
import java.util.logging.Logger;
3233

3334
import com.oracle.coherence.plugin.visualvm.VisualVMModel;
3435
import com.oracle.coherence.plugin.visualvm.helper.HttpRequestSender;
36+
import com.oracle.coherence.plugin.visualvm.helper.JMXRequestSender;
3537
import com.oracle.coherence.plugin.visualvm.helper.RequestSender;
38+
import javax.management.ObjectName;
3639

3740
/**
3841
* A class to hold basic gRPC Proxy data.
@@ -79,11 +82,38 @@ public Data processReporterData(Object[] aoColumns, VisualVMModel model)
7982
data.setColumn(RESPONSES_SENT_COUNT, Long.valueOf(getNumberValue(aoColumns[nStart++].toString())));
8083
data.setColumn(MESSAGES_RECEIVED_COUNT, Long.valueOf(getNumberValue(aoColumns[nStart++].toString())));
8184
data.setColumn(REQUEST_DURATION_MEAN, Float.parseFloat(aoColumns[nStart++].toString()));
82-
data.setColumn(MESSAGE_DURATION_MEAN, Float.parseFloat(aoColumns[nStart++].toString()));
85+
data.setColumn(MESSAGE_DURATION_MEAN, Float.parseFloat(aoColumns[nStart].toString()));
8386

8487
return data;
8588
}
8689

90+
@Override
91+
public String preProcessReporterXML(VisualVMModel model, String sReporterXML)
92+
{
93+
String sMBeanName = "GrpcNamedCacheProxy"; // v0 default
94+
95+
try {
96+
// determine if v0 or v1 of gRPC proxy is being used.
97+
RequestSender requestSender = model.getRequestSender();
98+
if (requestSender instanceof JMXRequestSender)
99+
{
100+
// check for JMX MBean of type Coherence:type=GrpcProxy
101+
JMXRequestSender jmxRequestSender = (JMXRequestSender) requestSender;
102+
Set<ObjectName> setNames = jmxRequestSender.getV1GrpcProxyMBean();
103+
if (setNames != null && !setNames.isEmpty())
104+
{
105+
sMBeanName = "GrpcProxy";
106+
}
107+
}
108+
}
109+
catch (Exception eIgnore)
110+
{
111+
// ignore
112+
}
113+
114+
return sReporterXML.replaceAll("%MBEAN%", escape(sMBeanName));
115+
}
116+
87117
@Override
88118
public SortedMap<Object, Data> getAggregatedDataFromHttpQuerying(VisualVMModel model,
89119
HttpRequestSender requestSender)

coherence-visualvm-plugin/src/main/resources/reports/visualvm/grpc-proxy-stats.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<delim>{tab}</delim>
3737

3838
<query>
39-
<pattern>Coherence:type=GrpcNamedCacheProxy,*</pattern>
39+
<pattern>Coherence:type=%MBEAN%,*</pattern>
4040
<filter-ref>equals</filter-ref>
4141
</query>
4242

0 commit comments

Comments
 (0)