mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Arrow: move arrow support from frontend to backend only (#32575)
This commit is contained in:
@@ -84,13 +84,58 @@ describe('CloudWatchDatasource', () => {
|
||||
const response = {
|
||||
results: {
|
||||
A: {
|
||||
dataframes: [
|
||||
'QVJST1cxAAD/////GAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEDAAoADAAAAAgABAAKAAAACAAAAFgAAAACAAAAKAAAAAQAAAB8////CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAJz///8IAAAAFAAAAAkAAABsb2dHcm91cHMAAAAEAAAAbmFtZQAAAAABAAAAGAAAAAAAEgAYABQAEwASAAwAAAAIAAQAEgAAABQAAABMAAAAUAAAAAAABQFMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAGAAAAAwAAABsb2dHcm91cE5hbWUAAAAABAAAAG5hbWUAAAAAAAAAAAQABAAEAAAADAAAAGxvZ0dyb3VwTmFtZQAAAAD/////mAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAGAGAAAAAAAAFAAAAAAAAAMDAAoAGAAMAAgABAAKAAAAFAAAAEgAAAAhAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAACIAAAAAAAAANgFAAAAAAAAAAAAAAEAAAAhAAAAAAAAAAAAAAAAAAAAAAAAADIAAABiAAAAkQAAALwAAADuAAAAHwEAAFQBAACHAQAAtQEAAOoBAAAbAgAASgIAAHQCAAClAgAA1QIAABADAABEAwAAdgMAAKMDAADXAwAACQQAAEAEAAB3BAAAlwQAAK0EAAC8BAAA+wQAAEIFAABhBQAAeAUAAJIFAAC0BQAA1gUAAC9hd3MvY29udGFpbmVyaW5zaWdodHMvZGV2MzAzLXdvcmtzaG9wL2FwcGxpY2F0aW9uL2F3cy9jb250YWluZXJpbnNpZ2h0cy9kZXYzMDMtd29ya3Nob3AvZGF0YXBsYW5lL2F3cy9jb250YWluZXJpbnNpZ2h0cy9kZXYzMDMtd29ya3Nob3AvZmxvd2xvZ3MvYXdzL2NvbnRhaW5lcmluc2lnaHRzL2RldjMwMy13b3Jrc2hvcC9ob3N0L2F3cy9jb250YWluZXJpbnNpZ2h0cy9kZXYzMDMtd29ya3Nob3AvcGVyZm9ybWFuY2UvYXdzL2NvbnRhaW5lcmluc2lnaHRzL2RldjMwMy13b3Jrc2hvcC9wcm9tZXRoZXVzL2F3cy9jb250YWluZXJpbnNpZ2h0cy9lY29tbWVyY2Utc29ja3Nob3AvYXBwbGljYXRpb24vYXdzL2NvbnRhaW5lcmluc2lnaHRzL2Vjb21tZXJjZS1zb2Nrc2hvcC9kYXRhcGxhbmUvYXdzL2NvbnRhaW5lcmluc2lnaHRzL2Vjb21tZXJjZS1zb2Nrc2hvcC9ob3N0L2F3cy9jb250YWluZXJpbnNpZ2h0cy9lY29tbWVyY2Utc29ja3Nob3AvcGVyZm9ybWFuY2UvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1wZXJmL2FwcGxpY2F0aW9uL2F3cy9jb250YWluZXJpbnNpZ2h0cy93YXRjaGRlbW8tcGVyZi9kYXRhcGxhbmUvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1wZXJmL2hvc3QvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1wZXJmL3BlcmZvcm1hbmNlL2F3cy9jb250YWluZXJpbnNpZ2h0cy93YXRjaGRlbW8tcGVyZi9wcm9tZXRoZXVzL2F3cy9jb250YWluZXJpbnNpZ2h0cy93YXRjaGRlbW8tcHJvZC11cy1lYXN0LTEvcGVyZm9ybWFuY2UvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1zdGFnaW5nL2FwcGxpY2F0aW9uL2F3cy9jb250YWluZXJpbnNpZ2h0cy93YXRjaGRlbW8tc3RhZ2luZy9kYXRhcGxhbmUvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1zdGFnaW5nL2hvc3QvYXdzL2NvbnRhaW5lcmluc2lnaHRzL3dhdGNoZGVtby1zdGFnaW5nL3BlcmZvcm1hbmNlL2F3cy9lY3MvY29udGFpbmVyaW5zaWdodHMvYnVnYmFzaC1lYzIvcGVyZm9ybWFuY2UvYXdzL2Vjcy9jb250YWluZXJpbnNpZ2h0cy9lY3MtZGVtb3dvcmtzaG9wL3BlcmZvcm1hbmNlL2F3cy9lY3MvY29udGFpbmVyaW5zaWdodHMvZWNzLXdvcmtzaG9wLWRldi9wZXJmb3JtYW5jZS9hd3MvZWtzL2RldjMwMy13b3Jrc2hvcC9jbHVzdGVyL2F3cy9ldmVudHMvY2xvdWR0cmFpbC9hd3MvZXZlbnRzL2Vjcy9hd3MvbGFtYmRhL2N3c3luLW15Y2FuYXJ5LWZhYzk3ZGVkLWYxMzQtNDk5YS05ZDcxLTRjM2JlMWY2MzE4Mi9hd3MvbGFtYmRhL2N3c3luLXdhdGNoLWxpbmtjaGVja3MtZWY3ZWYyNzMtNWRhMi00NjYzLWFmNTQtZDJmNTJkNTViMDYwL2Vjcy9lY3MtY3dhZ2VudC1kYWVtb24tc2VydmljZS9lY3MvZWNzLWRlbW8tbGltaXRUYXNrQ2xvdWRUcmFpbC9EZWZhdWx0TG9nR3JvdXBjb250YWluZXItaW5zaWdodHMtcHJvbWV0aGV1cy1iZXRhY29udGFpbmVyLWluc2lnaHRzLXByb21ldGhldXMtZGVtbwAAEAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADwAAAAAAAMAAQAAACgBAAAAAAAAoAAAAAAAAABgBgAAAAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAWAAAAAIAAAAoAAAABAAAAHz///8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAAnP///wgAAAAUAAAACQAAAGxvZ0dyb3VwcwAAAAQAAABuYW1lAAAAAAEAAAAYAAAAAAASABgAFAATABIADAAAAAgABAASAAAAFAAAAEwAAABQAAAAAAAFAUwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAYAAAADAAAAGxvZ0dyb3VwTmFtZQAAAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAMAAAAbG9nR3JvdXBOYW1lAAAAAEgBAABBUlJPVzE=',
|
||||
frames: [
|
||||
{
|
||||
schema: {
|
||||
name: 'logGroups',
|
||||
refId: 'A',
|
||||
fields: [{ name: 'logGroupName', type: 'string', typeInfo: { frame: 'string', nullable: true } }],
|
||||
},
|
||||
data: {
|
||||
values: [
|
||||
[
|
||||
'/aws/containerinsights/dev303-workshop/application',
|
||||
'/aws/containerinsights/dev303-workshop/dataplane',
|
||||
'/aws/containerinsights/dev303-workshop/flowlogs',
|
||||
'/aws/containerinsights/dev303-workshop/host',
|
||||
'/aws/containerinsights/dev303-workshop/performance',
|
||||
'/aws/containerinsights/dev303-workshop/prometheus',
|
||||
'/aws/containerinsights/ecommerce-sockshop/application',
|
||||
'/aws/containerinsights/ecommerce-sockshop/dataplane',
|
||||
'/aws/containerinsights/ecommerce-sockshop/host',
|
||||
'/aws/containerinsights/ecommerce-sockshop/performance',
|
||||
'/aws/containerinsights/watchdemo-perf/application',
|
||||
'/aws/containerinsights/watchdemo-perf/dataplane',
|
||||
'/aws/containerinsights/watchdemo-perf/host',
|
||||
'/aws/containerinsights/watchdemo-perf/performance',
|
||||
'/aws/containerinsights/watchdemo-perf/prometheus',
|
||||
'/aws/containerinsights/watchdemo-prod-us-east-1/performance',
|
||||
'/aws/containerinsights/watchdemo-staging/application',
|
||||
'/aws/containerinsights/watchdemo-staging/dataplane',
|
||||
'/aws/containerinsights/watchdemo-staging/host',
|
||||
'/aws/containerinsights/watchdemo-staging/performance',
|
||||
'/aws/ecs/containerinsights/bugbash-ec2/performance',
|
||||
'/aws/ecs/containerinsights/ecs-demoworkshop/performance',
|
||||
'/aws/ecs/containerinsights/ecs-workshop-dev/performance',
|
||||
'/aws/eks/dev303-workshop/cluster',
|
||||
'/aws/events/cloudtrail',
|
||||
'/aws/events/ecs',
|
||||
'/aws/lambda/cwsyn-mycanary-fac97ded-f134-499a-9d71-4c3be1f63182',
|
||||
'/aws/lambda/cwsyn-watch-linkchecks-ef7ef273-5da2-4663-af54-d2f52d55b060',
|
||||
'/ecs/ecs-cwagent-daemon-service',
|
||||
'/ecs/ecs-demo-limitTask',
|
||||
'CloudTrail/DefaultLogGroup',
|
||||
'container-insights-prometheus-beta',
|
||||
'container-insights-prometheus-demo',
|
||||
],
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
refId: 'A',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const { ds } = getTestContext({ response });
|
||||
const expectedLogGroups = [
|
||||
'/aws/containerinsights/dev303-workshop/application',
|
||||
|
||||
@@ -176,7 +176,6 @@ export interface TSDBQueryResult<T = any> {
|
||||
refId: string;
|
||||
series: TSDBTimeSeries[];
|
||||
tables: Array<TSDBTable<T>>;
|
||||
dataframes: number[][];
|
||||
|
||||
error?: string;
|
||||
meta?: any;
|
||||
|
||||
@@ -96,7 +96,6 @@ describe('PostgreSQLDatasource', () => {
|
||||
},
|
||||
],
|
||||
tables: null,
|
||||
dataframes: null,
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -167,7 +166,6 @@ describe('PostgreSQLDatasource', () => {
|
||||
rows: [[1599643351085, 'America', 30.226249741223704]],
|
||||
},
|
||||
],
|
||||
dataframes: null,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,11 +1,4 @@
|
||||
import {
|
||||
arrowTableToBase64String,
|
||||
DataFrame,
|
||||
DataSourceInstanceSettings,
|
||||
grafanaDataFrameToArrowTable,
|
||||
MutableDataFrame,
|
||||
PluginType,
|
||||
} from '@grafana/data';
|
||||
import { DataFrame, dataFrameToJSON, DataSourceInstanceSettings, MutableDataFrame, PluginType } from '@grafana/data';
|
||||
import { Observable, of } from 'rxjs';
|
||||
import { createFetchResponse } from 'test/helpers/createFetchResponse';
|
||||
import { TempoDatasource } from './datasource';
|
||||
@@ -48,7 +41,7 @@ function setupBackendSrv(frame: DataFrame) {
|
||||
createFetchResponse({
|
||||
results: {
|
||||
refid1: {
|
||||
dataframes: [encode(frame)],
|
||||
frames: [dataFrameToJSON(frame)],
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -57,11 +50,6 @@ function setupBackendSrv(frame: DataFrame) {
|
||||
} as any);
|
||||
}
|
||||
|
||||
function encode(frame: DataFrame) {
|
||||
const table = grafanaDataFrameToArrowTable(frame);
|
||||
return arrowTableToBase64String(table);
|
||||
}
|
||||
|
||||
const defaultSettings: DataSourceInstanceSettings = {
|
||||
id: 0,
|
||||
uid: '0',
|
||||
|
||||
@@ -4,8 +4,6 @@ import { delay } from 'rxjs/operators';
|
||||
import {
|
||||
AnnotationEvent,
|
||||
ArrayDataFrame,
|
||||
arrowTableToDataFrame,
|
||||
base64StringToArrowTable,
|
||||
DataFrame,
|
||||
DataQueryRequest,
|
||||
DataQueryResponse,
|
||||
@@ -22,7 +20,6 @@ import {
|
||||
getLiveMeasurementsObserver,
|
||||
getTemplateSrv,
|
||||
TemplateSrv,
|
||||
toDataQueryError,
|
||||
} from '@grafana/runtime';
|
||||
import { queryMetricTree } from './metricTree';
|
||||
import { runStream } from './runStreams';
|
||||
@@ -61,9 +58,6 @@ export class TestDataDataSource extends DataSourceWithBackend<TestDataQuery> {
|
||||
case 'grafana_api':
|
||||
streams.push(runGrafanaAPI(target, options));
|
||||
break;
|
||||
case 'arrow':
|
||||
streams.push(runArrowFile(target, options));
|
||||
break;
|
||||
case 'annotations':
|
||||
streams.push(this.annotationDataTopicTest(target, options));
|
||||
break;
|
||||
@@ -176,24 +170,6 @@ export class TestDataDataSource extends DataSourceWithBackend<TestDataQuery> {
|
||||
}
|
||||
}
|
||||
|
||||
function runArrowFile(target: TestDataQuery, req: DataQueryRequest<TestDataQuery>): Observable<DataQueryResponse> {
|
||||
let data: DataFrame[] = [];
|
||||
if (target.stringInput && target.stringInput.length > 10) {
|
||||
try {
|
||||
const table = base64StringToArrowTable(target.stringInput);
|
||||
const frame = arrowTableToDataFrame(table);
|
||||
frame.refId = target.refId;
|
||||
data = [frame];
|
||||
} catch (e) {
|
||||
console.warn('Error reading saved arrow', e);
|
||||
const error = toDataQueryError(e);
|
||||
error.refId = target.refId;
|
||||
return of({ state: LoadingState.Error, error, data });
|
||||
}
|
||||
}
|
||||
return of({ state: LoadingState.Done, data, key: req.requestId + target.refId });
|
||||
}
|
||||
|
||||
function runGrafanaAPI(target: TestDataQuery, req: DataQueryRequest<TestDataQuery>): Observable<DataQueryResponse> {
|
||||
const url = `/api/${target.stringInput}`;
|
||||
return from(
|
||||
|
||||
Reference in New Issue
Block a user