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.setAckButtonStatus(problems, showAckButton))
|
||||
.then(problems => problemsHandler.filterTriggersPre(problems, replacedTarget))
|
||||
.then(problems => problemsHandler.sortProblems(problems, target))
|
||||
.then(problems => problemsHandler.addTriggerDataSource(problems, target))
|
||||
.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) {
|
||||
target.resultFormat = target.resultFormat || 'time_series';
|
||||
target = fixTargetGroup(target);
|
||||
@@ -66,6 +72,7 @@ export function migrate(target) {
|
||||
migratePercentileAgg(target);
|
||||
migrateQueryType(target);
|
||||
migrateSLA(target);
|
||||
migrateProblemSort(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 {
|
||||
const problemsField: Field<any> = {
|
||||
name: 'Problems',
|
||||
@@ -180,6 +189,7 @@ const problemsHandler = {
|
||||
setMaintenanceStatus,
|
||||
setAckButtonStatus,
|
||||
filterTriggersPre,
|
||||
sortProblems,
|
||||
toDataFrame,
|
||||
joinTriggersWithProblems,
|
||||
joinTriggersWithEvents,
|
||||
|
||||
@@ -161,7 +161,7 @@ export class ZabbixQueryController extends QueryCtrl {
|
||||
this.sortByFields = [
|
||||
{ text: 'Default', value: 'default' },
|
||||
{ text: 'Last change', value: 'lastchange' },
|
||||
{ text: 'Severity', value: 'priority' },
|
||||
{ text: 'Severity', value: 'severity' },
|
||||
];
|
||||
|
||||
this.showEventsFields = [
|
||||
|
||||
@@ -212,13 +212,13 @@ export class TriggerPanelCtrl extends MetricsPanelCtrl {
|
||||
return problemsList;
|
||||
}
|
||||
|
||||
sortTriggers(triggerList) {
|
||||
sortTriggers(problems: ProblemDTO[]) {
|
||||
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') {
|
||||
triggerList = _.orderBy(triggerList, ['timestamp', 'priority', 'eventid'], ['desc', 'desc', 'desc']);
|
||||
problems = _.orderBy(problems, ['timestamp', 'severity', 'eventid'], ['desc', 'desc', 'desc']);
|
||||
}
|
||||
return triggerList;
|
||||
return problems;
|
||||
}
|
||||
|
||||
formatTrigger(zabbixTrigger) {
|
||||
|
||||
Reference in New Issue
Block a user