mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
DataFrame: Deprecate MutableDataFrame (#67569)
This commit is contained in:
parent
d31d1576fb
commit
86302bc1ec
@ -86,7 +86,9 @@ exports[`better eslint`] = {
|
||||
[0, 0, 0, "Do not use any type assertions.", "18"],
|
||||
[0, 0, 0, "Do not use any type assertions.", "19"],
|
||||
[0, 0, 0, "Do not use any type assertions.", "20"],
|
||||
[0, 0, 0, "Do not use any type assertions.", "21"]
|
||||
[0, 0, 0, "Do not use any type assertions.", "21"],
|
||||
[0, 0, 0, "Do not use any type assertions.", "22"],
|
||||
[0, 0, 0, "Do not use any type assertions.", "23"]
|
||||
],
|
||||
"packages/grafana-data/src/datetime/datemath.ts:5381": [
|
||||
[0, 0, 0, "Unexpected any. Specify a different type.", "0"],
|
||||
|
@ -10,10 +10,16 @@ import { guessFieldTypeFromValue, guessFieldTypeForField, toDataFrameDTO } from
|
||||
/** @deprecated */
|
||||
export type MutableField<T = any> = Field<T>;
|
||||
|
||||
/** @deprecated */
|
||||
type MutableVectorCreator = (buffer?: any[]) => any[];
|
||||
|
||||
export const MISSING_VALUE = undefined; // Treated as connected in new graph panel
|
||||
|
||||
/**
|
||||
* MutableDataFrame is a complex wrapper around the DataFrame interface
|
||||
*
|
||||
* @deprecated use standard DataFrame, or create one with PartialDataFrame
|
||||
*/
|
||||
export class MutableDataFrame<T = any> extends FunctionalVector<T> implements DataFrame {
|
||||
name?: string;
|
||||
refId?: string;
|
||||
|
@ -2,8 +2,8 @@ import { dateTime } from '../datetime/moment_wrapper';
|
||||
import { DataFrameDTO, FieldType, TableData, TimeSeries } from '../types/index';
|
||||
|
||||
import { ArrayDataFrame } from './ArrayDataFrame';
|
||||
import { MutableDataFrame } from './MutableDataFrame';
|
||||
import {
|
||||
createDataFrame,
|
||||
guessFieldTypeFromValue,
|
||||
guessFieldTypes,
|
||||
isDataFrame,
|
||||
@ -130,7 +130,7 @@ describe('toDataFrame', () => {
|
||||
});
|
||||
|
||||
it('Guess Column Types from series', () => {
|
||||
const series = new MutableDataFrame({
|
||||
const series = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'A (number)', values: [123, null] },
|
||||
{ name: 'B (strings)', values: [null, 'Hello'] },
|
||||
|
@ -27,7 +27,6 @@ import {
|
||||
|
||||
import { arrayToDataFrame } from './ArrayDataFrame';
|
||||
import { dataFrameFromJSON } from './DataFrameJSON';
|
||||
import { MutableDataFrame } from './MutableDataFrame';
|
||||
|
||||
function convertTableToDataFrame(table: TableData): DataFrame {
|
||||
const fields = table.columns.map((c) => {
|
||||
@ -315,7 +314,7 @@ export function toDataFrame(data: any): DataFrame {
|
||||
}
|
||||
|
||||
// This will convert the array values into Vectors
|
||||
return new MutableDataFrame(data as DataFrameDTO);
|
||||
return createDataFrame(data as DataFrameDTO);
|
||||
}
|
||||
|
||||
// Handle legacy docs/json type
|
||||
@ -567,3 +566,35 @@ export function preProcessPanelData(data: PanelData, lastResult?: PanelData): Pa
|
||||
timings: { dataProcessingTime: STOPTIME - STARTTIME },
|
||||
};
|
||||
}
|
||||
|
||||
export interface PartialDataFrame extends Omit<DataFrame, 'fields' | 'length'> {
|
||||
fields: Array<Partial<Field>>;
|
||||
}
|
||||
|
||||
export function createDataFrame(input: PartialDataFrame): DataFrame {
|
||||
let length = 0;
|
||||
const fields = input.fields.map((p, idx) => {
|
||||
const { state, ...field } = p;
|
||||
if (!field.name) {
|
||||
field.name = `Field ${idx + 1}`;
|
||||
}
|
||||
if (!field.config) {
|
||||
field.config = {};
|
||||
}
|
||||
if (!field.values) {
|
||||
field.values = new Array(length);
|
||||
} else if (field.values.length > length) {
|
||||
length = field.values.length;
|
||||
}
|
||||
if (!field.type) {
|
||||
field.type = guessFieldTypeForField(field as Field) ?? FieldType.other;
|
||||
}
|
||||
return field as Field;
|
||||
});
|
||||
|
||||
return {
|
||||
...input,
|
||||
fields,
|
||||
length,
|
||||
};
|
||||
}
|
||||
|
@ -508,8 +508,25 @@ function createEmptyDisplayOptions(extend = {}): GetFieldDisplayValuesOptions {
|
||||
}
|
||||
|
||||
function createDisplayOptions(extend: Partial<GetFieldDisplayValuesOptions> = {}): GetFieldDisplayValuesOptions {
|
||||
const options: GetFieldDisplayValuesOptions = {
|
||||
data: [
|
||||
const options = merge(
|
||||
{
|
||||
replaceVariables: (value: string) => {
|
||||
return value;
|
||||
},
|
||||
reduceOptions: {
|
||||
calcs: [],
|
||||
},
|
||||
fieldConfig: {
|
||||
overrides: [],
|
||||
defaults: {},
|
||||
},
|
||||
theme: createTheme(),
|
||||
},
|
||||
extend
|
||||
);
|
||||
|
||||
if (!options.data?.length) {
|
||||
options.data = [
|
||||
toDataFrame({
|
||||
name: 'Series Name',
|
||||
fields: [
|
||||
@ -518,21 +535,9 @@ function createDisplayOptions(extend: Partial<GetFieldDisplayValuesOptions> = {}
|
||||
{ name: 'Field 3', values: [2, 4, 6] },
|
||||
],
|
||||
}),
|
||||
],
|
||||
replaceVariables: (value: string) => {
|
||||
return value;
|
||||
},
|
||||
reduceOptions: {
|
||||
calcs: [],
|
||||
},
|
||||
fieldConfig: {
|
||||
overrides: [],
|
||||
defaults: {},
|
||||
},
|
||||
theme: createTheme(),
|
||||
};
|
||||
|
||||
return merge(options, extend);
|
||||
];
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
describe('fixCellTemplateExpressions', () => {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { ArrayDataFrame, MutableDataFrame, toDataFrame } from '../dataframe';
|
||||
import { ArrayDataFrame, createDataFrame, toDataFrame } from '../dataframe';
|
||||
import { rangeUtil } from '../datetime';
|
||||
import { createTheme } from '../themes';
|
||||
import { FieldMatcherID } from '../transformations';
|
||||
@ -177,11 +177,11 @@ describe('applyFieldOverrides', () => {
|
||||
};
|
||||
|
||||
describe('given multiple data frames', () => {
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [{ name: 'message', type: FieldType.string, values: [10, 20] }],
|
||||
});
|
||||
const f1 = new MutableDataFrame({
|
||||
const f1 = createDataFrame({
|
||||
name: 'B',
|
||||
fields: [{ name: 'info', type: FieldType.string, values: [10, 20] }],
|
||||
});
|
||||
@ -676,7 +676,7 @@ describe('getLinksSupplier', () => {
|
||||
getTimeRangeForUrl: () => ({ from: 'now-7d', to: 'now' }),
|
||||
});
|
||||
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [
|
||||
{
|
||||
@ -712,7 +712,7 @@ describe('getLinksSupplier', () => {
|
||||
});
|
||||
|
||||
const datasourceUid = '1234';
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [
|
||||
{
|
||||
@ -766,7 +766,7 @@ describe('getLinksSupplier', () => {
|
||||
|
||||
const datasourceUid = '1234';
|
||||
const range = rangeUtil.relativeToTimeRange({ from: 600, to: 0 });
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [
|
||||
{
|
||||
@ -827,7 +827,7 @@ describe('getLinksSupplier', () => {
|
||||
it('handles link click handlers', () => {
|
||||
const onClickSpy = jest.fn();
|
||||
const replaceSpy = jest.fn();
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [
|
||||
{
|
||||
@ -867,7 +867,7 @@ describe('getLinksSupplier', () => {
|
||||
const replaceSpy = jest.fn().mockReturnValue('url interpolated 10');
|
||||
const onBuildUrlSpy = jest.fn();
|
||||
|
||||
const f0 = new MutableDataFrame({
|
||||
const f0 = createDataFrame({
|
||||
name: 'A',
|
||||
fields: [
|
||||
{
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { MutableDataFrame, toDataFrame } from '../dataframe';
|
||||
import { createDataFrame, toDataFrame } from '../dataframe';
|
||||
import { createTheme } from '../themes';
|
||||
|
||||
import { applyFieldOverrides } from './fieldOverrides';
|
||||
@ -85,7 +85,7 @@ describe('getFieldDisplayValuesProxy', () => {
|
||||
|
||||
it('should use default display processor if display is not defined', () => {
|
||||
const p = getFieldDisplayValuesProxy({
|
||||
frame: new MutableDataFrame({ fields: [{ name: 'test', values: [1, 2] }] }),
|
||||
frame: createDataFrame({ fields: [{ name: 'test', values: [1, 2] }] }),
|
||||
rowIndex: 0,
|
||||
});
|
||||
expect(p.test.text).toBe('1');
|
||||
|
@ -1,7 +1,6 @@
|
||||
import { difference } from 'lodash';
|
||||
|
||||
import { MutableDataFrame } from '../dataframe/MutableDataFrame';
|
||||
import { guessFieldTypeFromValue } from '../dataframe/processDataFrame';
|
||||
import { createDataFrame, guessFieldTypeFromValue } from '../dataframe/processDataFrame';
|
||||
import { Field, FieldType } from '../types/index';
|
||||
|
||||
import { fieldReducers, ReducerID, reduceField } from './fieldReducer';
|
||||
@ -24,7 +23,7 @@ function createField<T>(name: string, values?: T[], type?: FieldType): Field<T>
|
||||
}
|
||||
|
||||
describe('Stats Calculators', () => {
|
||||
const basicTable = new MutableDataFrame({
|
||||
const basicTable = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'a', values: [10, 20] },
|
||||
{ name: 'b', values: [20, 30] },
|
||||
|
@ -1,6 +1,5 @@
|
||||
import { map } from 'rxjs/operators';
|
||||
|
||||
import { MutableDataFrame } from '../../dataframe';
|
||||
import { getFieldDisplayName } from '../../field/fieldState';
|
||||
import { DataFrame, DataTransformerInfo, Field, FieldType, SpecialValue } from '../../types';
|
||||
import { fieldMatchers } from '../matchers';
|
||||
@ -75,13 +74,14 @@ export const groupingToMatrixTransformer: DataTransformerInfo<GroupingToMatrixTr
|
||||
matrixValues[columnName][rowName] = value;
|
||||
}
|
||||
|
||||
const resultFrame = new MutableDataFrame();
|
||||
|
||||
resultFrame.addField({
|
||||
name: rowColumnField,
|
||||
values: rowValues,
|
||||
type: FieldType.string,
|
||||
});
|
||||
const fields: Field[] = [
|
||||
{
|
||||
name: rowColumnField,
|
||||
values: rowValues,
|
||||
type: FieldType.string,
|
||||
config: {},
|
||||
},
|
||||
];
|
||||
|
||||
for (const columnName of columnValues) {
|
||||
let values = [];
|
||||
@ -98,7 +98,7 @@ export const groupingToMatrixTransformer: DataTransformerInfo<GroupingToMatrixTr
|
||||
valueField.config = { ...valueField.config, displayNameFromDS: undefined };
|
||||
}
|
||||
|
||||
resultFrame.addField({
|
||||
fields.push({
|
||||
name: columnName.toString(),
|
||||
values: values,
|
||||
config: valueField.config,
|
||||
@ -106,7 +106,12 @@ export const groupingToMatrixTransformer: DataTransformerInfo<GroupingToMatrixTr
|
||||
});
|
||||
}
|
||||
|
||||
return [resultFrame];
|
||||
return [
|
||||
{
|
||||
fields,
|
||||
length: rowValues.length,
|
||||
},
|
||||
];
|
||||
})
|
||||
),
|
||||
};
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { MutableDataFrame } from '../dataframe/MutableDataFrame';
|
||||
import { createDataFrame } from '../dataframe';
|
||||
import { dateTime } from '../datetime/moment_wrapper';
|
||||
import { TimeRange } from '../types/time';
|
||||
|
||||
import { getFlotPairs, getFlotPairsConstant } from './flotPairs';
|
||||
|
||||
describe('getFlotPairs', () => {
|
||||
const series = new MutableDataFrame({
|
||||
const series = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'a', values: [1, 2, 3] },
|
||||
{ name: 'b', values: [100, 200, 300] },
|
||||
|
@ -8,7 +8,7 @@ import {
|
||||
DataSourceInstanceSettings,
|
||||
DataSourceJsonData,
|
||||
DataSourceRef,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
} from '@grafana/data';
|
||||
|
||||
import {
|
||||
@ -240,10 +240,12 @@ describe('DataSourceWithBackend', () => {
|
||||
let obs = toStreamingDataResponse(rsp, request, standardStreamOptionsProvider);
|
||||
expect(obs).toBeDefined();
|
||||
|
||||
let frame = new MutableDataFrame();
|
||||
frame.meta = {
|
||||
channel: 'a/b/c',
|
||||
};
|
||||
let frame = createDataFrame({
|
||||
meta: {
|
||||
channel: 'a/b/c',
|
||||
},
|
||||
fields: [],
|
||||
});
|
||||
rsp.data = [frame];
|
||||
obs = toStreamingDataResponse(rsp, request, standardStreamOptionsProvider);
|
||||
expect(obs).toBeDefined();
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { FieldType, MutableDataFrame } from '@grafana/data';
|
||||
import { FieldType, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { applyNullInsertThreshold } from './nullInsertThreshold';
|
||||
|
||||
@ -48,7 +48,7 @@ function genFrame() {
|
||||
|
||||
describe('nullInsertThreshold Transformer', () => {
|
||||
test('should insert nulls at +threshold between adjacent > threshold: 1', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [1, 3, 10] },
|
||||
@ -65,7 +65,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should insert nulls at +threshold between adjacent > threshold: 2', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [5, 7, 11] },
|
||||
@ -82,7 +82,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should insert nulls at +interval between adjacent > interval: 1', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 3, 10] },
|
||||
@ -99,7 +99,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should insert leading null at beginning +interval when timeRange.from.valueOf() exceeds threshold', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [4, 6, 13] },
|
||||
@ -154,7 +154,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
|
||||
// this tests that intervals at 24hr but starting not at 12am UTC are not always snapped to 12am UTC
|
||||
test('should insert leading null at beginning +interval when timeRange.from.valueOf() exceeds threshold 11PM UTC', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{
|
||||
@ -181,7 +181,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should insert trailing null at end +interval when timeRange.to.valueOf() exceeds threshold', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 3, 10] },
|
||||
@ -197,7 +197,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
expect(result.fields[2].values).toEqual(['a', null, 'b', null, null, null, null, null, null, 'c', null, null]);
|
||||
|
||||
// should work for frames with 1 datapoint
|
||||
const df2 = new MutableDataFrame({
|
||||
const df2 = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1] },
|
||||
@ -216,7 +216,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should not insert trailing null at end +interval when timeRange.to.valueOf() equals threshold', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1] },
|
||||
@ -234,7 +234,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
|
||||
// TODO: make this work
|
||||
test.skip('should insert nulls at +threshold (when defined) instead of +interval', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 2 }, values: [5, 7, 11] },
|
||||
@ -251,7 +251,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should noop on 0 datapoints', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [] },
|
||||
@ -265,7 +265,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should noop on invalid threshold', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [1, 2, 4] },
|
||||
@ -279,7 +279,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should noop on invalid interval', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: -1 }, values: [1, 2, 4] },
|
||||
@ -293,7 +293,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should noop when no missing steps', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 2, 3] },
|
||||
@ -307,7 +307,7 @@ describe('nullInsertThreshold Transformer', () => {
|
||||
});
|
||||
|
||||
test('should noop when refFieldName not found', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 2, 5] },
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { FieldType, MutableDataFrame } from '@grafana/data';
|
||||
import { FieldType, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { applyNullInsertThreshold } from './nullInsertThreshold';
|
||||
import { nullToValue } from './nullToValue';
|
||||
|
||||
describe('nullToValue Transformer', () => {
|
||||
test('should change all nulls to configured zero value', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [1, 3, 10] },
|
||||
@ -32,7 +32,7 @@ describe('nullToValue Transformer', () => {
|
||||
});
|
||||
|
||||
test('should change all nulls to configured positive value', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [5, 7, 11] },
|
||||
@ -59,7 +59,7 @@ describe('nullToValue Transformer', () => {
|
||||
});
|
||||
|
||||
test('should change all nulls to configured negative value', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 3, 10] },
|
||||
@ -76,7 +76,7 @@ describe('nullToValue Transformer', () => {
|
||||
});
|
||||
|
||||
test('should have no effect without nulls', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, config: { interval: 1 }, values: [1, 2, 3] },
|
||||
|
@ -1,12 +1,6 @@
|
||||
import { of } from 'rxjs';
|
||||
|
||||
import {
|
||||
DataQueryResponse,
|
||||
FieldType,
|
||||
LogRowContextQueryDirection,
|
||||
LogRowModel,
|
||||
MutableDataFrame,
|
||||
} from '@grafana/data';
|
||||
import { DataQueryResponse, FieldType, LogRowContextQueryDirection, LogRowModel, createDataFrame } from '@grafana/data';
|
||||
|
||||
import LokiLanguageProvider from './LanguageProvider';
|
||||
import { LogContextProvider } from './LogContextProvider';
|
||||
@ -25,7 +19,7 @@ defaultDatasourceMock.languageProvider = defaultLanguageProviderMock;
|
||||
|
||||
const defaultLogRow = {
|
||||
rowIndex: 0,
|
||||
dataFrame: new MutableDataFrame({
|
||||
dataFrame: createDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'ts',
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { MutableDataFrame } from '@grafana/data';
|
||||
import { createDataFrame } from '@grafana/data';
|
||||
|
||||
import { getDerivedFields } from './getDerivedFields';
|
||||
|
||||
@ -16,7 +16,7 @@ jest.mock('@grafana/runtime', () => ({
|
||||
|
||||
describe('getDerivedFields', () => {
|
||||
it('adds links to fields', () => {
|
||||
const df = new MutableDataFrame({ fields: [{ name: 'line', values: ['nothing', 'trace1=1234', 'trace2=foo'] }] });
|
||||
const df = createDataFrame({ fields: [{ name: 'line', values: ['nothing', 'trace1=1234', 'trace2=foo'] }] });
|
||||
const newFields = getDerivedFields(df, [
|
||||
{
|
||||
matcherRegex: 'trace1=(\\w+)',
|
||||
|
@ -7,7 +7,7 @@ import {
|
||||
dateTime,
|
||||
FieldType,
|
||||
MetricFindValue,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
TimeRange,
|
||||
} from '@grafana/data';
|
||||
import { backendSrv } from 'app/core/services/backend_srv';
|
||||
@ -54,7 +54,7 @@ describe('MSSQLDatasource', () => {
|
||||
tempvar: {
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -130,7 +130,7 @@ describe('MSSQLDatasource', () => {
|
||||
refId: 'datasets',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'name', type: FieldType.string, values: ['test1', 'test2', 'test3'] }],
|
||||
})
|
||||
),
|
||||
@ -152,7 +152,7 @@ describe('MSSQLDatasource', () => {
|
||||
refId: 'tables',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'schemaAndName', type: FieldType.string, values: ['test1', 'test2', 'test3'] }],
|
||||
})
|
||||
),
|
||||
@ -175,7 +175,7 @@ describe('MSSQLDatasource', () => {
|
||||
refId: 'columns',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'column', type: FieldType.string, values: ['test1', 'test2', 'test3'] },
|
||||
{ name: 'type', type: FieldType.string, values: ['int', 'char', 'bool'] },
|
||||
@ -216,7 +216,7 @@ describe('MSSQLDatasource', () => {
|
||||
tempvar: {
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__value', values: ['value1', 'value2', 'value3'] },
|
||||
{ name: '__text', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
@ -254,7 +254,7 @@ describe('MSSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'id', values: [1, 2, 3] },
|
||||
{ name: 'values', values: ['test1', 'test2', 'test3'] },
|
||||
@ -297,7 +297,7 @@ describe('MSSQLDatasource', () => {
|
||||
tempvar: {
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__text', values: ['aTitle', 'aTitle', 'aTitle'] },
|
||||
{ name: '__value', values: ['same', 'same', 'diff'] },
|
||||
@ -330,7 +330,7 @@ describe('MSSQLDatasource', () => {
|
||||
tempvar: {
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'test', values: ['aTitle'] }],
|
||||
})
|
||||
),
|
||||
|
@ -6,7 +6,7 @@ import {
|
||||
DataSourceInstanceSettings,
|
||||
dateTime,
|
||||
FieldType,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
} from '@grafana/data';
|
||||
import { FetchResponse, setBackendSrv } from '@grafana/runtime';
|
||||
import { backendSrv } from 'app/core/services/backend_srv'; // will use the version in __mocks__
|
||||
@ -115,7 +115,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'datasets',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'name', type: FieldType.string, values: ['test1', 'test2', 'test3'] }],
|
||||
})
|
||||
),
|
||||
@ -137,7 +137,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tables',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'table_name', type: FieldType.string, values: ['test1', 'test2', 'test3'] }],
|
||||
})
|
||||
),
|
||||
@ -159,7 +159,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'fields',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'column_name', type: FieldType.string, values: ['test1', 'test2', 'test3'] },
|
||||
{ name: 'data_type', type: FieldType.string, values: ['int', 'char', 'bool'] },
|
||||
@ -199,7 +199,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -232,7 +232,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -267,7 +267,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -300,7 +300,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__value', values: ['value1', 'value2', 'value3'] },
|
||||
{ name: '__text', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
@ -335,7 +335,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'id', values: [1, 2, 3] },
|
||||
{ name: 'values', values: ['test1', 'test2', 'test3'] },
|
||||
@ -373,7 +373,7 @@ describe('MySQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__text', values: ['aTitle', 'aTitle', 'aTitle'] },
|
||||
{ name: '__value', values: ['same', 'same', 'diff'] },
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
dateTime,
|
||||
FieldType,
|
||||
LoadingState,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
} from '@grafana/data';
|
||||
import { FetchResponse } from '@grafana/runtime';
|
||||
import { backendSrv } from 'app/core/services/backend_srv'; // will use the version in __mocks__
|
||||
@ -113,7 +113,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'A',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'time', values: [1599643351085] },
|
||||
{ name: 'metric', values: [30.226249741223704], labels: { metric: 'America' } },
|
||||
@ -204,7 +204,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'A',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'time', values: [1599643351085] },
|
||||
{ name: 'metric', values: ['America'] },
|
||||
@ -349,7 +349,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tables',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'table', type: FieldType.string, values: ['test1', 'test2', 'test3'] }],
|
||||
})
|
||||
),
|
||||
@ -372,7 +372,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'meta',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'version', type: FieldType.string, values: ['test1'] }],
|
||||
})
|
||||
),
|
||||
@ -394,7 +394,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'meta',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [{ name: 'extversion', type: FieldType.string, values: ['test1'] }],
|
||||
})
|
||||
),
|
||||
@ -416,7 +416,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'columns',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'column', type: FieldType.string, values: ['test1', 'test2', 'test3'] },
|
||||
{ name: 'type', type: FieldType.string, values: ['int', 'char', 'bool'] },
|
||||
@ -458,7 +458,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -491,7 +491,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -533,7 +533,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'title', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
{ name: 'text', values: ['some text', 'some text2', 'some text3'] },
|
||||
@ -573,7 +573,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__value', values: ['value1', 'value2', 'value3'] },
|
||||
{ name: '__text', values: ['aTitle', 'aTitle2', 'aTitle3'] },
|
||||
@ -607,7 +607,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'id', values: [1, 2, 3] },
|
||||
{ name: 'values', values: ['test1', 'test2', 'test3'] },
|
||||
@ -644,7 +644,7 @@ describe('PostgreSQLDatasource', () => {
|
||||
refId: 'tempvar',
|
||||
frames: [
|
||||
dataFrameToJSON(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: '__text', values: ['aTitle', 'aTitle', 'aTitle'] },
|
||||
{ name: '__value', values: ['same', 'same', 'diff'] },
|
||||
|
@ -3,7 +3,7 @@ import {
|
||||
DataQueryRequest,
|
||||
DataQueryResponse,
|
||||
FieldType,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
PreferredVisualisationType,
|
||||
} from '@grafana/data';
|
||||
|
||||
@ -191,7 +191,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -226,7 +226,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -238,7 +238,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [2, 3, 7] },
|
||||
@ -280,7 +280,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -292,7 +292,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -325,7 +325,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -337,7 +337,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -349,7 +349,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -390,7 +390,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -402,7 +402,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -414,7 +414,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -426,7 +426,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -438,7 +438,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -450,7 +450,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -485,7 +485,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
state: 'Done',
|
||||
data: [
|
||||
// 10
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -497,7 +497,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -509,7 +509,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -522,7 +522,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
],
|
||||
}),
|
||||
// 20
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -534,7 +534,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -546,7 +546,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -559,7 +559,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
],
|
||||
}),
|
||||
// 30
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -571,7 +571,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -583,7 +583,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -625,7 +625,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -637,7 +637,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
name: 'exemplar',
|
||||
meta: {
|
||||
@ -675,7 +675,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const response = {
|
||||
state: 'Done',
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'Time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -687,7 +687,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
name: 'exemplar',
|
||||
meta: {
|
||||
@ -741,7 +741,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
|
||||
describe('transformDFToTable', () => {
|
||||
it('transforms dataFrame with response length 1 to table dataFrame', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -765,7 +765,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
});
|
||||
|
||||
it('transforms dataFrame with response length 2 to table dataFrame', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -794,7 +794,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
const value2 = 'value2';
|
||||
|
||||
const dataframes = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'A',
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [6, 5, 4] },
|
||||
@ -806,7 +806,7 @@ describe('Prometheus Result Transformer', () => {
|
||||
},
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'B',
|
||||
fields: [],
|
||||
}),
|
||||
|
@ -9,7 +9,7 @@ import {
|
||||
FieldType,
|
||||
getDefaultTimeRange,
|
||||
LoadingState,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
PluginType,
|
||||
} from '@grafana/data';
|
||||
import {
|
||||
@ -121,7 +121,7 @@ describe('Tempo data source', () => {
|
||||
|
||||
it('parses json fields from backend', async () => {
|
||||
setupBackendSrv(
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{ name: 'traceID', values: ['04450900759028499335'] },
|
||||
{ name: 'spanID', values: ['4322526419282105830'] },
|
||||
@ -796,7 +796,7 @@ const defaultSettings: DataSourceInstanceSettings<TempoJsonData> = {
|
||||
readOnly: false,
|
||||
};
|
||||
|
||||
const rateMetric = new MutableDataFrame({
|
||||
const rateMetric = createDataFrame({
|
||||
refId: 'topk(5, sum(rate(traces_spanmetrics_calls_total{span_kind="SPAN_KIND_SERVER"}[$__range])) by (span_name))',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1653725618609, 1653725618609] },
|
||||
@ -808,7 +808,7 @@ const rateMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const errorRateMetric = new MutableDataFrame({
|
||||
const errorRateMetric = createDataFrame({
|
||||
refId:
|
||||
'topk(5, sum(rate(traces_spanmetrics_calls_total{status_code="STATUS_CODE_ERROR",span_name=~"HTTP Client|HTTP GET - root"}[$__range])) by (span_name))',
|
||||
fields: [
|
||||
@ -821,7 +821,7 @@ const errorRateMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const durationMetric = new MutableDataFrame({
|
||||
const durationMetric = createDataFrame({
|
||||
refId:
|
||||
'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))',
|
||||
fields: [
|
||||
@ -833,7 +833,7 @@ const durationMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const totalsPromMetric = new MutableDataFrame({
|
||||
const totalsPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_total',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
@ -846,7 +846,7 @@ const totalsPromMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const secondsPromMetric = new MutableDataFrame({
|
||||
const secondsPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_server_seconds_sum',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
@ -859,7 +859,7 @@ const secondsPromMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const failedPromMetric = new MutableDataFrame({
|
||||
const failedPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_failed_total',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { DataFrameView, dateTime, MutableDataFrame } from '@grafana/data';
|
||||
import { DataFrameView, dateTime, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { createGraphFrames, mapPromMetricsToServiceMap } from './graphTransform';
|
||||
import { bigResponse } from './testResponse';
|
||||
@ -116,7 +116,7 @@ describe('mapPromMetricsToServiceMap', () => {
|
||||
});
|
||||
});
|
||||
|
||||
const singleSpanResponse = new MutableDataFrame({
|
||||
const singleSpanResponse = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'traceID', values: ['04450900759028499335'] },
|
||||
{ name: 'spanID', values: ['4322526419282105830'] },
|
||||
@ -128,7 +128,7 @@ const singleSpanResponse = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const missingSpanResponse = new MutableDataFrame({
|
||||
const missingSpanResponse = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'traceID', values: ['04450900759028499335', '04450900759028499335'] },
|
||||
{ name: 'spanID', values: ['1', '2'] },
|
||||
@ -140,7 +140,7 @@ const missingSpanResponse = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const totalsPromMetric = new MutableDataFrame({
|
||||
const totalsPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_total',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
@ -153,7 +153,7 @@ const totalsPromMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const secondsPromMetric = new MutableDataFrame({
|
||||
const secondsPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_server_seconds_sum',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
@ -166,7 +166,7 @@ const secondsPromMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const failedPromMetric = new MutableDataFrame({
|
||||
const failedPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_failed_total',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
@ -179,7 +179,7 @@ const failedPromMetric = new MutableDataFrame({
|
||||
],
|
||||
});
|
||||
|
||||
const invalidFailedPromMetric = new MutableDataFrame({
|
||||
const invalidFailedPromMetric = createDataFrame({
|
||||
refId: 'traces_service_graph_request_failed_total',
|
||||
fields: [
|
||||
{ name: 'Time', values: [1628169788000, 1628169788000] },
|
||||
|
@ -2,7 +2,7 @@ import { collectorTypes } from '@opentelemetry/exporter-collector';
|
||||
|
||||
import {
|
||||
FieldType,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
PluginType,
|
||||
DataSourceInstanceSettings,
|
||||
dateTime,
|
||||
@ -45,7 +45,7 @@ const defaultSettings: DataSourceInstanceSettings = {
|
||||
};
|
||||
|
||||
describe('transformTraceList()', () => {
|
||||
const lokiDataFrame = new MutableDataFrame({
|
||||
const lokiDataFrame = createDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'ts',
|
||||
|
@ -1,4 +1,11 @@
|
||||
import { FieldColorModeId, FieldDTO, FieldType, MutableDataFrame, NodeGraphDataFrameFieldNames } from '@grafana/data';
|
||||
import {
|
||||
FieldColorModeId,
|
||||
FieldDTO,
|
||||
FieldType,
|
||||
MutableDataFrame,
|
||||
NodeGraphDataFrameFieldNames,
|
||||
DataFrame,
|
||||
} from '@grafana/data';
|
||||
|
||||
import { nodes, edges } from './testData/serviceMapResponse';
|
||||
|
||||
@ -105,16 +112,17 @@ export function generateRandomNodes(count = 10) {
|
||||
meta: { preferredVisualisationType: 'nodeGraph' },
|
||||
});
|
||||
|
||||
const edgesFrame = new MutableDataFrame({
|
||||
const edgesFrame: DataFrame = {
|
||||
name: 'edges',
|
||||
fields: [
|
||||
{ name: NodeGraphDataFrameFieldNames.id, values: [], type: FieldType.string },
|
||||
{ name: NodeGraphDataFrameFieldNames.source, values: [], type: FieldType.string },
|
||||
{ name: NodeGraphDataFrameFieldNames.target, values: [], type: FieldType.string },
|
||||
{ name: NodeGraphDataFrameFieldNames.mainStat, values: [], type: FieldType.number },
|
||||
{ name: NodeGraphDataFrameFieldNames.id, values: [], type: FieldType.string, config: {} },
|
||||
{ name: NodeGraphDataFrameFieldNames.source, values: [], type: FieldType.string, config: {} },
|
||||
{ name: NodeGraphDataFrameFieldNames.target, values: [], type: FieldType.string, config: {} },
|
||||
{ name: NodeGraphDataFrameFieldNames.mainStat, values: [], type: FieldType.number, config: {} },
|
||||
],
|
||||
meta: { preferredVisualisationType: 'nodeGraph' },
|
||||
});
|
||||
length: 0,
|
||||
};
|
||||
|
||||
const edgesSet = new Set();
|
||||
for (const node of nodes) {
|
||||
@ -140,6 +148,7 @@ export function generateRandomNodes(count = 10) {
|
||||
edgesFrame.fields[3].values.push(Math.random() * 100);
|
||||
}
|
||||
}
|
||||
edgesFrame.length = edgesFrame.fields[0].values.length;
|
||||
|
||||
return [nodeFrame, edgesFrame];
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ import {
|
||||
DataSourceInstanceSettings,
|
||||
DataSourceJsonData,
|
||||
FieldType,
|
||||
MutableDataFrame,
|
||||
createDataFrame,
|
||||
ScopedVars,
|
||||
} from '@grafana/data';
|
||||
import { BackendSrvRequest, FetchResponse, getBackendSrv, getTemplateSrv, TemplateSrv } from '@grafana/runtime';
|
||||
@ -127,7 +127,7 @@ function responseToDataQueryResponse(response: { data: ZipkinSpan[] }, nodeGraph
|
||||
|
||||
const emptyDataQueryResponse = {
|
||||
data: [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'trace',
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { fireEvent, render, screen } from '@testing-library/react';
|
||||
import React, { useState } from 'react';
|
||||
|
||||
import { CoreApp, MutableDataFrame } from '@grafana/data';
|
||||
import { CoreApp, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { SelectedView } from '../types';
|
||||
|
||||
@ -27,7 +27,7 @@ describe('FlameGraph', () => {
|
||||
const [search] = useState('');
|
||||
const [selectedView, _] = useState(SelectedView.Both);
|
||||
|
||||
const flameGraphData = new MutableDataFrame(data);
|
||||
const flameGraphData = createDataFrame(data);
|
||||
const container = new FlameGraphDataContainer(flameGraphData);
|
||||
const levels = nestedSetToLevels(container);
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { MutableDataFrame } from '@grafana/data';
|
||||
import { createDataFrame } from '@grafana/data';
|
||||
|
||||
import { getMetadata } from './FlameGraphMetadata';
|
||||
import { FlameGraphDataContainer } from './dataTransform';
|
||||
|
||||
function makeDataFrame(fields: Record<string, Array<number | string>>, unit?: string) {
|
||||
return new MutableDataFrame({
|
||||
return createDataFrame({
|
||||
fields: Object.keys(fields).map((key) => ({
|
||||
name: key,
|
||||
values: fields[key],
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { Field, FieldType, MutableDataFrame } from '@grafana/data';
|
||||
import { Field, FieldType, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { getTooltipData } from './FlameGraphTooltip';
|
||||
import { FlameGraphDataContainer } from './dataTransform';
|
||||
|
||||
function setupData(unit?: string) {
|
||||
const flameGraphData = new MutableDataFrame({
|
||||
const flameGraphData = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'level', values: [0] },
|
||||
unit ? makeField('value', unit, [8_624_078_250]) : { name: 'value', values: [8_624_078_250] },
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { MutableDataFrame } from '@grafana/data';
|
||||
import { createDataFrame } from '@grafana/data';
|
||||
|
||||
import { FlameGraphDataContainer, nestedSetToLevels } from './dataTransform';
|
||||
|
||||
describe('nestedSetToLevels', () => {
|
||||
it('converts nested set data frame to levels', () => {
|
||||
const frame = new MutableDataFrame({
|
||||
const frame = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'level', values: [0, 1, 2, 3, 2, 1, 2, 3, 4] },
|
||||
{ name: 'value', values: [10, 5, 3, 1, 1, 4, 3, 2, 1] },
|
||||
@ -33,7 +33,7 @@ describe('nestedSetToLevels', () => {
|
||||
});
|
||||
|
||||
it('converts nested set data if multiple same level items', () => {
|
||||
const frame = new MutableDataFrame({
|
||||
const frame = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'level', values: [0, 1, 1, 1] },
|
||||
{ name: 'value', values: [10, 5, 3, 1] },
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { MutableDataFrame } from '@grafana/data';
|
||||
import { createDataFrame } from '@grafana/data';
|
||||
|
||||
import { FlameGraphDataContainer, LevelItem } from './dataTransform';
|
||||
import { getRectDimensionsForLevel } from './rendering';
|
||||
|
||||
function makeDataFrame(fields: Record<string, Array<number | string>>) {
|
||||
return new MutableDataFrame({
|
||||
return createDataFrame({
|
||||
fields: Object.keys(fields).map((key) => ({
|
||||
name: key,
|
||||
values: fields[key],
|
||||
|
@ -2,7 +2,7 @@ import { render, screen } from '@testing-library/react';
|
||||
import userEvent from '@testing-library/user-event';
|
||||
import React from 'react';
|
||||
|
||||
import { CoreApp, MutableDataFrame } from '@grafana/data';
|
||||
import { CoreApp, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from '../constants';
|
||||
|
||||
@ -23,7 +23,7 @@ describe('FlameGraphContainer', () => {
|
||||
Object.defineProperty(HTMLElement.prototype, 'clientWidth', { value: 500 });
|
||||
|
||||
const FlameGraphContainerWithProps = () => {
|
||||
const flameGraphData = new MutableDataFrame(data);
|
||||
const flameGraphData = createDataFrame(data);
|
||||
flameGraphData.meta = {
|
||||
custom: {
|
||||
ProfileTypeID: 'cpu:foo:bar',
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import React, { useState } from 'react';
|
||||
|
||||
import { CoreApp, MutableDataFrame } from '@grafana/data';
|
||||
import { CoreApp, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { FlameGraphDataContainer, nestedSetToLevels } from '../FlameGraph/dataTransform';
|
||||
import { data } from '../FlameGraph/testData/dataNestedSet';
|
||||
@ -14,7 +14,7 @@ describe('FlameGraphTopTableContainer', () => {
|
||||
const [search, setSearch] = useState('');
|
||||
const [selectedView, _] = useState(SelectedView.Both);
|
||||
|
||||
const flameGraphData = new MutableDataFrame(data);
|
||||
const flameGraphData = createDataFrame(data);
|
||||
const container = new FlameGraphDataContainer(flameGraphData);
|
||||
const levels = nestedSetToLevels(container);
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import React, { ComponentProps } from 'react';
|
||||
|
||||
import { LoadingState, MutableDataFrame, FieldType, LogsSortOrder } from '@grafana/data';
|
||||
import { LoadingState, createDataFrame, FieldType, LogsSortOrder } from '@grafana/data';
|
||||
|
||||
import { LogsPanel } from './LogsPanel';
|
||||
|
||||
@ -10,7 +10,7 @@ type LogsPanelProps = ComponentProps<typeof LogsPanel>;
|
||||
describe('LogsPanel', () => {
|
||||
describe('when returned series include common labels', () => {
|
||||
const seriesWithCommonLabels = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'time',
|
||||
@ -66,7 +66,7 @@ describe('LogsPanel', () => {
|
||||
});
|
||||
describe('when returned series does not include common labels', () => {
|
||||
const seriesWithoutCommonLabels = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
fields: [
|
||||
{
|
||||
name: 'time',
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { DataFrame, FieldType, MutableDataFrame } from '@grafana/data';
|
||||
import { DataFrame, FieldType, createDataFrame } from '@grafana/data';
|
||||
|
||||
import { NodeDatum, NodeGraphOptions } from './types';
|
||||
import {
|
||||
@ -81,27 +81,27 @@ describe('processNodes', () => {
|
||||
|
||||
it('detects dataframes correctly', () => {
|
||||
const validFrames = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'hasPreferredVisualisationType',
|
||||
fields: [],
|
||||
meta: {
|
||||
preferredVisualisationType: 'nodeGraph',
|
||||
},
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'hasName',
|
||||
fields: [],
|
||||
name: 'nodes',
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'nodes', // hasRefId
|
||||
fields: [],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'hasValidNodesShape',
|
||||
fields: [{ name: 'id', type: FieldType.string }],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'hasValidEdgesShape',
|
||||
fields: [
|
||||
{ name: 'id', type: FieldType.string },
|
||||
@ -111,7 +111,7 @@ describe('processNodes', () => {
|
||||
}),
|
||||
];
|
||||
const invalidFrames = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'invalidData',
|
||||
fields: [],
|
||||
}),
|
||||
@ -124,7 +124,7 @@ describe('processNodes', () => {
|
||||
});
|
||||
|
||||
it('getting fields is case insensitive', () => {
|
||||
const nodeFrame = new MutableDataFrame({
|
||||
const nodeFrame = createDataFrame({
|
||||
refId: 'nodes',
|
||||
fields: [
|
||||
{ name: 'id', type: FieldType.string, values: ['id'] },
|
||||
@ -142,7 +142,7 @@ describe('processNodes', () => {
|
||||
expect(nodeFields.mainStat).toBeDefined();
|
||||
expect(nodeFields.secondaryStat).toBeDefined();
|
||||
|
||||
const edgeFrame = new MutableDataFrame({
|
||||
const edgeFrame = createDataFrame({
|
||||
refId: 'nodes',
|
||||
fields: [
|
||||
{ name: 'id', type: FieldType.string, values: ['id'] },
|
||||
@ -162,7 +162,7 @@ describe('processNodes', () => {
|
||||
|
||||
it('interpolates panel options correctly', () => {
|
||||
const frames = [
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'nodes',
|
||||
fields: [
|
||||
{ name: 'id', type: FieldType.string },
|
||||
@ -173,7 +173,7 @@ describe('processNodes', () => {
|
||||
{ name: 'arc__tertiary', type: FieldType.string },
|
||||
],
|
||||
}),
|
||||
new MutableDataFrame({
|
||||
createDataFrame({
|
||||
refId: 'edges',
|
||||
fields: [
|
||||
{ name: 'id', type: FieldType.string },
|
||||
|
@ -1,16 +1,15 @@
|
||||
import { MutableDataFrame, Field } from '@grafana/data/src';
|
||||
import { UPlotConfigBuilder } from '@grafana/ui/src';
|
||||
import { createDataFrame } from '@grafana/data';
|
||||
import { UPlotConfigBuilder } from '@grafana/ui';
|
||||
|
||||
import { getVisibleLabels, VisibleExemplarLabels } from './ExemplarsPlugin';
|
||||
|
||||
describe('getVisibleLabels()', () => {
|
||||
const dataFrameSeries1 = new MutableDataFrame({
|
||||
const dataFrameSeries1 = createDataFrame({
|
||||
name: 'tns/app',
|
||||
fields: [
|
||||
{
|
||||
name: 'Time',
|
||||
values: [1670418750000, 1670418765000, 1670418780000, 1670418795000],
|
||||
entities: {},
|
||||
},
|
||||
{
|
||||
name: 'Value',
|
||||
@ -19,16 +18,14 @@ describe('getVisibleLabels()', () => {
|
||||
},
|
||||
values: [0.018963114754098367, 0.019140624999999974, 0.019718309859154928, 0.020064189189189167],
|
||||
},
|
||||
] as unknown as Field[],
|
||||
length: 4,
|
||||
],
|
||||
});
|
||||
const dataFrameSeries2 = new MutableDataFrame({
|
||||
const dataFrameSeries2 = createDataFrame({
|
||||
name: 'tns/db',
|
||||
fields: [
|
||||
{
|
||||
name: 'Time',
|
||||
values: [1670418750000, 1670418765000, 1670418780000, 1670418795000],
|
||||
entities: {},
|
||||
},
|
||||
{
|
||||
name: 'Value',
|
||||
@ -37,16 +34,14 @@ describe('getVisibleLabels()', () => {
|
||||
},
|
||||
values: [0.028963114754098367, 0.029140624999999974, 0.029718309859154928, 0.030064189189189167],
|
||||
},
|
||||
] as unknown as Field[],
|
||||
length: 4,
|
||||
],
|
||||
});
|
||||
const dataFrameSeries3 = new MutableDataFrame({
|
||||
const dataFrameSeries3 = createDataFrame({
|
||||
name: 'tns/loadgen',
|
||||
fields: [
|
||||
{
|
||||
name: 'Time',
|
||||
values: [1670418750000, 1670418765000, 1670418780000, 1670418795000],
|
||||
entities: {},
|
||||
},
|
||||
{
|
||||
name: 'Value',
|
||||
@ -55,8 +50,7 @@ describe('getVisibleLabels()', () => {
|
||||
},
|
||||
values: [0.028963114754098367, 0.029140624999999974, 0.029718309859154928, 0.030064189189189167],
|
||||
},
|
||||
] as unknown as Field[],
|
||||
length: 4,
|
||||
],
|
||||
});
|
||||
const frames = [dataFrameSeries1, dataFrameSeries2, dataFrameSeries3];
|
||||
const config: UPlotConfigBuilder = {
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { createTheme, FieldType, MutableDataFrame, toDataFrame } from '@grafana/data';
|
||||
import { createTheme, FieldType, createDataFrame, toDataFrame } from '@grafana/data';
|
||||
|
||||
import { prepareGraphableFields } from './utils';
|
||||
|
||||
@ -76,7 +76,7 @@ describe('prepare timeseries graph', () => {
|
||||
});
|
||||
|
||||
it('will convert NaN and Infinty to nulls', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, values: [995, 9996, 9997, 9998, 9999] },
|
||||
{ name: 'a', values: [-10, NaN, 10, -Infinity, +Infinity] },
|
||||
@ -97,7 +97,7 @@ describe('prepare timeseries graph', () => {
|
||||
});
|
||||
|
||||
it('will insert nulls given an interval value', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, config: { interval: 1 }, values: [1, 3, 6] },
|
||||
{ name: 'a', values: [1, 2, 3] },
|
||||
@ -121,7 +121,7 @@ describe('prepare timeseries graph', () => {
|
||||
});
|
||||
|
||||
it('will insert and convert nulls to a configure "no value" value', () => {
|
||||
const df = new MutableDataFrame({
|
||||
const df = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'time', type: FieldType.time, config: { interval: 1 }, values: [1, 3, 6] },
|
||||
{ name: 'a', config: { noValue: '20' }, values: [1, 2, 3] },
|
||||
|
Loading…
Reference in New Issue
Block a user