Problems: move tag filter to API query
This commit is contained in:
@@ -427,12 +427,24 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
|
||||
tags: { filter: tagsFilter },
|
||||
};
|
||||
|
||||
// replaceTemplateVars() builds regex-like string, so we should trim it.
|
||||
const tagsFilterStr = tagsFilter.replace('/^', '').replace('$/', '');
|
||||
const tags = utils.parseTags(tagsFilterStr);
|
||||
tags.forEach(tag => {
|
||||
// Zabbix uses {"tag": "<tag>", "value": "<value>", "operator": "<operator>"} format, where 1 means Equal
|
||||
tag.operator = 1;
|
||||
});
|
||||
|
||||
const problemsOptions: any = {
|
||||
recent: showProblems === ShowProblemTypes.Recent,
|
||||
minSeverity: target.options?.minSeverity,
|
||||
limit: target.options?.limit,
|
||||
};
|
||||
|
||||
if (tags && tags.length) {
|
||||
problemsOptions.tags = tags;
|
||||
}
|
||||
|
||||
if (target.options?.acknowledged === 0 || target.options?.acknowledged === 1) {
|
||||
problemsOptions.acknowledged = target.options?.acknowledged ? true : false;
|
||||
}
|
||||
|
||||
@@ -137,19 +137,6 @@ export function filterTriggersPre(triggerList, replacedTarget) {
|
||||
triggerList = filterTriggers(triggerList, triggerFilter);
|
||||
}
|
||||
|
||||
// Filter by tags
|
||||
if (replacedTarget.tags.filter) {
|
||||
let tagsFilter = replacedTarget.tags.filter;
|
||||
// replaceTemplateVars() builds regex-like string, so we should trim it.
|
||||
tagsFilter = tagsFilter.replace('/^', '').replace('$/', '');
|
||||
const tags = utils.parseTags(tagsFilter);
|
||||
triggerList = _.filter(triggerList, trigger => {
|
||||
return _.every(tags, tag => {
|
||||
return _.find(trigger.tags, t => t.tag === tag.tag && (!tag.value || t.value === tag.value));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Filter by maintenance status
|
||||
if (!replacedTarget.options.hostsInMaintenance) {
|
||||
triggerList = _.filter(triggerList, (trigger) => !trigger.maintenance);
|
||||
|
||||
@@ -354,7 +354,7 @@ export class ZabbixAPIConnector {
|
||||
}
|
||||
|
||||
getProblems(groupids, hostids, applicationids, options): Promise<ZBXProblem[]> {
|
||||
const { timeFrom, timeTo, recent, severities, limit, acknowledged } = options;
|
||||
const { timeFrom, timeTo, recent, severities, limit, acknowledged, tags } = options;
|
||||
|
||||
const params: any = {
|
||||
output: 'extend',
|
||||
@@ -381,6 +381,10 @@ export class ZabbixAPIConnector {
|
||||
params.acknowledged = acknowledged;
|
||||
}
|
||||
|
||||
if (tags) {
|
||||
params.tags = tags;
|
||||
}
|
||||
|
||||
if (limit) {
|
||||
params.limit = limit;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user