Use history for text data queries, fixes #250.
This commit is contained in:
@@ -224,16 +224,15 @@ export class ZabbixAPIDatasource {
|
|||||||
.build(groupFilter, hostFilter, appFilter, itemFilter, 'text')
|
.build(groupFilter, hostFilter, appFilter, itemFilter, 'text')
|
||||||
.then(items => {
|
.then(items => {
|
||||||
if (items.length) {
|
if (items.length) {
|
||||||
var textItemsPromises = _.map(items, item => {
|
return self.zabbixAPI.getHistory(items, timeFrom, timeTo)
|
||||||
return self.zabbixAPI.getLastValue(item.itemid);
|
.then(history => {
|
||||||
});
|
return self.queryProcessor.convertHistory(history, items, false, (point) => {
|
||||||
return self.q.all(textItemsPromises)
|
let extractedValue = point.value;
|
||||||
.then(result => {
|
|
||||||
return _.map(result, (lastvalue, index) => {
|
// Regex-based extractor
|
||||||
var extractedValue;
|
|
||||||
if (target.textFilter) {
|
if (target.textFilter) {
|
||||||
var text_extract_pattern = new RegExp(self.replaceTemplateVars(target.textFilter, options.scopedVars));
|
let text_extract_pattern = new RegExp(self.replaceTemplateVars(target.textFilter, options.scopedVars));
|
||||||
extractedValue = text_extract_pattern.exec(lastvalue);
|
extractedValue = text_extract_pattern.exec(point.value);
|
||||||
if (extractedValue) {
|
if (extractedValue) {
|
||||||
if (target.useCaptureGroups) {
|
if (target.useCaptureGroups) {
|
||||||
extractedValue = extractedValue[1];
|
extractedValue = extractedValue[1];
|
||||||
@@ -241,13 +240,12 @@ export class ZabbixAPIDatasource {
|
|||||||
extractedValue = extractedValue[0];
|
extractedValue = extractedValue[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
extractedValue = lastvalue;
|
|
||||||
}
|
}
|
||||||
return {
|
|
||||||
target: items[index].name,
|
return [
|
||||||
datapoints: [[extractedValue, timeTo * 1000]]
|
extractedValue,
|
||||||
};
|
point.clock * 1000
|
||||||
|
];
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user