Skip to content

Commit 1a211ed

Browse files
authored
Merge branch 'master' into feature/issue122_untyped_metrics
2 parents 3311475 + 0434a03 commit 1a211ed

File tree

5 files changed

+37
-0
lines changed

5 files changed

+37
-0
lines changed

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: java
2+
jdk:
3+
- openjdk8
4+
notifications:
5+
email:
6+
on_success: never
7+
on_failure: always
8+
slack:
9+
secure: UW1NBLkywVypP4ZmZsWpRe2evVtiheLeDcot9Y6se0xeE0uGAn5VHwgYI3i6to8trWOcUzkWF//M0WUHdLPHYzVfDUKXI7naNKX1lvc5mOaJyt8bzqLZTB68rX0/Lu0eYPrKRZAOfrVYpG3F3gbiO3Cc10hdED4peqrPM3n6M5Nv4VL56XzFLjfdORT0K3I9DpJY00enLey5Uk/KyPFChIYp3wdBoPKa2n/7kofeJ9AdfI/RrDAcK73uYdoRJptiwKZBT8QsXFRHKE5H4xyg5GyZMUpD0+4wMSVKCBBit+ffu8Gn24pw/orGD1t7Oydozsfucw0rer/5YTJ03Ub4C3J8FwEGK4d4ub51iCnLoef68m7blwsiQNtrVTDSOBYMsO2WbM4L5IHk9IU8lVDNGc3BjED8EvElJvtTEg/JHTPBBeXDAnM7oIlM+qJxpJhEtCxHGBfkf+6waGRk4tvc3X8cJQ4FApbRoUYqJdRZQMihJ2kjiBCgX5kVfT0qRaMUoLpMw5K5wLnWzDERxICbaTh96zrYvFqL55p7gtVa2cfbG8cGiyhsldIwVsWyrF/vEBzIKDYeNmpLcEK5pcKIIvTrZNSFIKlvTESeTE2tOnzSZ6UDMbjKiouLAyui++Xp9BZIdCvIG0wiQ91TdCSUbOOop2pNpufZW+WwoaxlXr8=
10+
on_success: always
11+
on_failure: always

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,6 +1402,11 @@ This section provides a description of metrics of queues, channels and listeners
14021402
<td>Shows maximum number of messages that are allowed on the queue.</td>
14031403
</tr>
14041404
<tr>
1405+
<td>mqobject_queue_queue_fill_percentage</td>
1406+
<td>gauge</td>
1407+
<td>Shows queue fill percentage.</td>
1408+
</tr>
1409+
<tr>
14051410
<td>mqobject_channel_channel_status_untyped</td>
14061411
<td>gauge</td>
14071412
<td>Shows current channel status. Mapping of channel statuses to prometheus metric values can be found <a href="#channel-status-mapping">here</a>.</td>

src/main/java/ru/cinimex/exporter/prometheus/metrics/MetricManagerUtils.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public static List<String> getUpdatedMetricNames() {
3232
updatedMetricNames.add("mqobject_get_average_destructive_mqget_persistent_message_size_bytes");
3333
updatedMetricNames.add("mqobject_get_average_destructive_mqget_non_persistent_message_size_bytes");
3434
updatedMetricNames.add("mqobject_get_average_destructive_mqget_persistent_and_non_persistent_message_size_bytes");
35+
updatedMetricNames.add("mqobject_queue_queue_fill_percentage");
3536
return updatedMetricNames;
3637
}
3738

@@ -57,6 +58,10 @@ public static List<String> getMetricsNamesUsedToUpdate(String updatedMetricName)
5758
listWithNames.add("mqobject_get_destructive_mqget_persistent_message_count_totalmessages");
5859
listWithNames.add("mqobject_get_destructive_mqget_non_persistent_message_count_totalmessages");
5960
break;
61+
case "mqobject_queue_queue_fill_percentage":
62+
listWithNames.add("mqobject_queue_queue_depth_messages");
63+
listWithNames.add("mqobject_queue_queue_max_depth_messages");
64+
break;
6065
default:
6166
break;
6267
}
@@ -74,6 +79,8 @@ public static Function<List<Double>, Double> getConversionFunction(String update
7479
return MetricManagerUtils::division;
7580
case "mqobject_get_average_destructive_mqget_persistent_and_non_persistent_message_size_bytes":
7681
return MetricManagerUtils::averageSum;
82+
case "mqobject_get_queue_queue_fill_percentage":
83+
return MetricManagerUtils::divisionInPercentage;
7784
default:
7885
return MetricManagerUtils::defaultConversion;
7986
}
@@ -91,6 +98,12 @@ private static Double division(List<Double> params) {
9198
return params.get(1) == 0.0 ? 0.0 : params.get(0) / params.get(1);
9299
}
93100

101+
private static Double divisionInPercentage(List<Double> params) {
102+
Objects.requireNonNull(params);
103+
if (params.size() != 2) throw new IllegalArgumentException();
104+
return params.get(1) == 0.0 ? 0.0 : params.get(0) / (params.get(1) * 100);
105+
}
106+
94107
private static Double defaultConversion(List<Double> params) {
95108
return Objects.requireNonNull(params).get(0);
96109
}

src/main/java/ru/cinimex/exporter/prometheus/metrics/MetricsReference.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ public static Map<String, Metric> getAdditionalMqObjectMetricsReference() {
174174
metrics.put("destructive MQGET persistent average message byte count", new Metric("mqobject_get_average_destructive_mqget_persistent_message_size_bytes", Metric.Type.SIMPLE_GAUGE));
175175
metrics.put("destructive MQGET non-persistent average message byte count", new Metric("mqobject_get_average_destructive_mqget_non_persistent_message_size_bytes", Metric.Type.SIMPLE_GAUGE));
176176
metrics.put("destructive MQGET persistent and non-persistent average message byte count", new Metric("mqobject_get_average_destructive_mqget_persistent_and_non_persistent_message_size_bytes", Metric.Type.SIMPLE_GAUGE));
177+
metrics.put("queue fill percentage", new Metric("mqobject_queue_queue_fill_percentage", Metric.Type.SIMPLE_GAUGE));
177178
return metrics;
178179
}
179180

src/test/java/ru/cinimex/exporter/prometheus/metrics/MetricManagerUtilsTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ static void initMetrics() {
1616
updatedMetricNames.add("mqobject_get_average_destructive_mqget_persistent_message_size_bytes");
1717
updatedMetricNames.add("mqobject_get_average_destructive_mqget_non_persistent_message_size_bytes");
1818
updatedMetricNames.add("mqobject_get_average_destructive_mqget_persistent_and_non_persistent_message_size_bytes");
19+
updatedMetricNames.add("mqobject_queue_queue_fill_percentage");
1920
}
2021

2122
@Test
@@ -44,5 +45,11 @@ void getMetricsNamesUsedToUpdate() {
4445
listWithNames.add("mqobject_get_destructive_mqget_non_persistent_message_count_totalmessages");
4546

4647
assertEquals(listWithNames, MetricManagerUtils.getMetricsNamesUsedToUpdate(updatedMetricNames.get(2)));
48+
49+
listWithNames = new ArrayList<>();
50+
listWithNames.add("mqobject_queue_queue_depth_messages");
51+
listWithNames.add("mqobject_queue_queue_max_depth_messages");
52+
53+
assertEquals(listWithNames, MetricManagerUtils.getMetricsNamesUsedToUpdate(updatedMetricNames.get(3)));
4754
}
4855
}

0 commit comments

Comments
 (0)