D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
alerting
/
unified
/
components
/
expressions
/
Filename :
util.ts
back
Copy
import { DataFrame, Labels, roundDecimals } from '@grafana/data'; /** * ⚠️ `frame.fields` could be an empty array ⚠️ * * TypeScript will NOT complain about it when accessing items via index signatures. * Make sure to check for empty array or use optional chaining! * * see https://github.com/Microsoft/TypeScript/issues/13778 */ const getSeriesName = (frame: DataFrame): string | undefined => { const firstField = frame.fields[0]; const displayNameFromDS = firstField?.config?.displayNameFromDS; return displayNameFromDS ?? frame.name ?? firstField?.labels?.__name__; }; const getSeriesValue = (frame: DataFrame) => { const value = frame.fields[0]?.values[0]; if (Number.isFinite(value)) { return roundDecimals(value, 5); } return value; }; const getSeriesLabels = (frame: DataFrame): Record<string, string> => { const firstField = frame.fields[0]; return firstField?.labels ?? {}; }; const formatLabels = (labels: Labels): string => { return Object.entries(labels) .map(([key, value]) => key + '=' + value) .join(', '); }; const isEmptySeries = (series: DataFrame[]): boolean => { const isEmpty = series.every((serie) => serie.fields.every((field) => field.values.every((value) => value == null))); return isEmpty; }; export { getSeriesName, getSeriesValue, getSeriesLabels, formatLabels, isEmptySeries };