ydb-embedded-ui 11.14.1 → 12.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ConnectToDB/ConnectToDBDialog.js +1 -1
- package/dist/components/ConnectToDB/ConnectToDBDialog.js.map +1 -1
- package/dist/components/EnableFullscreenButton/EnableFullscreenButton.d.ts +2 -2
- package/dist/components/EnableFullscreenButton/EnableFullscreenButton.js +1 -2
- package/dist/components/EnableFullscreenButton/EnableFullscreenButton.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/Fullscreen/Fullscreen.d.ts +2 -2
- package/dist/components/Fullscreen/Fullscreen.js +10 -10
- package/dist/components/Fullscreen/Fullscreen.js.map +1 -1
- package/dist/components/Fullscreen/Fullscreen.scss +4 -2
- package/dist/components/Fullscreen/FullscreenContext.d.ts +6 -0
- package/dist/components/Fullscreen/FullscreenContext.js +14 -0
- package/dist/components/Fullscreen/FullscreenContext.js.map +1 -0
- package/dist/components/ShardsTable/columns.js +3 -3
- package/dist/components/ShardsTable/columns.js.map +1 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
- package/dist/containers/App/App.js +3 -1
- package/dist/containers/App/App.js.map +1 -1
- package/dist/containers/Clusters/constants.d.ts +1 -1
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Header/breadcrumbs.js +2 -5
- package/dist/containers/Header/breadcrumbs.js.map +1 -1
- package/dist/containers/Node/Node.js +3 -1
- package/dist/containers/Node/Node.js.map +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js +1 -1
- package/dist/containers/Nodes/NodesControls/NodesControls.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js +1 -1
- package/dist/containers/Nodes/PaginatedNodes/GroupedNodesComponent.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js +1 -1
- package/dist/containers/Nodes/PaginatedNodes/NodesComponent.js.map +1 -1
- package/dist/containers/Nodes/PaginatedNodes/PaginatedNodes.js +1 -1
- package/dist/containers/Nodes/PaginatedNodes/PaginatedNodes.js.map +1 -1
- package/dist/containers/Nodes/PeerRoleFilter/utils.d.ts +1 -1
- package/dist/containers/Nodes/PeerRoleFilter/utils.js +3 -2
- package/dist/containers/Nodes/PeerRoleFilter/utils.js.map +1 -1
- package/dist/containers/Nodes/i18n/index.d.ts +1 -1
- package/dist/containers/Nodes/useNodesPageQueryParams.d.ts +1 -1
- package/dist/containers/Nodes/useNodesPageQueryParams.js +8 -4
- package/dist/containers/Nodes/useNodesPageQueryParams.js.map +1 -1
- package/dist/containers/StorageGroupPage/StorageGroupPage.js +1 -1
- package/dist/containers/StorageGroupPage/StorageGroupPage.js.map +1 -1
- package/dist/containers/Tablet/Tablet.js +1 -0
- package/dist/containers/Tablet/Tablet.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +25 -24
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +5 -2
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +36 -16
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/CommonMetricsTabs.d.ts +18 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/CommonMetricsTabs.js +27 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/CommonMetricsTabs.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/DedicatedMetricsTabs.d.ts +16 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/DedicatedMetricsTabs.js +16 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/DedicatedMetricsTabs.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.d.ts +5 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +23 -24
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.scss +10 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/ServerlessPlaceholderTabs.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/ServerlessPlaceholderTabs.js +12 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/ServerlessPlaceholderTabs.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.d.ts +13 -4
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js +18 -7
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.d.ts +4 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js +4 -3
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js +8 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js +16 -6
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.scss +4 -0
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.d.ts +3 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js +7 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/en.json +6 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.d.ts +2 -1
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js +9 -2
- package/dist/containers/Tenant/Diagnostics/TopShards/TopShards.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/i18n/en.json +3 -0
- package/dist/containers/Tenant/Diagnostics/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js +2 -2
- package/dist/containers/Tenant/Healthcheck/Healthcheck.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/Healthcheck.scss +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/ComputeLocation.js +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js +3 -18
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/HealthcheckIssueDetails.js.map +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/IssueLocation.d.ts +10 -0
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/IssueLocation.js +24 -0
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/IssueLocation.js.map +1 -0
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/StorageLocation.js +1 -1
- package/dist/containers/Tenant/Healthcheck/components/HealthcheckIssueDetails/utils.js +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js +8 -8
- package/dist/containers/Tenant/ObjectSummary/ObjectSummary.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.d.ts +2 -1
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js +5 -5
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.d.ts +1 -0
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js +3 -1
- package/dist/containers/Tenant/ObjectSummary/SchemaTree/SchemaTree.js.map +1 -1
- package/dist/containers/Tenant/ObjectSummary/transformPath.d.ts +8 -1
- package/dist/containers/Tenant/ObjectSummary/transformPath.js +10 -2
- package/dist/containers/Tenant/ObjectSummary/transformPath.js.map +1 -1
- package/dist/containers/Tenant/Query/Preview/components/PreviewView.js +2 -2
- package/dist/containers/Tenant/Query/Preview/components/PreviewView.js.map +1 -1
- package/dist/containers/Tenant/Query/Preview/components/TablePreview.js +6 -2
- package/dist/containers/Tenant/Query/Preview/components/TablePreview.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +2 -2
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
- package/dist/containers/Tenant/Tenant.js +4 -4
- package/dist/containers/Tenant/Tenant.js.map +1 -1
- package/dist/containers/Tenant/TenantContext.d.ts +3 -1
- package/dist/containers/Tenant/TenantContext.js +3 -2
- package/dist/containers/Tenant/TenantContext.js.map +1 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js +1 -1
- package/dist/containers/Tenant/TenantDrawerHealthcheck.js.map +1 -1
- package/dist/containers/Tenant/utils/schemaActions.d.ts +1 -0
- package/dist/containers/Tenant/utils/schemaActions.js +10 -4
- package/dist/containers/Tenant/utils/schemaActions.js.map +1 -1
- package/dist/containers/VDiskPage/VDiskPage.js +1 -0
- package/dist/containers/VDiskPage/VDiskPage.js.map +1 -1
- package/dist/services/api/base.d.ts +3 -1
- package/dist/services/api/base.js +12 -2
- package/dist/services/api/base.js.map +1 -1
- package/dist/services/api/index.d.ts +2 -1
- package/dist/services/api/index.js +2 -2
- package/dist/services/api/index.js.map +1 -1
- package/dist/services/api/scheme.js +1 -1
- package/dist/services/api/scheme.js.map +1 -1
- package/dist/services/api/viewer.d.ts +2 -2
- package/dist/services/api/viewer.js +5 -6
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/store/configureStore.js +1 -0
- package/dist/store/configureStore.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.js +2 -1
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/header/types.d.ts +1 -1
- package/dist/store/reducers/shardsWorkload/shardsWorkload.d.ts +1 -0
- package/dist/store/reducers/shardsWorkload/shardsWorkload.js +23 -11
- package/dist/store/reducers/shardsWorkload/shardsWorkload.js.map +1 -1
- package/dist/store/reducers/tenant/tenant.d.ts +1 -0
- package/dist/store/reducers/tenant/tenant.js +2 -1
- package/dist/store/reducers/tenant/tenant.js.map +1 -1
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.d.ts +1 -0
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js +3 -3
- package/dist/store/reducers/tenantOverview/topShards/tenantOverviewTopShards.js.map +1 -1
- package/dist/types/api/storage.d.ts +0 -2
- package/dist/uiFactory/types.d.ts +1 -0
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.js +1 -0
- package/dist/utils/constants.js.map +1 -1
- package/package.json +1 -1
@@ -1,21 +1,22 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { useMemo } from 'react';
|
2
3
|
import { Flex } from '@gravity-ui/uikit';
|
3
|
-
import {
|
4
|
+
import { useLocation } from 'react-router-dom';
|
4
5
|
import { parseQuery } from '../../../../../routes';
|
5
6
|
import { TENANT_METRICS_TABS_IDS } from '../../../../../store/reducers/tenant/constants';
|
6
7
|
import { cn } from '../../../../../utils/cn';
|
7
8
|
import { SHOW_NETWORK_UTILIZATION } from '../../../../../utils/constants';
|
8
|
-
import { useSetting
|
9
|
+
import { useSetting } from '../../../../../utils/hooks';
|
9
10
|
import { calculateMetricAggregates } from '../../../../../utils/metrics';
|
10
|
-
|
11
|
+
// no direct legend formatters needed here – handled in subcomponents
|
11
12
|
import { TenantTabsGroups, getTenantPath } from '../../../TenantPages';
|
12
|
-
import {
|
13
|
-
import
|
13
|
+
import { CommonMetricsTabs } from './CommonMetricsTabs';
|
14
|
+
import { DedicatedMetricsTabs } from './DedicatedMetricsTabs';
|
15
|
+
import { ServerlessPlaceholderTabs } from './ServerlessPlaceholderTabs';
|
14
16
|
import './MetricsTabs.scss';
|
15
17
|
const b = cn('tenant-metrics-tabs');
|
16
|
-
export function MetricsTabs({ poolsCpuStats, memoryStats, blobStorageStats, tabletStorageStats, networkStats, storageGroupsCount, }) {
|
18
|
+
export function MetricsTabs({ poolsCpuStats, memoryStats, blobStorageStats, tabletStorageStats, networkStats, storageGroupsCount, databaseType, activeTab, }) {
|
17
19
|
const location = useLocation();
|
18
|
-
const { metricsTab } = useTypedSelector((state) => state.tenant);
|
19
20
|
const queryParams = parseQuery(location);
|
20
21
|
const tabLinks = {
|
21
22
|
[TENANT_METRICS_TABS_IDS.cpu]: getTenantPath({
|
@@ -36,26 +37,24 @@ export function MetricsTabs({ poolsCpuStats, memoryStats, blobStorageStats, tabl
|
|
36
37
|
}),
|
37
38
|
};
|
38
39
|
// Use only pools that directly indicate resources available to perform user queries
|
39
|
-
const cpuPools = (poolsCpuStats || []).filter((pool) => !(pool.name === 'Batch' || pool.name === 'IO'));
|
40
|
-
const cpuMetrics = calculateMetricAggregates(cpuPools);
|
40
|
+
const cpuPools = useMemo(() => (poolsCpuStats || []).filter((pool) => !(pool.name === 'Batch' || pool.name === 'IO')), [poolsCpuStats]);
|
41
|
+
const cpuMetrics = useMemo(() => calculateMetricAggregates(cpuPools), [cpuPools]);
|
41
42
|
// Calculate storage metrics using utility
|
42
|
-
const storageStats = tabletStorageStats || blobStorageStats || [];
|
43
|
-
const storageMetrics = calculateMetricAggregates(storageStats);
|
43
|
+
const storageStats = useMemo(() => tabletStorageStats || blobStorageStats || [], [tabletStorageStats, blobStorageStats]);
|
44
|
+
const storageMetrics = useMemo(() => calculateMetricAggregates(storageStats), [storageStats]);
|
44
45
|
// Calculate memory metrics using utility
|
45
|
-
const memoryMetrics = calculateMetricAggregates(memoryStats);
|
46
|
+
const memoryMetrics = useMemo(() => calculateMetricAggregates(memoryStats), [memoryStats]);
|
46
47
|
// Calculate network metrics using utility
|
47
48
|
const [showNetworkUtilization] = useSetting(SHOW_NETWORK_UTILIZATION);
|
48
|
-
const networkMetrics = networkStats ? calculateMetricAggregates(networkStats) : null;
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
}
|
58
|
-
active: metricsTab === TENANT_METRICS_TABS_IDS.network,
|
59
|
-
}), children: _jsx(Link, { to: tabLinks.network, className: b('link'), children: _jsx(TabCard, { text: i18n('context_network-usage'), value: networkMetrics.totalUsed, limit: networkMetrics.totalLimit, legendFormatter: formatSpeedLegend, active: metricsTab === TENANT_METRICS_TABS_IDS.network, helpText: i18n('context_network-description') }) }) }))] }));
|
49
|
+
const networkMetrics = useMemo(() => (networkStats ? calculateMetricAggregates(networkStats) : null), [networkStats]);
|
50
|
+
// card variant is handled within subcomponents
|
51
|
+
const isServerless = databaseType === 'Serverless';
|
52
|
+
return (_jsxs(Flex, { className: b({ serverless: Boolean(isServerless) }), alignItems: "center", children: [_jsx(CommonMetricsTabs, { activeTab: activeTab, tabLinks: tabLinks, cpu: { totalUsed: cpuMetrics.totalUsed, totalLimit: cpuMetrics.totalLimit }, storage: {
|
53
|
+
totalUsed: storageMetrics.totalUsed,
|
54
|
+
totalLimit: storageMetrics.totalLimit,
|
55
|
+
}, storageGroupsCount: storageGroupsCount, databaseType: databaseType }), isServerless ? (_jsx(ServerlessPlaceholderTabs, {})) : (_jsx(DedicatedMetricsTabs, { activeTab: activeTab, tabLinks: tabLinks, memory: {
|
56
|
+
totalUsed: memoryMetrics.totalUsed,
|
57
|
+
totalLimit: memoryMetrics.totalLimit,
|
58
|
+
}, network: networkMetrics, showNetwork: Boolean(showNetworkUtilization && networkStats && networkMetrics) }))] }));
|
60
59
|
}
|
61
60
|
//# sourceMappingURL=MetricsTabs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"MetricsTabs.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,
|
1
|
+
{"version":3,"file":"MetricsTabs.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.tsx"],"names":[],"mappings":"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"}
|
package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/ServerlessPlaceholderTabs.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { cn } from '../../../../../utils/cn';
|
4
|
+
import { NON_BREAKING_SPACE } from '../../../../../utils/constants';
|
5
|
+
import { TabCard } from '../TabCard/TabCard';
|
6
|
+
import './MetricsTabs.scss';
|
7
|
+
const b = cn('tenant-metrics-tabs');
|
8
|
+
export const ServerlessPlaceholderTabs = React.memo(({ count = 2 }) => {
|
9
|
+
const items = React.useMemo(() => Array.from({ length: count }, (_, i) => i), [count]);
|
10
|
+
return items.map((idx) => (_jsx("div", { className: b('link-container', { placeholder: true }), children: _jsx("div", { className: b('link'), children: _jsx(TabCard, { text: NON_BREAKING_SPACE, active: false, databaseType: "Serverless", subtitle: NON_BREAKING_SPACE }) }) }, idx)));
|
11
|
+
});
|
12
|
+
//# sourceMappingURL=ServerlessPlaceholderTabs.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ServerlessPlaceholderTabs.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/ServerlessPlaceholderTabs.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,EAAE,EAAC,MAAM,yBAAyB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAE3C,OAAO,oBAAoB,CAAC;AAE5B,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAMpC,MAAM,CAAC,MAAM,yBAAyB,GAA6C,KAAK,CAAC,IAAI,CACzF,CAAC,EAAC,KAAK,GAAG,CAAC,EAAC,EAAE,EAAE;IACZ,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAErF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACtB,cAAe,SAAS,EAAE,CAAC,CAAC,gBAAgB,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,YAC9D,cAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACrB,KAAC,OAAO,IACJ,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,KAAK,EACb,YAAY,EAAC,YAAY,EACzB,QAAQ,EAAE,kBAAkB,GAC9B,GACA,IARA,GAAG,CASP,CACT,CAAC,CAAC;AACP,CAAC,CACJ,CAAC"}
|
@@ -1,14 +1,23 @@
|
|
1
|
+
import type { ETenantType } from '../../../../../types/api/tenant';
|
1
2
|
import './TabCard.scss';
|
2
|
-
interface
|
3
|
+
interface TabCardBaseProps {
|
3
4
|
text: string;
|
4
|
-
value: number;
|
5
|
-
limit: number;
|
6
5
|
active?: boolean;
|
7
6
|
helpText?: string;
|
7
|
+
subtitle?: string;
|
8
|
+
}
|
9
|
+
interface TabCardDefaultProps extends TabCardBaseProps {
|
10
|
+
databaseType?: Exclude<ETenantType, 'Serverless'>;
|
11
|
+
value: number;
|
12
|
+
limit: number;
|
8
13
|
legendFormatter: (params: {
|
9
14
|
value: number;
|
10
15
|
capacity: number;
|
11
16
|
}) => string;
|
12
17
|
}
|
13
|
-
|
18
|
+
interface TabCardServerlessProps extends TabCardBaseProps {
|
19
|
+
databaseType: 'Serverless';
|
20
|
+
}
|
21
|
+
type TabCardProps = TabCardDefaultProps | TabCardServerlessProps;
|
22
|
+
export declare function TabCard(props: TabCardProps): import("react/jsx-runtime").JSX.Element;
|
14
23
|
export {};
|
@@ -1,16 +1,27 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React, { useMemo } from 'react';
|
2
3
|
import { Card, Flex } from '@gravity-ui/uikit';
|
3
4
|
import { DoughnutMetrics } from '../../../../../components/DoughnutMetrics/DoughnutMetrics';
|
4
5
|
import { getDiagramValues } from '../../../../../containers/Cluster/ClusterOverview/utils';
|
5
6
|
import { cn } from '../../../../../utils/cn';
|
6
7
|
import './TabCard.scss';
|
7
8
|
const b = cn('tenant-tab-card');
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
9
|
+
function isServerlessProps(props) {
|
10
|
+
return props.databaseType === 'Serverless';
|
11
|
+
}
|
12
|
+
function TabCardContainer({ active, children }) {
|
13
|
+
return (_jsx("div", { className: b({ active }), children: _jsx(Card, { className: b('card-container', { active }), type: "container", view: active ? 'outlined' : 'raised', children: children }) }));
|
14
|
+
}
|
15
|
+
const TabCardDefaultContent = React.memo(function TabCardDefaultContent({ text, value, limit, helpText, legendFormatter, }) {
|
16
|
+
const diagram = useMemo(() => getDiagramValues({ value, capacity: limit, legendFormatter }), [value, limit, legendFormatter]);
|
17
|
+
const { status, percents, legend, fill } = diagram;
|
18
|
+
return (_jsxs(Flex, { gap: 3, alignItems: "center", children: [_jsx(DoughnutMetrics, { size: "small", status: status, fillWidth: fill, className: b('doughnut'), children: _jsx(DoughnutMetrics.Value, { variant: "subheader-1", children: percents }) }), _jsxs("div", { className: b('legend-wrapper'), children: [_jsx(DoughnutMetrics.Legend, { variant: "subheader-2", children: legend }), _jsx(DoughnutMetrics.Legend, { variant: "body-1", color: "secondary", note: helpText, noteIconSize: "s", children: text })] })] }));
|
19
|
+
});
|
20
|
+
const TabCardServerlessContent = React.memo(function TabCardServerlessContent({ text, helpText, subtitle, }) {
|
21
|
+
return (_jsxs("div", { className: b('legend-wrapper'), children: [_jsx(DoughnutMetrics.Legend, { variant: "subheader-2", note: helpText, noteIconSize: "s", children: text }), subtitle ? (_jsx(DoughnutMetrics.Legend, { variant: "body-1", color: "secondary", children: subtitle })) : null] }));
|
22
|
+
});
|
23
|
+
export function TabCard(props) {
|
24
|
+
const { active } = props;
|
25
|
+
return (_jsx(TabCardContainer, { active: active, children: isServerlessProps(props) ? (_jsx(TabCardServerlessContent, { text: props.text, helpText: props.helpText, subtitle: props.subtitle })) : (_jsx(TabCardDefaultContent, { text: props.text, value: props.value, limit: props.limit, helpText: props.helpText, legendFormatter: props.legendFormatter })) }));
|
15
26
|
}
|
16
27
|
//# sourceMappingURL=TabCard.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TabCard.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,2DAA2D,CAAC;AAC1F,OAAO,EAAC,gBAAgB,EAAC,MAAM,yDAAyD,CAAC;
|
1
|
+
{"version":3,"file":"TabCard.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TabCard/TabCard.tsx"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,10 @@
|
|
1
1
|
import type { AdditionalNodesProps } from '../../../../../types/additionalProps';
|
2
|
+
import type { ETenantType } from '../../../../../types/api/tenant';
|
2
3
|
interface TenantCpuProps {
|
3
4
|
tenantName: string;
|
5
|
+
databaseFullPath?: string;
|
4
6
|
additionalNodesProps?: AdditionalNodesProps;
|
7
|
+
databaseType?: ETenantType;
|
5
8
|
}
|
6
|
-
export declare function TenantCpu({ tenantName, additionalNodesProps }: TenantCpuProps): import("react/jsx-runtime").JSX.Element;
|
9
|
+
export declare function TenantCpu({ tenantName, additionalNodesProps, databaseType, databaseFullPath, }: TenantCpuProps): import("react/jsx-runtime").JSX.Element;
|
7
10
|
export {};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
2
2
|
import { Flex } from '@gravity-ui/uikit';
|
3
3
|
import { setTopQueriesFilters } from '../../../../../store/reducers/executeTopQueries/executeTopQueries';
|
4
4
|
import { TENANT_DIAGNOSTICS_TABS_IDS } from '../../../../../store/reducers/tenant/constants';
|
@@ -12,12 +12,13 @@ import { TopNodesByLoad } from './TopNodesByLoad';
|
|
12
12
|
import { TopQueries } from './TopQueries';
|
13
13
|
import { TopShards } from './TopShards';
|
14
14
|
import { cpuDashboardConfig } from './cpuDashboardConfig';
|
15
|
-
export function TenantCpu({ tenantName, additionalNodesProps }) {
|
15
|
+
export function TenantCpu({ tenantName, additionalNodesProps, databaseType, databaseFullPath, }) {
|
16
16
|
const dispatch = useTypedDispatch();
|
17
17
|
const getDiagnosticsPageLink = useDiagnosticsPageLinkGetter();
|
18
18
|
const allNodesLink = getDiagnosticsPageLink(TENANT_DIAGNOSTICS_TABS_IDS.nodes);
|
19
19
|
const topShardsLink = getDiagnosticsPageLink(TENANT_DIAGNOSTICS_TABS_IDS.topShards);
|
20
20
|
const topQueriesLink = getDiagnosticsPageLink(TENANT_DIAGNOSTICS_TABS_IDS.topQueries);
|
21
|
-
|
21
|
+
const isServerless = databaseType === 'Serverless';
|
22
|
+
return (_jsxs(Flex, { direction: "column", gap: 4, children: [!isServerless && (_jsxs(_Fragment, { children: [_jsx(TenantDashboard, { database: tenantName, charts: cpuDashboardConfig }), _jsx(StatsWrapper, { allEntitiesLink: allNodesLink, title: i18n('title_top-nodes-load'), children: _jsx(TopNodesByLoad, { tenantName: tenantName, additionalNodesProps: additionalNodesProps }) }), _jsx(StatsWrapper, { title: i18n('title_top-nodes-pool'), allEntitiesLink: allNodesLink, children: _jsx(TopNodesByCpu, { tenantName: tenantName, additionalNodesProps: additionalNodesProps }) })] })), _jsx(StatsWrapper, { title: i18n('title_top-shards'), allEntitiesLink: topShardsLink, children: _jsx(TopShards, { tenantName: tenantName, path: tenantName, databaseFullPath: databaseFullPath }) }), _jsx(StatsWrapper, { title: i18n('title_top-queries'), allEntitiesLink: topQueriesLink, onAllEntitiesClick: () => dispatch(setTopQueriesFilters({ from: undefined, to: undefined })), children: _jsx(TopQueries, { tenantName: tenantName }) })] }));
|
22
23
|
}
|
23
24
|
//# sourceMappingURL=TenantCpu.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TenantCpu.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,mEAAmE,CAAC;AACvG,OAAO,EAAC,2BAA2B,EAAC,MAAM,gDAAgD,CAAC;
|
1
|
+
{"version":3,"file":"TenantCpu.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,mEAAmE,CAAC;AACvG,OAAO,EAAC,2BAA2B,EAAC,MAAM,gDAAgD,CAAC;AAG3F,OAAO,EAAC,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAC,4BAA4B,EAAC,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AASxD,MAAM,UAAU,SAAS,CAAC,EACtB,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,GACH;IACb,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,sBAAsB,GAAG,4BAA4B,EAAE,CAAC;IAE9D,MAAM,YAAY,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAEtF,MAAM,YAAY,GAAG,YAAY,KAAK,YAAY,CAAC;IAEnD,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAC1B,CAAC,YAAY,IAAI,CACd,8BACI,KAAC,eAAe,IAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,GAAI,EACrE,KAAC,YAAY,IACT,eAAe,EAAE,YAAY,EAC7B,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAEnC,KAAC,cAAc,IACX,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,GAC5C,GACS,EACf,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,EACnC,eAAe,EAAE,YAAY,YAE7B,KAAC,aAAa,IACV,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,GAC5C,GACS,IAChB,CACN,EACD,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,eAAe,EAAE,aAAa,YACzE,KAAC,SAAS,IACN,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,EAChB,gBAAgB,EAAE,gBAAgB,GACpC,GACS,EACf,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAChC,eAAe,EAAE,cAAc,EAC/B,kBAAkB,EAAE,GAAG,EAAE,CACrB,QAAQ,CAAC,oBAAoB,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAC,CAAC,CAAC,YAGpE,KAAC,UAAU,IAAC,UAAU,EAAE,UAAU,GAAI,GAC3B,IACZ,CACV,CAAC;AACN,CAAC"}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
interface TopShardsProps {
|
2
2
|
tenantName: string;
|
3
3
|
path: string;
|
4
|
+
databaseFullPath?: string;
|
4
5
|
}
|
5
|
-
export declare const TopShards: ({ tenantName, path }: TopShardsProps) => import("react/jsx-runtime").JSX.Element;
|
6
|
+
export declare const TopShards: ({ tenantName, path, databaseFullPath }: TopShardsProps) => import("react/jsx-runtime").JSX.Element;
|
6
7
|
export {};
|
@@ -6,11 +6,17 @@ import { useAutoRefreshInterval } from '../../../../../utils/hooks';
|
|
6
6
|
import { parseQueryErrorToString } from '../../../../../utils/query';
|
7
7
|
import { TenantOverviewTableLayout } from '../TenantOverviewTableLayout';
|
8
8
|
const columnsIds = ['TabletId', 'Path', 'CPUCores'];
|
9
|
-
export const TopShards = ({ tenantName, path }) => {
|
9
|
+
export const TopShards = ({ tenantName, path, databaseFullPath = tenantName }) => {
|
10
10
|
var _a, _b;
|
11
11
|
const ShardsTable = useComponent('ShardsTable');
|
12
12
|
const [autoRefreshInterval] = useAutoRefreshInterval();
|
13
|
-
|
13
|
+
let normalizedPath = path;
|
14
|
+
if (tenantName !== databaseFullPath) {
|
15
|
+
//tenantName may be database full path or database id. If it is database id, we must remove it from object's path and add database full path instead
|
16
|
+
const shrinkedPath = path.startsWith(tenantName) ? path.slice(tenantName.length) : path;
|
17
|
+
normalizedPath = databaseFullPath + shrinkedPath;
|
18
|
+
}
|
19
|
+
const { currentData, isFetching, error } = topShardsApi.useGetTopShardsQuery({ database: tenantName, path: normalizedPath, databaseFullPath }, { pollingInterval: autoRefreshInterval });
|
14
20
|
const loading = isFetching && currentData === undefined;
|
15
21
|
const data = ((_b = (_a = currentData === null || currentData === void 0 ? void 0 : currentData.resultSets) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.result) || [];
|
16
22
|
return (_jsx(TenantOverviewTableLayout, { loading: loading, error: parseQueryErrorToString(error), withData: Boolean(currentData), children: _jsx(ShardsTable, { data: data, schemaPath: tenantName, database: tenantName, columnsIds: columnsIds, settings: TENANT_OVERVIEW_TABLES_SETTINGS }) }));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TopShards.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,iEAAiE,CAAC;AAE7F,OAAO,EAAC,YAAY,EAAC,MAAM,gFAAgF,CAAC;AAC5G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AACvE,MAAM,UAAU,GAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"TopShards.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TopShards.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,iEAAiE,CAAC;AAE7F,OAAO,EAAC,YAAY,EAAC,MAAM,gFAAgF,CAAC;AAC5G,OAAO,EAAC,+BAA+B,EAAC,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AACvE,MAAM,UAAU,GAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAQzE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAC,UAAU,EAAE,IAAI,EAAE,gBAAgB,GAAG,UAAU,EAAiB,EAAE,EAAE;;IAC3F,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAEhD,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,UAAU,KAAK,gBAAgB,EAAE,CAAC;QAClC,oJAAoJ;QACpJ,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxF,cAAc,GAAG,gBAAgB,GAAG,YAAY,CAAC;IACrD,CAAC;IAED,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,YAAY,CAAC,oBAAoB,CACtE,EAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAC,EAC9D,EAAC,eAAe,EAAE,mBAAmB,EAAC,CACzC,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,IAAI,WAAW,KAAK,SAAS,CAAC;IACxD,MAAM,IAAI,GAAG,CAAA,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAG,CAAC,CAAC,0CAAE,MAAM,KAAI,EAAE,CAAC;IAExD,OAAO,CACH,KAAC,yBAAyB,IACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,uBAAuB,CAAC,KAAK,CAAC,EACrC,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,YAE9B,KAAC,WAAW,IACR,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,UAAU,EACpB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,+BAA+B,GAC3C,GACsB,CAC/B,CAAC;AACN,CAAC,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
-
import { Button, Flex, Icon } from '@gravity-ui/uikit';
|
2
|
+
import { Button, Flex, HelpMark, Icon, Label } from '@gravity-ui/uikit';
|
3
3
|
import { EntityStatus } from '../../../../components/EntityStatus/EntityStatus';
|
4
4
|
import { LoaderWrapper } from '../../../../components/LoaderWrapper/LoaderWrapper';
|
5
5
|
import { QueriesActivityBar } from '../../../../components/QueriesActivityBar/QueriesActivityBar';
|
@@ -19,6 +19,7 @@ import { TenantCpu } from './TenantCpu/TenantCpu';
|
|
19
19
|
import { TenantMemory } from './TenantMemory/TenantMemory';
|
20
20
|
import { TenantNetwork } from './TenantNetwork/TenantNetwork';
|
21
21
|
import { TenantStorage } from './TenantStorage/TenantStorage';
|
22
|
+
import i18n from './i18n';
|
22
23
|
import { b } from './utils';
|
23
24
|
import './TenantOverview.scss';
|
24
25
|
export function TenantOverview({ tenantName, additionalTenantProps, additionalNodesProps, }) {
|
@@ -30,6 +31,12 @@ export function TenantOverview({ tenantName, additionalTenantProps, additionalNo
|
|
30
31
|
const { currentData: tenant, isFetching } = tenantApi.useGetTenantInfoQuery({ path: tenantName, clusterName, isMetaDatabasesAvailable }, { pollingInterval: autoRefreshInterval });
|
31
32
|
const tenantLoading = isFetching && tenant === undefined;
|
32
33
|
const { Name, Type, Overall } = tenant || {};
|
34
|
+
const isServerless = Type === 'Serverless';
|
35
|
+
const activeMetricsTab = isServerless &&
|
36
|
+
metricsTab !== TENANT_METRICS_TABS_IDS.cpu &&
|
37
|
+
metricsTab !== TENANT_METRICS_TABS_IDS.storage
|
38
|
+
? TENANT_METRICS_TABS_IDS.cpu
|
39
|
+
: metricsTab;
|
33
40
|
const tenantType = mapDatabaseTypeToDBName(Type);
|
34
41
|
// FIXME: remove after correct data is added to tenantInfo
|
35
42
|
const { currentData: tenantSchemaData } = overviewApi.useGetOverviewQuery({
|
@@ -62,15 +69,15 @@ export function TenantOverview({ tenantName, additionalTenantProps, additionalNo
|
|
62
69
|
tabletStorageLimit,
|
63
70
|
};
|
64
71
|
const renderName = () => {
|
65
|
-
return (
|
72
|
+
return (_jsxs(Flex, { alignItems: "center", style: { overflow: 'hidden' }, children: [_jsx(EntityStatus, { status: Overall, name: Name || TENANT_DEFAULT_TITLE, withLeftTrim: true, hasClipboardButton: Boolean(tenant), clipboardButtonAlwaysVisible: true }), isServerless ? (_jsx("div", { className: b('serverless-tag'), children: _jsx(Label, { theme: "clear", size: "s", className: b('serverless-tag-label'), children: _jsxs(Flex, { alignItems: "center", gap: "2", children: [i18n('value_serverless'), _jsx(HelpMark, { iconSize: "s", className: b('serverless-tag-tooltip'), children: i18n('context_serverless-tooltip') })] }) }) })) : null] }));
|
66
73
|
};
|
67
74
|
const renderTabContent = () => {
|
68
|
-
switch (
|
75
|
+
switch (activeMetricsTab) {
|
69
76
|
case TENANT_METRICS_TABS_IDS.cpu: {
|
70
|
-
return (_jsx(TenantCpu, { tenantName: tenantName, additionalNodesProps: additionalNodesProps }));
|
77
|
+
return (_jsx(TenantCpu, { tenantName: tenantName, additionalNodesProps: additionalNodesProps, databaseType: Type, databaseFullPath: Name }));
|
71
78
|
}
|
72
79
|
case TENANT_METRICS_TABS_IDS.storage: {
|
73
|
-
return _jsx(TenantStorage, { tenantName: tenantName, metrics: storageMetrics });
|
80
|
+
return (_jsx(TenantStorage, { tenantName: tenantName, metrics: storageMetrics, databaseType: Type }));
|
74
81
|
}
|
75
82
|
case TENANT_METRICS_TABS_IDS.memory: {
|
76
83
|
return (_jsx(TenantMemory, { tenantName: tenantName, memoryUsed: tenantData.MemoryUsed, memoryLimit: tenantData.MemoryLimit, memoryStats: tenantData.MemoryStats }));
|
@@ -78,11 +85,14 @@ export function TenantOverview({ tenantName, additionalTenantProps, additionalNo
|
|
78
85
|
case TENANT_METRICS_TABS_IDS.network: {
|
79
86
|
return (_jsx(TenantNetwork, { tenantName: tenantName, additionalNodesProps: additionalNodesProps }));
|
80
87
|
}
|
88
|
+
default: {
|
89
|
+
return null;
|
90
|
+
}
|
81
91
|
}
|
82
92
|
};
|
83
93
|
const links = getDatabaseLinks(additionalTenantProps, Name, Type);
|
84
94
|
return (_jsx(LoaderWrapper, { loading: tenantLoading, children: _jsxs("div", { className: b(), children: [_jsxs("div", { className: b('info'), children: [_jsx("div", { className: b('top-label'), children: tenantType }), _jsxs(Flex, { alignItems: "center", gap: "1", className: b('top'), children: [renderName(), _jsx(Flex, { gap: "2", children: links.map(({ title, url, icon }) => (_jsx(Button, { href: url, target: "_blank", size: "xs", title: title, children: _jsx(Icon, { data: icon }) }, title))) })] }), _jsxs(Flex, { direction: "column", gap: 4, children: [_jsx(HealthcheckPreview, { tenantName: tenantName }), _jsx(QueriesActivityBar, { tenantName: tenantName }), _jsx(MetricsTabs, { poolsCpuStats: poolsStats, memoryStats: memoryStats, blobStorageStats: blobStorageStats, tabletStorageStats: tabletStorageStats, networkStats: networkStats, storageGroupsCount: tenantData.StorageGroups
|
85
95
|
? Number(tenantData.StorageGroups)
|
86
|
-
: undefined })] })] }), _jsx("div", { className: b('tab-content'), children: renderTabContent() })] }) }));
|
96
|
+
: undefined, databaseType: Type, activeTab: activeMetricsTab })] })] }), _jsx("div", { className: b('tab-content'), children: renderTabContent() })] }) }));
|
87
97
|
}
|
88
98
|
//# sourceMappingURL=TenantOverview.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TenantOverview.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,mBAAmB,CAAC;
|
1
|
+
{"version":3,"file":"TenantOverview.js","sourceRoot":"","sources":["../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantOverview.tsx"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { ETenantType } from '../../../../../types/api/tenant';
|
1
2
|
export interface TenantStorageMetrics {
|
2
3
|
blobStorageUsed?: number;
|
3
4
|
blobStorageLimit?: number;
|
@@ -7,6 +8,7 @@ export interface TenantStorageMetrics {
|
|
7
8
|
interface TenantStorageProps {
|
8
9
|
tenantName: string;
|
9
10
|
metrics: TenantStorageMetrics;
|
11
|
+
databaseType?: ETenantType;
|
10
12
|
}
|
11
|
-
export declare function TenantStorage({ tenantName, metrics }: TenantStorageProps): import("react/jsx-runtime").JSX.Element;
|
13
|
+
export declare function TenantStorage({ tenantName, metrics, databaseType }: TenantStorageProps): import("react/jsx-runtime").JSX.Element;
|
12
14
|
export {};
|
@@ -13,7 +13,7 @@ import i18n from '../i18n';
|
|
13
13
|
import { TopGroups } from './TopGroups';
|
14
14
|
import { TopTables } from './TopTables';
|
15
15
|
import { storageDashboardConfig } from './storageDashboardConfig';
|
16
|
-
export function TenantStorage({ tenantName, metrics }) {
|
16
|
+
export function TenantStorage({ tenantName, metrics, databaseType }) {
|
17
17
|
const { blobStorageUsed, tabletStorageUsed, blobStorageLimit, tabletStorageLimit } = metrics;
|
18
18
|
const query = useSearchQuery();
|
19
19
|
const info = [
|
@@ -26,6 +26,12 @@ export function TenantStorage({ tenantName, metrics }) {
|
|
26
26
|
value: (_jsx(ProgressWrapper, { value: blobStorageUsed, capacity: blobStorageLimit, formatValues: formatStorageValues, withCapacityUsage: true })),
|
27
27
|
},
|
28
28
|
];
|
29
|
+
if (databaseType === 'Serverless') {
|
30
|
+
return (_jsx(Flex, { direction: "column", gap: 4, children: _jsx(StatsWrapper, { title: i18n('title_top-tables-by-size'), allEntitiesLink: getTenantPath({
|
31
|
+
...query,
|
32
|
+
[TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS.storage,
|
33
|
+
}), children: _jsx(TopTables, { database: tenantName }) }) }));
|
34
|
+
}
|
29
35
|
return (_jsxs(Flex, { direction: "column", gap: 4, children: [_jsx(TenantDashboard, { database: tenantName, charts: storageDashboardConfig }), _jsx(InfoViewer, { variant: "small", title: i18n('title_storage-details'), info: info }), _jsx(StatsWrapper, { title: i18n('title_top-tables-by-size'), children: _jsx(TopTables, { database: tenantName }) }), _jsx(StatsWrapper, { title: i18n('title_top-groups-by-usage'), allEntitiesLink: getTenantPath({
|
30
36
|
...query,
|
31
37
|
[TenantTabsGroups.diagnosticsTab]: TENANT_DIAGNOSTICS_TABS_IDS.storage,
|
package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TenantStorage.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,UAAU,EAAC,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAC,2BAA2B,EAAC,MAAM,gDAAgD,CAAC;
|
1
|
+
{"version":3,"file":"TenantStorage.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TenantStorage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,UAAU,EAAC,MAAM,iDAAiD,CAAC;AAC3E,OAAO,EAAC,gBAAgB,EAAC,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAC,eAAe,EAAC,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAC,2BAA2B,EAAC,MAAM,gDAAgD,CAAC;AAE3F,OAAO,EAAC,mBAAmB,EAAC,MAAM,oDAAoD,CAAC;AACvF,OAAO,EAAC,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAehE,MAAM,UAAU,aAAa,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAqB;IACjF,MAAM,EAAC,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAC,GAAG,OAAO,CAAC;IAC3F,MAAM,KAAK,GAAG,cAAc,EAAE,CAAC;IAE/B,MAAM,IAAI,GAAG;QACT;YACI,KAAK,EAAE,CACH,KAAC,gBAAgB,IACb,IAAI,EAAE,IAAI,CAAC,8BAA8B,CAAC,EAC1C,cAAc,EAAE,IAAI,CAAC,oCAAoC,CAAC,GAC5D,CACL;YACD,KAAK,EAAE,CACH,KAAC,eAAe,IACZ,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,mBAAmB,EACjC,iBAAiB,SACnB,CACL;SACJ;QACD;YACI,KAAK,EAAE,CACH,KAAC,gBAAgB,IACb,IAAI,EAAE,IAAI,CAAC,0BAA0B,CAAC,EACtC,cAAc,EAAE,IAAI,CAAC,gCAAgC,CAAC,GACxD,CACL;YACD,KAAK,EAAE,CACH,KAAC,eAAe,IACZ,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,mBAAmB,EACjC,iBAAiB,SACnB,CACL;SACJ;KACJ,CAAC;IAEF,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;QAChC,OAAO,CACH,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,YAC3B,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,EACvC,eAAe,EAAE,aAAa,CAAC;oBAC3B,GAAG,KAAK;oBACR,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC,OAAO;iBACzE,CAAC,YAEF,KAAC,SAAS,IAAC,QAAQ,EAAE,UAAU,GAAI,GACxB,GACZ,CACV,CAAC;IACN,CAAC;IAED,OAAO,CACH,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,aAC3B,KAAC,eAAe,IAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,GAAI,EACzE,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,IAAI,GAAI,EAChF,KAAC,YAAY,IAAC,KAAK,EAAE,IAAI,CAAC,0BAA0B,CAAC,YACjD,KAAC,SAAS,IAAC,QAAQ,EAAE,UAAU,GAAI,GACxB,EACf,KAAC,YAAY,IACT,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC,EACxC,eAAe,EAAE,aAAa,CAAC;oBAC3B,GAAG,KAAK;oBACR,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,2BAA2B,CAAC,OAAO;iBACzE,CAAC,YAEF,KAAC,SAAS,IAAC,MAAM,EAAE,UAAU,GAAI,GACtB,IACZ,CACV,CAAC;AACN,CAAC"}
|
@@ -20,7 +20,7 @@ export function TopGroups({ tenant }) {
|
|
20
20
|
const [autoRefreshInterval] = useAutoRefreshInterval();
|
21
21
|
const [columns, fieldsRequired] = getColumns();
|
22
22
|
const { currentData, isFetching, error } = storageApi.useGetStorageGroupsInfoQuery({
|
23
|
-
tenant,
|
23
|
+
database: tenant,
|
24
24
|
sort: '-Usage',
|
25
25
|
with: 'all',
|
26
26
|
limit: TENANT_OVERVIEW_TABLES_LIMIT,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TopGroups.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,mEAAmE,CAAC;AACtG,OAAO,EACH,qBAAqB,EACrB,gCAAgC,GACnC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,+CAA+C,CAAC;AAEzE,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,qBAAqB,EAAC,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAC,0BAA0B,EAAC,MAAM,iEAAiE,CAAC;AAC3G,OAAO,EACH,6BAA6B,EAC7B,mCAAmC,GACtC,MAAM,mEAAmE,CAAC;AAE3E,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AAEvE,SAAS,UAAU;IACf,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAC;IAErD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;IAE5F,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAMD,MAAM,UAAU,SAAS,CAAC,EAAC,MAAM,EAAiB;IAC9C,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,sBAAsB,GAAG,gCAAgC,EAAE,CAAC;IAClE,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,UAAU,EAAE,CAAC;IAE/C,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,UAAU,CAAC,4BAA4B,CAC5E;QACI,MAAM;
|
1
|
+
{"version":3,"file":"TopGroups.js","sourceRoot":"","sources":["../../../../../../src/containers/Tenant/Diagnostics/TenantOverview/TenantStorage/TopGroups.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,mBAAmB,EAAC,MAAM,mEAAmE,CAAC;AACtG,OAAO,EACH,qBAAqB,EACrB,gCAAgC,GACnC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAC,MAAM,+CAA+C,CAAC;AAEzE,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,qBAAqB,EAAC,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAC,0BAA0B,EAAC,MAAM,iEAAiE,CAAC;AAC3G,OAAO,EACH,6BAA6B,EAC7B,mCAAmC,GACtC,MAAM,mEAAmE,CAAC;AAE3E,OAAO,EAAC,yBAAyB,EAAC,MAAM,8BAA8B,CAAC;AAEvE,SAAS,UAAU;IACf,MAAM,eAAe,GAAG,0BAA0B,EAAE,CAAC;IAErD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;IAE5F,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAMD,MAAM,UAAU,SAAS,CAAC,EAAC,MAAM,EAAiB;IAC9C,MAAM,kBAAkB,GAAG,qBAAqB,EAAE,CAAC;IACnD,MAAM,sBAAsB,GAAG,gCAAgC,EAAE,CAAC;IAClE,MAAM,CAAC,mBAAmB,CAAC,GAAG,sBAAsB,EAAE,CAAC;IAEvD,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,UAAU,EAAE,CAAC;IAE/C,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,KAAK,EAAC,GAAG,UAAU,CAAC,4BAA4B,CAC5E;QACI,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,4BAA4B;QACnC,sBAAsB,EAAE,sBAAsB;QAC9C,cAAc;KACjB,EACD;QACI,eAAe,EAAE,mBAAmB;QACpC,IAAI,EAAE,CAAC,kBAAkB;KAC5B,CACJ,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,IAAI,WAAW,KAAK,SAAS,CAAC;IAExD,MAAM,MAAM,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,KAAI,EAAE,CAAC;IAEzC,OAAO,CACH,KAAC,yBAAyB,IACtB,OAAO,EAAE,OAAO,IAAI,CAAC,kBAAkB,EACvC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,YAE9B,KAAC,mBAAmB,IAChB,iBAAiB,EAAE,mCAAmC,EACtD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,+BAA+B,GAC3C,GACsB,CAC/B,CAAC;AACN,CAAC"}
|
@@ -36,6 +36,10 @@
|
|
36
36
|
"title_memory-details": "Memory Details",
|
37
37
|
"field_memory-usage": "Memory usage",
|
38
38
|
"context_capacity-usage": "{{value}} of {{capacity}}",
|
39
|
-
"
|
40
|
-
"
|
39
|
+
"title_network-stats-unavailable": "Network Statistics Unavailable",
|
40
|
+
"context_network-stats-unavailable": "Network ping and clock skew statistics require a newer backend version. Please upgrade your YDB installation to access these features.",
|
41
|
+
"value_serverless": "Serverless",
|
42
|
+
"context_serverless-tooltip": "Some metrics are hidden in Serverless mode — resources scale automatically based on workload",
|
43
|
+
"context_serverless-autoscaled": "Auto-Scaled Resources",
|
44
|
+
"context_serverless-storage-subtitle": "{{legend}} | {{groups}} groups"
|
41
45
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "context_cpu-description" | "context_memory-description" | "context_storage-description" | "context_network-description" | "top-nodes.empty-data" | "title_top-nodes-load" | "title_top-nodes-pool" | "cards.cpu-label" | "cards.storage-label" | "cards.memory-label" | "cards.network-label" | "cards.network-note" | "context_cpu-load" | "context_storage-groups" | "context_memory-used" | "context_network-usage" | "charts.queries-per-second" | "charts.queries-latency" | "charts.cpu-usage" | "charts.storage-usage" | "charts.memory-usage" | "charts.network-utilization" | "title_storage-details" | "storage.tablet-storage-title" | "storage.tablet-storage-description" | "storage.db-storage-title" | "storage.db-storage-description" | "title_top-shards" | "title_top-queries" | "title_top-tables-by-size" | "title_top-groups-by-usage" | "title_top-nodes-by-memory" | "title_nodes-by-ping" | "title_nodes-by-skew" | "title_memory-details" | "field_memory-usage" | "context_capacity-usage" | "
|
1
|
+
declare const _default: (key: "context_cpu-description" | "context_memory-description" | "context_storage-description" | "context_network-description" | "top-nodes.empty-data" | "title_top-nodes-load" | "title_top-nodes-pool" | "cards.cpu-label" | "cards.storage-label" | "cards.memory-label" | "cards.network-label" | "cards.network-note" | "context_cpu-load" | "context_storage-groups" | "context_memory-used" | "context_network-usage" | "charts.queries-per-second" | "charts.queries-latency" | "charts.cpu-usage" | "charts.storage-usage" | "charts.memory-usage" | "charts.network-utilization" | "title_storage-details" | "storage.tablet-storage-title" | "storage.tablet-storage-description" | "storage.db-storage-title" | "storage.db-storage-description" | "title_top-shards" | "title_top-queries" | "title_top-tables-by-size" | "title_top-groups-by-usage" | "title_top-nodes-by-memory" | "title_nodes-by-ping" | "title_nodes-by-skew" | "title_memory-details" | "field_memory-usage" | "context_capacity-usage" | "title_network-stats-unavailable" | "context_network-stats-unavailable" | "value_serverless" | "context_serverless-tooltip" | "context_serverless-autoscaled" | "context_serverless-storage-subtitle", params?: import("@gravity-ui/i18n").Params) => string;
|
2
2
|
export default _default;
|
@@ -2,6 +2,7 @@ import './TopShards.scss';
|
|
2
2
|
interface TopShardsProps {
|
3
3
|
tenantName: string;
|
4
4
|
path: string;
|
5
|
+
databaseFullPath: string;
|
5
6
|
}
|
6
|
-
export declare const TopShards: ({ tenantName, path }: TopShardsProps) => import("react/jsx-runtime").JSX.Element;
|
7
|
+
export declare const TopShards: ({ tenantName, path, databaseFullPath }: TopShardsProps) => import("react/jsx-runtime").JSX.Element;
|
7
8
|
export {};
|
@@ -26,7 +26,7 @@ function fillDateRangeFor(value) {
|
|
26
26
|
value.from = 'now-1h';
|
27
27
|
return value;
|
28
28
|
}
|
29
|
-
export const TopShards = ({ tenantName, path }) => {
|
29
|
+
export const TopShards = ({ tenantName, path, databaseFullPath }) => {
|
30
30
|
var _a, _b;
|
31
31
|
const ShardsTable = useComponent('ShardsTable');
|
32
32
|
const dispatch = useTypedDispatch();
|
@@ -45,11 +45,18 @@ export const TopShards = ({ tenantName, path }) => {
|
|
45
45
|
return defaultValue;
|
46
46
|
});
|
47
47
|
const { tableSort, handleTableSort, backendSort } = useTopShardSort();
|
48
|
+
let normalizedPath = path;
|
49
|
+
if (tenantName !== databaseFullPath) {
|
50
|
+
//tenantName may be database full path or database id. If it is database id, we must remove it from object's path and add database full path instead
|
51
|
+
const shrinkedPath = path.startsWith(tenantName) ? path.slice(tenantName.length) : path;
|
52
|
+
normalizedPath = databaseFullPath + shrinkedPath;
|
53
|
+
}
|
48
54
|
const { currentData: result, isFetching, error, } = shardApi.useSendShardQueryQuery({
|
49
55
|
database: tenantName,
|
50
|
-
path:
|
56
|
+
path: normalizedPath,
|
51
57
|
sortOrder: backendSort,
|
52
58
|
filters,
|
59
|
+
databaseFullPath,
|
53
60
|
}, { pollingInterval: autoRefreshInterval });
|
54
61
|
const loading = isFetching && result === undefined;
|
55
62
|
const data = ((_b = (_a = result === null || result === void 0 ? void 0 : result.resultSets) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.result) || [];
|