Skip to content

Commit ba3913e

Browse files
authored
Merge pull request #172 from maksius13/maksius13
Fix doubling KeyName in answer of /metrics
2 parents 601fcb7 + 87fa112 commit ba3913e

File tree

2 files changed

+29
-21
lines changed

2 files changed

+29
-21
lines changed

wls-exporter-core/src/main/java/com/oracle/wls/exporter/domain/MetricsScraper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ private String getItemQualifiers(JsonObject object, MBeanSelector beanSelector,
120120
String qualifiers = parentQualifiers;
121121
if (object.has(beanSelector.getKey())) {
122122
if (!isNullOrEmptyString(qualifiers)) qualifiers += ',';
123-
qualifiers += (beanSelector.getKeyName() + '=' + asQuotedString(object.get(beanSelector.getKey())));
123+
qualifiers += (beanSelector.getKeyName() + (parentQualifiers.startsWith(beanSelector.getKeyName()+'=') ? '2': "")+'=' + asQuotedString(object.get(beanSelector.getKey())));
124124
}
125125
return qualifiers;
126126
}

wls-exporter-core/src/test/java/com/oracle/wls/exporter/domain/MetricsScraperTest.java

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
/**
2121
* @author Russell Gold
2222
*/
23-
public class MetricsScraperTest {
23+
class MetricsScraperTest {
2424
private static final String RESPONSE =
2525
"{\"applicationRuntimes\": {\"items\": [\n" +
2626
" {\n" +
@@ -150,7 +150,7 @@ public class MetricsScraperTest {
150150
private final MetricsScraper scraper = new MetricsScraper("");
151151

152152
@Test
153-
public void generateLeafMetrics() {
153+
void generateLeafMetrics() {
154154
generateNestedMetrics(getServletsMap(), SERVLET_RESPONSE);
155155

156156
assertThat(scraper.getMetrics(),
@@ -176,7 +176,7 @@ private JsonObject getJsonResponse(String jsonString) {
176176
}
177177

178178
@Test
179-
public void whenNoValuesSpecified_generateAllMetrics() {
179+
void whenNoValuesSpecified_generateAllMetrics() {
180180
generateNestedMetrics(getAllValuesServletsMap(), SERVLET_RESPONSE);
181181

182182
assertThat(scraper.getMetrics(),
@@ -190,15 +190,23 @@ private ImmutableMap<String, Object> getAllValuesServletsMap() {
190190
}
191191

192192
@Test
193-
public void generateLeafMetricsWhileAccumulatingQualifiers() {
193+
void generateLeafMetricsWhileAccumulatingQualifiers() {
194194
generateNestedMetrics(getServletsMap(), SERVLET_RESPONSE, "webapp=\"wls\"");
195195

196196
assertThat(scraper.getMetrics(),
197197
hasMetric("servlet_invocationTotalCount{webapp=\"wls\",servletName=\"JspServlet\"}", 0));
198198
}
199199

200200
@Test
201-
public void generateLeafMetricsWithNoQualifiers() {
201+
void generateLeafMetricsWhileResolvingDuplicateQualifiers() {
202+
generateNestedMetrics(getServletsMap(), SERVLET_RESPONSE, "servletName=\"wls\"");
203+
204+
assertThat(scraper.getMetrics(),
205+
hasMetric("servlet_invocationTotalCount{servletName=\"wls\",servletName2=\"JspServlet\"}", 0));
206+
}
207+
208+
@Test
209+
void generateLeafMetricsWithNoQualifiers() {
202210
generateNestedMetrics(getServletsMapWithoutQualifierKey(), SINGLE_SERVLET_RESPONSE);
203211

204212
assertThat(scraper.getMetrics(), hasMetric("servlet_invocationTotalCount", 0));
@@ -210,14 +218,14 @@ private ImmutableMap<String, Object> getServletsMapWithoutQualifierKey() {
210218
}
211219

212220
@Test
213-
public void generateLeafMetricsWithParentQualifiersOnly() {
221+
void generateLeafMetricsWithParentQualifiersOnly() {
214222
generateNestedMetrics(getServletsMapWithoutQualifierKey(), SINGLE_SERVLET_RESPONSE, "webapp=\"wls\"");
215223

216224
assertThat(scraper.getMetrics(), hasMetric("servlet_invocationTotalCount{webapp=\"wls\"}", 0));
217225
}
218226

219227
@Test
220-
public void whenKeyNameSpecified_useItRatherThanKey() {
228+
void whenKeyNameSpecified_useItRatherThanKey() {
221229
generateNestedMetrics(getServletsMapWithKeyName("servlet"), SERVLET_RESPONSE);
222230

223231
assertThat(scraper.getMetrics(), hasMetric("servlet_invocationTotalCount{servlet=\"JspServlet\"}", 0));
@@ -230,7 +238,7 @@ private Map<String, Object> getServletsMapWithKeyName(String keyName) {
230238
}
231239

232240
@Test
233-
public void whenValuesIncludesKey_ignoreIt() {
241+
void whenValuesIncludesKey_ignoreIt() {
234242
generateNestedMetrics(getServletsMapWithKey("invocationId"), SINGLE_SERVLET_RESPONSE);
235243

236244
assertThat(scraper.getMetrics(), not(hasMetric("servlet_invocationId{invocationId=\"23\"}", 23)));
@@ -243,56 +251,56 @@ private Map<String, Object> getServletsMapWithKey(String key) {
243251
}
244252

245253
@Test
246-
public void whenNullObjectInResponse_dontFail() {
254+
void whenNullObjectInResponse_dontFail() {
247255
generateNestedMetrics(getServletsMapWithKey("invocationId"), RESPONSE_WITH_NULL);
248256

249257
// todo add as comment
250258
assertThat(scraper.getMetrics(), not(hasMetric("servlet_invocationId{invocationId=\"23\"}", 23)));
251259
}
252260

253261
@Test
254-
public void whenGenerateHierarchicalMetrics_containsTopLevel() {
262+
void whenGenerateHierarchicalMetrics_containsTopLevel() {
255263
generateNestedMetrics(twoLevelMap, TWO_LEVEL_RESPONSE);
256264

257265
assertThat(scraper.getMetrics(), hasMetric("component_deploymentState{component=\"ejb30_weblogic\"}", 2));
258266
}
259267

260268
@Test
261-
public void whenNoPrefix_generateBareMetrics() {
269+
void whenNoPrefix_generateBareMetrics() {
262270
generateNestedMetrics(noPrefixTwoLevelMap, TWO_LEVEL_RESPONSE);
263271

264272
assertThat(scraper.getMetrics(), hasMetric("deploymentState{component=\"ejb30_weblogic\"}", 2));
265273
}
266274

267275
@Test
268-
public void whenGenerateHierarchicalMetrics_ignoresNonNumericValues() {
276+
void whenGenerateHierarchicalMetrics_ignoresNonNumericValues() {
269277
generateNestedMetrics(twoLevelMap, TWO_LEVEL_RESPONSE);
270278

271279
assertThat(scraper.getMetrics(), not(hasMetric("component_sourceInfo{component=\"ejb30_weblogic\"}", "weblogic.war")));
272280
assertThat(scraper.getMetrics(), not(hasMetric("component_internal{component=\"ejb30_weblogic\"}", "true")));
273281
}
274282

275283
@Test
276-
public void configurationQuery_acceptsStringValues() {
284+
void configurationQuery_acceptsStringValues() {
277285
scraper.scrape(MBeanSelector.DOMAIN_NAME_SELECTOR, getJsonResponse(CONFIG_RESPONSE));
278286

279287
assertThat(scraper.getMetrics(), hasMetric("name", "mydomain"));
280288
}
281289

282290
@Test
283-
public void whenGenerateHierarchicalMetrics_containsBottomLevel() {
291+
void whenGenerateHierarchicalMetrics_containsBottomLevel() {
284292
generateNestedMetrics(twoLevelMap, TWO_LEVEL_RESPONSE);
285293

286294
assertThat(scraper.getMetrics(), hasMetric("servlet_invocationTotalCount{component=\"ejb30_weblogic\",servletName=\"JspServlet\"}", 0));
287295
}
288296

289297
@Test
290-
public void whenResponseLacksServerRuntimes_generateEmptyMetrics() {
298+
void whenResponseLacksServerRuntimes_generateEmptyMetrics() {
291299
assertThat(scraper.scrape(MBeanSelector.create(getFullMap()), getJsonResponse("{}")), anEmptyMap());
292300
}
293301

294302
@Test
295-
public void generateFromFullResponse() {
303+
void generateFromFullResponse() {
296304
Map<String, Object> metrics = scraper.scrape(MBeanSelector.create(getFullMap()), getJsonResponse(RESPONSE));
297305

298306
assertThat(metrics, hasMetric("component_deploymentState{application=\"weblogic\",component=\"ejb30_weblogic\"}", 2));
@@ -307,7 +315,7 @@ private Map<String, Object> getFullMap() {
307315

308316

309317
@Test
310-
public void generateFromFullResponseUsingSnakeCase() {
318+
void generateFromFullResponseUsingSnakeCase() {
311319
scraper.setMetricNameSnakeCase(true);
312320
Map<String, Object> metrics = scraper.scrape(MBeanSelector.create(getFullMap()), getJsonResponse(RESPONSE));
313321

@@ -316,15 +324,15 @@ public void generateFromFullResponseUsingSnakeCase() {
316324
}
317325

318326
@Test
319-
public void whenTypeNotSpecified_includeAllComponents() {
327+
void whenTypeNotSpecified_includeAllComponents() {
320328
Map<String, Object> metrics = scraper.scrape(MBeanSelector.create(getFullMap()), getJsonResponse(RESPONSE));
321329

322330
assertThat(metrics, hasMetric("component_deploymentState{application=\"weblogic\",component=\"ejb30_weblogic\"}", 2));
323331
assertThat(metrics, hasMetric("component_deploymentState{application=\"mbeans\",component=\"EjbStatusBean\"}", 2));
324332
}
325333

326334
@Test
327-
public void selectOnlyWebApps() {
335+
void selectOnlyWebApps() {
328336
componentMap.put(MBeanSelector.TYPE, "WebAppComponentRuntime");
329337
Map<String, Object> metrics = scraper.scrape(MBeanSelector.create(getFullMap()), getJsonResponse(RESPONSE));
330338

@@ -333,7 +341,7 @@ public void selectOnlyWebApps() {
333341
}
334342

335343
@Test
336-
public void whenValuesAtTopLevel_scrapeThem() {
344+
void whenValuesAtTopLevel_scrapeThem() {
337345
final MBeanSelector selector = MBeanSelector.create(getMetricsMap());
338346
final JsonObject jsonResponse = getJsonResponse(METRICS_RESPONSE);
339347
Map<String, Object> metrics = scraper.scrape(selector, jsonResponse);

0 commit comments

Comments
 (0)