Skip to content

Commit 9cb9e05

Browse files
authored
Add cache prunes/millis to caches tab (#107)
1 parent 909f903 commit 9cb9e05

File tree

6 files changed

+74
-17
lines changed

6 files changed

+74
-17
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1490,7 +1490,8 @@ public String[] getMetadata()
14901490
Localization.getLocalText(LBL_NODE_ID), Localization.getLocalText(LBL_SIZE),
14911491
Localization.getLocalText(LBL_MEMORY_BYTES), Localization.getLocalText(LBL_TOTAL_GETS),
14921492
Localization.getLocalText(LBL_TOTAL_PUTS), Localization.getLocalText(LBL_CACHE_HITS),
1493-
Localization.getLocalText(LBL_CACHE_MISSES), Localization.getLocalText("LBL_hit_probability")
1493+
Localization.getLocalText(LBL_CACHE_MISSES), Localization.getLocalText("LBL_cache_prunes"),
1494+
Localization.getLocalText("LBL_cache_prunes_millis"), Localization.getLocalText("LBL_hit_probability")
14941495
};
14951496

14961497
/**
@@ -1512,6 +1513,7 @@ public String[] getMetadata()
15121513
Localization.getLocalText(LBL_NODE_ID), Localization.getLocalText(LBL_SIZE),
15131514
Localization.getLocalText(LBL_TOTAL_GETS), Localization.getLocalText(LBL_TOTAL_PUTS),
15141515
Localization.getLocalText(LBL_CACHE_HITS), Localization.getLocalText(LBL_CACHE_MISSES),
1516+
Localization.getLocalText("LBL_cache_prunes"), Localization.getLocalText("LBL_cache_prunes_millis"),
15151517
Localization.getLocalText("LBL_hit_probability")
15161518
};
15171519

coherence-visualvm-plugin/src/main/java/com/oracle/coherence/plugin/visualvm/panel/CoherenceCachePanel.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,8 @@ public CoherenceCachePanel(VisualVMModel model)
174174

175175
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.CACHE_HITS, new RenderHelper.IntegerRenderer());
176176
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.CACHE_MISSES, new RenderHelper.IntegerRenderer());
177+
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.CACHE_PRUNES, new RenderHelper.IntegerRenderer());
178+
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.CACHE_PRUNES_MILLIS, new RenderHelper.IntegerRenderer());
177179
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.MEMORY_BYTES, new RenderHelper.IntegerRenderer());
178180
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.TOTAL_GETS, new RenderHelper.IntegerRenderer());
179181
RenderHelper.setColumnRenderer(f_tableDetail, CacheDetailData.TOTAL_PUTS, new RenderHelper.IntegerRenderer());

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

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public Data populateData(RequestSender requestSender, ObjectName objName)
153153
AttributeList listAttr = requestSender.getAttributes(objName,
154154
new String[]{ ATTR_SIZE, ATTR_UNITS, ATTR_UNIT_FACTOR, ATTR_CACHE_HITS,
155155
ATTR_CACHE_MISSES, ATTR_TOTAL_GETS, ATTR_TOTAL_PUTS,
156-
ATTR_HIT_PROBABILITY });
156+
ATTR_HIT_PROBABILITY, ATTR_CACHE_PRUNES, ATTR_CACHE_PRUNES_MILLIS });
157157

158158
data.setColumn(CacheDetailData.NODE_ID, Integer.valueOf(objName.getKeyProperty("nodeId")));
159159

@@ -164,6 +164,8 @@ public Data populateData(RequestSender requestSender, ObjectName objName)
164164
data.setColumn(CacheDetailData.CACHE_MISSES, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_MISSES)));
165165
data.setColumn(CacheDetailData.TOTAL_GETS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_TOTAL_GETS)));
166166
data.setColumn(CacheDetailData.TOTAL_PUTS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_TOTAL_PUTS)));
167+
data.setColumn(CacheDetailData.CACHE_PRUNES, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_PRUNES)));
168+
data.setColumn(CacheDetailData.CACHE_PRUNES_MILLIS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_PRUNES_MILLIS)));
167169
data.setColumn(CacheDetailData.HIT_PROBABILITY, Double.parseDouble(getAttributeValueAsString(listAttr, ATTR_HIT_PROBABILITY)));
168170

169171
return data;
@@ -186,7 +188,9 @@ public Data populateData(Object[] aoColumns)
186188
data.setColumn(CacheDetailData.TOTAL_PUTS, Long.valueOf(getNumberValue(aoColumns[8].toString())));
187189
data.setColumn(CacheDetailData.CACHE_HITS, Long.valueOf(getNumberValue(aoColumns[9].toString())));
188190
data.setColumn(CacheDetailData.CACHE_MISSES, Integer.valueOf(getNumberValue(aoColumns[10].toString())));
189-
data.setColumn(CacheDetailData.HIT_PROBABILITY, Float.valueOf(aoColumns[11].toString()));
191+
data.setColumn(CacheDetailData.CACHE_PRUNES, Long.valueOf(getNumberValue(aoColumns[11].toString())));
192+
data.setColumn(CacheDetailData.CACHE_PRUNES_MILLIS, Long.valueOf(getNumberValue(aoColumns[12].toString())));
193+
data.setColumn(CacheDetailData.HIT_PROBABILITY, Float.valueOf(aoColumns[13].toString()));
190194

191195
return data;
192196
}
@@ -278,6 +282,10 @@ public SortedMap<Object, Data> getAggregatedDataFromHttpQueryingInternal(
278282
Long.valueOf(nodeCacheMember.get("cacheHits").asText()));
279283
data.setColumn(CacheDetailData.CACHE_MISSES,
280284
Integer.valueOf(nodeCacheMember.get("cacheMisses").asText()));
285+
data.setColumn(CacheDetailData.CACHE_PRUNES,
286+
Long.valueOf(nodeCacheMember.get("cachePrunes").asText()));
287+
data.setColumn(CacheDetailData.CACHE_PRUNES_MILLIS,
288+
Long.valueOf(nodeCacheMember.get("cachePrunesMillis").asText()));
281289
data.setColumn(CacheDetailData.HIT_PROBABILITY,
282290
Float.valueOf(nodeCacheMember.get("hitProbability").floatValue()));
283291

@@ -344,10 +352,20 @@ public Data processReporterData(Object[] aoColumns, VisualVMModel model)
344352
*/
345353
public static final int CACHE_MISSES = 6;
346354

