grafana/public/app/plugins/datasource/tempo/resultTransformer.test.ts
Connor Lindsey 6a39ac7407
Explore: Download traces as JSON in Explore Inspector (#38614)
* Transform dataframe to jaeger format

* Transform dataframe to Zipkin format

* Add endpoint type and shared to Zipkin

* Transform dataframe to OTLP format

* Add data tab tests and note in inspector docs

* Remove comments and logs

* Resolve typescript strict errors

* Update docs/sources/explore/explore-inspector.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs

* Improve OTLP conversion to include service info and additional tags

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-09-08 07:04:27 -06:00

46 lines
1.7 KiB
TypeScript

import { FieldType, MutableDataFrame } from '@grafana/data';
import { createTableFrame, transformToOTLP } from './resultTransformer';
import { otlpDataFrame, otlpResponse } from './testResponse';
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');
});
});
describe('transformToOTLP()', () => {
test('transforms dataframe to OTLP format', () => {
const otlp = transformToOTLP(otlpDataFrame);
expect(otlp).toMatchObject(otlpResponse);
});
});