Problems: fix sorting by severity, fixes #921
This commit is contained in:
@@ -477,6 +477,7 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
|
|||||||
.then(problems => problemsHandler.setMaintenanceStatus(problems))
|
.then(problems => problemsHandler.setMaintenanceStatus(problems))
|
||||||
.then(problems => problemsHandler.setAckButtonStatus(problems, showAckButton))
|
.then(problems => problemsHandler.setAckButtonStatus(problems, showAckButton))
|
||||||
.then(problems => problemsHandler.filterTriggersPre(problems, replacedTarget))
|
.then(problems => problemsHandler.filterTriggersPre(problems, replacedTarget))
|
||||||
|
.then(problems => problemsHandler.sortProblems(problems, target))
|
||||||
.then(problems => problemsHandler.addTriggerDataSource(problems, target))
|
.then(problems => problemsHandler.addTriggerDataSource(problems, target))
|
||||||
.then(problems => problemsHandler.addTriggerHostProxy(problems, proxies));
|
.then(problems => problemsHandler.addTriggerHostProxy(problems, proxies));
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ function migrateSLA(target) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function migrateProblemSort(target) {
|
||||||
|
if (target.options?.sortProblems === 'priority') {
|
||||||
|
target.options.sortProblems = 'severity';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function migrate(target) {
|
export function migrate(target) {
|
||||||
target.resultFormat = target.resultFormat || 'time_series';
|
target.resultFormat = target.resultFormat || 'time_series';
|
||||||
target = fixTargetGroup(target);
|
target = fixTargetGroup(target);
|
||||||
@@ -66,6 +72,7 @@ export function migrate(target) {
|
|||||||
migratePercentileAgg(target);
|
migratePercentileAgg(target);
|
||||||
migrateQueryType(target);
|
migrateQueryType(target);
|
||||||
migrateSLA(target);
|
migrateSLA(target);
|
||||||
|
migrateProblemSort(target);
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -157,6 +157,15 @@ function filterTriggers(triggers, triggerFilter) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function sortProblems(problems: ProblemDTO[], target) {
|
||||||
|
if (target.options?.sortProblems === 'severity') {
|
||||||
|
problems = _.orderBy(problems, ['severity', 'eventid'], ['desc', 'desc']);
|
||||||
|
} else if (target.options?.sortProblems === 'lastchange') {
|
||||||
|
problems = _.orderBy(problems, ['timestamp', 'eventid'], ['desc', 'desc']);
|
||||||
|
}
|
||||||
|
return problems;
|
||||||
|
}
|
||||||
|
|
||||||
export function toDataFrame(problems: any[]): DataFrame {
|
export function toDataFrame(problems: any[]): DataFrame {
|
||||||
const problemsField: Field<any> = {
|
const problemsField: Field<any> = {
|
||||||
name: 'Problems',
|
name: 'Problems',
|
||||||
@@ -180,6 +189,7 @@ const problemsHandler = {
|
|||||||
setMaintenanceStatus,
|
setMaintenanceStatus,
|
||||||
setAckButtonStatus,
|
setAckButtonStatus,
|
||||||
filterTriggersPre,
|
filterTriggersPre,
|
||||||
|
sortProblems,
|
||||||
toDataFrame,
|
toDataFrame,
|
||||||
joinTriggersWithProblems,
|
joinTriggersWithProblems,
|
||||||
joinTriggersWithEvents,
|
joinTriggersWithEvents,
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ export class ZabbixQueryController extends QueryCtrl {
|
|||||||
this.sortByFields = [
|
this.sortByFields = [
|
||||||
{ text: 'Default', value: 'default' },
|
{ text: 'Default', value: 'default' },
|
||||||
{ text: 'Last change', value: 'lastchange' },
|
{ text: 'Last change', value: 'lastchange' },
|
||||||
{ text: 'Severity', value: 'priority' },
|
{ text: 'Severity', value: 'severity' },
|
||||||
];
|
];
|
||||||
|
|
||||||
this.showEventsFields = [
|
this.showEventsFields = [
|
||||||
|
|||||||
@@ -212,13 +212,13 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
|
|||||||
return problemsList;
|
return problemsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
sortTriggers(triggerList) {
|
sortTriggers(problems: ProblemDTO[]) {
|
||||||
if (this.panel.sortProblems === 'priority') {
|
if (this.panel.sortProblems === 'priority') {
|
||||||
triggerList = _.orderBy(triggerList, ['priority', 'timestamp', 'eventid'], ['desc', 'desc', 'desc']);
|
problems = _.orderBy(problems, ['severity', 'timestamp', 'eventid'], ['desc', 'desc', 'desc']);
|
||||||
} else if (this.panel.sortProblems === 'lastchange') {
|
} else if (this.panel.sortProblems === 'lastchange') {
|
||||||
triggerList = _.orderBy(triggerList, ['timestamp', 'priority', 'eventid'], ['desc', 'desc', 'desc']);
|
problems = _.orderBy(problems, ['timestamp', 'severity', 'eventid'], ['desc', 'desc', 'desc']);
|
||||||
}
|
}
|
||||||
return triggerList;
|
return problems;
|
||||||
}
|
}
|
||||||
|
|
||||||
formatTrigger(zabbixTrigger) {
|
formatTrigger(zabbixTrigger) {
|
||||||
|
|||||||
Reference in New Issue
Block a user