355+
/**
356+
* Array index for cache prunes.
357+
*/
358+
public static final int CACHE_PRUNES = 7;
359+
360+
/**
361+
* Array index for cache prunes millis.
362+
*/
363+
public static final int CACHE_PRUNES_MILLIS = 8;
364+
347365
/**
348366
* Array index for hit probability.
349367
*/
350-
public static final int HIT_PROBABILITY = 7;
368+
public static final int HIT_PROBABILITY = 9;
351369

352370
/**
353371
* Report for cache details data;
@@ -439,4 +457,14 @@ public String getValue()
439457
* JMX attribute name for Hit Probability.
440458
*/
441459
protected static final String ATTR_HIT_PROBABILITY = "HitProbability";
460+
461+
/**
462+
* JMX attribute name for Cache Prunes.
463+
*/
464+
protected static final String ATTR_CACHE_PRUNES = "CachePrunes";
465+
466+
/**
467+
* JMX attribute name for Cache Prunes Millis.
468+
*/
469+
protected static final String ATTR_CACHE_PRUNES_MILLIS = "CachePrunesMillis";
442470
}

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

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2020, 2024 Oracle and/or its affiliates. All rights reserved.
33
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
*
55
* This code is free software; you can redistribute it and/or modify it
@@ -59,7 +59,7 @@ public Data populateData(RequestSender sender, ObjectName objName)
5959
AttributeList listAttr = sender.getAttributes(objName,
6060
new String[]{ ATTR_SIZE, ATTR_UNITS, ATTR_UNIT_FACTOR, ATTR_CACHE_HITS,
6161
ATTR_CACHE_MISSES, ATTR_TOTAL_GETS, ATTR_TOTAL_PUTS,
62-
ATTR_HIT_PROBABILITY });
62+
ATTR_HIT_PROBABILITY, ATTR_CACHE_PRUNES, ATTR_CACHE_PRUNES_MILLIS });
6363

6464
data.setColumn(CacheFrontDetailData.NODE_ID, Integer.valueOf(objName.getKeyProperty("nodeId")));
6565

