This is an automated email from the ASF dual-hosted git repository.
vogievetsky pushed a commit to branch better_supervisor_view
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/better_supervisor_view by this
push:
new d67a6790bfc update tests
d67a6790bfc is described below
commit d67a6790bfcfe2a3b8141195512a9f09165029d8
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Mon Apr 22 15:48:48 2024 -0700
update tests
---
.../table-column-selector.spec.tsx | 2 +-
.../table-column-selector.tsx | 43 +++---
.../__snapshots__/timed-button.spec.tsx.snap | 2 +-
.../supervisor-table-action-dialog.spec.tsx.snap | 4 +-
.../supervisor-statistics-table.spec.tsx.snap | 10 +-
.../task-table-action-dialog.spec.tsx.snap | 22 ++--
.../__snapshots__/supervisors-view.spec.tsx.snap | 146 +++++++++++++++++++--
.../views/supervisors-view/supervisors-view.tsx | 17 +--
8 files changed, 196 insertions(+), 50 deletions(-)
diff --git
a/web-console/src/components/table-column-selector/table-column-selector.spec.tsx
b/web-console/src/components/table-column-selector/table-column-selector.spec.tsx
index e45fd590e63..e04377c9c5b 100644
---
a/web-console/src/components/table-column-selector/table-column-selector.spec.tsx
+++
b/web-console/src/components/table-column-selector/table-column-selector.spec.tsx
@@ -25,7 +25,7 @@ describe('TableColumnSelector', () => {
it('matches snapshot', () => {
const tableColumn = (
<TableColumnSelector
- columns={['a', 'b', 'c']}
+ columns={['a', 'b', { text: 'c', label: 'c-label' }]}
onChange={() => {}}
tableColumnsHidden={['b']}
/>
diff --git
a/web-console/src/components/table-column-selector/table-column-selector.tsx
b/web-console/src/components/table-column-selector/table-column-selector.tsx
index 2a0c2b5a476..d838e98e04d 100644
--- a/web-console/src/components/table-column-selector/table-column-selector.tsx
+++ b/web-console/src/components/table-column-selector/table-column-selector.tsx
@@ -25,9 +25,15 @@ import { MenuCheckbox } from
'../menu-checkbox/menu-checkbox';
import './table-column-selector.scss';
+export type TableColumnSelectorColumn = string | { text: string; label: string
};
+
+function getColumnName(c: TableColumnSelectorColumn) {
+ return typeof c === 'string' ? c : c.text;
+}
+
interface TableColumnSelectorProps {
- columns: string[];
- onChange: (column: string) => void;
+ columns: TableColumnSelectorColumn[];
+ onChange: (columnName: string) => void;
onClose?: (added: number) => void;
tableColumnsHidden: string[];
}
@@ -38,23 +44,28 @@ export const TableColumnSelector = React.memo(function
TableColumnSelector(
const { columns, onChange, onClose, tableColumnsHidden } = props;
const [added, setAdded] = useState(0);
- const isColumnShown = (column: string) =>
!tableColumnsHidden.includes(column);
+ const isColumnShown = (column: TableColumnSelectorColumn) =>
+ !tableColumnsHidden.includes(getColumnName(column));
const checkboxes = (
<Menu className="table-column-selector-menu">
- {columns.map(column => (
- <MenuCheckbox
- text={column}
- key={column}
- checked={isColumnShown(column)}
- onChange={() => {
- if (!isColumnShown(column)) {
- setAdded(added + 1);
- }
- onChange(column);
- }}
- />
- ))}
+ {columns.map(column => {
+ const columnName = getColumnName(column);
+ return (
+ <MenuCheckbox
+ text={columnName}
+ label={typeof column === 'string' ? undefined : column.label}
+ key={columnName}
+ checked={isColumnShown(column)}
+ onChange={() => {
+ if (!isColumnShown(column)) {
+ setAdded(added + 1);
+ }
+ onChange(columnName);
+ }}
+ />
+ );
+ })}
</Menu>
);
diff --git
a/web-console/src/components/timed-button/__snapshots__/timed-button.spec.tsx.snap
b/web-console/src/components/timed-button/__snapshots__/timed-button.spec.tsx.snap
index b030fdb304b..52fbee10242 100644
---
a/web-console/src/components/timed-button/__snapshots__/timed-button.spec.tsx.snap
+++
b/web-console/src/components/timed-button/__snapshots__/timed-button.spec.tsx.snap
@@ -18,7 +18,7 @@ exports[`TimedButton matches snapshot 1`] = `
<Blueprint4.MenuItem
active={false}
disabled={false}
- icon="selection"
+ icon="tick-circle"
multiline={false}
onClick={[Function]}
popoverProps={{}}
diff --git
a/web-console/src/dialogs/supervisor-table-action-dialog/__snapshots__/supervisor-table-action-dialog.spec.tsx.snap
b/web-console/src/dialogs/supervisor-table-action-dialog/__snapshots__/supervisor-table-action-dialog.spec.tsx.snap
index 7aaa8b1afa2..68cef1ace6e 100755
---
a/web-console/src/dialogs/supervisor-table-action-dialog/__snapshots__/supervisor-table-action-dialog.spec.tsx.snap
+++
b/web-console/src/dialogs/supervisor-table-action-dialog/__snapshots__/supervisor-table-action-dialog.spec.tsx.snap
@@ -116,7 +116,7 @@ exports[`SupervisorTableActionDialog matches snapshot 1`] =
`
<span
class="bp4-button-text"
>
- Statistics
+ Task stats
</span>
</button>
<button
@@ -144,7 +144,7 @@ exports[`SupervisorTableActionDialog matches snapshot 1`] =
`
<span
class="bp4-button-text"
>
- Payload
+ Spec
</span>
</button>
<button
diff --git
a/web-console/src/dialogs/supervisor-table-action-dialog/supervisor-statistics-table/__snapshots__/supervisor-statistics-table.spec.tsx.snap
b/web-console/src/dialogs/supervisor-table-action-dialog/supervisor-statistics-table/__snapshots__/supervisor-statistics-table.spec.tsx.snap
index 7ef6d412fb1..79f2dcbbe61 100644
---
a/web-console/src/dialogs/supervisor-table-action-dialog/supervisor-statistics-table/__snapshots__/supervisor-statistics-table.spec.tsx.snap
+++
b/web-console/src/dialogs/supervisor-table-action-dialog/supervisor-statistics-table/__snapshots__/supervisor-statistics-table.spec.tsx.snap
@@ -656,7 +656,7 @@ exports[`SupervisorStatisticsTable matches snapshot on some
data 1`] = `
{
"Cell": [Function],
"Header": "1m",
- "accessor": [Function],
+ "accessor": "summary.movingAverages.buildSegments.1m",
"className": "padded",
"id": "1m",
"width": 200,
@@ -664,7 +664,7 @@ exports[`SupervisorStatisticsTable matches snapshot on some
data 1`] = `
{
"Cell": [Function],
"Header": "5m",
- "accessor": [Function],
+ "accessor": "summary.movingAverages.buildSegments.5m",
"className": "padded",
"id": "5m",
"width": 200,
@@ -672,7 +672,7 @@ exports[`SupervisorStatisticsTable matches snapshot on some
data 1`] = `
{
"Cell": [Function],
"Header": "15m",
- "accessor": [Function],
+ "accessor": "summary.movingAverages.buildSegments.15m",
"className": "padded",
"id": "15m",
"width": 200,
@@ -687,18 +687,21 @@ exports[`SupervisorStatisticsTable matches snapshot on
some data 1`] = `
"buildSegments": {
"15m": {
"processed": 5.544749689510444,
+ "processedBytes": 20,
"processedWithError": 0,
"thrownAway": 0,
"unparseable": 0,
},
"1m": {
"processed": 4.593670088770785,
+ "processedBytes": 30,
"processedWithError": 0,
"thrownAway": 0,
"unparseable": 0,
},
"5m": {
"processed": 3.5455993615040584,
+ "processedBytes": 10,
"processedWithError": 0,
"thrownAway": 0,
"unparseable": 0,
@@ -708,6 +711,7 @@ exports[`SupervisorStatisticsTable matches snapshot on some
data 1`] = `
"totals": {
"buildSegments": {
"processed": 7516,
+ "processedBytes": 60,
"processedWithError": 0,
"thrownAway": 0,
"unparseable": 0,
diff --git
a/web-console/src/dialogs/task-table-action-dialog/__snapshots__/task-table-action-dialog.spec.tsx.snap
b/web-console/src/dialogs/task-table-action-dialog/__snapshots__/task-table-action-dialog.spec.tsx.snap
index 4c0ceed638d..63e1e50a863 100644
---
a/web-console/src/dialogs/task-table-action-dialog/__snapshots__/task-table-action-dialog.spec.tsx.snap
+++
b/web-console/src/dialogs/task-table-action-dialog/__snapshots__/task-table-action-dialog.spec.tsx.snap
@@ -97,18 +97,18 @@ exports[`TaskTableActionDialog matches snapshot 1`] = `
>
<span
aria-hidden="true"
- class="bp4-icon bp4-icon-align-left"
- icon="align-left"
+ class="bp4-icon bp4-icon-comparison"
+ icon="comparison"
>
<svg
- data-icon="align-left"
+ data-icon="comparison"
height="20"
role="img"
viewBox="0 0 20 20"
width="20"
>
<path
- d="M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1
1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14
14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1
.45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45
1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"
+ d="M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45
1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45
1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1
1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1
1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1
1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55
0 1-.45 1-1v-2c0-.55-.45-1 [...]
fill-rule="evenodd"
/>
</svg>
@@ -116,7 +116,7 @@ exports[`TaskTableActionDialog matches snapshot 1`] = `
<span
class="bp4-button-text"
>
- Payload
+ Reports
</span>
</button>
<button
@@ -125,18 +125,18 @@ exports[`TaskTableActionDialog matches snapshot 1`] = `
>
<span
aria-hidden="true"
- class="bp4-icon bp4-icon-comparison"
- icon="comparison"
+ class="bp4-icon bp4-icon-align-left"
+ icon="align-left"
>
<svg
- data-icon="comparison"
+ data-icon="align-left"
height="20"
role="img"
viewBox="0 0 20 20"
width="20"
>
<path
- d="M6 8H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45
1-1V9c0-.55-.45-1-1-1zm13-6h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55 0 1-.45
1-1V3c0-.55-.45-1-1-1zm0 3h-5V3h5v2zM6 14H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1
1h5c.55 0 1-.45 1-1v-2c0-.55-.45-1-1-1zM6 2H1c-.55 0-1 .45-1 1v2c0 .55.45 1 1
1h5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm4-2c-.55 0-1 .45-1 1v18c0 .55.45 1 1
1s1-.45 1-1V1c0-.55-.45-1-1-1zm9 14h-5c-.55 0-1 .45-1 1v2c0 .55.45 1 1 1h5c.55
0 1-.45 1-1v-2c0-.55-.45-1 [...]
+ d="M1 7h10c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1
1s.45 1 1 1zm0-4h18c.55 0 1-.45 1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1zm14
14H1c-.55 0-1 .45-1 1s.45 1 1 1h14c.55 0 1-.45 1-1s-.45-1-1-1zm4-8H1c-.55 0-1
.45-1 1s.45 1 1 1h18c.55 0 1-.45 1-1s-.45-1-1-1zM1 15h6c.55 0 1-.45
1-1s-.45-1-1-1H1c-.55 0-1 .45-1 1s.45 1 1 1z"
fill-rule="evenodd"
/>
</svg>
@@ -144,7 +144,7 @@ exports[`TaskTableActionDialog matches snapshot 1`] = `
<span
class="bp4-button-text"
>
- Reports
+ Spec
</span>
</button>
<button
@@ -172,7 +172,7 @@ exports[`TaskTableActionDialog matches snapshot 1`] = `
<span
class="bp4-button-text"
>
- Logs
+ Log
</span>
</button>
</div>
diff --git
a/web-console/src/views/supervisors-view/__snapshots__/supervisors-view.spec.tsx.snap
b/web-console/src/views/supervisors-view/__snapshots__/supervisors-view.spec.tsx.snap
index 6053d75102e..3724fdf61f3 100644
---
a/web-console/src/views/supervisors-view/__snapshots__/supervisors-view.spec.tsx.snap
+++
b/web-console/src/views/supervisors-view/__snapshots__/supervisors-view.spec.tsx.snap
@@ -78,7 +78,23 @@ exports[`SupervisorsView matches snapshot 1`] = `
"Type",
"Topic/Stream",
"Status",
- "Running tasks",
+ "Configured tasks",
+ {
+ "label": "status API",
+ "text": "Running tasks",
+ },
+ {
+ "label": "status API",
+ "text": "Aggregate lag",
+ },
+ {
+ "label": "status API",
+ "text": "Recent errors",
+ },
+ {
+ "label": "stats API",
+ "text": "Stats",
+ },
"Actions",
]
}
@@ -155,37 +171,150 @@ exports[`SupervisorsView matches snapshot 1`] = `
"accessor": "supervisor_id",
"id": "supervisor_id",
"show": true,
- "width": 300,
+ "width": 280,
},
{
"Cell": [Function],
"Header": "Type",
"accessor": "type",
"show": true,
- "width": 100,
+ "width": 80,
},
{
"Cell": [Function],
"Header": "Topic/Stream",
"accessor": "source",
"show": true,
- "width": 300,
+ "width": 200,
},
{
"Cell": [Function],
"Header": "Status",
"accessor": "detailed_state",
- "id": "status",
+ "id": "detailed_state",
+ "show": true,
+ "width": 130,
+ },
+ {
+ "Cell": [Function],
+ "Header": "Configured tasks",
+ "accessor": "spec",
+ "className": "padded",
+ "filterable": false,
+ "id": "configured_tasks",
"show": true,
- "width": 250,
+ "sortable": false,
+ "width": 150,
},
{
"Cell": [Function],
"Header": "Running tasks",
- "accessor": "running_tasks",
+ "accessor": "status.payload",
"filterable": false,
"id": "running_tasks",
"show": true,
+ "sortable": false,
+ "width": 150,
+ },
+ {
+ "Cell": [Function],
+ "Header": "Aggregate lag",
+ "accessor": "status.payload.aggregateLag",
+ "className": "padded",
+ "filterable": false,
+ "show": true,
+ "sortable": false,
+ "width": 200,
+ },
+ {
+ "Cell": [Function],
+ "Header": <React.Fragment>
+ Stats
+ <br />
+ <Blueprint4.Popover2
+ boundary="clippingParents"
+ captureDismiss={false}
+ content={
+ <Blueprint4.Menu>
+ <Blueprint4.MenuItem
+ active={false}
+ disabled={false}
+ icon="circle"
+ multiline={false}
+ onClick={[Function]}
+ popoverProps={{}}
+ selected={false}
+ shouldDismissPopover={true}
+ text="Rate over past 1 minute"
+ />
+ <Blueprint4.MenuItem
+ active={false}
+ disabled={false}
+ icon="tick-circle"
+ multiline={false}
+ onClick={[Function]}
+ popoverProps={{}}
+ selected={false}
+ shouldDismissPopover={true}
+ text="Rate over past 5 minutes"
+ />
+ <Blueprint4.MenuItem
+ active={false}
+ disabled={false}
+ icon="circle"
+ multiline={false}
+ onClick={[Function]}
+ popoverProps={{}}
+ selected={false}
+ shouldDismissPopover={true}
+ text="Rate over past 15 minutes"
+ />
+ </Blueprint4.Menu>
+ }
+ defaultIsOpen={false}
+ disabled={false}
+ fill={false}
+ hasBackdrop={false}
+ hoverCloseDelay={300}
+ hoverOpenDelay={150}
+ inheritDarkTheme={true}
+ interactionKind="click"
+ matchTargetWidth={false}
+ minimal={false}
+ openOnTargetFocus={true}
+ position="bottom"
+ positioningStrategy="absolute"
+ shouldReturnFocusOnClose={false}
+ targetTagName="span"
+ transitionDuration={300}
+ usePortal={true}
+ >
+ <i
+ className="title-button"
+ >
+ Rate over past 5 minutes
+
+ <Blueprint4.Icon
+ icon="caret-down"
+ />
+ </i>
+ </Blueprint4.Popover2>
+ </React.Fragment>,
+ "accessor": "stats",
+ "className": "padded",
+ "filterable": false,
+ "id": "stats",
+ "show": true,
+ "sortable": false,
+ "width": 300,
+ },
+ {
+ "Cell": [Function],
+ "Header": "Recent errors",
+ "accessor": "status.payload.recentErrors",
+ "filterable": false,
+ "show": true,
+ "sortable": false,
"width": 150,
},
{
@@ -195,6 +324,7 @@ exports[`SupervisorsView matches snapshot 1`] = `
"filterable": false,
"id": "actions",
"show": true,
+ "sortable": false,
"width": 70,
},
]
@@ -244,7 +374,7 @@ exports[`SupervisorsView matches snapshot 1`] = `
getTrProps={[Function]}
groupedByPivotKey="_groupedByPivot"
indexKey="_index"
- loading={true}
+ loading={false}
loadingText="Loading..."
multiSort={true}
nestingLevelKey="_nestingLevel"
diff --git a/web-console/src/views/supervisors-view/supervisors-view.tsx
b/web-console/src/views/supervisors-view/supervisors-view.tsx
index 316080641ce..8e65c3fa391 100644
--- a/web-console/src/views/supervisors-view/supervisors-view.tsx
+++ b/web-console/src/views/supervisors-view/supervisors-view.tsx
@@ -25,6 +25,7 @@ import React from 'react';
import type { Filter } from 'react-table';
import ReactTable from 'react-table';
+import type { TableColumnSelectorColumn } from '../../components';
import {
ACTION_COLUMN_ID,
ACTION_COLUMN_LABEL,
@@ -84,16 +85,16 @@ import type { BasicAction } from '../../utils/basic-action';
import './supervisors-view.scss';
-const supervisorTableColumns: string[] = [
+const SUPERVISOR_TABLE_COLUMNS: TableColumnSelectorColumn[] = [
'Supervisor ID',
'Type',
'Topic/Stream',
'Status',
'Configured tasks',
- 'Running tasks',
- 'Aggregate lag',
- 'Recent errors',
- 'Stats',
+ { text: 'Running tasks', label: 'status API' },
+ { text: 'Aggregate lag', label: 'status API' },
+ { text: 'Recent errors', label: 'status API' },
+ { text: 'Stats', label: 'stats API' },
ACTION_COLUMN_LABEL,
];
@@ -797,7 +798,7 @@ export class SupervisorsView extends React.PureComponent<
</Popover2>,
),
id: 'stats',
- width: 220,
+ width: 300,
filterable: false,
sortable: false,
className: 'padded',
@@ -847,7 +848,7 @@ export class SupervisorsView extends React.PureComponent<
{
Header: 'Recent errors',
accessor: 'status.payload.recentErrors',
- width: 200,
+ width: 150,
filterable: false,
sortable: false,
show: visibleColumns.shown('Recent errors'),
@@ -1031,7 +1032,7 @@ export class SupervisorsView extends React.PureComponent<
/>
{this.renderBulkSupervisorActions()}
<TableColumnSelector
- columns={supervisorTableColumns}
+ columns={SUPERVISOR_TABLE_COLUMNS}
onChange={column =>
this.setState(prevState => ({
visibleColumns: prevState.visibleColumns.toggle(column),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]