Skip to content

Commit 38cd6a5

Browse files
committed
issue44 additional processing for some metrics implemented
1 parent 25bf10e commit 38cd6a5

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,9 @@ public void run() {
6161
Iterator<Map.Entry<Integer, Double>> it = receivedMetrics.entrySet().iterator();
6262
while (it.hasNext()) {
6363
Map.Entry<Integer, Double> pair = it.next();
64-
MetricsManager.updateMetric(MetricsReference.getMetricName(element.getMetricDescription(pair.getKey()), element.requiresMQObject(), element.getRowDatatype(pair.getKey().intValue())), pair.getValue(), labels);
64+
int id = pair.getKey();
65+
double value = PCFDataParser.getExactValue(pair.getValue(), element.getRowDatatype(id));
66+
MetricsManager.updateMetric(MetricsReference.getMetricName(element.getMetricDescription(id), element.requiresMQObject(), element.getRowDatatype(id)), value, labels);
6567
it.remove();
6668
}
6769
} catch (MQException e) {

src/main/java/ru/cinimex/exporter/mq/pcf/PCFDataParser.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public static HashMap<Integer, Double> getParsedData(PCFMessage pcfMessage) {
202202
break;
203203
}
204204
default: {
205-
logger.warn("Unknown parameter type was found while parsing PCF monitoring data! Will be " + "ignored." + " {} = {}", param.getParameterName(), param.getStringValue());
205+
logger.warn("Unknown parameter type was found while parsing PCF monitoring data! Will be ignored. {} = {}", param.getParameterName(), param.getStringValue());
206206
break;
207207
}
208208
}
@@ -212,6 +212,21 @@ public static HashMap<Integer, Double> getParsedData(PCFMessage pcfMessage) {
212212
return data;
213213
}
214214

215+
/**
216+
* Additional processing for values with specific data types, received from MQ.
217+
*
218+
* @param value - raw value.
219+
* @param dataType - data type.
220+
* @return - parsed value. (Returns input value, if there is no additional processing required).
221+
*/
222+
public static double getExactValue(double value, int dataType) {
223+
switch (dataType) {
224+
case MQConstants.MQIAMO_MONITOR_PERCENT:
225+
return value / 100.0;
226+
}
227+
return value;
228+
}
229+
215230
/**
216231
* Converts MQMessage to PCFMessage
217232
*

0 commit comments

Comments
 (0)