2019-09-30 14:44:15 +02:00
|
|
|
|
import { logStreamToDataFrame, appendResponseToBufferedData } from './result_transformer';
|
|
|
|
|
|
import { FieldType, MutableDataFrame } from '@grafana/data';
|
|
|
|
|
|
import { LokiLogsStream } from './types';
|
2018-07-20 17:07:17 +02:00
|
|
|
|
|
2019-09-30 14:44:15 +02:00
|
|
|
|
const streams: LokiLogsStream[] = [
|
|
|
|
|
|
{
|
|
|
|
|
|
labels: '{foo="bar"}',
|
|
|
|
|
|
entries: [
|
|
|
|
|
|
{
|
|
|
|
|
|
line: "foo: [32m'bar'[39m",
|
|
|
|
|
|
ts: '1970-01-01T00:00:00Z',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
labels: '{bar="foo"}',
|
|
|
|
|
|
entries: [
|
|
|
|
|
|
{
|
|
|
|
|
|
line: "bar: 'foo'",
|
|
|
|
|
|
ts: '1970-01-01T00:00:00Z',
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
},
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
describe('logStreamToDataFrame', () => {
|
2019-03-29 01:41:37 -07:00
|
|
|
|
it('converts streams to series', () => {
|
2019-07-01 12:00:29 -07:00
|
|
|
|
const data = streams.map(stream => logStreamToDataFrame(stream));
|
2019-03-29 01:41:37 -07:00
|
|
|
|
|
|
|
|
|
|
expect(data.length).toBe(2);
|
|
|
|
|
|
expect(data[0].labels['foo']).toEqual('bar');
|
2019-08-15 09:18:51 -07:00
|
|
|
|
expect(data[0].fields[0].values.get(0)).toEqual(streams[0].entries[0].ts);
|
|
|
|
|
|
expect(data[0].fields[1].values.get(0)).toEqual(streams[0].entries[0].line);
|
2019-09-30 14:44:15 +02:00
|
|
|
|
expect(data[0].fields[2].values.get(0)).toEqual('1970-01-01T00:00:00Z_{foo="bar"}');
|
2019-08-15 09:18:51 -07:00
|
|
|
|
expect(data[1].fields[0].values.get(0)).toEqual(streams[1].entries[0].ts);
|
|
|
|
|
|
expect(data[1].fields[1].values.get(0)).toEqual(streams[1].entries[0].line);
|
2019-09-30 14:44:15 +02:00
|
|
|
|
expect(data[1].fields[2].values.get(0)).toEqual('1970-01-01T00:00:00Z_{bar="foo"}');
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
describe('appendResponseToBufferedData', () => {
|
|
|
|
|
|
it('appends response', () => {
|
|
|
|
|
|
const data = new MutableDataFrame();
|
|
|
|
|
|
data.addField({ name: 'ts', type: FieldType.time, config: { title: 'Time' } });
|
|
|
|
|
|
data.addField({ name: 'line', type: FieldType.string });
|
|
|
|
|
|
data.addField({ name: 'labels', type: FieldType.other });
|
|
|
|
|
|
data.addField({ name: 'id', type: FieldType.string });
|
|
|
|
|
|
|
|
|
|
|
|
appendResponseToBufferedData({ streams }, data);
|
|
|
|
|
|
expect(data.get(0)).toEqual({
|
|
|
|
|
|
ts: '1970-01-01T00:00:00Z',
|
|
|
|
|
|
line: "foo: [32m'bar'[39m",
|
|
|
|
|
|
labels: { foo: 'bar' },
|
|
|
|
|
|
id: '1970-01-01T00:00:00Z_{foo="bar"}',
|
|
|
|
|
|
});
|
2019-03-29 01:41:37 -07:00
|
|
|
|
});
|
|
|
|
|
|
});
|