mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Loki query from Tempo UI - add query type selector to tempo - introduce linkedDatasource concept that runs queries on behalf of another datasource - Tempo uses Loki's query field and Loki's derived fields to find a trace matcher - Tempo uses the trace-to-logs mechanism to determine which dataource is linked Loki data loads successfully via tempo Extracted result transformers Skip null values Show trace on list id click Query type selector Use linked field trace regexp * Review feedback
38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
import { FieldType, MutableDataFrame } from '@grafana/data';
|
|
import { createTableFrame } from './resultTransformer';
|
|
|
|
describe('transformTraceList()', () => {
|
|
const lokiDataFrame = new MutableDataFrame({
|
|
fields: [
|
|
{
|
|
name: 'ts',
|
|
type: FieldType.time,
|
|
values: ['2020-02-12T15:05:14.265Z', '2020-02-12T15:05:15.265Z', '2020-02-12T15:05:16.265Z'],
|
|
},
|
|
{
|
|
name: 'line',
|
|
type: FieldType.string,
|
|
values: [
|
|
't=2020-02-12T15:04:51+0000 lvl=info msg="Starting Grafana" logger=server',
|
|
't=2020-02-12T15:04:52+0000 lvl=info msg="Starting Grafana" logger=server traceID=asdfa1234',
|
|
't=2020-02-12T15:04:53+0000 lvl=info msg="Starting Grafana" logger=server traceID=asdf88',
|
|
],
|
|
},
|
|
],
|
|
meta: {
|
|
preferredVisualisationType: 'table',
|
|
},
|
|
});
|
|
|
|
test('extracts traceIDs from log lines', () => {
|
|
const frame = createTableFrame(lokiDataFrame, 't1', 'tempo', ['traceID=(\\w+)', 'traceID=(\\w\\w)']);
|
|
expect(frame.fields[0].name).toBe('Time');
|
|
expect(frame.fields[0].values.get(0)).toBe('2020-02-12T15:05:15.265Z');
|
|
expect(frame.fields[1].name).toBe('traceID');
|
|
expect(frame.fields[1].values.get(0)).toBe('asdfa1234');
|
|
// Second match in new line
|
|
expect(frame.fields[0].values.get(1)).toBe('2020-02-12T15:05:15.265Z');
|
|
expect(frame.fields[1].values.get(1)).toBe('as');
|
|
});
|
|
});
|