mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Implements findMetricQuery() * Macros for template queries: measurements(), tags(), tag_values(), field_keys() * Tests for macro expansion
44 lines
1.7 KiB
TypeScript
44 lines
1.7 KiB
TypeScript
import expandMacros from '../metric_find_query';
|
|
|
|
describe('metric find query', () => {
|
|
describe('expandMacros()', () => {
|
|
it('returns a non-macro query unadulterated', () => {
|
|
const query = 'from(db:"telegraf") |> last()';
|
|
const result = expandMacros(query);
|
|
expect(result).toBe(query);
|
|
});
|
|
|
|
it('returns a measurement query for measurements()', () => {
|
|
const query = ' measurements(mydb) ';
|
|
const result = expandMacros(query).replace(/\s/g, '');
|
|
expect(result).toBe(
|
|
'from(db:"mydb")|>range($range)|>group(by:["_measurement"])|>distinct(column:"_measurement")|>group(none:true)'
|
|
);
|
|
});
|
|
|
|
it('returns a tags query for tags()', () => {
|
|
const query = ' tags(mydb , mymetric) ';
|
|
const result = expandMacros(query).replace(/\s/g, '');
|
|
expect(result).toBe('from(db:"mydb")|>range($range)|>filter(fn:(r)=>r._measurement=="mymetric")|>keys()');
|
|
});
|
|
|
|
it('returns a tag values query for tag_values()', () => {
|
|
const query = ' tag_values(mydb , mymetric, mytag) ';
|
|
const result = expandMacros(query).replace(/\s/g, '');
|
|
expect(result).toBe(
|
|
'from(db:"mydb")|>range($range)|>filter(fn:(r)=>r._measurement=="mymetric")' +
|
|
'|>group(by:["mytag"])|>distinct(column:"mytag")|>group(none:true)'
|
|
);
|
|
});
|
|
|
|
it('returns a field keys query for field_keys()', () => {
|
|
const query = ' field_keys(mydb , mymetric) ';
|
|
const result = expandMacros(query).replace(/\s/g, '');
|
|
expect(result).toBe(
|
|
'from(db:"mydb")|>range($range)|>filter(fn:(r)=>r._measurement=="mymetric")' +
|
|
'|>group(by:["_field"])|>distinct(column:"_field")|>group(none:true)'
|
|
);
|
|
});
|
|
});
|
|
});
|