Skip to content

Commit ce7fa59

Browse files
alexwizpelasticmachinewylieconloncchaos
committed
Add inspector for VEGA (elastic#70941)
* [WIP] Add inspector for VEGA Closes: elastic#31189 * view -> dataset * cleanup * add spec viewer * cleanup code * use rx to retrieve data from adapters * Make custom inspector adapters registerable from the visType * fix flex-box size * cleanup * remove visTypesWithoutInspector from visualize_embeddable * fix PR comments * add vega folder to sass-lint * fix jest * Update src/plugins/vis_type_vega/public/vega_inspector/components/data_viewer.tsx Co-authored-by: Wylie Conlon <wylieconlon@gmail.com> * use addSignalListener * cleanup * add onColumnResize handler * EuiCodeEditor -> CodeEditor * fix type_check * fix issue with pagination * fix extra vertical scroll * add area-label for EuiButtonIcon * add area-label for EuiComboBox * Design Commit - Fixing up layout trying to remove any `.eui` classes and uses flex instead of percentage - Fixing text to use `Sentence case` not `Title Case` * Wrapper around signal viewer table * fix Jest snapshot Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Wylie Conlon <wylieconlon@gmail.com> Co-authored-by: cchaos <caroline.horn@elastic.co>
1 parent 9cf319d commit ce7fa59

File tree

56 files changed

+992
-83
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+992
-83
lines changed

.sass-lint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ files:
33
- 'src/legacy/core_plugins/metrics/**/*.s+(a|c)ss'
44
- 'src/plugins/timelion/**/*.s+(a|c)ss'
55
- 'src/plugins/vis_type_vislib/**/*.s+(a|c)ss'
6+
- 'src/plugins/vis_type_vega/**/*.s+(a|c)ss'
67
- 'src/plugins/vis_type_xy/**/*.s+(a|c)ss'
78
- 'x-pack/plugins/canvas/**/*.s+(a|c)ss'
89
- 'x-pack/plugins/triggers_actions_ui/**/*.s+(a|c)ss'

src/plugins/data/public/public.api.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ import { EuiButtonEmptyProps } from '@elastic/eui';
5252
import { EuiComboBoxProps } from '@elastic/eui';
5353
import { EuiConfirmModalProps } from '@elastic/eui';
5454
import { EuiGlobalToastListToast } from '@elastic/eui';
55-
import { EventEmitter } from 'events';
5655
import { ExclusiveUnion } from '@elastic/eui';
5756
import { ExistsParams } from 'elasticsearch';
5857
import { ExplainParams } from 'elasticsearch';
@@ -148,7 +147,7 @@ import { ReindexRethrottleParams } from 'elasticsearch';
148147
import { RenderSearchTemplateParams } from 'elasticsearch';
149148
import { Reporter } from '@kbn/analytics';
150149
import { RequestAdapter } from 'src/plugins/inspector/common';
151-
import { RequestStatistics as RequestStatistics_2 } from 'src/plugins/inspector/common';
150+
import { RequestStatistics } from 'src/plugins/inspector/common';
152151
import { Required } from '@kbn/utility-types';
153152
import * as Rx from 'rxjs';
154153
import { SavedObject } from 'src/core/server';

src/plugins/data/public/search/aggs/buckets/terms.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export const getTermsBucketAgg = () =>
129129

130130
const response = await nestedSearchSource.fetch({ abortSignal });
131131
request
132-
.stats(getResponseInspectorStats(nestedSearchSource, response))
132+
.stats(getResponseInspectorStats(response, nestedSearchSource))
133133
.ok({ json: response });
134134
resp = mergeOtherBucketAggResponse(aggConfigs, resp, response, aggConfig, filterAgg());
135135
}

