Files
grafana-zabbix/src/panel-triggers/utils.ts
2023-03-23 12:59:49 +01:00

35 lines
1.1 KiB
TypeScript

import _ from 'lodash';
import { DataQuery, dateMath } from '@grafana/data';
import * as utils from '../datasource/utils';
import { ProblemDTO } from 'datasource/types';
export function isNewProblem(problem: ProblemDTO, highlightNewerThan: string): boolean {
try {
const highlightIntervalMs = utils.parseInterval(highlightNewerThan);
const durationSec = Date.now() - problem.timestamp * 1000;
return durationSec < highlightIntervalMs;
} catch (e) {
return false;
}
}
const DEFAULT_TIME_FORMAT = 'DD MMM YYYY HH:mm:ss';
export function formatLastChange(lastchangeUnix: number, customFormat?: string) {
const date = new Date(lastchangeUnix * 1000);
const timestamp = dateMath.parse(date);
const format = customFormat || DEFAULT_TIME_FORMAT;
const lastchange = timestamp!.format(format);
return lastchange;
}
export const getNextRefIdChar = (queries: DataQuery[]): string => {
const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
const nextLetter = _.find(letters, (refId) => {
return _.every(queries, (other) => {
return other.refId !== refId;
});
});
return nextLetter || 'A';
};