mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 10:24:54 -06:00
DataFrame: add frame type key to DataFrame structure (#38092)
This commit is contained in:
parent
d38ce58045
commit
b88f8bacf3
@ -3,6 +3,7 @@ import { DataTransformerConfig } from './transformations';
|
||||
import { ApplyFieldOverrideOptions } from './fieldOverrides';
|
||||
import { PanelPluginDataSupport } from '.';
|
||||
import { DataTopic } from './query';
|
||||
import { DataFrameType } from './dataFrameTypes';
|
||||
|
||||
export type KeyValue<T = any> = Record<string, T>;
|
||||
|
||||
@ -25,6 +26,8 @@ export type PreferredVisualisationType = 'graph' | 'table' | 'logs' | 'trace' |
|
||||
* @public
|
||||
*/
|
||||
export interface QueryResultMeta {
|
||||
type?: DataFrameType;
|
||||
|
||||
/** DatasSource Specific Values */
|
||||
custom?: Record<string, any>;
|
||||
|
||||
|
11
packages/grafana-data/src/types/dataFrameTypes.ts
Normal file
11
packages/grafana-data/src/types/dataFrameTypes.ts
Normal file
@ -0,0 +1,11 @@
|
||||
/**
|
||||
* See also:
|
||||
* https://github.com/grafana/grafana-plugin-sdk-go/blob/main/data/frame_type.go
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export enum DataFrameType {
|
||||
TimeSeriesWide = 'timeseries-wide',
|
||||
TimeSeriesLong = 'timeseries-long',
|
||||
TimeSeriesMany = 'timeseries-many',
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
export * from './data';
|
||||
export * from './dataFrame';
|
||||
export * from './dataFrameTypes';
|
||||
export * from './dataLink';
|
||||
export * from './dashboard';
|
||||
export * from './query';
|
||||
|
@ -1,4 +1,12 @@
|
||||
import { toDataFrame, ArrayVector, DataFrame, FieldType, toDataFrameDTO, DataFrameDTO } from '@grafana/data';
|
||||
import {
|
||||
toDataFrame,
|
||||
ArrayVector,
|
||||
DataFrame,
|
||||
FieldType,
|
||||
toDataFrameDTO,
|
||||
DataFrameDTO,
|
||||
DataFrameType,
|
||||
} from '@grafana/data';
|
||||
import { prepareTimeSeriesTransformer, PrepareTimeSeriesOptions, timeSeriesFormat } from './prepareTimeSeries';
|
||||
|
||||
describe('Prepair time series transformer', () => {
|
||||
@ -27,6 +35,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'time', type: FieldType.time, values: [10, 9, 8, 7, 6, 5] },
|
||||
{ name: 'count', type: FieldType.number, values: [1, 2, 3, 4, 5, 6] },
|
||||
],
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
length: 6,
|
||||
}),
|
||||
toEquableDataFrame({
|
||||
@ -36,6 +47,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'time', type: FieldType.time, values: [10, 9, 8, 7, 6, 5] },
|
||||
{ name: 'more', type: FieldType.number, values: [2, 3, 4, 5, 6, 7] },
|
||||
],
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
length: 6,
|
||||
}),
|
||||
]);
|
||||
@ -68,6 +82,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'count', type: FieldType.number, values: [1, 2, 3, 4, 5, 6] },
|
||||
],
|
||||
length: 6,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}),
|
||||
toEquableDataFrame({
|
||||
name: 'wide',
|
||||
@ -77,6 +94,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'more', type: FieldType.number, values: [2, 3, 4, 5, 6, 7] },
|
||||
],
|
||||
length: 6,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
});
|
||||
@ -116,6 +136,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'count', type: FieldType.number, values: [1, 2, 3, 4, 5, 6] },
|
||||
],
|
||||
length: 6,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}),
|
||||
toEquableDataFrame({
|
||||
name: 'wide',
|
||||
@ -125,6 +148,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'another', type: FieldType.number, values: [2, 3, 4, 5, 6, 7] },
|
||||
],
|
||||
length: 6,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}),
|
||||
toEquableDataFrame({
|
||||
name: 'long',
|
||||
@ -134,6 +160,9 @@ describe('Prepair time series transformer', () => {
|
||||
{ name: 'value', type: FieldType.number, values: [2, 3, 4, 5, 6, 7] },
|
||||
],
|
||||
length: 6,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}),
|
||||
]);
|
||||
});
|
||||
@ -163,7 +192,14 @@ describe('Prepair time series transformer', () => {
|
||||
};
|
||||
|
||||
expect(toEquableDataFrames(prepareTimeSeriesTransformer.transformer(config)(source))).toEqual(
|
||||
toEquableDataFrames(source)
|
||||
toEquableDataFrames(
|
||||
source.map((frame) => ({
|
||||
...frame,
|
||||
meta: {
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
}))
|
||||
)
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
import {
|
||||
SynchronousDataTransformerInfo,
|
||||
DataFrame,
|
||||
DataFrameType,
|
||||
FieldType,
|
||||
DataTransformerID,
|
||||
outerJoinDataFrames,
|
||||
@ -54,7 +55,10 @@ export function toTimeSeriesMany(data: DataFrame[]): DataFrame[] {
|
||||
result.push({
|
||||
name: frame.name,
|
||||
refId: frame.refId,
|
||||
meta: frame.meta,
|
||||
meta: {
|
||||
...frame.meta,
|
||||
type: DataFrameType.TimeSeriesMany,
|
||||
},
|
||||
fields: [timeField, field],
|
||||
length: frame.length,
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user