Skip to content

Commit 2a7c47b

Browse files
authored
Merge pull request #34 from Cinimex-Informatica/feature/issue5_incorrect_counters
issue5 Resolves: #5
2 parents bab1a2c + bb1624e commit 2a7c47b

File tree

6 files changed

+158
-189
lines changed

6 files changed

+158
-189
lines changed

src/main/java/ru/cinimex/exporter/ExporterLauncher.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,19 @@ public static void main(String[] args) throws MQException, IOException {
4040
ArrayList<MQObject> objects = new ArrayList<>();
4141

4242
if (config.sendPCFCommands()) {
43-
if (config.getQueues().size() > 0) {
43+
if (config.getQueues() != null && config.getQueues().size() > 0) {
4444
monitoringTypes.add(MQObject.MQType.QUEUE);
4545
for (String queueName : config.getQueues()) {
4646
objects.add(new MQObject(queueName, MQObject.MQType.QUEUE));
4747
}
4848
}
49-
if (config.getChannels().size() > 0) {
49+
if (config.getChannels() != null && config.getChannels().size() > 0) {
5050
monitoringTypes.add(MQObject.MQType.CHANNEL);
5151
for (String channelName : config.getChannels()) {
5252
objects.add(new MQObject(channelName, MQObject.MQType.CHANNEL));
5353
}
5454
}
55-
if (config.getListeners().size() > 0) {
55+
if (config.getListeners() != null && config.getListeners().size() > 0) {
5656
monitoringTypes.add(MQObject.MQType.LISTENER);
5757
for (String listenerName : config.getListeners()) {
5858
objects.add(new MQObject(listenerName, MQObject.MQType.LISTENER));

src/main/java/ru/cinimex/exporter/mq/MQConnection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected static Hashtable<String, Object> createMQConnectionParams(String host,
3737
Hashtable<String, Object> properties = new Hashtable<String, Object>();
3838
properties.put(MQConstants.TRANSPORT_PROPERTY, host == null ? MQConstants.TRANSPORT_MQSERIES_BINDINGS : MQConstants.TRANSPORT_MQSERIES_CLIENT);
3939
if (host != null) properties.put(MQConstants.HOST_NAME_PROPERTY, host);
40-
if (port != 0) properties.put(MQConstants.PORT_PROPERTY, new Integer(port));
40+
if (port != 0) properties.put(MQConstants.PORT_PROPERTY, port);
4141
if (channel != null) properties.put(MQConstants.CHANNEL_PROPERTY, channel);
4242
if (user != null || password != null) {
4343
if (useMQCSP) properties.put(MQConstants.USE_MQCSP_AUTHENTICATION_PROPERTY, true);

src/main/java/ru/cinimex/exporter/mq/MQObject.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
import com.ibm.mq.constants.MQConstants;
44
import com.ibm.mq.pcf.PCFMessage;
55

6-
import java.util.HashMap;
7-
import java.util.Iterator;
8-
import java.util.Map;
9-
106
/**
117
* Class represents MQObject (Queue, channel or listener). It stores object type and all PCFParameters, required for correct request.
128
*/

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

Lines changed: 0 additions & 53 deletions
This file was deleted.

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

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package ru.cinimex.exporter.prometheus.metrics;
22

3-
import com.ibm.mq.constants.MQConstants;
43
import ru.cinimex.exporter.mq.MQObject;
54
import ru.cinimex.exporter.mq.pcf.PCFElement;
65
import ru.cinimex.exporter.mq.pcf.PCFElementRow;
@@ -25,19 +24,25 @@ public static void initMetrics(ArrayList<PCFElement> elements, ArrayList<MQObjec
2524
for (PCFElement element : elements) {
2625
for (PCFElementRow row : element.getRows()) {
2726
String metricName = MetricsReference.getMetricName(row.getRowDesc(), element.requiresMQObject(), row.getRowDatatype());
27+
MetricsReference.Metric.Type metricType = MetricsReference.getMetricType(row.getRowDesc(), element.requiresMQObject());
2828
ArrayList<String> labels = new ArrayList<>();
2929
labels.add(Labels.QMGR_NAME.name());
3030
MetricInterface metric;
3131
if (element.requiresMQObject()) {
3232
labels.add(Labels.MQ_OBJECT_NAME.name());
3333
}
34-
if (row.getRowDatatype() == MQConstants.MQIAMO_MONITOR_DELTA) {
35-
metric = new SimpleCounter(metricName, row.getRowDesc(), labels.stream().toArray(String[]::new));
36-
} else {
37-
metric = new SimpleGauge(metricName, row.getRowDesc(), labels.stream().toArray(String[]::new));
34+
switch (metricType) {
35+
case SimpleGauge:
36+
metric = new SimpleGauge(metricName, row.getRowDesc(), labels.stream().toArray(String[]::new));
37+
metrics.put(metricName, metric);
38+
break;
39+
case SimpleCounter:
40+
metric = new SimpleCounter(metricName, row.getRowDesc(), labels.stream().toArray(String[]::new));
41+
metrics.put(metricName, metric);
42+
break;
43+
default:
44+
System.err.println("Unknown metric type!");
3845
}
39-
40-
metrics.put(metricName, metric);
4146
}
4247
}
4348
for (MQObject.MQType type : types) {

0 commit comments

Comments
 (0)