D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
app
/
plugins
/
datasource
/
loki
/
migrations
/
Filename :
variableQueryMigrations.ts
back
Copy
import { LokiVariableQuery, LokiVariableQueryType } from '../types'; export const labelNamesRegex = /^label_names\(\)\s*$/; export const labelValuesRegex = /^label_values\((?:(.+),\s*)?([a-zA-Z_$][a-zA-Z0-9_]*)\)\s*$/; export function migrateVariableQuery(rawQuery: string | LokiVariableQuery): LokiVariableQuery { // If not string, we assume LokiVariableQuery if (typeof rawQuery !== 'string') { return rawQuery; } const queryBase = { refId: 'LokiVariableQueryEditor-VariableQuery', type: LokiVariableQueryType.LabelNames, }; const labelNames = rawQuery.match(labelNamesRegex); if (labelNames) { return { ...queryBase, type: LokiVariableQueryType.LabelNames, }; } const labelValues = rawQuery.match(labelValuesRegex); if (labelValues) { return { ...queryBase, type: LokiVariableQueryType.LabelValues, label: labelValues[2] ? labelValues[2] : labelValues[1], stream: labelValues[2] ? labelValues[1] : undefined, }; } return queryBase; }