From e4342531000863b6c3e9b1834f7da01b7a6c1caa Mon Sep 17 00:00:00 2001 From: shuqi7 Date: Tue, 16 Apr 2019 16:26:37 -0700 Subject: [PATCH 01/13] Added no sql mode --- web-console/src/console-application.tsx | 15 +-- web-console/src/views/datasource-view.tsx | 43 ++++++-- web-console/src/views/home-view.tsx | 84 ++++++++++------ web-console/src/views/segments-view.tsx | 113 ++++++++++++++++++---- web-console/src/views/servers-view.tsx | 61 ++++++------ web-console/src/views/tasks-view.tsx | 48 +++++++-- 6 files changed, 266 insertions(+), 98 deletions(-) diff --git a/web-console/src/console-application.tsx b/web-console/src/console-application.tsx index 52aa9b116325..95461e9d87ed 100644 --- a/web-console/src/console-application.tsx +++ b/web-console/src/console-application.tsx @@ -45,6 +45,7 @@ export interface ConsoleApplicationProps extends React.Props { export interface ConsoleApplicationState { aboutDialogOpen: boolean; + noSqlMode: boolean; } export class ConsoleApplication extends React.Component { @@ -95,7 +96,8 @@ export class ConsoleApplication extends React.Component { return <> @@ -161,25 +164,25 @@ export class ConsoleApplication extends React.Component { - return wrapInViewContainer('datasources', ); + return wrapInViewContainer('datasources', ); }} /> { - return wrapInViewContainer('segments', ); + return wrapInViewContainer('segments', ); }} /> { - return wrapInViewContainer('tasks', , true); + return wrapInViewContainer('tasks', , true); }} /> { - return wrapInViewContainer('servers', , true); + return wrapInViewContainer('servers', , true); }} /> { - return wrapInViewContainer(null, ); + return wrapInViewContainer(null, ); }} /> diff --git a/web-console/src/views/datasource-view.tsx b/web-console/src/views/datasource-view.tsx index 2b13b9652070..70cd1dc6a55f 100644 --- a/web-console/src/views/datasource-view.tsx +++ b/web-console/src/views/datasource-view.tsx @@ -44,10 +44,12 @@ import { import './datasource-view.scss'; const tableColumns: string[] = ['Datasource', 'Availability', 'Retention', 'Compaction', 'Size', 'Num rows', 'Actions']; +const tableColumnsNoSql: string[] = ['Datasource', 'Availability', 'Retention', 'Compaction', 'Size', 'Actions']; export interface DatasourcesViewProps extends React.Props { goToSql: (initSql: string) => void; goToSegments: (datasource: string, onlyUnavailable?: boolean) => void; + noSqlMode: boolean; } interface Datasource { @@ -116,9 +118,27 @@ export class DatasourcesView extends React.Component { - const datasources: any[] = await queryDruidSql({ query }); + let datasources: any[]; + if (!noSqlMode) { + datasources = await queryDruidSql({ query }); + } else { + const datasourcesResp = await axios.get('/druid/coordinator/v1/datasources?simple'); + const loadstatusResp = await axios.get('/druid/coordinator/v1/loadstatus?simple'); + const loadstatus = loadstatusResp.data; + datasources = datasourcesResp.data.map((d: any) => { + return { + datasource: d.name, + num_available_segments: d.properties.segments.count, + size: d.properties.segments.size, + num_segments: d.properties.segments.count + loadstatus[d.name] + }; + }); + } + const seen = countBy(datasources, (x: any) => x.datasource); const disabledResp = await axios.get('/druid/coordinator/v1/metadata/datasources?includeDisabled'); @@ -354,7 +374,7 @@ GROUP BY 1`); } renderDatasourceTable() { - const { goToSegments } = this.props; + const { goToSegments, noSqlMode } = this.props; const { datasources, defaultRules, datasourcesLoading, datasourcesError, datasourcesFilter, showDisabled } = this.state; const { tableColumnSelectionHandler } = this; let data = datasources || []; @@ -482,7 +502,7 @@ GROUP BY 1`); filterable: false, width: 100, Cell: (row) => formatNumber(row.value), - show: tableColumnSelectionHandler.showColumn('Num rows') + show: !noSqlMode && tableColumnSelectionHandler.showColumn('Num rows') }, { Header: 'Actions', @@ -519,7 +539,7 @@ GROUP BY 1`); } render() { - const { goToSql } = this.props; + const { goToSql, noSqlMode } = this.props; const { showDisabled } = this.state; const { tableColumnSelectionHandler } = this; @@ -530,18 +550,21 @@ GROUP BY 1`); text="Refresh" onClick={() => this.datasourceQueryManager.rerunLastQuery()} /> -