ydb-embedded-ui 8.25.0 → 8.26.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/assets/icons/overview.svg +1 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.d.ts +6 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.js +33 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.js.map +1 -0
- package/dist/components/CopyLinkButton/CopyLinkButton.scss +6 -0
- package/dist/components/CopyLinkButton/i18n/en.json +4 -0
- package/dist/components/CopyLinkButton/i18n/index.d.ts +2 -0
- package/dist/components/CopyLinkButton/i18n/index.js +5 -0
- package/dist/components/CopyLinkButton/i18n/index.js.map +1 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.d.ts +6 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.js +8 -0
- package/dist/components/DebouncedInput/DebouncedTextInput.js.map +1 -0
- package/dist/components/DoughnutMetrics/DoughnutMetrics.d.ts +3 -1
- package/dist/components/DoughnutMetrics/DoughnutMetrics.js +13 -12
- package/dist/components/DoughnutMetrics/DoughnutMetrics.js.map +1 -1
- package/dist/components/DoughnutMetrics/DoughnutMetrics.scss +14 -7
- package/dist/components/Drawer/Drawer.d.ts +30 -0
- package/dist/components/Drawer/Drawer.js +83 -0
- package/dist/components/Drawer/Drawer.js.map +1 -0
- package/dist/components/Drawer/Drawer.scss +38 -0
- package/dist/components/Drawer/DrawerContext.d.ts +13 -0
- package/dist/components/Drawer/DrawerContext.js +47 -0
- package/dist/components/Drawer/DrawerContext.js.map +1 -0
- package/dist/components/Drawer/index.d.ts +3 -0
- package/dist/components/Drawer/index.js +3 -0
- package/dist/components/Drawer/index.js.map +1 -0
- package/dist/components/EmptyState/EmptyState.scss +3 -0
- package/dist/components/EntityStatusNew/EntityStatus.d.ts +23 -0
- package/dist/components/EntityStatusNew/EntityStatus.js +47 -0
- package/dist/components/EntityStatusNew/EntityStatus.js.map +1 -0
- package/dist/components/EntityStatusNew/EntityStatus.scss +10 -0
- package/dist/components/EntityStatusNew/i18n/en.json +14 -0
- package/dist/components/EntityStatusNew/i18n/index.d.ts +2 -0
- package/dist/components/EntityStatusNew/i18n/index.js +5 -0
- package/dist/components/EntityStatusNew/i18n/index.js.map +1 -0
- package/dist/components/EntityStatusNew/utils.d.ts +2 -0
- package/dist/components/EntityStatusNew/utils.js +23 -0
- package/dist/components/EntityStatusNew/utils.js.map +1 -0
- package/dist/components/JsonViewer/JsonViewer.d.ts +7 -3
- package/dist/components/JsonViewer/JsonViewer.js +11 -1
- package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
- package/dist/components/JsonViewer/unipika/unipika.js +9 -1
- package/dist/components/JsonViewer/unipika/unipika.js.map +1 -1
- package/dist/components/MetricChart/getDefaultDataFormatter.js +4 -11
- package/dist/components/MetricChart/getDefaultDataFormatter.js.map +1 -1
- package/dist/components/MultilineTableHeader/MultilineTableHeader.d.ts +6 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.js +11 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.js.map +1 -0
- package/dist/components/MultilineTableHeader/MultilineTableHeader.scss +3 -0
- package/dist/components/PaginatedTable/PaginatedTable.d.ts +4 -2
- package/dist/components/PaginatedTable/PaginatedTable.js +16 -8
- package/dist/components/PaginatedTable/PaginatedTable.js.map +1 -1
- package/dist/components/PaginatedTable/PaginatedTable.scss +32 -13
- package/dist/components/PaginatedTable/TableChunk.d.ts +4 -3
- package/dist/components/PaginatedTable/TableChunk.js +8 -3
- package/dist/components/PaginatedTable/TableChunk.js.map +1 -1
- package/dist/components/PaginatedTable/TableHead.js +7 -1
- package/dist/components/PaginatedTable/TableHead.js.map +1 -1
- package/dist/components/PaginatedTable/types.d.ts +1 -0
- package/dist/components/PaginatedTable/useScrollBasedChunks.js +7 -0
- package/dist/components/PaginatedTable/useScrollBasedChunks.js.map +1 -1
- package/dist/components/Search/Search.d.ts +2 -1
- package/dist/components/Search/Search.js +3 -21
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/StatusIcon/StatusIcon.js +3 -1
- package/dist/components/StatusIcon/StatusIcon.js.map +1 -1
- package/dist/components/StatusIcon/StatusIcon.scss +6 -0
- package/dist/components/StatusIconNew/StatusIcon.d.ts +7 -0
- package/dist/components/StatusIconNew/StatusIcon.js +19 -0
- package/dist/components/StatusIconNew/StatusIcon.js.map +1 -0
- package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js +12 -1
- package/dist/components/SyntaxHighlighter/YDBSyntaxHighlighter.js.map +1 -1
- package/dist/components/Tags/Tags.d.ts +1 -3
- package/dist/components/Tags/Tags.js +3 -5
- package/dist/components/Tags/Tags.js.map +1 -1
- package/dist/components/nodesColumns/columns.js +1 -0
- package/dist/components/nodesColumns/columns.js.map +1 -1
- package/dist/containers/Cluster/Cluster.js +8 -6
- package/dist/containers/Cluster/Cluster.js.map +1 -1
- package/dist/containers/Cluster/Cluster.scss +7 -8
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.d.ts +4 -2
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js +27 -17
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.js.map +1 -1
- package/dist/containers/Cluster/ClusterInfo/ClusterInfo.scss +2 -8
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.d.ts +8 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js +41 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.js.map +1 -0
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStats.scss +14 -0
- package/dist/containers/Cluster/ClusterInfo/utils/utils.d.ts +3 -0
- package/dist/containers/Cluster/ClusterInfo/utils/utils.js +21 -11
- package/dist/containers/Cluster/ClusterInfo/utils/utils.js.map +1 -1
- package/dist/containers/Cluster/{ClusterDashboard/ClusterDashboard.d.ts → ClusterOverview/ClusterOverview.d.ts} +6 -3
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js +63 -0
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.scss +70 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.d.ts +21 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js +32 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.d.ts +5 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js +30 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsMemory.d.ts +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js +24 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.d.ts +7 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +28 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/components/ClusterMetricsStorage.d.ts +2 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js +24 -0
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.js.map +1 -0
- package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.d.ts +6 -3
- package/dist/containers/Cluster/ClusterOverview/shared.js.map +1 -0
- package/dist/containers/Cluster/ClusterOverview/utils.d.ts +19 -0
- package/dist/containers/Cluster/ClusterOverview/utils.js +32 -0
- package/dist/containers/Cluster/ClusterOverview/utils.js.map +1 -0
- package/dist/containers/Cluster/i18n/en.json +19 -9
- package/dist/containers/Cluster/i18n/index.d.ts +1 -1
- package/dist/containers/Cluster/utils.d.ts +2 -4
- package/dist/containers/Cluster/utils.js +9 -6
- package/dist/containers/Cluster/utils.js.map +1 -1
- package/dist/containers/Header/breadcrumbs.js +1 -4
- package/dist/containers/Header/breadcrumbs.js.map +1 -1
- package/dist/containers/Nodes/NodesTable.js +2 -1
- package/dist/containers/Nodes/NodesTable.js.map +1 -1
- package/dist/containers/Nodes/shared.d.ts +1 -2
- package/dist/containers/Nodes/shared.js +0 -9
- package/dist/containers/Nodes/shared.js.map +1 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.d.ts +2 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.js +1 -1
- package/dist/containers/Storage/EmptyFilter/EmptyFilter.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.d.ts +2 -1
- package/dist/containers/Storage/PDisk/PDisk.js +2 -2
- package/dist/containers/Storage/PDisk/PDisk.js.map +1 -1
- package/dist/containers/Storage/PDisk/PDisk.scss +5 -1
- package/dist/containers/Storage/PaginatedStorageGroups.js +2 -1
- package/dist/containers/Storage/PaginatedStorageGroups.js.map +1 -1
- package/dist/containers/Storage/PaginatedStorageNodes.js +19 -5
- package/dist/containers/Storage/PaginatedStorageNodes.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.d.ts +4 -3
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js +2 -2
- package/dist/containers/Storage/StorageNodes/PaginatedStorageNodesTable.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/StorageNodesColumns.scss +1 -4
- package/dist/containers/Storage/StorageNodes/columns/columns.d.ts +1 -1
- package/dist/containers/Storage/StorageNodes/columns/columns.js +6 -11
- package/dist/containers/Storage/StorageNodes/columns/columns.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/hooks.d.ts +1 -1
- package/dist/containers/Storage/StorageNodes/columns/hooks.js +8 -3
- package/dist/containers/Storage/StorageNodes/columns/hooks.js.map +1 -1
- package/dist/containers/Storage/StorageNodes/columns/types.d.ts +5 -0
- package/dist/containers/Storage/StorageNodes/getNodes.js +1 -0
- package/dist/containers/Storage/StorageNodes/getNodes.js.map +1 -1
- package/dist/containers/Storage/shared.d.ts +0 -2
- package/dist/containers/Storage/shared.js +0 -9
- package/dist/containers/Storage/shared.js.map +1 -1
- package/dist/containers/Storage/types.d.ts +8 -0
- package/dist/containers/Storage/utils/index.d.ts +1 -0
- package/dist/containers/Storage/utils/index.js +1 -0
- package/dist/containers/Storage/utils/index.js.map +1 -1
- package/dist/containers/Storage/utils/useStorageColumnsSettings.d.ts +6 -0
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js +35 -0
- package/dist/containers/Storage/utils/useStorageColumnsSettings.js.map +1 -0
- package/dist/containers/Tablet/components/TabletInfo/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js +16 -17
- package/dist/containers/Tenant/Diagnostics/Diagnostics.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Diagnostics.scss +8 -2
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.d.ts +6 -33
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js +40 -6
- package/dist/containers/Tenant/Diagnostics/DiagnosticsPages.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.d.ts +0 -5
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js +0 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Headers/Headers.scss +0 -4
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js +2 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Partitions/Partitions.scss +1 -15
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js +24 -10
- package/dist/containers/Tenant/Diagnostics/Partitions/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js +2 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/RunningQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js +3 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/TopQueriesData.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js +7 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/columns.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/columns/constants.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js +37 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useRunningQueriesSort.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.d.ts +10 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js +50 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useSortParam.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js +40 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/hooks/useTopQueriesSort.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.d.ts +0 -10
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js +0 -29
- package/dist/containers/Tenant/Diagnostics/TopQueries/utils.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js +14 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/FullValue.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.d.ts +9 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js +140 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicData.scss +28 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.d.ts +14 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js +68 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/TopicDataControls/TopicDataControls.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.d.ts +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js +122 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/__test__/getData.test.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/Columns.scss +22 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js +154 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/columns/columns.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.d.ts +15 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js +54 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/getData.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/en.json +28 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.d.ts +2 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js +5 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/i18n/index.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.d.ts +11 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js +34 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/useTopicDataQueryParams.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.d.ts +7 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js +51 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/constants.js.map +1 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.d.ts +30 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js +30 -0
- package/dist/containers/Tenant/Diagnostics/TopicData/utils/types.js.map +1 -0
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js +8 -2
- package/dist/containers/Tenant/ObjectSummary/ObjectTree.js.map +1 -1
- package/dist/containers/Tenant/TenantPages.d.ts +2 -1
- package/dist/containers/Tenant/TenantPages.js.map +1 -1
- package/dist/containers/Tenant/utils/schema.d.ts +1 -0
- package/dist/containers/Tenant/utils/schema.js +1 -0
- package/dist/containers/Tenant/utils/schema.js.map +1 -1
- package/dist/containers/Tenants/Tenants.js +1 -1
- package/dist/containers/Tenants/Tenants.js.map +1 -1
- package/dist/containers/Tenants/Tenants.scss +0 -4
- package/dist/containers/UserSettings/i18n/en.json +1 -0
- package/dist/containers/UserSettings/i18n/index.d.ts +1 -1
- package/dist/containers/UserSettings/settings.d.ts +1 -0
- package/dist/containers/UserSettings/settings.js +11 -2
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/services/api/viewer.d.ts +2 -1
- package/dist/services/api/viewer.js +6 -0
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/services/settings.d.ts +2 -0
- package/dist/services/settings.js +3 -1
- package/dist/services/settings.js.map +1 -1
- package/dist/store/reducers/capabilities/hooks.d.ts +1 -0
- package/dist/store/reducers/capabilities/hooks.js +3 -0
- package/dist/store/reducers/capabilities/hooks.js.map +1 -1
- package/dist/store/reducers/cluster/cluster.js +1 -1
- package/dist/store/reducers/cluster/cluster.js.map +1 -1
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js +4 -2
- package/dist/store/reducers/executeTopQueries/executeTopQueries.js.map +1 -1
- package/dist/store/reducers/storage/types.d.ts +6 -2
- package/dist/store/reducers/storage/utils.d.ts +2 -2
- package/dist/store/reducers/storage/utils.js +10 -9
- package/dist/store/reducers/storage/utils.js.map +1 -1
- package/dist/store/reducers/tenant/constants.d.ts +1 -0
- package/dist/store/reducers/tenant/constants.js +1 -0
- package/dist/store/reducers/tenant/constants.js.map +1 -1
- package/dist/store/reducers/topic.d.ts +12 -0
- package/dist/store/reducers/topic.js +16 -0
- package/dist/store/reducers/topic.js.map +1 -1
- package/dist/styles/mixins.scss +0 -20
- package/dist/types/api/capabilities.d.ts +1 -1
- package/dist/types/api/cluster.d.ts +8 -1
- package/dist/types/api/cluster.js +7 -3
- package/dist/types/api/cluster.js.map +1 -1
- package/dist/types/api/topic.d.ts +117 -0
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.js +2 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dataFormatters/dataFormatters.js +1 -1
- package/dist/utils/dataFormatters/dataFormatters.js.map +1 -1
- package/dist/utils/hooks/useDebouncedValue.d.ts +5 -0
- package/dist/utils/hooks/useDebouncedValue.js +22 -0
- package/dist/utils/hooks/useDebouncedValue.js.map +1 -0
- package/dist/utils/renderPaginatedTableErrorMessage.d.ts +2 -0
- package/dist/utils/renderPaginatedTableErrorMessage.js +10 -0
- package/dist/utils/renderPaginatedTableErrorMessage.js.map +1 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +7 -0
- package/dist/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/assets/icons/user-check.svg +0 -1
- package/dist/components/Tag/Tag.d.ts +0 -9
- package/dist/components/Tag/Tag.js +0 -8
- package/dist/components/Tag/Tag.js.map +0 -1
- package/dist/components/Tag/Tag.scss +0 -18
- package/dist/components/Tag/index.d.ts +0 -1
- package/dist/components/Tag/index.js +0 -2
- package/dist/components/Tag/index.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js +0 -71
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/ClusterDashboard.scss +0 -52
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.d.ts +0 -17
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCard.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.d.ts +0 -5
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js +0 -26
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsCores.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsMemory.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js +0 -20
- package/dist/containers/Cluster/ClusterDashboard/components/ClusterMetricsStorage.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/shared.js.map +0 -1
- package/dist/containers/Cluster/ClusterDashboard/utils.d.ts +0 -19
- package/dist/containers/Cluster/ClusterDashboard/utils.js +0 -63
- package/dist/containers/Cluster/ClusterDashboard/utils.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.d.ts +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js +0 -42
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/DiskGroupsStatsBars/DiskGroupsStatsBars.scss +0 -6
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.d.ts +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js +0 -8
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.js.map +0 -1
- package/dist/containers/Cluster/ClusterInfo/components/NodesState/NodesState.scss +0 -17
- /package/dist/containers/Cluster/{ClusterDashboard → ClusterOverview}/shared.js +0 -0
@@ -1,12 +1,13 @@
|
|
1
1
|
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import React from 'react';
|
3
3
|
import { Flex } from '@gravity-ui/uikit';
|
4
|
+
import { EntityStatus } from '../../../../components/EntityStatusNew/EntityStatus';
|
4
5
|
import { ProgressViewer } from '../../../../components/ProgressViewer/ProgressViewer';
|
5
6
|
import { Tags } from '../../../../components/Tags';
|
6
7
|
import { isClusterInfoV2 } from '../../../../types/api/cluster';
|
7
8
|
import { formatNumber } from '../../../../utils/dataFormatters/dataFormatters';
|
8
9
|
import i18n from '../../i18n';
|
9
|
-
import {
|
10
|
+
import { DiskGroupsStats } from '../components/DiskGroupsStatsBars/DiskGroupsStats';
|
10
11
|
import { b } from '../shared';
|
11
12
|
const COLORS_PRIORITY = {
|
12
13
|
Green: 5,
|
@@ -18,30 +19,30 @@ const COLORS_PRIORITY = {
|
|
18
19
|
};
|
19
20
|
const getDCInfo = (cluster) => {
|
20
21
|
if (isClusterInfoV2(cluster) && cluster.MapDataCenters) {
|
21
|
-
return Object.entries(cluster.MapDataCenters).map(([dc, count]) => (_jsxs(React.Fragment, { children: [dc, ": ", formatNumber(count)] }, dc)));
|
22
|
+
return Object.entries(cluster.MapDataCenters).map(([dc, count]) => (_jsxs(React.Fragment, { children: [dc, " : ", formatNumber(count)] }, dc)));
|
22
23
|
}
|
23
24
|
return undefined;
|
24
25
|
};
|
25
26
|
export const getInfo = (cluster, additionalInfo) => {
|
26
27
|
var _a;
|
27
28
|
const info = [];
|
29
|
+
const dataCenters = getDCInfo(cluster);
|
30
|
+
if (dataCenters === null || dataCenters === void 0 ? void 0 : dataCenters.length) {
|
31
|
+
info.push({
|
32
|
+
label: i18n('label_dc'),
|
33
|
+
value: _jsx(Tags, { tags: dataCenters, gap: 1, className: b('dc') }),
|
34
|
+
});
|
35
|
+
}
|
28
36
|
if (isClusterInfoV2(cluster) && cluster.MapNodeStates) {
|
29
37
|
const arrayNodesStates = Object.entries(cluster.MapNodeStates);
|
30
38
|
// sort stack to achieve order "green, orange, yellow, red, blue, grey"
|
31
39
|
arrayNodesStates.sort((a, b) => COLORS_PRIORITY[b[0]] - COLORS_PRIORITY[a[0]]);
|
32
40
|
const nodesStates = arrayNodesStates.map(([state, count]) => {
|
33
|
-
return (_jsx(
|
41
|
+
return (_jsx(EntityStatus.Label, { withStatusName: false, status: state, size: "xs", iconSize: 12, children: formatNumber(count) }, state));
|
34
42
|
});
|
35
43
|
info.push({
|
36
44
|
label: i18n('label_nodes-state'),
|
37
|
-
value: _jsx(Flex, { gap:
|
38
|
-
});
|
39
|
-
}
|
40
|
-
const dataCenters = getDCInfo(cluster);
|
41
|
-
if (dataCenters === null || dataCenters === void 0 ? void 0 : dataCenters.length) {
|
42
|
-
info.push({
|
43
|
-
label: i18n('label_dc'),
|
44
|
-
value: _jsx(Tags, { tags: dataCenters, gap: 2, className: b('dc') }),
|
45
|
+
value: _jsx(Flex, { gap: 1, children: nodesStates }),
|
45
46
|
});
|
46
47
|
}
|
47
48
|
info.push({
|
@@ -51,4 +52,13 @@ export const getInfo = (cluster, additionalInfo) => {
|
|
51
52
|
info.push(...additionalInfo);
|
52
53
|
return info;
|
53
54
|
};
|
55
|
+
export function getStorageGroupStats(groupStats) {
|
56
|
+
const result = [];
|
57
|
+
Object.entries(groupStats).forEach(([storageType, stats]) => {
|
58
|
+
Object.values(stats).forEach((erasureStats) => {
|
59
|
+
result.push(_jsx(DiskGroupsStats, { stats: erasureStats, storageType: storageType }, `${storageType}|${erasureStats.erasure}`));
|
60
|
+
});
|
61
|
+
});
|
62
|
+
return result;
|
63
|
+
}
|
54
64
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterInfo/utils/utils.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,cAAc,EAAC,MAAM,sDAAsD,CAAC;AACpF,OAAO,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterInfo/utils/utils.tsx"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,15 @@
|
|
1
1
|
import type { ClusterGroupsStats } from '../../../store/reducers/cluster/types';
|
2
|
+
import type { AdditionalClusterProps } from '../../../types/additionalProps';
|
2
3
|
import type { TClusterInfo } from '../../../types/api/cluster';
|
3
4
|
import type { IResponseError } from '../../../types/api/error';
|
4
|
-
import './
|
5
|
-
interface
|
5
|
+
import './ClusterOverview.scss';
|
6
|
+
interface ClusterOverviewProps {
|
6
7
|
cluster: TClusterInfo;
|
7
8
|
groupStats?: ClusterGroupsStats;
|
8
9
|
loading?: boolean;
|
9
10
|
error?: IResponseError | string;
|
11
|
+
additionalClusterProps?: AdditionalClusterProps;
|
12
|
+
collapsed?: boolean;
|
10
13
|
}
|
11
|
-
export declare function
|
14
|
+
export declare function ClusterOverview(props: ClusterOverviewProps): import("react/jsx-runtime").JSX.Element;
|
12
15
|
export {};
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { ArrowToggle, Disclosure, Flex, Icon, Text } from '@gravity-ui/uikit';
|
3
|
+
import { ResponseError } from '../../../components/Errors/ResponseError';
|
4
|
+
import { useClusterDashboardAvailable } from '../../../store/reducers/capabilities/hooks';
|
5
|
+
import { isClusterInfoV2, isClusterInfoV5 } from '../../../types/api/cluster';
|
6
|
+
import { valueIsDefined } from '../../../utils';
|
7
|
+
import { EXPAND_CLUSTER_DASHBOARD } from '../../../utils/constants';
|
8
|
+
import { useSetting } from '../../../utils/hooks/useSetting';
|
9
|
+
import { ClusterInfo } from '../ClusterInfo/ClusterInfo';
|
10
|
+
import i18n from '../i18n';
|
11
|
+
import { getTotalStorageGroupsUsed } from '../utils';
|
12
|
+
import { ClusterDashboardSkeleton } from './components/ClusterMetricsCard';
|
13
|
+
import { ClusterMetricsCores } from './components/ClusterMetricsCores';
|
14
|
+
import { ClusterMetricsMemory } from './components/ClusterMetricsMemory';
|
15
|
+
import { ClusterMetricsNetwork } from './components/ClusterMetricsNetwork';
|
16
|
+
import { ClusterMetricsStorage } from './components/ClusterMetricsStorage';
|
17
|
+
import { b } from './shared';
|
18
|
+
import overviewIcon from '../../../assets/icons/overview.svg';
|
19
|
+
import './ClusterOverview.scss';
|
20
|
+
export function ClusterOverview(props) {
|
21
|
+
const [expandDashboard, setExpandDashboard] = useSetting(EXPAND_CLUSTER_DASHBOARD);
|
22
|
+
if (props.error) {
|
23
|
+
return _jsx(ResponseError, { error: props.error, className: b('error') });
|
24
|
+
}
|
25
|
+
return (_jsx(Flex, { direction: "column", className: b('overview-wrapper', { collapsed: !expandDashboard }), children: _jsxs(Disclosure, { arrowPosition: "end", expanded: expandDashboard, onUpdate: () => setExpandDashboard(!expandDashboard), children: [_jsx(Disclosure.Summary, { children: (disclosureProps) => (_jsxs("div", { ...disclosureProps, className: b('disclosure-summary'), children: [_jsxs(Flex, { alignItems: "center", justifyContent: "space-between", width: '100%', children: [_jsxs(Flex, { gap: 2, alignItems: "center", children: [_jsx(Icon, { data: overviewIcon, size: 16 }), _jsx(Text, { variant: "body-2", color: "primary", className: b('title'), children: i18n('label_overview') })] }), !expandDashboard && _jsx(ClusterDashboard, { ...props, collapsed: true })] }), _jsx(ArrowToggle, { size: 16, direction: disclosureProps.expanded ? 'top' : 'bottom' })] })) }), _jsx(ClusterDashboard, { ...props }), _jsx(ClusterInfo, { ...props })] }) }));
|
26
|
+
}
|
27
|
+
function ClusterDashboard({ collapsed, ...props }) {
|
28
|
+
const isClusterDashboardAvailable = useClusterDashboardAvailable();
|
29
|
+
if (!isClusterDashboardAvailable) {
|
30
|
+
return null;
|
31
|
+
}
|
32
|
+
return (_jsx(Flex, { wrap: true, className: b('dashboard-wrapper', { collapsed }), children: _jsx(ClusterDoughnuts, { ...props, collapsed: collapsed }) }));
|
33
|
+
}
|
34
|
+
function ClusterDoughnuts({ cluster, groupStats = {}, loading, collapsed }) {
|
35
|
+
if (loading) {
|
36
|
+
return _jsx(ClusterDashboardSkeleton, {});
|
37
|
+
}
|
38
|
+
const metricsCards = [];
|
39
|
+
if (isClusterInfoV2(cluster)) {
|
40
|
+
const { CoresUsed, NumberOfCpus, CoresTotal } = cluster;
|
41
|
+
const total = CoresTotal !== null && CoresTotal !== void 0 ? CoresTotal : NumberOfCpus;
|
42
|
+
if (valueIsDefined(CoresUsed) && valueIsDefined(total)) {
|
43
|
+
metricsCards.push(_jsx(ClusterMetricsCores, { value: CoresUsed, capacity: total, collapsed: collapsed }, "cores"));
|
44
|
+
}
|
45
|
+
}
|
46
|
+
const { StorageTotal, StorageUsed } = cluster;
|
47
|
+
if (valueIsDefined(StorageTotal) && valueIsDefined(StorageUsed)) {
|
48
|
+
const total = getTotalStorageGroupsUsed(groupStats);
|
49
|
+
metricsCards.push(_jsx(ClusterMetricsStorage, { value: StorageUsed, capacity: StorageTotal, groups: total, collapsed: collapsed }, "storage"));
|
50
|
+
}
|
51
|
+
const { MemoryTotal, MemoryUsed } = cluster;
|
52
|
+
if (valueIsDefined(MemoryTotal) && valueIsDefined(MemoryUsed)) {
|
53
|
+
metricsCards.push(_jsx(ClusterMetricsMemory, { value: MemoryUsed, capacity: MemoryTotal, collapsed: collapsed }, "memory"));
|
54
|
+
}
|
55
|
+
if (isClusterInfoV5(cluster)) {
|
56
|
+
const { NetworkUtilization, NetworkWriteThroughput } = cluster;
|
57
|
+
if (valueIsDefined(NetworkUtilization)) {
|
58
|
+
metricsCards.push(_jsx(ClusterMetricsNetwork, { percentsValue: NetworkUtilization, throughput: NetworkWriteThroughput, collapsed: collapsed }, "network"));
|
59
|
+
}
|
60
|
+
}
|
61
|
+
return metricsCards;
|
62
|
+
}
|
63
|
+
//# sourceMappingURL=ClusterOverview.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterOverview.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/ClusterOverview.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
@use '../../../styles/mixins.scss';
|
2
|
+
|
3
|
+
.ydb-cluster-dashboard {
|
4
|
+
&__dashboard-wrapper {
|
5
|
+
gap: var(--g-spacing-6);
|
6
|
+
|
7
|
+
padding-top: var(--g-spacing-4);
|
8
|
+
}
|
9
|
+
|
10
|
+
&__dashboard-wrapper_collapsed {
|
11
|
+
gap: var(--g-spacing-1);
|
12
|
+
|
13
|
+
margin-right: var(--g-spacing-4);
|
14
|
+
margin-left: auto;
|
15
|
+
padding-top: unset;
|
16
|
+
}
|
17
|
+
|
18
|
+
&__error {
|
19
|
+
@include mixins.body-2-typography();
|
20
|
+
}
|
21
|
+
|
22
|
+
&__skeleton-wrapper {
|
23
|
+
padding: unset;
|
24
|
+
|
25
|
+
border: unset;
|
26
|
+
}
|
27
|
+
&__skeleton {
|
28
|
+
height: 100%;
|
29
|
+
}
|
30
|
+
&__overview-wrapper {
|
31
|
+
--g-button-background-color-hover: var(--g-color-base-background);
|
32
|
+
--g-button-padding: 0;
|
33
|
+
position: sticky;
|
34
|
+
left: 0;
|
35
|
+
|
36
|
+
padding: var(--g-spacing-4);
|
37
|
+
|
38
|
+
border: 1px solid var(--g-color-line-generic);
|
39
|
+
border-radius: 5px;
|
40
|
+
|
41
|
+
.g-button:active {
|
42
|
+
transform: unset;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
&__overview-wrapper_collapsed {
|
47
|
+
&:hover {
|
48
|
+
border-color: var(--g-color-line-generic-hover);
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
&__disclosure-summary {
|
53
|
+
display: flex;
|
54
|
+
justify-content: space-between;
|
55
|
+
align-items: center;
|
56
|
+
|
57
|
+
width: 100%;
|
58
|
+
height: 28px;
|
59
|
+
|
60
|
+
cursor: pointer;
|
61
|
+
.g-button__text {
|
62
|
+
width: 100%;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
&__card {
|
67
|
+
min-width: 280px;
|
68
|
+
height: 132px;
|
69
|
+
}
|
70
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import type { ProgressStatus } from '../../../../utils/progress';
|
3
|
+
interface ClusterMetricsDougnutCardProps extends ClusterMetricsCommonCardProps {
|
4
|
+
status: ProgressStatus;
|
5
|
+
fillWidth: number;
|
6
|
+
legend: {
|
7
|
+
main?: string;
|
8
|
+
secondary?: string;
|
9
|
+
note?: React.ReactNode;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
interface ClusterMetricsCommonCardProps {
|
13
|
+
children?: React.ReactNode;
|
14
|
+
title?: string;
|
15
|
+
className?: string;
|
16
|
+
collapsed?: boolean;
|
17
|
+
}
|
18
|
+
export declare function ClusterMetricsCard({ children, className }: ClusterMetricsCommonCardProps): import("react/jsx-runtime").JSX.Element;
|
19
|
+
export declare function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }: ClusterMetricsDougnutCardProps): import("react/jsx-runtime").JSX.Element;
|
20
|
+
export declare function ClusterDashboardSkeleton(): import("react/jsx-runtime").JSX.Element;
|
21
|
+
export {};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import React from 'react';
|
3
|
+
import { Flex } from '@gravity-ui/uikit';
|
4
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
5
|
+
import { EntityStatus } from '../../../../components/EntityStatusNew/EntityStatus';
|
6
|
+
import { Skeleton } from '../../../../components/Skeleton/Skeleton';
|
7
|
+
import { EFlag } from '../../../../types/api/enums';
|
8
|
+
import { b } from '../shared';
|
9
|
+
const ProgressStatusToEFlag = {
|
10
|
+
good: EFlag.Green,
|
11
|
+
warning: EFlag.Yellow,
|
12
|
+
danger: EFlag.Red,
|
13
|
+
};
|
14
|
+
export function ClusterMetricsCard({ children, className }) {
|
15
|
+
return (_jsx(Flex, { gap: "6", alignItems: "center", className: b('card', className), children: children }));
|
16
|
+
}
|
17
|
+
export function ClusterMetricsCardContent({ title, children, legend, collapsed, ...rest }) {
|
18
|
+
const { main: mainLegend, secondary: secondaryLegend, note: legendNote } = legend;
|
19
|
+
if (collapsed) {
|
20
|
+
const { status, fillWidth } = rest;
|
21
|
+
const normalizedFillWidth = fillWidth.toFixed(fillWidth > 0 ? 0 : 1);
|
22
|
+
return (_jsx(EntityStatus.Label, { withStatusName: false, status: ProgressStatusToEFlag[status], children: `${title} : ${normalizedFillWidth}%` }));
|
23
|
+
}
|
24
|
+
return (_jsxs(ClusterMetricsCard, { children: [_jsx(DoughnutMetrics, { ...rest, children: children }), _jsxs("div", { className: b('legend-wrapper'), children: [mainLegend && _jsx(DoughnutMetrics.Legend, { children: mainLegend }), secondaryLegend && (_jsx(DoughnutMetrics.Legend, { color: "secondary", note: legendNote, variant: "body-1", children: secondaryLegend }))] })] }));
|
25
|
+
}
|
26
|
+
function ClusterMetricsCardSkeleton() {
|
27
|
+
return (_jsx(ClusterMetricsCard, { className: b('skeleton-wrapper'), children: _jsx(Skeleton, { className: b('skeleton') }) }));
|
28
|
+
}
|
29
|
+
export function ClusterDashboardSkeleton() {
|
30
|
+
return (_jsxs(React.Fragment, { children: [_jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {}), _jsx(ClusterMetricsCardSkeleton, {})] }));
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=ClusterMetricsCard.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsCard.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCard.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,IAAI,EAAC,MAAM,mBAAmB,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAC,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAC,QAAQ,EAAC,MAAM,0CAA0C,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAC,CAAC,EAAC,MAAM,WAAW,CAAC;AAE5B,MAAM,qBAAqB,GAAkC;IACzD,IAAI,EAAE,KAAK,CAAC,KAAK;IACjB,OAAO,EAAE,KAAK,CAAC,MAAM;IACrB,MAAM,EAAE,KAAK,CAAC,GAAG;CACpB,CAAC;AAeF,MAAM,UAAU,kBAAkB,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAgC;IACnF,OAAO,CACH,KAAC,IAAI,IAAC,GAAG,EAAC,GAAG,EAAC,UAAU,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,YAC5D,QAAQ,GACN,CACV,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACsB;IAC7B,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,UAAU,EAAC,GAAG,MAAM,CAAC;IAEhF,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,EAAC,MAAM,EAAE,SAAS,EAAC,GAAG,IAAI,CAAC;QACjC,MAAM,mBAAmB,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO,CACH,KAAC,YAAY,CAAC,KAAK,IAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,YAC3E,GAAG,KAAK,MAAM,mBAAmB,GAAG,GACpB,CACxB,CAAC;IACN,CAAC;IACD,OAAO,CACH,MAAC,kBAAkB,eACf,KAAC,eAAe,OAAK,IAAI,YAAG,QAAQ,GAAmB,EACvD,eAAK,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,aAC9B,UAAU,IAAI,KAAC,eAAe,CAAC,MAAM,cAAE,UAAU,GAA0B,EAC3E,eAAe,IAAI,CAChB,KAAC,eAAe,CAAC,MAAM,IAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAC,QAAQ,YACvE,eAAe,GACK,CAC5B,IACC,IACW,CACxB,CAAC;AACN,CAAC;AAED,SAAS,0BAA0B;IAC/B,OAAO,CACH,KAAC,kBAAkB,IAAC,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,YAChD,KAAC,QAAQ,IAAC,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,GAAI,GACrB,CACxB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,OAAO,CACH,MAAC,KAAK,CAAC,QAAQ,eACX,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,EAC9B,KAAC,0BAA0B,KAAG,IACjB,CACpB,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
import type { ClusterMetricsCommonProps } from '../shared';
|
2
|
+
interface ClusterMetricsCoresProps extends ClusterMetricsCommonProps {
|
3
|
+
}
|
4
|
+
export declare function ClusterMetricsCores({ collapsed, value, capacity, ...rest }: ClusterMetricsCoresProps): import("react/jsx-runtime").JSX.Element;
|
5
|
+
export {};
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatNumber, formatNumericValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatCoresLegend({ value, capacity }) {
|
8
|
+
let formatted = [];
|
9
|
+
if (capacity < 10000) {
|
10
|
+
formatted = [formatNumber(Math.round(value)), formatNumber(Math.round(capacity))];
|
11
|
+
}
|
12
|
+
else {
|
13
|
+
formatted = formatNumericValues(value, capacity, undefined, '', true);
|
14
|
+
}
|
15
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]} ${i18n('context_cores')}`;
|
16
|
+
}
|
17
|
+
export function ClusterMetricsCores({ collapsed, value, capacity, ...rest }) {
|
18
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
19
|
+
value,
|
20
|
+
capacity,
|
21
|
+
legendFormatter: formatCoresLegend,
|
22
|
+
...rest,
|
23
|
+
});
|
24
|
+
return (_jsx(ClusterMetricsCardContent, { collapsed: collapsed, status: status, fillWidth: fill, title: i18n('title_cpu'), legend: {
|
25
|
+
main: legend,
|
26
|
+
secondary: i18n('context_cpu'),
|
27
|
+
note: i18n('context_cpu-description'),
|
28
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
29
|
+
}
|
30
|
+
//# sourceMappingURL=ClusterMetricsCores.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsCores.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsCores.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,YAAY,EAAE,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AAClG,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,iBAAiB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC3E,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,QAAQ,GAAG,KAAM,EAAE,CAAC;QACpB,SAAS,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACJ,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,IAAI,EACgB;IACvB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,iBAAiB;QAClC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EACxB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC;SACxC,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { ClusterMetricsCommonProps } from '../shared';
|
2
2
|
interface ClusterMetricsMemoryProps extends ClusterMetricsCommonProps {
|
3
3
|
}
|
4
|
-
export declare function ClusterMetricsMemory({ value, capacity, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
|
4
|
+
export declare function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }: ClusterMetricsMemoryProps): import("react/jsx-runtime").JSX.Element;
|
5
5
|
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatStorageLegend({ value, capacity }) {
|
8
|
+
const formatted = formatStorageValues(value, capacity, undefined, '\n');
|
9
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
|
10
|
+
}
|
11
|
+
export function ClusterMetricsMemory({ value, capacity, collapsed, ...rest }) {
|
12
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
13
|
+
value,
|
14
|
+
capacity,
|
15
|
+
legendFormatter: formatStorageLegend,
|
16
|
+
...rest,
|
17
|
+
});
|
18
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_memory'), collapsed: collapsed, legend: {
|
19
|
+
main: legend,
|
20
|
+
secondary: i18n('context_memory'),
|
21
|
+
note: i18n('context_memory-description'),
|
22
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=ClusterMetricsMemory.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsMemory.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsMemory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAI/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACiB;IACxB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,EAC3B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,4BAA4B,CAAC;SAC3C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import type { ClusterMetricsBaseProps } from '../shared';
|
2
|
+
interface ClusterMetricsNetworkProps extends ClusterMetricsBaseProps {
|
3
|
+
percentsValue: number;
|
4
|
+
throughput?: string;
|
5
|
+
}
|
6
|
+
export declare function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }: ClusterMetricsNetworkProps): import("react/jsx-runtime").JSX.Element | null;
|
7
|
+
export {};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatBytes } from '../../../../utils/bytesParsers';
|
4
|
+
import { SHOW_NETWORK_UTILIZATION } from '../../../../utils/constants';
|
5
|
+
import { useSetting } from '../../../../utils/hooks/useSetting';
|
6
|
+
import i18n from '../../i18n';
|
7
|
+
import { calculateBaseDiagramValues } from '../utils';
|
8
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
9
|
+
function formatStorageLegend(value) {
|
10
|
+
return formatBytes({ value, withSpeedLabel: true });
|
11
|
+
}
|
12
|
+
export function ClusterMetricsNetwork({ percentsValue, throughput, collapsed, ...rest }) {
|
13
|
+
const [showNetworkUtilization] = useSetting(SHOW_NETWORK_UTILIZATION);
|
14
|
+
if (!showNetworkUtilization) {
|
15
|
+
return null;
|
16
|
+
}
|
17
|
+
const { status, percents, fill } = calculateBaseDiagramValues({
|
18
|
+
fillWidth: percentsValue * 100,
|
19
|
+
...rest,
|
20
|
+
});
|
21
|
+
const legend = formatStorageLegend(throughput);
|
22
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_network'), collapsed: collapsed, legend: {
|
23
|
+
main: legend,
|
24
|
+
secondary: i18n('context_network'),
|
25
|
+
note: i18n('context_network-description'),
|
26
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
27
|
+
}
|
28
|
+
//# sourceMappingURL=ClusterMetricsNetwork.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsNetwork.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAC9D,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,UAAU,CAAC;AAEpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAO/D,SAAS,mBAAmB,CAAC,KAAc;IACvC,OAAO,WAAW,CAAC,EAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,aAAa,EACb,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAU,wBAAwB,CAAC,CAAC;IAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,0BAA0B,CAAC;QACxD,SAAS,EAAE,aAAa,GAAG,GAAG;QAC9B,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE/C,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { ClusterMetricsCommonProps } from '../shared';
|
2
2
|
interface ClusterMetricsStorageProps extends ClusterMetricsCommonProps {
|
3
|
+
groups: number;
|
3
4
|
}
|
4
|
-
export declare function ClusterMetricsStorage({ value, capacity, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
|
5
|
+
export declare function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }: ClusterMetricsStorageProps): import("react/jsx-runtime").JSX.Element;
|
5
6
|
export {};
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
+
import { DoughnutMetrics } from '../../../../components/DoughnutMetrics/DoughnutMetrics';
|
3
|
+
import { formatStorageValues } from '../../../../utils/dataFormatters/dataFormatters';
|
4
|
+
import i18n from '../../i18n';
|
5
|
+
import { getDiagramValues } from '../utils';
|
6
|
+
import { ClusterMetricsCardContent } from './ClusterMetricsCard';
|
7
|
+
function formatStorageLegend({ value, capacity }) {
|
8
|
+
const formatted = formatStorageValues(value, capacity, undefined, '\n');
|
9
|
+
return `${formatted[0]} ${i18n('context_of')} ${formatted[1]}`;
|
10
|
+
}
|
11
|
+
export function ClusterMetricsStorage({ value, capacity, groups, collapsed, ...rest }) {
|
12
|
+
const { status, percents, legend, fill } = getDiagramValues({
|
13
|
+
value,
|
14
|
+
capacity,
|
15
|
+
legendFormatter: formatStorageLegend,
|
16
|
+
...rest,
|
17
|
+
});
|
18
|
+
return (_jsx(ClusterMetricsCardContent, { status: status, fillWidth: fill, title: i18n('title_storage'), collapsed: collapsed, legend: {
|
19
|
+
main: legend,
|
20
|
+
secondary: i18n('context_storage', { count: groups }),
|
21
|
+
note: i18n('context_storage-description'),
|
22
|
+
}, children: _jsx(DoughnutMetrics.Value, { children: percents }) }));
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=ClusterMetricsStorage.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ClusterMetricsStorage.js","sourceRoot":"","sources":["../../../../../src/containers/Cluster/ClusterOverview/components/ClusterMetricsStorage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,wDAAwD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,iDAAiD,CAAC;AACpF,OAAO,IAAI,MAAM,YAAY,CAAC;AAE9B,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAE1C,OAAO,EAAC,yBAAyB,EAAC,MAAM,sBAAsB,CAAC;AAM/D,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAoC;IAC7E,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAClC,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACkB;IACzB,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,gBAAgB,CAAC;QACtD,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,mBAAmB;QACpC,GAAG,IAAI;KACV,CAAC,CAAC;IAEH,OAAO,CACH,KAAC,yBAAyB,IACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,EAC5B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE;YACJ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,6BAA6B,CAAC;SAC5C,YAED,KAAC,eAAe,CAAC,KAAK,cAAE,QAAQ,GAAyB,GACjC,CAC/B,CAAC;AACN,CAAC"}
|
@@ -1,9 +1,12 @@
|
|
1
1
|
export declare const b: import("@bem-react/classname").ClassNameFormatter;
|
2
|
-
export interface
|
3
|
-
value: number | string;
|
4
|
-
capacity: number | string;
|
2
|
+
export interface ClusterMetricsBaseProps {
|
5
3
|
colorizeProgress?: boolean;
|
6
4
|
inverseColorize?: boolean;
|
7
5
|
warningThreshold?: number;
|
8
6
|
dangerThreshold?: number;
|
7
|
+
collapsed?: boolean;
|
8
|
+
}
|
9
|
+
export interface ClusterMetricsCommonProps extends ClusterMetricsBaseProps {
|
10
|
+
value: number | string;
|
11
|
+
capacity: number | string;
|
9
12
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,mBAAmB,CAAC;AACrC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import type { ClusterMetricsBaseProps, ClusterMetricsCommonProps } from './shared';
|
2
|
+
export declare function calculateBaseDiagramValues({ colorizeProgress, warningThreshold, dangerThreshold, inverseColorize, fillWidth, }: ClusterMetricsBaseProps & {
|
3
|
+
fillWidth: number;
|
4
|
+
}): {
|
5
|
+
status: import("../../../utils/progress").ProgressStatus;
|
6
|
+
percents: string;
|
7
|
+
fill: number;
|
8
|
+
};
|
9
|
+
export declare function getDiagramValues({ value, capacity, legendFormatter, ...rest }: ClusterMetricsCommonProps & {
|
10
|
+
legendFormatter: (params: {
|
11
|
+
value: number;
|
12
|
+
capacity: number;
|
13
|
+
}) => string;
|
14
|
+
}): {
|
15
|
+
legend: string;
|
16
|
+
status: import("../../../utils/progress").ProgressStatus;
|
17
|
+
percents: string;
|
18
|
+
fill: number;
|
19
|
+
};
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import { formatPercent } from '../../../utils/dataFormatters/dataFormatters';
|
2
|
+
import { calculateProgressStatus } from '../../../utils/progress';
|
3
|
+
export function calculateBaseDiagramValues({ colorizeProgress = true, warningThreshold, dangerThreshold, inverseColorize = false, fillWidth, }) {
|
4
|
+
const normalizedFillWidth = Math.max(fillWidth, 0.5);
|
5
|
+
const status = calculateProgressStatus({
|
6
|
+
fillWidth,
|
7
|
+
warningThreshold,
|
8
|
+
dangerThreshold,
|
9
|
+
colorizeProgress,
|
10
|
+
inverseColorize,
|
11
|
+
});
|
12
|
+
const percents = formatPercent(fillWidth / 100);
|
13
|
+
return { status, percents, fill: normalizedFillWidth };
|
14
|
+
}
|
15
|
+
export function getDiagramValues({ value, capacity, legendFormatter, ...rest }) {
|
16
|
+
const parsedValue = parseFloat(String(value));
|
17
|
+
const parsedCapacity = parseFloat(String(capacity));
|
18
|
+
let fillWidth = (parsedValue / parsedCapacity) * 100 || 0;
|
19
|
+
fillWidth = fillWidth > 100 ? 100 : fillWidth;
|
20
|
+
const legend = legendFormatter({
|
21
|
+
value: parsedValue,
|
22
|
+
capacity: parsedCapacity,
|
23
|
+
});
|
24
|
+
return {
|
25
|
+
...calculateBaseDiagramValues({
|
26
|
+
fillWidth,
|
27
|
+
...rest,
|
28
|
+
}),
|
29
|
+
legend,
|
30
|
+
};
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/containers/Cluster/ClusterOverview/utils.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,8CAA8C,CAAC;AAC3E,OAAO,EAAC,uBAAuB,EAAC,MAAM,yBAAyB,CAAC;AAIhE,MAAM,UAAU,0BAA0B,CAAC,EACvC,gBAAgB,GAAG,IAAI,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAAG,KAAK,EACvB,SAAS,GACmC;IAC5C,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,uBAAuB,CAAC;QACnC,SAAS;QACT,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,eAAe;KAClB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;IAEhD,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,eAAe,EACf,GAAG,IAAI,EAGV;IACG,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,IAAI,SAAS,GAAG,CAAC,WAAW,GAAG,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC1D,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,eAAe,CAAC;QAC3B,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,OAAO;QACH,GAAG,0BAA0B,CAAC;YAC1B,SAAS;YACT,GAAG,IAAI;SACV,CAAC;QACF,MAAM;KACT,CAAC;AACN,CAAC"}
|
@@ -1,13 +1,10 @@
|
|
1
1
|
{
|
2
|
-
"disk-type": "Disk Type",
|
3
2
|
"erasure": "Erasure",
|
4
3
|
"allocated": "Allocated",
|
5
4
|
"available": "Available",
|
6
5
|
"usage": "Usage",
|
7
6
|
"label_nodes-state": "Nodes state",
|
8
7
|
"label_dc": "Nodes data centers",
|
9
|
-
"storage-size": "Storage size",
|
10
|
-
"storage-groups": "Storage groups, {{diskType}}",
|
11
8
|
"links": "Links",
|
12
9
|
"link_cores": "Coredumps",
|
13
10
|
"link_logging": "Logging",
|
@@ -15,12 +12,25 @@
|
|
15
12
|
"context_cores": "cores",
|
16
13
|
"title_cpu": "CPU",
|
17
14
|
"title_storage": "Storage",
|
15
|
+
"title_storage-groups": "Storage Groups",
|
18
16
|
"title_memory": "Memory",
|
19
|
-
"
|
17
|
+
"title_network": "Network",
|
20
18
|
"title_links": "Links",
|
21
|
-
"
|
22
|
-
"
|
23
|
-
"
|
24
|
-
"
|
25
|
-
"
|
19
|
+
"title_details": "Details",
|
20
|
+
"label_overview": "Overview",
|
21
|
+
"label_load": "Load",
|
22
|
+
"context_of": "of",
|
23
|
+
"context_cpu": "CPU load",
|
24
|
+
"context_memory": "Memory used",
|
25
|
+
"context_storage": [
|
26
|
+
"Storage: {{count}} group",
|
27
|
+
"Storage: {{count}} groups",
|
28
|
+
"Storage: {{count}} groups",
|
29
|
+
"Storage: {{count}} groups"
|
30
|
+
],
|
31
|
+
"context_network": "Network Evaluation",
|
32
|
+
"context_cpu-description": "CPU load is calculated as the cumulative usage across all actor system pools on all nodes in the cluster",
|
33
|
+
"context_memory-description": "Memory usage is the total memory consumed by all nodes in the cluster",
|
34
|
+
"context_storage-description": "Storage usage is a cumulative usage of raw disk space of all media types",
|
35
|
+
"context_network-description": "Network usage is the average outgoing bandwidth usage across all nodes in the cluster"
|
26
36
|
}
|
@@ -1,2 +1,2 @@
|
|
1
|
-
declare const _default: (key: "links" | "erasure" | "usage" | "
|
1
|
+
declare const _default: (key: "links" | "erasure" | "usage" | "title_storage" | "allocated" | "available" | "label_nodes-state" | "label_dc" | "link_cores" | "link_logging" | "link_slo-logs" | "context_cores" | "title_cpu" | "title_storage-groups" | "title_memory" | "title_network" | "title_links" | "title_details" | "label_overview" | "label_load" | "context_of" | "context_cpu" | "context_memory" | "context_storage" | "context_network" | "context_cpu-description" | "context_memory-description" | "context_storage-description" | "context_network-description", params?: import("@gravity-ui/i18n").Params) => string;
|
2
2
|
export default _default;
|