mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
72 lines
2.3 KiB
TypeScript
72 lines
2.3 KiB
TypeScript
import { fromString } from '../../graphite/configuration/parseLokiLabelMappings';
|
|
import fromGraphiteQueries from './fromGraphite';
|
|
import { GraphiteQuery } from '../../graphite/types';
|
|
import { GraphiteDatasource } from '../../graphite/datasource';
|
|
|
|
describe('importing from Graphite queries', () => {
|
|
let graphiteDatasourceMock: GraphiteDatasource;
|
|
|
|
function mockSettings(stringMappings: string[]) {
|
|
graphiteDatasourceMock = ({
|
|
getImportQueryConfiguration: () => ({
|
|
loki: {
|
|
mappings: stringMappings.map(fromString),
|
|
},
|
|
}),
|
|
createFuncInstance: (name: string) => ({
|
|
name,
|
|
params: [],
|
|
def: {
|
|
name,
|
|
params: [{ multiple: true }],
|
|
},
|
|
updateText: () => {},
|
|
}),
|
|
} as any) as GraphiteDatasource;
|
|
}
|
|
|
|
function mockGraphiteQuery(raw: string): GraphiteQuery {
|
|
return {
|
|
refId: 'A',
|
|
target: raw,
|
|
};
|
|
}
|
|
|
|
beforeEach(() => {});
|
|
|
|
it('test matching mappings', () => {
|
|
mockSettings(['servers.(cluster).(server).*']);
|
|
const lokiQueries = fromGraphiteQueries(
|
|
[
|
|
// metrics: captured
|
|
mockGraphiteQuery('interpolate(alias(servers.west.001.cpu,1,2))'),
|
|
mockGraphiteQuery('interpolate(alias(servers.east.001.request.POST.200,1,2))'),
|
|
mockGraphiteQuery('interpolate(alias(servers.*.002.*,1,2))'),
|
|
// tags: captured
|
|
mockGraphiteQuery("interpolate(seriesByTag('cluster=west', 'server=002'), inf))"),
|
|
mockGraphiteQuery("interpolate(seriesByTag('foo=bar', 'server=002'), inf))"),
|
|
// regexp
|
|
mockGraphiteQuery('interpolate(alias(servers.eas*.{001,002}.request.POST.200,1,2))'),
|
|
// not captured
|
|
mockGraphiteQuery('interpolate(alias(test.west.001.cpu))'),
|
|
mockGraphiteQuery('interpolate(alias(servers.west.001))'),
|
|
],
|
|
graphiteDatasourceMock
|
|
);
|
|
|
|
expect(lokiQueries).toMatchObject([
|
|
{ refId: 'A', expr: '{cluster="west", server="001"}' },
|
|
{ refId: 'A', expr: '{cluster="east", server="001"}' },
|
|
{ refId: 'A', expr: '{server="002"}' },
|
|
|
|
{ refId: 'A', expr: '{cluster="west", server="002"}' },
|
|
{ refId: 'A', expr: '{foo="bar", server="002"}' },
|
|
|
|
{ refId: 'A', expr: '{cluster=~"^eas.*", server=~"^(001|002)"}' },
|
|
|
|
{ refId: 'A', expr: '' },
|
|
{ refId: 'A', expr: '' },
|
|
]);
|
|
});
|
|
});
|