diff --git a/packages/grafana-prometheus/src/add_label_to_query.ts b/packages/grafana-prometheus/src/add_label_to_query.ts index 7c75e6e14ec..06e82fcbf00 100644 --- a/packages/grafana-prometheus/src/add_label_to_query.ts +++ b/packages/grafana-prometheus/src/add_label_to_query.ts @@ -21,7 +21,7 @@ import { PromVisualQuery } from './querybuilder/types'; * @param operator */ export function addLabelToQuery(query: string, key: string, value: string | number, operator = '='): string { - if (!key || !value) { + if (!key) { throw new Error('Need label to add to query.'); } diff --git a/packages/grafana-prometheus/src/language_utils.test.ts b/packages/grafana-prometheus/src/language_utils.test.ts index 5ba14363da7..555634f898e 100644 --- a/packages/grafana-prometheus/src/language_utils.test.ts +++ b/packages/grafana-prometheus/src/language_utils.test.ts @@ -191,6 +191,18 @@ describe('expandRecordingRules()', () => { const result = expandRecordingRules(query, mapping); expect(result).toBe(expected); }); + + it('when there is an empty label value it should still be able to expand the rule', () => { + const query = `sum(max by (cluster, container) (pod_cpu:active:kube_limits{container!="", cluster=~"pink"}))`; + const mapping = { + 'pod_cpu:active:kube_limits': { + expandedQuery: `kube_limits{job!="", resource="cpu"} * on (namespace, pod, cluster) group_left () max by (namespace, pod, cluster) ((kube_pod_status_phase{phase=~"Pending|Running"} == 1))`, + }, + }; + const expected = `sum(max by (cluster, container) (kube_limits{job!="", resource="cpu", container!="", cluster=~"pink"} * on (namespace, pod, cluster) group_left () max by (namespace, pod, cluster) ((kube_pod_status_phase{phase=~"Pending|Running", container!="", cluster=~"pink"} == 1))))`; + const result = expandRecordingRules(query, mapping); + expect(result).toBe(expected); + }); }); describe('escapeLabelValueInExactSelector()', () => {