@@ -68,6 +68,8 @@ public Data populateData(RequestSender sender, ObjectName objName)
6868
data.setColumn(CacheFrontDetailData.CACHE_MISSES, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_MISSES)));
6969
data.setColumn(CacheFrontDetailData.TOTAL_GETS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_TOTAL_GETS)));
7070
data.setColumn(CacheFrontDetailData.TOTAL_PUTS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_TOTAL_PUTS)));
71+
data.setColumn(CacheFrontDetailData.CACHE_PRUNES, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_PRUNES)));
72+
data.setColumn(CacheFrontDetailData.CACHE_PRUNES_MILLIS, Long.parseLong(getAttributeValueAsString(listAttr, ATTR_CACHE_PRUNES_MILLIS)));
7173
data.setColumn(CacheFrontDetailData.HIT_PROBABILITY, Double.parseDouble(getAttributeValueAsString(listAttr, ATTR_HIT_PROBABILITY)));
7274

7375
return data;
@@ -84,7 +86,9 @@ public Data populateData(Object[] aoColumns)
8486
data.setColumn(CacheFrontDetailData.TOTAL_PUTS, Long.valueOf(getNumberValue(aoColumns[8].toString())));
8587
data.setColumn(CacheFrontDetailData.CACHE_HITS, Long.valueOf(getNumberValue(aoColumns[9].toString())));
8688
data.setColumn(CacheFrontDetailData.CACHE_MISSES, Integer.valueOf(getNumberValue(aoColumns[10].toString())));
87-
data.setColumn(CacheFrontDetailData.HIT_PROBABILITY, Float.valueOf(aoColumns[11].toString()));
89+
data.setColumn(CacheFrontDetailData.CACHE_PRUNES, Long.valueOf(getNumberValue(aoColumns[11].toString())));
90+
data.setColumn(CacheFrontDetailData.CACHE_PRUNES_MILLIS, Long.valueOf(getNumberValue(aoColumns[12].toString())));
91+
data.setColumn(CacheFrontDetailData.HIT_PROBABILITY, Float.valueOf(aoColumns[13].toString()));
8892

8993
return data;
9094
}
@@ -123,8 +127,19 @@ public Data populateData(Object[] aoColumns)
123127
*/
124128
public static final int CACHE_MISSES = 5;
125129

130+
/**
131+
* Array index for cache prunes.
132+
*/
133+
public static final int CACHE_PRUNES = 6;
134+
135+
/**
136+
* Array index for cache prunes millis.
137+
*/
138+
public static final int CACHE_PRUNES_MILLIS = 7;
139+
126140
/**
127141
* Array index for hit probability.
128142
*/
129-
public static final int HIT_PROBABILITY = 6;
143+
public static final int HIT_PROBABILITY = 8;
144+
130145
}

coherence-visualvm-plugin/src/main/resources/com/oracle/coherence/plugin/visualvm/Bundle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,8 @@ LBL_view_cache=View Cache
433433
LBL_total_gets=Total Gets
434434
LBL_total_puts=Total Puts
435435
LBL_cache_hits=Cache Hits
436+
LBL_cache_prunes=Cache Prunes
437+
LBL_cache_prunes_millis=Cache Prunes Millis
436438
LBL_cache_misses=Cache Misses
437439
LBL_hit_probability=Hit Probability
438440
LBL_locks_granted=Locks Granted

coherence-visualvm-plugin/src/main/resources/reports/visualvm/cache-detail-stats.xml

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<!--
33
4-
Copyright (c) 2020, 2022 Oracle and/or its affiliates. All rights reserved.
4+
Copyright (c) 2020, 2024 Oracle and/or its affiliates. All rights reserved.
55
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
66
77
This code is free software; you can redistribute it and/or modify it
@@ -100,19 +100,27 @@
100100
<name>CacheMisses</name>
101101
</column>
102102

103+
<column id="CachePrunes">
104+
<name>CachePrunes</name>
105+
</column>
106+
107+
<column id="CachePrunesMillis">
108+
<name>CachePrunesMillis</name>
109+
</column>
110+
103111
<column id="HitProbability">
104112
<name>HitProbability</name>
105113
</column>
106114

107-
<column id="Units">
108-
<name>Units</name>
109-
<hidden>true</hidden>
110-
</column>
115+
<column id="Units">
116+
<name>Units</name>
117+
<hidden>true</hidden>
118+
</column>
111119

112-
<column id="UnitFactor">
113-
<name>UnitFactor</name>
114-
<hidden>true</hidden>
115-
</column>
120+
<column id="UnitFactor">
121+
<name>UnitFactor</name>
122+
<hidden>true</hidden>
123+
</column>
116124
</row>
117125
</report>
118126
</report-config>

0 commit comments

Comments
 (0)