src/plugins/data/public/search/expressions/esaggs.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ const handleCourierRequest = async ({
160160

161161
(searchSource as any).lastQuery = queryHash;
162162

163-
request.stats(getResponseInspectorStats(searchSource, response)).ok({ json: response });
163+
request.stats(getResponseInspectorStats(response, searchSource)).ok({ json: response });
164164

165165
(searchSource as any).rawResponse = response;
166166
} catch (e) {

src/plugins/data/public/search/expressions/utils/courier_inspector_stats.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,11 @@ export function getRequestInspectorStats(searchSource: ISearchSource) {
6161

6262
/** @public */
6363
export function getResponseInspectorStats(
64-
searchSource: ISearchSource,
65-
resp: SearchResponse<unknown>
64+
resp: SearchResponse<unknown>,
65+
searchSource?: ISearchSource
6666
) {
67-
const lastRequest = searchSource.history && searchSource.history[searchSource.history.length - 1];
67+
const lastRequest =
68+
searchSource?.history && searchSource.history[searchSource.history.length - 1];
6869
const stats: RequestStatistics = {};
6970

7071
if (resp && resp.took) {

src/plugins/data/server/server.api.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import { DeleteTemplateParams } from 'elasticsearch';
3939
import { DetailedPeerCertificate } from 'tls';
4040
import { Duration } from 'moment';
4141
import { ErrorToastOptions } from 'src/core/public/notifications';
42-
import { EventEmitter } from 'events';
4342
import { ExistsParams } from 'elasticsearch';
4443
import { ExplainParams } from 'elasticsearch';
4544
import { FieldStatsParams } from 'elasticsearch';

src/plugins/discover/public/application/angular/discover.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -874,7 +874,7 @@ function discoverController(
874874
}
875875

876876
function onResults(resp) {
877-
inspectorRequest.stats(getResponseInspectorStats($scope.searchSource, resp)).ok({ json: resp });
877+
inspectorRequest.stats(getResponseInspectorStats(resp, $scope.searchSource)).ok({ json: resp });
878878

879879
if (getTimeField()) {
880880
const tabifiedData = tabifyAggResponse($scope.vis.data.aggs, resp);

src/plugins/discover/public/application/embeddable/search_embeddable.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ export class SearchEmbeddable extends Embeddable<SearchInput, SearchOutput>
307307
this.updateOutput({ loading: false, error: undefined });
308308

309309
// Log response to inspector
310-
inspectorRequest.stats(getResponseInspectorStats(searchSource, resp)).ok({ json: resp });
310+
inspectorRequest.stats(getResponseInspectorStats(resp, searchSource)).ok({ json: resp });
311311

312312
// Apply the changes to the angular scope
313313
this.searchScope.$apply(() => {

src/plugins/expressions/common/execution/execution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { createExecutionContainer, ExecutionContainer } from './container';
2323
import { createError } from '../util';
2424
import { Defer, now } from '../../../kibana_utils/common';
2525
import { toPromise } from '../../../data/common/utils/abort_utils';
26-
import { RequestAdapter, DataAdapter } from '../../../inspector/common';
26+
import { RequestAdapter, DataAdapter, Adapters } from '../../../inspector/common';
2727
import { isExpressionValueError, ExpressionValueError } from '../expression_types/specs/error';
2828
import {
2929
ExpressionAstExpression,
@@ -70,7 +70,7 @@ export class Execution<
7070
ExtraContext extends Record<string, unknown> = Record<string, unknown>,
7171
Input = unknown,
7272
Output = unknown,
73-
InspectorAdapters = ExtraContext['inspectorAdapters'] extends object
73+
InspectorAdapters extends Adapters = ExtraContext['inspectorAdapters'] extends object
7474
? ExtraContext['inspectorAdapters']
7575
: DefaultInspectorAdapters
7676
> {

src/plugins/expressions/common/execution/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
*/
1919

2020
import { ExpressionType } from '../expression_types';
21-
import { DataAdapter, RequestAdapter } from '../../../inspector/common';
21+
import { Adapters, DataAdapter, RequestAdapter } from '../../../inspector/common';
2222
import { TimeRange, Query, Filter } from '../../../data/common';
2323
import { SavedObject, SavedObjectAttributes } from '../../../../core/public';
2424

2525
/**
2626
* `ExecutionContext` is an object available to all functions during a single execution;
2727
* it provides various methods to perform side-effects.
2828
*/
29-
export interface ExecutionContext<Input = unknown, InspectorAdapters = DefaultInspectorAdapters> {
29+
export interface ExecutionContext<Input = unknown, InspectorAdapters extends Adapters = Adapters> {
3030
/**
3131
* Get initial input with which execution started.
3232
*/
@@ -75,7 +75,7 @@ export interface ExecutionContext<Input = unknown, InspectorAdapters = DefaultIn
7575
/**
7676
* Default inspector adapters created if inspector adapters are not set explicitly.
7777
*/
78-
export interface DefaultInspectorAdapters {
78+
export interface DefaultInspectorAdapters extends Adapters {
7979
requests: RequestAdapter;
8080
data: DataAdapter;
8181
}

0 commit comments

Comments
 (0)