diff --git a/src/datasource/datasource.ts b/src/datasource/datasource.ts index e55d71d..d0eff6b 100644 --- a/src/datasource/datasource.ts +++ b/src/datasource/datasource.ts @@ -717,7 +717,7 @@ export class ZabbixDatasource extends DataSourceApi problemsHandler.addTriggerHostProxy(problems, proxies)); return problemsPromises.then((problems) => { - const problemsDataFrame = problemsHandler.toDataFrame(problems); + const problemsDataFrame = problemsHandler.toDataFrame(problems, target); return problemsDataFrame; }); } diff --git a/src/datasource/problemsHandler.ts b/src/datasource/problemsHandler.ts index a76248d..1a5d4af 100644 --- a/src/datasource/problemsHandler.ts +++ b/src/datasource/problemsHandler.ts @@ -1,7 +1,7 @@ import _ from 'lodash'; import * as utils from './utils'; import { DataFrame, Field, FieldType, ArrayVector } from '@grafana/data'; -import { ZBXProblem, ZBXTrigger, ProblemDTO, ZBXEvent } from './types'; +import { ZBXProblem, ZBXTrigger, ProblemDTO, ZBXEvent, ZabbixMetricsQuery } from './types'; export function joinTriggersWithProblems(problems: ZBXProblem[], triggers: ZBXTrigger[]): ProblemDTO[] { const problemDTOList: ProblemDTO[] = []; @@ -172,7 +172,7 @@ export function sortProblems(problems: ProblemDTO[], target) { return problems; } -export function toDataFrame(problems: any[]): DataFrame { +export function toDataFrame(problems: any[], query: ZabbixMetricsQuery): DataFrame { const problemsField: Field = { name: 'Problems', type: FieldType.other, @@ -186,6 +186,7 @@ export function toDataFrame(problems: any[]): DataFrame { const response: DataFrame = { name: 'problems', + refId: query?.refId || 'A', fields: [problemsField], length: problems.length, }; diff --git a/src/datasource/responseHandler.ts b/src/datasource/responseHandler.ts index f05cb83..8d475e5 100644 --- a/src/datasource/responseHandler.ts +++ b/src/datasource/responseHandler.ts @@ -614,6 +614,7 @@ export function handleSLAResponse(itservice, slaProperty, slaObject) { function handleTriggersResponse(triggers: ZBXTrigger[], groups: ZBXGroup[], timeRange: number[], target) { if (!_.isArray(triggers)) { + // Handling count mode let triggersCount = null; try { triggersCount = Number(triggers); @@ -622,6 +623,7 @@ function handleTriggersResponse(triggers: ZBXTrigger[], groups: ZBXGroup[], time } const frame = new MutableDataFrame({ + name: `Count ${target.refId}`, refId: target.refId, fields: [ { name: TIME_SERIES_TIME_FIELD_NAME, type: FieldType.time, values: new ArrayVector([timeRange[1] * 1000]) }, @@ -634,6 +636,7 @@ function handleTriggersResponse(triggers: ZBXTrigger[], groups: ZBXGroup[], time } else { const stats = getTriggerStats(triggers); const frame = new MutableDataFrame({ + name: `Triggers ${target.refId}`, refId: target.refId, fields: [{ name: 'Host group', type: FieldType.string, values: new ArrayVector() }], });