diff --git a/web-console/script/druid b/web-console/script/druid index c1f4f4bbcabc..47a0c607ea59 100755 --- a/web-console/script/druid +++ b/web-console/script/druid @@ -69,6 +69,7 @@ function _build_distribution() { && rm conf/druid/auto/_common/common.runtime.properties.bak \ && echo -e "\n\ndruid.server.http.allowedHttpMethods=[\"HEAD\"]" >> conf/druid/auto/_common/common.runtime.properties \ && echo -e "\n\ndruid.export.storage.baseDir=/" >> conf/druid/auto/_common/common.runtime.properties \ + && echo -e "\n\ndruid.sql.planner.enableSysQueriesTable=true" >> conf/druid/auto/_common/common.runtime.properties \ && echo -e "\n\ndruid.msq.dart.enabled=true" >> conf/druid/auto/_common/common.runtime.properties \ && echo -e "\n\ndruid.msq.dart.controller.maxRetainedReportCount=100" >> conf/druid/auto/_common/common.runtime.properties \ && echo -e "\n\ndruid.msq.dart.controller.maxRetainedReportDuration=PT3600S" >> conf/druid/auto/_common/common.runtime.properties \ diff --git a/web-console/src/druid-models/dart/dart-query-entry.ts b/web-console/src/druid-models/dart/dart-query-entry.ts index 5396f7bc1544..0fe2ab0174b0 100644 --- a/web-console/src/druid-models/dart/dart-query-entry.ts +++ b/web-console/src/druid-models/dart/dart-query-entry.ts @@ -24,5 +24,5 @@ export interface DartQueryEntry { authenticator: string; identity: string; startTime: string; - state: 'ACCEPTED' | 'RUNNING' | 'CANCELED'; + state: 'ACCEPTED' | 'RUNNING' | 'CANCELED' | 'SUCCESS' | 'FAILED'; } diff --git a/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx b/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx index 007e3eca1032..7e0deff6e11c 100644 --- a/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx +++ b/web-console/src/views/workbench-view/current-dart-panel/current-dart-panel.tsx @@ -38,7 +38,11 @@ function stateToIconAndColor(status: DartQueryEntry['state']): [IconName, string case 'RUNNING': return [IconNames.REFRESH, '#2167d5']; case 'ACCEPTED': - return [IconNames.CIRCLE, '#8d8d8d']; + return [IconNames.CIRCLE, '#d5631a']; + case 'SUCCESS': + return [IconNames.TICK_CIRCLE, '#57d500']; + case 'FAILED': + return [IconNames.DELETE, '#9f0d0a']; case 'CANCELED': return [IconNames.DISABLE, '#8d8d8d']; default: @@ -61,8 +65,9 @@ export const CurrentDartPanel = React.memo(function CurrentViberPanel( const [dartQueryEntriesState, queryManager] = useQueryManager({ query: useStore(WORK_STATE_STORE, getMsqDartVersion), processQuery: async (_, signal) => { - return (await Api.instance.get('/druid/v2/sql/queries', { signal })).data - .queries as DartQueryEntry[]; + return ( + await Api.instance.get('/druid/v2/sql/queries?includeComplete', { signal }) + ).data.queries.reverse() as DartQueryEntry[]; }, }); diff --git a/web-console/src/views/workbench-view/execution-details-pane-loader/execution-details-pane-loader.tsx b/web-console/src/views/workbench-view/execution-details-pane-loader/execution-details-pane-loader.tsx index 28d201388d5e..21b48826f759 100644 --- a/web-console/src/views/workbench-view/execution-details-pane-loader/execution-details-pane-loader.tsx +++ b/web-console/src/views/workbench-view/execution-details-pane-loader/execution-details-pane-loader.tsx @@ -33,6 +33,8 @@ async function getDartExecution(sqlQueryId: string, signal: AbortSignal): Promis { signal }, ); + if (!data.report) throw new Error('Query not started yet'); + return Execution.fromDartReport(data.report).changeSqlQuery(data.query.sql); }