diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/types.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/types.ts index 428f6aacce133..68d632db2f03a 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/types.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/types.ts @@ -18,6 +18,7 @@ import type { XYLayerConfig, FillStyle, } from '@kbn/lens-plugin/public'; + export type LensAttributes = TypedLensByValueInput['attributes']; // Attributes @@ -61,7 +62,6 @@ export interface ChartLayer { getDataView(): DataView | undefined; } -// Chart export interface Chart { getTitle(): string; getVisualizationType(): string; @@ -70,6 +70,8 @@ export interface Chart { getReferences(): SavedObjectReference[]; getDataViews(): DataView[]; } + +// Chart export interface ChartConfig< TLayer extends ChartLayer | Array> > { @@ -91,3 +93,5 @@ export type StaticValueConfig = Omit & { fill?: FillStyle; value: string; }; + +export type VisualizationTypes = 'lnsXY' | 'lnsMetric'; diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/constants.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/constants.ts new file mode 100644 index 0000000000000..f2d6a056c09db --- /dev/null +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/constants.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export const XY_ID = 'lnsXY'; +export const METRIC_ID = 'lnsMetric'; + +export const METRIC_TREND_LINE_ID = 'metricTrendline'; +export const XY_REFERENCE_LINE_ID = 'referenceLine'; +export const XY_DATA_ID = 'data'; diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/index.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/index.ts index 7927ff37b2f16..ffafd8983fe5c 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/index.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/index.ts @@ -5,8 +5,37 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ +import type { DataView } from '@kbn/data-views-plugin/common'; +import { + METRIC_ID, + XY_ID, + METRIC_TREND_LINE_ID, + XY_DATA_ID, + XY_REFERENCE_LINE_ID, +} from './constants'; +import type { XYVisualOptions } from './xy_chart'; +import type { MetricLayerConfig, XYDataLayerConfig, XYReferenceLinesLayerConfig } from './layers'; export { XYChart, type XYVisualOptions } from './xy_chart'; export { MetricChart } from './metric_chart'; - export * from './layers'; +export type XYLayerConfig = XYDataLayerConfig | XYReferenceLinesLayerConfig; + +interface ChartModelBase { + id: string; + title?: string; + dataView?: DataView; +} +export interface XYChartModel extends ChartModelBase { + visualOptions?: XYVisualOptions; + visualizationType: typeof XY_ID; + layers: XYLayerConfig[]; +} +export interface MetricChartModel extends ChartModelBase { + visualizationType: typeof METRIC_ID; + layers: MetricLayerConfig; +} + +export type ChartModel = XYChartModel | MetricChartModel; +export type ChartTypes = typeof XY_ID | typeof METRIC_ID; +export { METRIC_ID, XY_ID, METRIC_TREND_LINE_ID, XY_DATA_ID, XY_REFERENCE_LINE_ID }; diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/index.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/index.ts index a9680c27b764e..2620d7639f5ff 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/index.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/index.ts @@ -7,7 +7,7 @@ */ export { MetricLayer, type MetricLayerOptions, type MetricLayerConfig } from './metric_layer'; -export { XYDataLayer, type XYLayerOptions, type XYLayerConfig } from './xy_data_layer'; +export { XYDataLayer, type XYLayerOptions, type XYDataLayerConfig } from './xy_data_layer'; export { XYReferenceLinesLayer, type XYReferenceLinesLayerConfig, diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/metric_layer.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/metric_layer.ts index 0a98f31aec158..a78191ffb82a7 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/metric_layer.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/metric_layer.ts @@ -16,6 +16,7 @@ import type { } from '@kbn/lens-plugin/public'; import type { ChartColumn, ChartLayer, FormulaValueConfig } from '../../types'; import { getDefaultReferences, getHistogramColumn } from '../../utils'; +import { METRIC_TREND_LINE_ID } from '../constants'; import { FormulaColumn } from './columns/formula'; const HISTOGRAM_COLUMN_NAME = 'x_date_histogram'; @@ -30,6 +31,7 @@ export interface MetricLayerOptions { export interface MetricLayerConfig { data: FormulaValueConfig; options?: MetricLayerOptions; + layerType?: typeof METRIC_TREND_LINE_ID; /** * It is possible to define a specific dataView for the layer. It will override the global chart one **/ @@ -38,8 +40,13 @@ export interface MetricLayerConfig { export class MetricLayer implements ChartLayer { private column: ChartColumn; - constructor(private layerConfig: MetricLayerConfig) { + private layerConfig: MetricLayerConfig; + constructor(layerConfig: MetricLayerConfig) { this.column = new FormulaColumn(layerConfig.data); + this.layerConfig = { + ...layerConfig, + layerType: layerConfig.layerType ?? 'metricTrendline', + }; } getLayer( diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_data_layer.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_data_layer.ts index f4845a5c93ab9..d42a00e963484 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_data_layer.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_data_layer.ts @@ -12,7 +12,7 @@ import type { FormulaPublicApi, FormBasedPersistedState, PersistedIndexPatternLayer, - XYDataLayerConfig, + XYDataLayerConfig as LensXYDataLayerConfig, SeriesType, TermsIndexPatternColumn, DateHistogramIndexPatternColumn, @@ -26,6 +26,7 @@ import { type TopValuesColumnParams, type DateHistogramColumnParams, } from '../../utils'; +import { XY_DATA_ID } from '../constants'; import { FormulaColumn } from './columns/formula'; const BREAKDOWN_COLUMN_NAME = 'aggs_breakdown'; @@ -50,22 +51,25 @@ export interface XYLayerOptions { seriesType?: SeriesType; } -export interface XYLayerConfig { +export interface XYDataLayerConfig { data: FormulaValueConfig[]; options?: XYLayerOptions; + layerType?: typeof XY_DATA_ID; + /** * It is possible to define a specific dataView for the layer. It will override the global chart one **/ dataView?: DataView; } -export class XYDataLayer implements ChartLayer { +export class XYDataLayer implements ChartLayer { private column: ChartColumn[]; - private layerConfig: XYLayerConfig; - constructor(layerConfig: XYLayerConfig) { + private layerConfig: XYDataLayerConfig; + constructor(layerConfig: XYDataLayerConfig) { this.column = layerConfig.data.map((dataItem) => new FormulaColumn(dataItem)); this.layerConfig = { ...layerConfig, + layerType: layerConfig.layerType ?? 'data', options: { ...layerConfig.options, buckets: { @@ -151,7 +155,7 @@ export class XYDataLayer implements ChartLayer { return getDefaultReferences(this.layerConfig.dataView ?? chartDataView, layerId); } - getLayerConfig(layerId: string, accessorId: string): XYDataLayerConfig { + getLayerConfig(layerId: string, accessorId: string): LensXYDataLayerConfig { return { layerId, seriesType: this.layerConfig.options?.seriesType ?? 'line', diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_reference_lines_layer.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_reference_lines_layer.ts index 2a105c10677af..bc2132f17918c 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_reference_lines_layer.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/layers/xy_reference_lines_layer.ts @@ -15,10 +15,12 @@ import type { } from '@kbn/lens-plugin/public'; import type { ChartLayer, StaticValueConfig, StaticChartColumn } from '../../types'; import { getDefaultReferences } from '../../utils'; +import { XY_REFERENCE_LINE_ID } from '../constants'; import { StaticColumn } from './columns/static'; export interface XYReferenceLinesLayerConfig { data: StaticValueConfig[]; + layerType?: typeof XY_REFERENCE_LINE_ID; /** * It is possible to define a specific dataView for the layer. It will override the global chart one **/ @@ -27,8 +29,13 @@ export interface XYReferenceLinesLayerConfig { export class XYReferenceLinesLayer implements ChartLayer { private column: StaticChartColumn[]; - constructor(private layerConfig: XYReferenceLinesLayerConfig) { + private layerConfig: XYReferenceLinesLayerConfig; + constructor(layerConfig: XYReferenceLinesLayerConfig) { this.column = layerConfig.data.map((p) => new StaticColumn(p)); + this.layerConfig = { + ...layerConfig, + layerType: layerConfig.layerType ?? 'referenceLine', + }; } getName(): string | undefined { diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/metric_chart.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/metric_chart.ts index 9c3f5bf3afe98..02b44c061878b 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/metric_chart.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/metric_chart.ts @@ -11,6 +11,7 @@ import type { SavedObjectReference } from '@kbn/core/server'; import type { DataView } from '@kbn/data-views-plugin/public'; import type { Chart, ChartConfig, ChartLayer } from '../types'; import { DEFAULT_LAYER_ID } from '../utils'; +import { METRIC_ID } from './constants'; const ACCESSOR = 'metric_formula_accessor'; @@ -18,7 +19,7 @@ export class MetricChart implements Chart { constructor(private chartConfig: ChartConfig>) {} getVisualizationType(): string { - return 'lnsMetric'; + return METRIC_ID; } getLayers(): FormBasedPersistedState['layers'] { diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/xy_chart.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/xy_chart.ts index 6e0390ffe9e10..e0b42c2dcfbf5 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/xy_chart.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/visualization_types/xy_chart.ts @@ -7,7 +7,9 @@ */ import type { + AxisExtentConfig, FormBasedPersistedState, + LegendConfig, XYArgs, XYLayerConfig, XYState, @@ -17,6 +19,7 @@ import type { SavedObjectReference } from '@kbn/core/server'; import { AxesSettingsConfig } from '@kbn/visualizations-plugin/common'; import type { Chart, ChartConfig, ChartLayer } from '../types'; import { DEFAULT_LAYER_ID } from '../utils'; +import { XY_ID } from './constants'; const ACCESSOR = 'formula_accessor'; @@ -28,6 +31,8 @@ export interface XYVisualOptions { showDottedLine?: boolean; valueLabels?: XYArgs['valueLabels']; axisTitlesVisibilitySettings?: AxesSettingsConfig; + legend?: LegendConfig; + yLeftExtent?: AxisExtentConfig; } export class XYChart implements Chart { @@ -39,7 +44,7 @@ export class XYChart implements Chart { ) {} getVisualizationType(): string { - return 'lnsXY'; + return XY_ID; } private get layers() { @@ -79,12 +84,23 @@ export class XYChart implements Chart { }), ], }), + legend: this.chartConfig.visualOptions?.legend ?? { + isVisible: false, + position: 'right', + showSingleSeries: false, + }, fittingFunction: this.chartConfig.visualOptions?.missingValues ?? 'None', endValue: this.chartConfig.visualOptions?.endValues, curveType: this.chartConfig.visualOptions?.lineInterpolation, emphasizeFitting: !this.chartConfig.visualOptions?.showDottedLine, valueLabels: this.chartConfig.visualOptions?.valueLabels, - axisTitlesVisibilitySettings: this.chartConfig.visualOptions?.axisTitlesVisibilitySettings, + axisTitlesVisibilitySettings: this.chartConfig.visualOptions + ?.axisTitlesVisibilitySettings ?? { + x: false, + yLeft: false, + yRight: true, + }, + yLeftExtent: this.chartConfig.visualOptions?.yLeftExtent, }; } @@ -117,11 +133,6 @@ export const getXYVisualizationState = ( }, valueLabels: 'show', yLeftScale: 'linear', - axisTitlesVisibilitySettings: { - x: false, - yLeft: false, - yRight: true, - }, tickLabelsVisibilitySettings: { x: true, yLeft: true, diff --git a/packages/kbn-lens-embeddable-utils/index.ts b/packages/kbn-lens-embeddable-utils/index.ts index ddd5744f230b5..ffe9d4e87d788 100644 --- a/packages/kbn-lens-embeddable-utils/index.ts +++ b/packages/kbn-lens-embeddable-utils/index.ts @@ -12,9 +12,14 @@ export type { MetricLayerOptions, MetricLayerConfig, XYLayerOptions, - XYLayerConfig, + XYDataLayerConfig, XYReferenceLinesLayerConfig, XYVisualOptions, + XYLayerConfig, + ChartTypes, + ChartModel, + XYChartModel, + MetricChartModel, } from './attribute_builder/visualization_types'; export { @@ -25,6 +30,11 @@ export { XYChart, XYDataLayer, XYReferenceLinesLayer, + METRIC_ID, + METRIC_TREND_LINE_ID, + XY_ID, + XY_DATA_ID, + XY_REFERENCE_LINE_ID, } from './attribute_builder/visualization_types'; export { LensAttributesBuilder } from './attribute_builder/lens_attributes_builder'; diff --git a/packages/kbn-lens-embeddable-utils/kibana.jsonc b/packages/kbn-lens-embeddable-utils/kibana.jsonc index 9dc67508d99e9..4f8fd44b1ea65 100644 --- a/packages/kbn-lens-embeddable-utils/kibana.jsonc +++ b/packages/kbn-lens-embeddable-utils/kibana.jsonc @@ -1,5 +1,5 @@ { - "type": "shared-browser", + "type": "shared-common", "id": "@kbn/lens-embeddable-utils", "owner": "@elastic/obs-ux-infra_services-team" } diff --git a/packages/kbn-optimizer/limits.yml b/packages/kbn-optimizer/limits.yml index e79e6b4fa8be9..9db1810fd2b7f 100644 --- a/packages/kbn-optimizer/limits.yml +++ b/packages/kbn-optimizer/limits.yml @@ -95,7 +95,7 @@ pageLoadAssetSize: management: 46112 maps: 90000 mapsEms: 26072 - metricsDataAccess: 60000 + metricsDataAccess: 73287 ml: 82187 monitoring: 80000 navigation: 37269 diff --git a/x-pack/plugins/infra/public/common/visualizations/constants.ts b/x-pack/plugins/infra/public/common/visualizations/constants.ts index 98fafda2e23ce..76b2eb7c3d70f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/constants.ts +++ b/x-pack/plugins/infra/public/common/visualizations/constants.ts @@ -7,3 +7,6 @@ export const HOST_METRICS_DOC_HREF = 'https://ela.st/docs-infra-host-metrics'; export const HOST_METRICS_DOTTED_LINES_DOC_HREF = 'https://ela.st/docs-infra-why-dotted'; + +export const KPI_CHART_HEIGHT = 150; +export const METRIC_CHART_HEIGHT = 300; diff --git a/x-pack/plugins/infra/public/common/visualizations/index.ts b/x-pack/plugins/infra/public/common/visualizations/index.ts index 35a8dc5120614..6bfe3f0df588b 100644 --- a/x-pack/plugins/infra/public/common/visualizations/index.ts +++ b/x-pack/plugins/infra/public/common/visualizations/index.ts @@ -5,5 +5,9 @@ * 2.0. */ -export * from './lens/dashboards'; -export * from './lens/formulas'; +export { METRICS_TOOLTIP } from './translations'; +export { + HOST_METRICS_DOC_HREF, + HOST_METRICS_DOTTED_LINES_DOC_HREF, + KPI_CHART_HEIGHT, +} from './constants'; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_kpi_charts.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_kpi_charts.ts deleted file mode 100644 index d72b2bee8a8e5..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_kpi_charts.ts +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import { METRICS_TOOLTIP } from '../../translations'; -import type { KPIChartProps } from '../../types'; - -export const hostKPICharts = (backgroundColor: string): KPIChartProps[] => [ - { - id: 'cpuUsage', - title: i18n.translate('xpack.infra.assetDetailsEmbeddable.overview.kpi.cpuUsage.title', { - defaultMessage: 'CPU Usage', - }), - layers: { - data: { - ...hostLensFormulas.cpuUsage, - format: hostLensFormulas.cpuUsage.format - ? { - ...hostLensFormulas.cpuUsage.format, - params: { - decimals: 1, - }, - } - : undefined, - }, - options: { - backgroundColor, - showTrendLine: true, - }, - type: 'visualization', - }, - toolTip: METRICS_TOOLTIP.cpuUsage, - }, - { - id: 'normalizedLoad1m', - title: i18n.translate( - 'xpack.infra.assetDetailsEmbeddable.overview.kpi.normalizedLoad1m.title', - { - defaultMessage: 'Normalized Load', - } - ), - layers: { - data: { - ...hostLensFormulas.normalizedLoad1m, - format: hostLensFormulas.normalizedLoad1m.format - ? { - ...hostLensFormulas.normalizedLoad1m.format, - params: { - decimals: 1, - }, - } - : undefined, - }, - options: { - backgroundColor, - showTrendLine: true, - }, - type: 'visualization', - }, - toolTip: METRICS_TOOLTIP.normalizedLoad1m, - }, - { - id: 'memoryUsage', - title: i18n.translate('xpack.infra.assetDetailsEmbeddable.overview.kpi.memoryUsage.title', { - defaultMessage: 'Memory Usage', - }), - layers: { - data: { - ...hostLensFormulas.memoryUsage, - format: hostLensFormulas.memoryUsage.format - ? { - ...hostLensFormulas.memoryUsage.format, - params: { - decimals: 1, - }, - } - : undefined, - }, - options: { - backgroundColor, - showTrendLine: true, - }, - type: 'visualization', - }, - toolTip: METRICS_TOOLTIP.memoryUsage, - }, - { - id: 'diskSpaceUsage', - title: i18n.translate('xpack.infra.assetDetailsEmbeddable.overview.kpi.diskUsage.title', { - defaultMessage: 'Disk Usage', - }), - layers: { - data: { - ...hostLensFormulas.diskUsage, - format: hostLensFormulas.diskUsage.format - ? { - ...hostLensFormulas.diskUsage.format, - params: { - decimals: 1, - }, - } - : undefined, - }, - options: { - backgroundColor, - showTrendLine: true, - }, - type: 'visualization', - }, - toolTip: METRICS_TOOLTIP.diskSpaceUsage, - }, -]; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_metric_charts.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_metric_charts.ts deleted file mode 100644 index b4dfc1abf5ebf..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/host_metric_charts.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import { cpuUsage, normalizedLoad1m, cpuUsageBreakdown, loadBreakdown } from '../metric_charts/cpu'; -import { - diskSpaceUsageAvailable, - diskThroughputReadWrite, - diskIOReadWrite, - diskUsageByMountPoint, -} from '../metric_charts/disk'; -import { logRate } from '../metric_charts/log'; -import { memoryUsage, memoryUsageBreakdown } from '../metric_charts/memory'; -import { rxTx } from '../metric_charts/network'; -import type { XYConfig } from '../../types'; - -export const hostMetricFlyoutCharts: XYConfig[] = [ - cpuUsage, - memoryUsage, - normalizedLoad1m, - logRate, - diskSpaceUsageAvailable, - diskUsageByMountPoint, - diskThroughputReadWrite, - diskIOReadWrite, - rxTx, -]; - -export const hostMetricChartsFullPage: XYConfig[] = [ - cpuUsage, - cpuUsageBreakdown, - memoryUsage, - memoryUsageBreakdown, - normalizedLoad1m, - loadBreakdown, - logRate, - diskSpaceUsageAvailable, - diskUsageByMountPoint, - diskThroughputReadWrite, - diskIOReadWrite, - rxTx, -]; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/kubernetes_charts.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/kubernetes_charts.ts deleted file mode 100644 index 83ca15b4deb05..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/host/kubernetes_charts.ts +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { kubernetesLensFormulas } from '../../../formulas'; -import { XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -export const kubernetesCharts: XYConfig[] = [ - { - id: 'nodeCpuCapacity', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity', { - defaultMessage: 'Node CPU Capacity', - }), - - layers: [ - { - data: [kubernetesLensFormulas.nodeCpuCapacity, kubernetesLensFormulas.nodeCpuUsed], - type: 'visualization', - options: { - seriesType: 'area', - }, - }, - ], - dataViewOrigin: 'metrics', - overrides: { - settings: XY_OVERRIDES.settings, - }, - }, - { - id: 'nodeMemoryCapacity', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.nodeMemoryCapacity', { - defaultMessage: 'Node Memory Capacity', - }), - - layers: [ - { - data: [kubernetesLensFormulas.nodeMemoryCapacity, kubernetesLensFormulas.nodeMemoryUsed], - type: 'visualization', - options: { - seriesType: 'area', - }, - }, - ], - dataViewOrigin: 'metrics', - overrides: { - settings: XY_OVERRIDES.settings, - }, - }, - { - id: 'nodeDiskCapacity', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.nodeDiskCapacity', { - defaultMessage: 'Node Disk Capacity', - }), - - layers: [ - { - data: [kubernetesLensFormulas.nodeDiskCapacity, kubernetesLensFormulas.nodeDiskUsed], - type: 'visualization', - options: { - seriesType: 'area', - }, - }, - ], - dataViewOrigin: 'metrics', - overrides: { - settings: XY_OVERRIDES.settings, - }, - }, - { - id: 'nodePodCapacity', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.nginx.nodePodCapacity', { - defaultMessage: 'Node Pod Capacity', - }), - - layers: [ - { - data: [kubernetesLensFormulas.nodePodCapacity, kubernetesLensFormulas.nodePodUsed], - type: 'visualization', - options: { - seriesType: 'area', - }, - }, - ], - dataViewOrigin: 'metrics', - overrides: { - settings: XY_OVERRIDES.settings, - }, - }, -]; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts deleted file mode 100644 index aef6787c088fc..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { hostMetricFlyoutCharts, hostMetricChartsFullPage } from './host/host_metric_charts'; -import { hostKPICharts } from './host/host_kpi_charts'; -import { kubernetesCharts } from './host/kubernetes_charts'; - -export const assetDetailsDashboards = { - host: { hostMetricFlyoutCharts, hostMetricChartsFullPage, hostKPICharts, keyField: 'host.name' }, - kubernetes: { - kubernetesCharts, - keyField: 'kubernetes.node.name', - dependsOn: ['kubernetes.node'], - }, -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/cpu.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/cpu.ts deleted file mode 100644 index 27925b29da722..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/cpu.ts +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import { REFERENCE_LINE, XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -export const cpuUsage: XYConfig = { - id: 'cpuUsage', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.cpuUsage', { - defaultMessage: 'CPU Usage', - }), - - layers: [ - { - data: [hostLensFormulas.cpuUsage], - type: 'visualization', - }, - ], - dataViewOrigin: 'metrics', - overrides: { - axisLeft: XY_OVERRIDES.axisLeft, - }, -}; - -export const cpuUsageBreakdown: XYConfig = { - id: 'cpuUsageBreakdown', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.cpuUsage', { - defaultMessage: 'CPU Usage', - }), - layers: [ - { - data: [ - hostLensFormulas.cpuUsageIowait, - hostLensFormulas.cpuUsageIrq, - hostLensFormulas.cpuUsageNice, - hostLensFormulas.cpuUsageSoftirq, - hostLensFormulas.cpuUsageSteal, - hostLensFormulas.cpuUsageUser, - hostLensFormulas.cpuUsageSystem, - ], - options: { - seriesType: 'area_stacked', - }, - type: 'visualization', - }, - ], - overrides: { - axisLeft: XY_OVERRIDES.axisLeft, - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; - -export const normalizedLoad1m: XYConfig = { - id: 'normalizedLoad1m', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.normalizedLoad1m', { - defaultMessage: 'Normalized Load', - }), - layers: [ - { - data: [hostLensFormulas.normalizedLoad1m], - type: 'visualization', - }, - { - data: [REFERENCE_LINE], - type: 'referenceLines', - }, - ], - dataViewOrigin: 'metrics', -}; - -export const loadBreakdown: XYConfig = { - id: 'loadBreakdown', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.load', { - defaultMessage: 'Load', - }), - layers: [ - { - data: [hostLensFormulas.load1m, hostLensFormulas.load5m, hostLensFormulas.load15m], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/disk.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/disk.ts deleted file mode 100644 index daf5ee2ecaac6..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/disk.ts +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import { XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -const TOP_VALUES_SIZE = 5; - -export const diskSpaceUsageAvailable: XYConfig = { - id: 'diskSpaceUsageAvailable', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskUsage', { - defaultMessage: 'Disk Usage', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.diskUsage, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskUsage.label.used', { - defaultMessage: 'Used', - }), - }, - { - ...hostLensFormulas.diskSpaceAvailability, - label: i18n.translate( - 'xpack.infra.assetDetails.metricsCharts.diskUsage.label.available', - { - defaultMessage: 'Available', - } - ), - }, - ], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - axisLeft: XY_OVERRIDES.axisLeft, - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; - -export const diskUsageByMountPoint: XYConfig = { - id: 'DiskUsageByMountPoint', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskUsageByMountingPoint', { - defaultMessage: 'Disk Usage by Mount Point', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.diskUsage, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskUsage.label.used', { - defaultMessage: 'Used', - }), - }, - ], - options: { - seriesType: 'area', - breakdown: { - type: 'top_values', - field: 'system.filesystem.mount_point', - params: { - size: TOP_VALUES_SIZE, - }, - }, - }, - type: 'visualization', - }, - ], - overrides: { - axisLeft: XY_OVERRIDES.axisLeft, - }, - dataViewOrigin: 'metrics', -}; - -export const diskThroughputReadWrite: XYConfig = { - id: 'diskThroughputReadWrite', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskIOPS', { - defaultMessage: 'Disk IOPS', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.diskIORead, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.read', { - defaultMessage: 'Read', - }), - }, - { - ...hostLensFormulas.diskIOWrite, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.write', { - defaultMessage: 'Write', - }), - }, - ], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; - -export const diskIOReadWrite: XYConfig = { - id: 'diskIOReadWrite', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.diskThroughput', { - defaultMessage: 'Disk Throughput', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.diskReadThroughput, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.read', { - defaultMessage: 'Read', - }), - }, - { - ...hostLensFormulas.diskWriteThroughput, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.write', { - defaultMessage: 'Write', - }), - }, - ], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/log.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/log.ts deleted file mode 100644 index 267474c4363fa..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/log.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import type { XYConfig } from '../../types'; - -export const logRate: XYConfig = { - id: 'logRate', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.logRate', { - defaultMessage: 'Log Rate', - }), - layers: [ - { - data: [hostLensFormulas.logRate], - type: 'visualization', - }, - ], - dataViewOrigin: 'logs', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/memory.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/memory.ts deleted file mode 100644 index dae8d46832c01..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/memory.ts +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import { XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -export const memoryUsage: XYConfig = { - id: 'memoryUsage', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.memoryUsage', { - defaultMessage: 'Memory Usage', - }), - layers: [ - { - data: [hostLensFormulas.memoryUsage], - type: 'visualization', - }, - ], - dataViewOrigin: 'metrics', - overrides: { - axisLeft: XY_OVERRIDES.axisLeft, - }, -}; - -export const memoryUsageBreakdown: XYConfig = { - id: 'memoryUsage', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.memoryUsage', { - defaultMessage: 'Memory Usage', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.memoryCache, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.cache', { - defaultMessage: 'Cache', - }), - }, - { - ...hostLensFormulas.memoryUsed, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.used', { - defaultMessage: 'Used', - }), - }, - { - ...hostLensFormulas.memoryFreeExcludingCache, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.metric.label.free', { - defaultMessage: 'Free', - }), - }, - ], - options: { - seriesType: 'area_stacked', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/network.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/network.ts deleted file mode 100644 index aae8de6a96173..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/asset_details/metric_charts/network.ts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import { hostLensFormulas } from '../../../formulas'; -import { XY_OVERRIDES } from '../../constants'; -import type { XYConfig } from '../../types'; - -export const rxTx: XYConfig = { - id: 'rxTx', - title: i18n.translate('xpack.infra.assetDetails.metricsCharts.network', { - defaultMessage: 'Network', - }), - layers: [ - { - data: [ - { - ...hostLensFormulas.rx, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.network.label.rx', { - defaultMessage: 'Inbound (RX)', - }), - }, - { - ...hostLensFormulas.tx, - label: i18n.translate('xpack.infra.assetDetails.metricsCharts.network.label.tx', { - defaultMessage: 'Outbound (TX)', - }), - }, - ], - options: { - seriesType: 'area', - }, - type: 'visualization', - }, - ], - overrides: { - settings: XY_OVERRIDES.settings, - }, - dataViewOrigin: 'metrics', -}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/constants.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/constants.ts deleted file mode 100644 index 5efc100ada739..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/constants.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { StaticValueConfig, XYVisualOptions } from '@kbn/lens-embeddable-utils'; -import type { AllowedSettingsOverrides, AllowedXYOverrides } from '@kbn/lens-plugin/common/types'; - -interface XYOverrides { - axisLeft: AllowedXYOverrides['axisLeft']; - settings: AllowedSettingsOverrides['settings']; -} - -export const REFERENCE_LINE: StaticValueConfig = { - value: '1', - format: { - id: 'percent', - params: { - decimals: 0, - }, - }, - color: '#6092c0', -}; - -export const XY_OVERRIDES: XYOverrides = { - axisLeft: { - domain: { - min: 0, - max: 1, - }, - }, - settings: { - showLegend: true, - legendPosition: 'bottom', - legendSize: 50, - }, -}; - -export const XY_MISSING_VALUE_DOTTED_LINE_CONFIG: XYVisualOptions = { - showDottedLine: true, - missingValues: 'Linear', -}; - -export const KPI_CHART_HEIGHT = 150; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/hosts_metric_charts.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/hosts_metric_charts.ts deleted file mode 100644 index d7b1898c321e0..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/hosts_metric_charts.ts +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -import type { XYLayerOptions } from '@kbn/lens-embeddable-utils'; -import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; -import { hostLensFormulas } from '../../formulas'; -import type { XYChartLayerParams } from '../../../types'; -import { REFERENCE_LINE, XY_OVERRIDES } from '../constants'; - -const XY_LAYER_OPTIONS: XYLayerOptions = { - breakdown: { - type: 'top_values', - field: 'host.name', - params: { - size: 20, - }, - }, -}; - -export const hostsMetricCharts: Array< - Pick & { - layers: XYChartLayerParams[]; - } -> = [ - { - id: 'cpuUsage', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.cpuUsage', { - defaultMessage: 'CPU Usage', - }), - layers: [ - { data: [hostLensFormulas.cpuUsage], options: XY_LAYER_OPTIONS, type: 'visualization' }, - ], - overrides: { axisLeft: XY_OVERRIDES.axisLeft }, - }, - { - id: 'normalizedLoad1m', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.normalizedLoad1m', { - defaultMessage: 'Normalized Load', - }), - layers: [ - { - data: [hostLensFormulas.normalizedLoad1m], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - { - data: [REFERENCE_LINE], - type: 'referenceLines', - }, - ], - }, - { - id: 'memoryUsage', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.memoryUsage', { - defaultMessage: 'Memory Usage', - }), - layers: [ - { - data: [hostLensFormulas.memoryUsage], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - overrides: { axisLeft: XY_OVERRIDES.axisLeft }, - }, - { - id: 'memoryFree', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.memoryFree', { - defaultMessage: 'Memory Free', - }), - layers: [ - { - data: [hostLensFormulas.memoryFree], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'diskSpaceUsed', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskUsage', { - defaultMessage: 'Disk Usage', - }), - layers: [ - { - data: [hostLensFormulas.diskUsage], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - overrides: { axisLeft: XY_OVERRIDES.axisLeft }, - }, - { - id: 'diskSpaceAvailable', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskSpaceAvailable', { - defaultMessage: 'Disk Space Available', - }), - layers: [ - { - data: [hostLensFormulas.diskSpaceAvailable], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'diskIORead', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskIORead', { - defaultMessage: 'Disk Read IOPS', - }), - layers: [ - { - data: [hostLensFormulas.diskIORead], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'diskIOWrite', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskIOWrite', { - defaultMessage: 'Disk Write IOPS', - }), - layers: [ - { - data: [hostLensFormulas.diskIOWrite], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'diskReadThroughput', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskReadThroughput', { - defaultMessage: 'Disk Read Throughput', - }), - layers: [ - { - data: [hostLensFormulas.diskReadThroughput], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'diskWriteThroughput', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.diskWriteThroughput', { - defaultMessage: 'Disk Write Throughput', - }), - layers: [ - { - data: [hostLensFormulas.diskWriteThroughput], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'rx', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.rx', { - defaultMessage: 'Network Inbound (RX)', - }), - layers: [ - { - data: [hostLensFormulas.rx], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, - { - id: 'tx', - title: i18n.translate('xpack.infra.hostsViewPage.tabs.metricsCharts.tx', { - defaultMessage: 'Network Outbound (TX)', - }), - layers: [ - { - data: [hostLensFormulas.tx], - options: XY_LAYER_OPTIONS, - type: 'visualization', - }, - ], - }, -]; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/index.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/index.ts deleted file mode 100644 index 446c39158d8cc..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -export { assetDetailsDashboards } from './asset_details'; -export { hostsViewDashboards } from './hosts_view'; -export { AVERAGE_SUBTITLE, METRICS_TOOLTIP } from './translations'; -export { XY_MISSING_VALUE_DOTTED_LINE_CONFIG, KPI_CHART_HEIGHT } from './constants'; -export * from './types'; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/types.ts b/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/types.ts deleted file mode 100644 index 90899c11573e4..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/types.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ -import type { TypedLensByValueInput } from '@kbn/lens-plugin/public'; -import type { DataViewOrigin } from '../../../../components/asset_details/types'; -import type { MetricChartLayerParams, XYChartLayerParams } from '../../types'; - -type BaseProps = Pick; - -export interface AssetXYChartProps extends BaseProps { - layers: XYChartLayerParams[]; -} - -export interface XYConfig extends AssetXYChartProps { - dataViewOrigin: DataViewOrigin; -} - -export interface KPIChartProps extends BaseProps { - layers: MetricChartLayerParams; - toolTip: string; -} diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/translations.ts b/x-pack/plugins/infra/public/common/visualizations/translations.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/dashboards/translations.ts rename to x-pack/plugins/infra/public/common/visualizations/translations.ts index c14674f7d7f40..c29f4e49d9eba 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/translations.ts +++ b/x-pack/plugins/infra/public/common/visualizations/translations.ts @@ -16,7 +16,7 @@ export const METRICS_TOOLTIP = { defaultMessage: 'Percentage of CPU time spent in states other than Idle and IOWait, normalized by the number of CPU cores. This includes both time spent on user space and kernel space.', }), - diskSpaceUsage: i18n.translate('xpack.infra.hostsViewPage.metrics.tooltip.diskSpaceUsage', { + diskUsage: i18n.translate('xpack.infra.hostsViewPage.metrics.tooltip.diskSpaceUsage', { defaultMessage: 'Percentage of disk space used.', }), diskLatency: i18n.translate('xpack.infra.hostsViewPage.metrics.tooltip.diskLatency', { @@ -43,10 +43,3 @@ export const METRICS_TOOLTIP = { 'Number of bytes which have been sent per second on the public interfaces of the hosts.', }), }; - -export const AVERAGE_SUBTITLE = i18n.translate( - 'xpack.infra.assetDetailsEmbeddable.overview.kpi.subtitle.average', - { - defaultMessage: 'Average', - } -); diff --git a/x-pack/plugins/infra/public/common/visualizations/types.ts b/x-pack/plugins/infra/public/common/visualizations/types.ts deleted file mode 100644 index 301908cec9527..0000000000000 --- a/x-pack/plugins/infra/public/common/visualizations/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import type { - MetricLayerConfig, - XYLayerConfig, - XYReferenceLinesLayerConfig, -} from '@kbn/lens-embeddable-utils'; - -export type XYChartLayerParams = - | (XYLayerConfig & { type: 'visualization' }) - | (XYReferenceLinesLayerConfig & { type: 'referenceLines' }); - -export type MetricChartLayerParams = MetricLayerConfig & { type: 'visualization' }; diff --git a/x-pack/plugins/infra/public/components/asset_details/constants.ts b/x-pack/plugins/infra/public/components/asset_details/constants.ts index 3375c76bcfd3d..4e3ed09e1d46b 100644 --- a/x-pack/plugins/infra/public/components/asset_details/constants.ts +++ b/x-pack/plugins/infra/public/components/asset_details/constants.ts @@ -10,7 +10,6 @@ import { INTEGRATION_NAME } from './types'; export const ASSET_DETAILS_FLYOUT_COMPONENT_NAME = 'infraAssetDetailsFlyout'; export const ASSET_DETAILS_PAGE_COMPONENT_NAME = 'infraAssetDetailsPage'; -export const METRIC_CHART_HEIGHT = 300; export const APM_HOST_FILTER_FIELD = 'host.hostname'; export const ASSET_DETAILS_URL_STATE_KEY = 'assetDetails'; diff --git a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/kpis/kpi.tsx b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/kpis/kpi.tsx index f586aeaab7630..4047d365b8f24 100644 --- a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/kpis/kpi.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/kpis/kpi.tsx @@ -8,21 +8,20 @@ import React, { useMemo } from 'react'; import type { DataView } from '@kbn/data-views-plugin/public'; import { TimeRange } from '@kbn/es-query'; +import { ChartModel } from '@kbn/lens-embeddable-utils'; +import { METRICS_TOOLTIP } from '../../../../../common/visualizations'; import { LensChart, TooltipContent } from '../../../../lens'; -import { AVERAGE_SUBTITLE, type KPIChartProps } from '../../../../../common/visualizations'; import { buildCombinedHostsFilter } from '../../../../../utils/filters/build'; import { useLoadingStateContext } from '../../../hooks/use_loading_state'; export const Kpi = ({ id, - title, - layers, - toolTip, height, - dataView, assetName, dateRange, -}: KPIChartProps & { + dataView, + ...chartProps +}: ChartModel & { height: number; dataView?: DataView; assetName: string; @@ -39,20 +38,23 @@ export const Kpi = ({ ]; }, [dataView, assetName]); - const tooltipContent = useMemo(() => , [toolTip]); + const tooltipContent = useMemo( + () => + id in METRICS_TOOLTIP ? ( + + ) : undefined, + [id] + ); return ( { - const euiTheme = useTheme(); + const model = findInventoryModel('host'); + const { euiTheme } = useEuiTheme(); + const { value: dashboards } = useAsync(() => { + return model.metrics.getDashboards(); + }); + + const charts = useMemo( + () => + dashboards?.kpi.get({ + metricsDataView: dataView, + options: { + backgroundColor: euiTheme.colors.lightestShade, + }, + }).charts ?? [], + [dataView, euiTheme.colors.lightestShade, dashboards?.kpi] + ); return ( - {assetDetailsDashboards.host - .hostKPICharts(euiTheme.eui.euiColorLightestShade) - .map((chartProps, index) => ( - - - - ))} + {charts.map((chartProps, index) => ( + + + + ))} ); }; diff --git a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/chart.tsx b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/chart.tsx index 72d7f27c7dc48..d1e3bc1bdee3a 100644 --- a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/chart.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/chart.tsx @@ -5,47 +5,37 @@ * 2.0. */ import React, { useCallback, useMemo } from 'react'; -import type { XYVisualOptions } from '@kbn/lens-embeddable-utils'; -import type { DataView } from '@kbn/data-views-plugin/public'; +import type { ChartModel } from '@kbn/lens-embeddable-utils'; import type { TimeRange } from '@kbn/es-query'; +import { METRIC_CHART_HEIGHT } from '../../../../../common/visualizations/constants'; import { buildCombinedHostsFilter } from '../../../../../utils/filters/build'; -import { type BrushEndArgs, LensChart, type OnFilterEvent } from '../../../../lens'; -import { METRIC_CHART_HEIGHT } from '../../../constants'; +import { type BrushEndArgs, LensChart, type OnFilterEvent, LensChartProps } from '../../../../lens'; import { useDatePickerContext } from '../../../hooks/use_date_picker'; import { extractRangeFromChartFilterEvent } from './chart_utils'; -import type { XYConfig } from '../../../../../common/visualizations'; import { useLoadingStateContext } from '../../../hooks/use_loading_state'; -export interface ChartProps extends XYConfig { - visualOptions?: XYVisualOptions; - metricsDataView?: DataView; - logsDataView?: DataView; - filterFieldName: string; - dateRange: TimeRange; - assetName: string; - ['data-test-subj']: string; -} +export type ChartProps = ChartModel & + Pick & { + filterFieldName: string; + dateRange: TimeRange; + assetName: string; + dataViewOrigin?: 'metrics' | 'logs'; + ['data-test-subj']: string; + }; export const Chart = ({ id, - title, - layers, - metricsDataView, - logsDataView, filterFieldName, - visualOptions, dataViewOrigin, overrides, dateRange, assetName, + dataView, ...props }: ChartProps) => { const { setDateRange } = useDatePickerContext(); const { searchSessionId } = useLoadingStateContext(); - - const dataView = useMemo(() => { - return dataViewOrigin === 'metrics' ? metricsDataView : logsDataView; - }, [dataViewOrigin, logsDataView, metricsDataView]); + const { ['data-test-subj']: dataTestSubj, ...chartProps } = { ...props }; const filters = useMemo(() => { return [ @@ -85,18 +75,15 @@ export const Chart = ({ return ( diff --git a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_grid.tsx b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_grid.tsx index 1050ff72a246c..d2697112cd0d0 100644 --- a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_grid.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_grid.tsx @@ -4,61 +4,31 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React, { useMemo } from 'react'; -import type { DataView } from '@kbn/data-views-plugin/public'; +import React from 'react'; import { EuiFlexItem, EuiFlexGrid } from '@elastic/eui'; import type { TimeRange } from '@kbn/es-query'; -import { - type XYConfig, - XY_MISSING_VALUE_DOTTED_LINE_CONFIG, -} from '../../../../../common/visualizations'; -import { useMetadataStateContext } from '../../../hooks/use_metadata_state'; +import type { ChartModel } from '@kbn/lens-embeddable-utils'; import { Chart } from './chart'; interface Props { assetName: string; dateRange: TimeRange; - metricsDataView?: DataView; - logsDataView?: DataView; filterFieldName: string; - charts: Array; + charts: ChartModel[]; ['data-test-subj']: string; } -export const MetricsGrid = ({ - assetName, - metricsDataView, - logsDataView, - dateRange, - filterFieldName, - charts, - ...props -}: Props) => { - const { metadata } = useMetadataStateContext(); - - const chartsToRender = useMemo( - () => - charts.filter( - (c) => - !c.dependsOn || - c.dependsOn.every((d) => (metadata?.features ?? []).some((f) => d === f.name)) - ), - [charts, metadata?.features] - ); - +export const MetricsGrid = ({ assetName, dateRange, filterFieldName, charts, ...props }: Props) => { return ( - {chartsToRender.map((chartProp, index) => ( + {charts.map((chartProp, index) => ( ))} diff --git a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_section.tsx b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_section.tsx index f6baa4038c230..3750b5bf422a7 100644 --- a/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_section.tsx +++ b/x-pack/plugins/infra/public/components/asset_details/tabs/overview/metrics/metrics_section.tsx @@ -10,7 +10,8 @@ import { EuiFlexItem } from '@elastic/eui'; import type { DataView } from '@kbn/data-views-plugin/public'; import type { TimeRange } from '@kbn/es-query'; import { EuiFlexGroup } from '@elastic/eui'; -import { assetDetailsDashboards } from '../../../../../common/visualizations'; +import { findInventoryModel } from '@kbn/metrics-data-access-plugin/common'; +import useAsync from 'react-use/lib/useAsync'; import { MetricsSectionTitle, KubernetesMetricsSectionTitle, @@ -25,31 +26,45 @@ interface Props { logsDataView?: DataView; } -const { host, kubernetes } = assetDetailsDashboards; - export const MetricsSection = ({ assetName, metricsDataView, logsDataView, dateRange }: Props) => { + const model = findInventoryModel('host'); + + const { value } = useAsync(() => { + return model.metrics.getDashboards(); + }); + + const dashboards = useMemo( + () => ({ + hosts: value?.assetDetails.get({ + metricsDataView, + logsDataView, + }), + kubernetes: value?.assetDetailsKubernetesNode.get({ + metricsDataView, + }), + }), + + [logsDataView, metricsDataView, value?.assetDetails, value?.assetDetailsKubernetesNode] + ); + return (
-
+
@@ -61,19 +76,33 @@ export const MetricsSectionCompact = ({ metricsDataView, logsDataView, dateRange, -}: Props) => ( -
- -
-); +}: Props) => { + const model = findInventoryModel('host'); + const { value } = useAsync(() => { + return model.metrics.getDashboards(); + }); + + const charts = useMemo( + () => + value?.assetDetailsFlyout.get({ + metricsDataView, + logsDataView, + }).charts ?? [], + [metricsDataView, logsDataView, value?.assetDetailsFlyout] + ); + + return ( +
+ +
+ ); +}; const Section = ({ title, diff --git a/x-pack/plugins/infra/public/hooks/use_lens_attributes.test.ts b/x-pack/plugins/infra/public/hooks/use_lens_attributes.test.ts index 116107a64a43b..a0bf9dd6c1fcd 100644 --- a/x-pack/plugins/infra/public/hooks/use_lens_attributes.test.ts +++ b/x-pack/plugins/infra/public/hooks/use_lens_attributes.test.ts @@ -15,7 +15,6 @@ import { CoreStart } from '@kbn/core/public'; import type { InfraClientStartDeps } from '../types'; import { lensPluginMock } from '@kbn/lens-plugin/public/mocks'; import { FilterStateStore } from '@kbn/es-query'; -import { hostLensFormulas } from '../common/visualizations'; jest.mock('@kbn/kibana-react-plugin/public'); const useKibanaMock = useKibana as jest.MockedFunction; @@ -31,7 +30,16 @@ const mockDataView = { metaFields: [], } as unknown as jest.Mocked; -const normalizedLoad1m = hostLensFormulas.normalizedLoad1m; +const normalizedLoad1m = { + label: 'Normalized Load', + value: 'average(system.load.1) / max(system.load.cores)', + format: { + id: 'percent', + params: { + decimals: 0, + }, + }, +}; const lensPluginMockStart = lensPluginMock.createStartContract(); const mockUseKibana = () => { @@ -55,7 +63,6 @@ describe('useHostTable hook', () => { layers: [ { data: [normalizedLoad1m], - type: 'visualization', options: { buckets: { type: 'date_histogram', @@ -68,6 +75,7 @@ describe('useHostTable hook', () => { }, }, }, + layerType: 'data', }, { data: [ @@ -81,7 +89,7 @@ describe('useHostTable hook', () => { }, }, ], - type: 'referenceLines', + layerType: 'referenceLine', }, ], title: 'Injected Normalized Load', @@ -195,11 +203,12 @@ describe('useHostTable hook', () => { it('should return extra actions', async () => { const { result, waitForNextUpdate } = renderHook(() => useLensAttributes({ + title: 'Chart', visualizationType: 'lnsXY', layers: [ { data: [normalizedLoad1m], - type: 'visualization', + layerType: 'data', }, ], dataView: mockDataView, diff --git a/x-pack/plugins/infra/public/hooks/use_lens_attributes.ts b/x-pack/plugins/infra/public/hooks/use_lens_attributes.ts index aa5feb4dc0b47..7a5f07d171eb7 100644 --- a/x-pack/plugins/infra/public/hooks/use_lens_attributes.ts +++ b/x-pack/plugins/infra/public/hooks/use_lens_attributes.ts @@ -15,9 +15,10 @@ import useAsync from 'react-use/lib/useAsync'; import { FormulaPublicApi } from '@kbn/lens-plugin/public'; import { type LensVisualizationState, - type XYVisualOptions, type Chart, type LensAttributes, + type ChartModel, + type XYLayerConfig, LensAttributesBuilder, XYChart, MetricChart, @@ -26,35 +27,17 @@ import { XYReferenceLinesLayer, } from '@kbn/lens-embeddable-utils'; import { InfraClientSetupDeps } from '../types'; -import type { MetricChartLayerParams, XYChartLayerParams } from '../common/visualizations/types'; -interface UseLensAttributesBaseParams { - dataView?: DataView; - title?: string; -} - -export interface UseLensAttributesXYChartParams extends UseLensAttributesBaseParams { - layers: XYChartLayerParams[]; - visualizationType: 'lnsXY'; - visualOptions?: XYVisualOptions; -} - -export interface UseLensAttributesMetricChartParams extends UseLensAttributesBaseParams { - layers: MetricChartLayerParams; - visualizationType: 'lnsMetric'; - subtitle?: string; -} - -export type UseLensAttributesParams = - | UseLensAttributesXYChartParams - | UseLensAttributesMetricChartParams; +export type UseLensAttributesParams = Omit; export const useLensAttributes = ({ dataView, ...params }: UseLensAttributesParams) => { const { services: { lens }, } = useKibana(); const { navigateToPrefilledEditor } = lens; - const { value, error } = useAsync(lens.stateHelperApi, [lens]); + const { value, error } = useAsync(() => { + return lens.stateHelperApi(); + }, [lens]); const { formula: formulaAPI } = value ?? {}; const attributes = useMemo(() => { @@ -144,7 +127,7 @@ export const useLensAttributes = ({ dataView, ...params }: UseLensAttributesPara const getFormula = () => { const firstDataLayer = [ ...(Array.isArray(params.layers) ? params.layers : [params.layers]), - ].find((p) => p.type === 'visualization'); + ].find((p) => p.layerType === 'data'); if (!firstDataLayer) { return ''; @@ -174,32 +157,27 @@ const chartFactory = ({ throw new Error(`Invalid layers type. Expected an array of layers.`); } - const xyLayerFactory = (layer: XYChartLayerParams) => { - switch (layer.type) { - case 'visualization': { - return new XYDataLayer({ - data: layer.data, - options: layer.options, - }); + const xyLayerFactory = (layer: XYLayerConfig) => { + switch (layer.layerType) { + case 'data': { + return new XYDataLayer(layer); } - case 'referenceLines': { - return new XYReferenceLinesLayer({ - data: layer.data, - }); + case 'referenceLine': { + return new XYReferenceLinesLayer(layer); } default: throw new Error(`Invalid layer type`); } }; + const { layers, ...rest } = params; return new XYChart({ dataView, formulaAPI, - layers: params.layers.map((layerItem) => { + layers: layers.map((layerItem) => { return xyLayerFactory(layerItem); }), - title: params.title, - visualOptions: params.visualOptions, + ...rest, }); case 'lnsMetric': @@ -212,7 +190,8 @@ const chartFactory = ({ formulaAPI, layers: new MetricLayer({ data: params.layers.data, - options: { ...params.layers.options, subtitle: params.subtitle }, + options: { ...params.layers.options }, + layerType: params.layers.layerType, }), title: params.title, }); diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_content.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_content.tsx index 7dea5303aad28..5496dcf64cd50 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_content.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/hosts_content.tsx @@ -15,6 +15,7 @@ import { HostsViewProvider } from '../hooks/use_hosts_view'; import { HostsTableProvider } from '../hooks/use_hosts_table'; import { ErrorCallout } from './error_callout'; import { useUnifiedSearchContext } from '../hooks/use_unified_search'; +import { HostCountProvider } from '../hooks/use_host_count'; export const HostsContent = () => { const { error } = useUnifiedSearchContext(); @@ -28,7 +29,9 @@ export const HostsContent = () => { - + + + diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/host_count_kpi.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/host_count_kpi.tsx index 45e9f5f0b2c83..8d4794aaa6c44 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/host_count_kpi.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/host_count_kpi.tsx @@ -7,18 +7,22 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { useTheme } from '@kbn/observability-shared-plugin/public'; -import { hostLensFormulas, METRICS_TOOLTIP } from '../../../../../common/visualizations'; +import { findInventoryModel } from '@kbn/metrics-data-access-plugin/common'; +import useAsync from 'react-use/lib/useAsync'; +import { METRICS_TOOLTIP } from '../../../../../common/visualizations'; import { useHostCountContext } from '../../hooks/use_host_count'; import { useUnifiedSearchContext } from '../../hooks/use_unified_search'; - import { type Props, MetricChartWrapper } from '../chart/metric_chart_wrapper'; import { TooltipContent } from '../../../../../components/lens'; export const HostCountKpi = ({ height }: { height: number }) => { + const inventoryModel = findInventoryModel('host'); const { data: hostCountData, isRequestRunning: hostCountLoading } = useHostCountContext(); const { searchCriteria } = useUnifiedSearchContext(); const euiTheme = useTheme(); + const { value: formulas } = useAsync(() => inventoryModel.metrics.getFormulas()); + const hostsCountChart: Omit = { id: 'hostsViewKPI-hostsCount', color: euiTheme.eui.euiColorLightestShade, @@ -46,7 +50,7 @@ export const HostCountKpi = ({ height }: { height: number }) => { subtitle={getSubtitle()} toolTip={ } diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi.tsx index d57f28b6b71ed..e14d72ac7207d 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi.tsx @@ -5,21 +5,25 @@ * 2.0. */ import React, { useMemo } from 'react'; -import { i18n } from '@kbn/i18n'; +import { ChartModel } from '@kbn/lens-embeddable-utils'; +import { METRICS_TOOLTIP } from '../../../../../common/visualizations'; import { LensChart, TooltipContent } from '../../../../../components/lens'; -import { type KPIChartProps, AVERAGE_SUBTITLE } from '../../../../../common/visualizations'; import { buildCombinedHostsFilter } from '../../../../../utils/filters/build'; -import { useMetricsDataViewContext } from '../../hooks/use_data_view'; import { useUnifiedSearchContext } from '../../hooks/use_unified_search'; import { useHostsViewContext } from '../../hooks/use_hosts_view'; import { useHostCountContext } from '../../hooks/use_host_count'; import { useAfterLoadedState } from '../../hooks/use_after_loaded_state'; -export const Kpi = ({ id, title, layers, toolTip, height }: KPIChartProps & { height: number }) => { +export const Kpi = ({ + id, + height, + visualizationType = 'lnsMetric', + dataView, + ...chartProps +}: ChartModel & { height: number }) => { const { searchCriteria } = useUnifiedSearchContext(); - const { dataView } = useMetricsDataViewContext(); const { hostNodes, loading: hostsLoading, searchSessionId } = useHostsViewContext(); - const { data: hostCountData, isRequestRunning: hostCountLoading } = useHostCountContext(); + const { isRequestRunning: hostCountLoading } = useHostCountContext(); const shouldUseSearchCriteria = hostNodes.length === 0; const loading = hostsLoading || hostCountLoading; @@ -34,16 +38,6 @@ export const Kpi = ({ id, title, layers, toolTip, height }: KPIChartProps & { he }), ]; - const subtitle = - searchCriteria.limit < (hostCountData?.count.value ?? 0) - ? i18n.translate('xpack.infra.hostsViewPage.kpi.subtitle.average.limit', { - defaultMessage: 'Average (of {limit} hosts)', - values: { - limit: searchCriteria.limit, - }, - }) - : AVERAGE_SUBTITLE; - // prevents requestTs and searchCriteria state from reloading the chart // we want it to reload only once the table has finished loading. // attributes passed to useAfterLoadedState don't need to be memoized @@ -52,26 +46,29 @@ export const Kpi = ({ id, title, layers, toolTip, height }: KPIChartProps & { he query: shouldUseSearchCriteria ? searchCriteria.query : undefined, filters, searchSessionId, - subtitle, }); - const tooltipComponent = useMemo(() => , [toolTip]); + const tooltipContent = useMemo( + () => + id in METRICS_TOOLTIP ? ( + + ) : undefined, + [id] + ); return ( diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi_grid.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi_grid.tsx index 9b3eb2cdde109..055793f6b53c7 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi_grid.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/kpis/kpi_grid.tsx @@ -4,36 +4,68 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React from 'react'; - +import React, { useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { EuiSpacer } from '@elastic/eui'; -import { useTheme } from '@kbn/observability-shared-plugin/public'; +import { findInventoryModel } from '@kbn/metrics-data-access-plugin/common'; +import { useEuiTheme } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import useAsync from 'react-use/lib/useAsync'; +import { KPI_CHART_HEIGHT } from '../../../../../common/visualizations'; import { HostMetricsDocsLink } from '../../../../../components/lens'; import { Kpi } from './kpi'; -import { HostCountProvider } from '../../hooks/use_host_count'; +import { useHostCountContext } from '../../hooks/use_host_count'; import { HostCountKpi } from './host_count_kpi'; -import { assetDetailsDashboards, KPI_CHART_HEIGHT } from '../../../../../common/visualizations'; +import { useMetricsDataViewContext } from '../../hooks/use_data_view'; +import { useUnifiedSearchContext } from '../../hooks/use_unified_search'; export const KPIGrid = () => { - const euiTheme = useTheme(); + const model = findInventoryModel('host'); + const { searchCriteria } = useUnifiedSearchContext(); + const { euiTheme } = useEuiTheme(); + const { dataView } = useMetricsDataViewContext(); + const { data: hostCountData } = useHostCountContext(); + + const { value: dashboards } = useAsync(() => { + return model.metrics.getDashboards(); + }); + + const subtitle = + searchCriteria.limit < (hostCountData?.count.value ?? 0) + ? i18n.translate('xpack.infra.hostsViewPage.kpi.subtitle.average.limit', { + defaultMessage: 'Average (of {limit} hosts)', + values: { + limit: searchCriteria.limit, + }, + }) + : undefined; + + const charts = useMemo( + () => + dashboards?.kpi.get({ + metricsDataView: dataView, + options: { + backgroundColor: euiTheme.colors.lightestShade, + ...(subtitle ? { subtitle } : {}), + }, + }).charts ?? [], + [dashboards?.kpi, dataView, euiTheme.colors.lightestShade, subtitle] + ); return ( - + <> - {assetDetailsDashboards.host - .hostKPICharts(euiTheme.eui.euiColorLightestShade) - .map((chartProp, index) => ( - - - - ))} + {charts.map((chartProp, index) => ( + + + + ))} - + ); }; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/chart.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/chart.tsx index d7af2f06d4b08..1d82f0d76da22 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/chart.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/chart.tsx @@ -5,24 +5,21 @@ * 2.0. */ import React, { useMemo } from 'react'; -import type { XYVisualOptions } from '@kbn/lens-embeddable-utils'; -import type { AssetXYChartProps } from '../../../../../../common/visualizations'; +import type { ChartModel, XYVisualOptions } from '@kbn/lens-embeddable-utils'; +import { METRIC_CHART_HEIGHT } from '../../../../../../common/visualizations/constants'; import { LensChart } from '../../../../../../components/lens'; -import { useMetricsDataViewContext } from '../../../hooks/use_data_view'; import { useUnifiedSearchContext } from '../../../hooks/use_unified_search'; import { useHostsViewContext } from '../../../hooks/use_hosts_view'; import { buildCombinedHostsFilter } from '../../../../../../utils/filters/build'; import { useHostsTableContext } from '../../../hooks/use_hosts_table'; import { useAfterLoadedState } from '../../../hooks/use_after_loaded_state'; -import { METRIC_CHART_HEIGHT } from '../../../constants'; -export interface ChartProps extends AssetXYChartProps { +export interface ChartProps extends Omit { visualOptions?: XYVisualOptions; } -export const Chart = ({ id, title, layers, visualOptions, overrides }: ChartProps) => { +export const Chart = ({ dataView, ...chartProps }: ChartProps) => { const { searchCriteria } = useUnifiedSearchContext(); - const { dataView } = useMetricsDataViewContext(); const { loading, searchSessionId } = useHostsViewContext(); const { currentPage } = useHostsTableContext(); @@ -51,20 +48,16 @@ export const Chart = ({ id, title, layers, visualOptions, overrides }: ChartProp return ( ); }; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx index d9310ae0d816b..37424447d9d72 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/components/tabs/metrics/metrics_grid.tsx @@ -4,22 +4,38 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import React from 'react'; +import React, { useMemo } from 'react'; +import { i18n } from '@kbn/i18n'; import { EuiFlexGrid, EuiFlexItem, EuiText, EuiFlexGroup, EuiSpacer } from '@elastic/eui'; -import { - hostsViewDashboards, - XY_MISSING_VALUE_DOTTED_LINE_CONFIG, -} from '../../../../../../common/visualizations'; +import { findInventoryModel } from '@kbn/metrics-data-access-plugin/common'; +import useAsync from 'react-use/lib/useAsync'; import { HostMetricsExplanationContent } from '../../../../../../components/lens'; import { Chart } from './chart'; import { Popover } from '../../table/popover'; +import { useMetricsDataViewContext } from '../../../hooks/use_data_view'; export const MetricsGrid = () => { + const model = findInventoryModel('host'); + const { dataView } = useMetricsDataViewContext(); + + const { value: dashboards } = useAsync(() => { + return model.metrics.getDashboards(); + }); + + const charts = useMemo( + () => dashboards?.hostsView.get({ metricsDataView: dataView }).charts ?? [], + [dataView, dashboards] + ); + return ( <> - Learn more about metrics + + {i18n.translate('xpack.infra.metricsGrid.learnMoreAboutMetricsTextLabel', { + defaultMessage: 'Learn more about metrics', + })} + @@ -30,9 +46,9 @@ export const MetricsGrid = () => { - {hostsViewDashboards.hostsMetricCharts.map((chartProp, index) => ( + {charts.map((chartProp, index) => ( - + ))} diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts index 997ae6fd5ed66..cba547f072a64 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/constants.ts @@ -12,7 +12,5 @@ export const DEFAULT_PAGE_SIZE = 10; export const LOCAL_STORAGE_HOST_LIMIT_KEY = 'hostsView:hostLimitSelection'; export const LOCAL_STORAGE_PAGE_SIZE_KEY = 'hostsView:pageSizeSelection'; -export const METRIC_CHART_HEIGHT = 300; - export const HOST_LIMIT_OPTIONS = [50, 100, 500] as const; export const HOST_METRICS_DOC_HREF = 'https://ela.st/docs-infra-host-metrics'; diff --git a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx index c1c4093d96e46..23aee3a6c1e3c 100644 --- a/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/hosts/hooks/use_hosts_table.tsx @@ -13,10 +13,11 @@ import { type EuiBasicTable, } from '@elastic/eui'; import createContainer from 'constate'; +import useAsync from 'react-use/lib/useAsync'; import { isEqual } from 'lodash'; import { isNumber } from 'lodash/fp'; import { CloudProvider } from '@kbn/custom-icons'; -import { hostLensFormulas } from '../../../../common/visualizations'; +import { findInventoryModel } from '@kbn/metrics-data-access-plugin/common'; import { useKibanaContextForPlugin } from '../../../../hooks/use_kibana'; import { createInventoryMetricFormatter } from '../../inventory_view/lib/create_inventory_metric_formatter'; import { EntryTitle } from '../components/table/entry_title'; @@ -124,9 +125,12 @@ const sortTableData = * Build a table columns and items starting from the snapshot nodes. */ export const useHostsTable = () => { + const inventoryModel = findInventoryModel('host'); const [selectedItems, setSelectedItems] = useState([]); const { hostNodes } = useHostsViewContext(); + const { value: formulas } = useAsync(() => inventoryModel.metrics.getFormulas()); + const [{ detailsItemId, pagination, sorting }, setProperties] = useHostsTableUrlState(); const { services: { @@ -241,7 +245,7 @@ export const useHostsTable = () => { ), field: 'cpu', @@ -255,7 +259,7 @@ export const useHostsTable = () => { ), field: 'normalizedLoad1m', @@ -269,7 +273,7 @@ export const useHostsTable = () => { ), field: 'memory', @@ -283,7 +287,7 @@ export const useHostsTable = () => { ), field: 'memoryFree', @@ -296,8 +300,8 @@ export const useHostsTable = () => { name: ( ), field: 'diskSpaceUsage', @@ -311,7 +315,7 @@ export const useHostsTable = () => { ), field: 'rx', @@ -326,7 +330,7 @@ export const useHostsTable = () => { ), field: 'tx', @@ -337,7 +341,18 @@ export const useHostsTable = () => { width: '120px', }, ], - [detailsItemId, reportHostEntryClick, setProperties] + [ + detailsItemId, + formulas?.cpuUsage.value, + formulas?.diskUsage.value, + formulas?.memoryFree.value, + formulas?.memoryUsage.value, + formulas?.normalizedLoad1m.value, + formulas?.rx.value, + formulas?.tx.value, + reportHostEntryClick, + setProperties, + ] ); const selection: EuiTableSelectionType = { diff --git a/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts b/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts index 7f10c7aa4aa7d..36433a2bca016 100644 --- a/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metric_detail/lib/get_filtered_metrics.ts @@ -19,6 +19,7 @@ export const getFilteredMetrics = ( .map((data) => data && data.name); return requiredMetrics.filter((metric) => { const metricModelCreator = metrics.tsvb[metric]; + // We just need to get a dummy version of the model so we can filter // using the `requires` attribute. const metricModel = metricModelCreator(TIMESTAMP_FIELD, 'test', '>=1m'); diff --git a/x-pack/plugins/metrics_data_access/common/index.ts b/x-pack/plugins/metrics_data_access/common/index.ts index 38970225a8644..a236ceeac16f0 100644 --- a/x-pack/plugins/metrics_data_access/common/index.ts +++ b/x-pack/plugins/metrics_data_access/common/index.ts @@ -13,7 +13,7 @@ export { metrics, } from './inventory_models'; -export { podSnapshotMetricTypes } from './inventory_models/pod'; +export { podSnapshotMetricTypes } from './inventory_models/kubernetes/pod'; export { containerSnapshotMetricTypes } from './inventory_models/container'; export { awsS3SnapshotMetricTypes } from './inventory_models/aws_s3'; export { hostSnapshotMetricTypes } from './inventory_models/host'; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/create_dashboard_model.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/create_dashboard_model.ts new file mode 100644 index 0000000000000..8fc63d9a91a2b --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/create_dashboard_model.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DashboardModel } from './types'; + +export const createDashboardModel = ({ + charts, + dependsOn = [], +}: DashboardModel): DashboardModel => { + return { + dependsOn, + charts, + }; +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/index.ts index 0b7389b74537d..e1d4f60bc9f74 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/host/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/index.ts @@ -12,10 +12,9 @@ import { aws as awsRequiredMetrics, nginx as nginxRequireMetrics, } from '../shared/metrics/required_metrics'; - export { hostSnapshotMetricTypes } from './metrics'; -export const host: InventoryModel = { +export const host: InventoryModel = { id: 'host', displayName: i18n.translate('xpack.metricsData.inventoryModel.host.displayName', { defaultMessage: 'Hosts', diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/cpu_charts.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/cpu_charts.ts new file mode 100644 index 0000000000000..307db0766accf --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/cpu_charts.ts @@ -0,0 +1,85 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import type { StaticValueConfig, XYChartModel } from '@kbn/lens-embeddable-utils'; +import { formulas } from '../formulas'; +import type { ChartArgs } from './types'; + +export const REFERENCE_LINE: StaticValueConfig = { + value: '1', + format: { + id: 'percent', + params: { + decimals: 0, + }, + }, + color: '#6092c0', +}; + +export const cpuUsageBreakdown = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'cpuUsageBreakdown', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.cpuUsage', { + defaultMessage: 'CPU Usage', + }), + layers: [ + { + data: [ + formulas.cpuUsageIowait, + formulas.cpuUsageIrq, + formulas.cpuUsageNice, + formulas.cpuUsageSoftirq, + formulas.cpuUsageSteal, + formulas.cpuUsageUser, + formulas.cpuUsageSystem, + ], + options: { + seriesType: 'area_stacked', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView, + }), +}; + +export const normalizedLoad1m = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'normalizedLoad1m', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.normalizedLoad1m', { + defaultMessage: 'Normalized Load', + }), + layers: [ + { data: [formulas.normalizedLoad1m], layerType: 'data' }, + { data: [REFERENCE_LINE], layerType: 'referenceLine' }, + ], + visualizationType: 'lnsXY', + dataView, + }), +}; + +export const loadBreakdown = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'loadBreakdown', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.load', { + defaultMessage: 'Load', + }), + layers: [ + { + data: [formulas.load1m, formulas.load5m, formulas.load15m], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView, + }), +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/disk_charts.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/disk_charts.ts new file mode 100644 index 0000000000000..53f2c3e8ea505 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/disk_charts.ts @@ -0,0 +1,192 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import type { XYChartModel } from '@kbn/lens-embeddable-utils'; +import { formulas } from '../formulas'; +import type { ChartArgs } from './types'; + +const TOP_VALUES_SIZE = 5; + +export const diskSpaceUsageAvailable = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'diskSpaceUsageAvailable', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.diskUsage', { + defaultMessage: 'Disk Usage', + }), + layers: [ + { + data: [ + { + ...formulas.diskUsage, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.used', + { + defaultMessage: 'Used', + } + ), + }, + { + ...formulas.diskSpaceAvailability, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.available', + { + defaultMessage: 'Available', + } + ), + }, + ], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView, + }), +}; + +export const diskUsageByMountPoint = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'DiskUsageByMountPoint', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.diskUsageByMountingPoint', { + defaultMessage: 'Disk Usage by Mount Point', + }), + layers: [ + { + data: [ + { + ...formulas.diskUsage, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.used', + { + defaultMessage: 'Used', + } + ), + }, + ], + options: { + seriesType: 'area', + breakdown: { + type: 'top_values', + field: 'system.filesystem.mount_point', + params: { + size: TOP_VALUES_SIZE, + }, + }, + }, + layerType: 'data', + }, + ], + visualOptions: { + legend: { + isVisible: true, + position: 'bottom', + legendSize: 50 as any, + }, + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + visualizationType: 'lnsXY', + dataView, + }), +}; +export const diskThroughputReadWrite = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'diskThroughputReadWrite', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.diskIOPS', { + defaultMessage: 'Disk IOPS', + }), + layers: [ + { + data: [ + { + ...formulas.diskIORead, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.read', + { + defaultMessage: 'Read', + } + ), + }, + { + ...formulas.diskIOWrite, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.write', + { + defaultMessage: 'Write', + } + ), + }, + ], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualOptions: { + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + visualizationType: 'lnsXY', + dataView, + }), +}; + +export const diskIOReadWrite = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'diskIOReadWrite', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.diskThroughput', { + defaultMessage: 'Disk Throughput', + }), + layers: [ + { + data: [ + { + ...formulas.diskReadThroughput, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.read', + { + defaultMessage: 'Read', + } + ), + }, + { + ...formulas.diskWriteThroughput, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.write', + { + defaultMessage: 'Write', + } + ), + }, + ], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualOptions: { + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + visualizationType: 'lnsXY', + dataView, + }), +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/index.ts new file mode 100644 index 0000000000000..1f0a3947e4617 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/index.ts @@ -0,0 +1,72 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + type ChartModel, + type XYChartModel, + type MetricChartModel, + type XYLayerOptions, + type MetricLayerOptions, + type ChartTypes, + type XYVisualOptions, + XY_ID, +} from '@kbn/lens-embeddable-utils'; +import type { HostFormulaNames } from '../formulas'; +import { formulas } from '../formulas'; + +type ChartByFormula = Record< + HostFormulaNames, + TType extends typeof XY_ID ? XYChartModel : MetricChartModel +>; + +type BaseArgs = Pick & { + formulaIds: HostFormulaNames[]; + visualizationType: TType; + layerOptions?: TType extends typeof XY_ID ? XYLayerOptions : MetricLayerOptions; + visualOptions?: TType extends typeof XY_ID ? XYVisualOptions : never; +}; + +export const createBasicCharts = ({ + formulaIds, + visualizationType, + dataView, + layerOptions, + ...rest +}: BaseArgs): ChartByFormula => { + return formulaIds.reduce((acc, curr) => { + const layers = { + data: visualizationType === XY_ID ? [formulas[curr]] : formulas[curr], + layerType: visualizationType === XY_ID ? 'data' : 'metricTrendline', + options: layerOptions, + }; + + const chartModel = { + id: curr, + title: formulas[curr].label, + dataView, + visualizationType, + layers: visualizationType === XY_ID ? [layers] : layers, + ...rest, + } as TType extends typeof XY_ID ? XYChartModel : MetricChartModel; + + return { + ...acc, + [curr]: chartModel, + }; + }, {} as ChartByFormula); +}; + +// custom charts +export { cpuUsageBreakdown, normalizedLoad1m, loadBreakdown } from './cpu_charts'; +export { + diskIOReadWrite, + diskSpaceUsageAvailable, + diskThroughputReadWrite, + diskUsageByMountPoint, +} from './disk_charts'; +export { memoryUsageBreakdown } from './memory_charts'; +export { rxTx } from './network_charts'; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/memory_charts.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/memory_charts.ts new file mode 100644 index 0000000000000..95c30fcdb18e6 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/memory_charts.ts @@ -0,0 +1,71 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import type { XYChartModel } from '@kbn/lens-embeddable-utils'; +import { formulas } from '../formulas'; +import type { ChartArgs } from './types'; + +export const memoryUsageBreakdown = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'memoryUsageBreakdown', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.memoryUsage', { + defaultMessage: 'Memory Usage', + }), + layers: [ + { + data: [ + { + ...formulas.memoryCache, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.cache', + { + defaultMessage: 'Cache', + } + ), + }, + { + ...formulas.memoryUsed, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.used', + { + defaultMessage: 'Used', + } + ), + }, + { + ...formulas.memoryFreeExcludingCache, + label: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.metric.label.free', + { + defaultMessage: 'Free', + } + ), + }, + ], + options: { + seriesType: 'area_stacked', + }, + layerType: 'data', + }, + ], + visualOptions: { + legend: { + isVisible: true, + position: 'bottom', + legendSize: 50 as any, + }, + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + visualizationType: 'lnsXY', + dataView, + }), +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/network_charts.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/network_charts.ts new file mode 100644 index 0000000000000..5181b5b075765 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/network_charts.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import type { XYChartModel } from '@kbn/lens-embeddable-utils'; +import { formulas } from '../formulas'; +import type { ChartArgs } from './types'; + +export const rxTx = { + get: ({ dataView }: ChartArgs): XYChartModel => ({ + id: 'rxTx', + title: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.network', { + defaultMessage: 'Network', + }), + layers: [ + { + data: [ + { + ...formulas.rx, + label: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.network.label.rx', { + defaultMessage: 'Inbound (RX)', + }), + }, + { + ...formulas.tx, + label: i18n.translate('xpack.metricsData.assetDetails.metricsCharts.network.label.tx', { + defaultMessage: 'Outbound (TX)', + }), + }, + ], + options: { + seriesType: 'area', + }, + + layerType: 'data', + }, + ], + visualOptions: { + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + visualizationType: 'lnsXY', + dataView, + }), +}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/types.ts similarity index 68% rename from x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/types.ts index 73d468f206eb8..f3634648b4fdb 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/dashboards/hosts_view/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/charts/types.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { hostsMetricCharts } from './hosts_metric_charts'; +import { DataView } from '@kbn/data-views-plugin/common'; -export const hostsViewDashboards = { - hostsMetricCharts, -}; +export interface ChartArgs { + dataView?: DataView; +} diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details.ts new file mode 100644 index 0000000000000..c6fc7c1cdc9aa --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details.ts @@ -0,0 +1,97 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DataView } from '@kbn/data-views-plugin/common'; +import type { XYVisualOptions } from '@kbn/lens-embeddable-utils'; +import { createDashboardModel } from '../../../create_dashboard_model'; +import { + createBasicCharts, + cpuUsageBreakdown, + diskSpaceUsageAvailable, + diskUsageByMountPoint, + diskIOReadWrite, + diskThroughputReadWrite, + memoryUsageBreakdown, + loadBreakdown, + rxTx, +} from '../charts'; + +export const assetDetails = { + get: ({ + metricsDataView, + logsDataView, + }: { + metricsDataView?: DataView; + logsDataView?: DataView; + }) => { + const commonVisualOptions: XYVisualOptions = { + showDottedLine: true, + missingValues: 'Linear', + }; + + const legend: XYVisualOptions = { + legend: { + isVisible: true, + position: 'bottom', + }, + }; + + const { cpuUsage, memoryUsage, normalizedLoad1m } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: ['cpuUsage', 'memoryUsage', 'normalizedLoad1m'], + dataView: metricsDataView, + visualOptions: commonVisualOptions, + }); + + const { logRate } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: ['logRate'], + dataView: logsDataView, + visualOptions: commonVisualOptions, + }); + + return createDashboardModel({ + charts: [ + cpuUsage, + { + ...cpuUsageBreakdown.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + memoryUsage, + { + ...memoryUsageBreakdown.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + normalizedLoad1m, + { + ...loadBreakdown.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + logRate, + { + ...diskSpaceUsageAvailable.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskUsageByMountPoint.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskThroughputReadWrite.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskIOReadWrite.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...rxTx.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + ], + }); + }, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_flyout.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_flyout.ts new file mode 100644 index 0000000000000..96436e3d00f41 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_flyout.ts @@ -0,0 +1,82 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DataView } from '@kbn/data-views-plugin/common'; +import type { XYVisualOptions } from '@kbn/lens-embeddable-utils'; +import { createDashboardModel } from '../../../create_dashboard_model'; +import { + createBasicCharts, + diskSpaceUsageAvailable, + diskUsageByMountPoint, + diskIOReadWrite, + diskThroughputReadWrite, + rxTx, +} from '../charts'; + +export const assetDetailsFlyout = { + get: ({ + metricsDataView, + logsDataView, + }: { + metricsDataView?: DataView; + logsDataView?: DataView; + }) => { + const commonVisualOptions: XYVisualOptions = { + showDottedLine: true, + missingValues: 'Linear', + }; + + const legend: XYVisualOptions = { + legend: { + isVisible: true, + position: 'bottom', + }, + }; + + const { cpuUsage, memoryUsage, normalizedLoad1m } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: ['cpuUsage', 'memoryUsage', 'normalizedLoad1m'], + dataView: metricsDataView, + visualOptions: commonVisualOptions, + }); + + const { logRate } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: ['logRate'], + dataView: logsDataView, + visualOptions: commonVisualOptions, + }); + + return createDashboardModel({ + charts: [ + cpuUsage, + memoryUsage, + normalizedLoad1m, + logRate, + { + ...diskSpaceUsageAvailable.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskUsageByMountPoint.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskThroughputReadWrite.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...diskIOReadWrite.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + { + ...rxTx.get({ dataView: metricsDataView }), + visualOptions: { ...commonVisualOptions, ...legend }, + }, + ], + }); + }, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_kubernetes_node.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_kubernetes_node.ts new file mode 100644 index 0000000000000..cd9dd1591f35e --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/asset_details_kubernetes_node.ts @@ -0,0 +1,114 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DataView } from '@kbn/data-views-plugin/common'; +import { i18n } from '@kbn/i18n'; +import type { XYVisualOptions } from '@kbn/lens-embeddable-utils'; +import { createDashboardModel } from '../../../create_dashboard_model'; +import { formulas } from '../../../kubernetes/node/metrics'; + +export const assetDetailsKubernetesNode = { + get: ({ metricsDataView }: { metricsDataView?: DataView }) => { + const commonVisualOptions: XYVisualOptions = { + showDottedLine: true, + missingValues: 'Linear', + legend: { + isVisible: true, + position: 'bottom', + }, + }; + + return createDashboardModel({ + dependsOn: ['kubernetes.node'], + charts: [ + { + id: 'nodeCpuCapacity', + title: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity', + { + defaultMessage: 'Node CPU Capacity', + } + ), + layers: [ + { + data: [formulas.nodeCpuCapacity, formulas.nodeCpuUsed], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + dataView: metricsDataView, + visualizationType: 'lnsXY', + visualOptions: commonVisualOptions, + }, + { + id: 'nodeMemoryCapacity', + title: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeMemoryCapacity', + { + defaultMessage: 'Node Memory Capacity', + } + ), + layers: [ + { + data: [formulas.nodeMemoryCapacity, formulas.nodeMemoryUsed], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView: metricsDataView, + visualOptions: commonVisualOptions, + }, + { + id: 'nodeDiskCapacity', + title: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeDiskCapacity', + { + defaultMessage: 'Node Disk Capacity', + } + ), + layers: [ + { + data: [formulas.nodeDiskCapacity, formulas.nodeDiskUsed], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView: metricsDataView, + visualOptions: commonVisualOptions, + }, + { + id: 'nodePodCapacity', + title: i18n.translate( + 'xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodePodCapacity', + { + defaultMessage: 'Node Pod Capacity', + } + ), + layers: [ + { + data: [formulas.nodePodCapacity, formulas.nodePodUsed], + options: { + seriesType: 'area', + }, + layerType: 'data', + }, + ], + visualizationType: 'lnsXY', + dataView: metricsDataView, + visualOptions: commonVisualOptions, + }, + ], + }); + }, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/hosts_view.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/hosts_view.ts new file mode 100644 index 0000000000000..8ba14603e85a8 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/hosts_view.ts @@ -0,0 +1,94 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { DataView } from '@kbn/data-views-plugin/common'; +import { XYChartModel, XYLayerOptions } from '@kbn/lens-embeddable-utils'; +import { createDashboardModel } from '../../../create_dashboard_model'; +import { createBasicCharts } from '../charts'; + +export const hostsView = { + get: ({ metricsDataView }: { metricsDataView?: DataView }) => { + const commonVisualOptions: XYChartModel['visualOptions'] = { + showDottedLine: true, + missingValues: 'Linear', + }; + + const layerOptions: XYLayerOptions = { + breakdown: { + type: 'top_values', + field: 'host.name', + params: { + size: 20, + }, + }, + }; + + const { + memoryUsage, + memoryFree, + diskUsage, + diskSpaceAvailable, + diskIORead, + diskIOWrite, + diskReadThroughput, + diskWriteThroughput, + rx, + tx, + } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: [ + 'cpuUsage', + 'memoryUsage', + 'normalizedLoad1m', + 'memoryFree', + 'diskUsage', + 'diskSpaceAvailable', + 'diskIORead', + 'diskIOWrite', + 'diskReadThroughput', + 'diskWriteThroughput', + 'rx', + 'tx', + ], + dataView: metricsDataView, + layerOptions, + visualOptions: commonVisualOptions, + }); + + const { cpuUsage, normalizedLoad1m } = createBasicCharts({ + visualizationType: 'lnsXY', + formulaIds: ['cpuUsage', 'normalizedLoad1m'], + layerOptions, + visualOptions: { + ...commonVisualOptions, + yLeftExtent: { + mode: 'dataBounds', + lowerBound: 0, + upperBound: 1, + }, + }, + dataView: metricsDataView, + }); + + return createDashboardModel({ + charts: [ + cpuUsage, + normalizedLoad1m, + memoryUsage, + memoryFree, + diskUsage, + diskSpaceAvailable, + diskIORead, + diskIOWrite, + diskReadThroughput, + diskWriteThroughput, + rx, + tx, + ], + }); + }, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/index.ts new file mode 100644 index 0000000000000..99cb745fa5ed2 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/index.ts @@ -0,0 +1,22 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { assetDetails } from './asset_details'; +import { assetDetailsFlyout } from './asset_details_flyout'; +import { hostsView } from './hosts_view'; +import { kpi } from './kpi'; +import { assetDetailsKubernetesNode } from './asset_details_kubernetes_node'; + +export const dashboards = { + assetDetails, + assetDetailsFlyout, + hostsView, + kpi, + assetDetailsKubernetesNode, +}; + +export type HostDashboards = typeof dashboards; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/kpi.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/kpi.ts new file mode 100644 index 0000000000000..28a929f147e71 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/dashboards/kpi.ts @@ -0,0 +1,110 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { DataView } from '@kbn/data-views-plugin/common'; +import { i18n } from '@kbn/i18n'; +import type { MetricLayerOptions } from '@kbn/lens-embeddable-utils'; +import { createDashboardModel } from '../../../create_dashboard_model'; +import { createBasicCharts } from '../charts'; + +const AVERAGE = i18n.translate('xpack.metricsData.assetDetails.overview.kpi.subtitle.average', { + defaultMessage: 'Average', +}); + +export const kpi = { + get: ({ + metricsDataView, + options, + }: { + metricsDataView?: DataView; + options?: MetricLayerOptions; + }) => { + const { cpuUsage, diskUsage, memoryUsage, normalizedLoad1m } = createBasicCharts({ + visualizationType: 'lnsMetric', + formulaIds: ['cpuUsage', 'diskUsage', 'memoryUsage', 'normalizedLoad1m'], + layerOptions: { + showTrendLine: true, + subtitle: AVERAGE, + ...options, + }, + dataView: metricsDataView, + }); + + return createDashboardModel({ + charts: [ + { + ...cpuUsage, + layers: { + ...cpuUsage.layers, + data: { + ...cpuUsage.layers.data, + format: cpuUsage.layers.data.format + ? { + ...cpuUsage.layers.data.format, + params: { + decimals: 1, + }, + } + : undefined, + }, + }, + }, + { + ...normalizedLoad1m, + layers: { + ...normalizedLoad1m.layers, + data: { + ...normalizedLoad1m.layers.data, + format: normalizedLoad1m.layers.data.format + ? { + ...normalizedLoad1m.layers.data.format, + params: { + decimals: 1, + }, + } + : undefined, + }, + }, + }, + + { + ...memoryUsage, + layers: { + ...memoryUsage.layers, + data: { + ...memoryUsage.layers.data, + format: memoryUsage.layers.data.format + ? { + ...memoryUsage.layers.data.format, + params: { + decimals: 1, + }, + } + : undefined, + }, + }, + }, + { + ...diskUsage, + layers: { + ...diskUsage.layers, + data: { + ...diskUsage.layers.data, + format: diskUsage.layers.data.format + ? { + ...diskUsage.layers.data.format, + params: { + decimals: 1, + }, + } + : undefined, + }, + }, + }, + ], + }); + }, +}; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage.ts index f98c02643dc2e..5fc722ef8ee7f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsage: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage', { defaultMessage: 'CPU Usage', }), value: '(average(system.cpu.user.pct) + average(system.cpu.system.pct)) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_iowait.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_iowait.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_iowait.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_iowait.ts index b43f77252dcc1..884306852f87d 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_iowait.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_iowait.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageIowait: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.iowaitLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.iowaitLabel', { defaultMessage: 'iowait', }), value: 'average(system.cpu.iowait.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_irq.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_irq.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_irq.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_irq.ts index f5fb7f2319769..148939a0ffd3e 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_irq.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_irq.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageIrq: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.irqLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.irqLabel', { defaultMessage: 'irq', }), value: 'average(system.cpu.irq.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_nice.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_nice.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_nice.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_nice.ts index 94093af85a90d..24d2400d0a2ca 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_nice.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_nice.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageNice: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.niceLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.niceLabel', { defaultMessage: 'nice', }), value: 'average(system.cpu.nice.norm.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_softirq.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_softirq.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_softirq.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_softirq.ts index adc9428a24947..8ec868af679a8 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_softirq.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_softirq.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageSoftirq: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.softirqLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.softirqLabel', { defaultMessage: 'softirq', }), value: 'average(system.cpu.softirq.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_steal.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_steal.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_steal.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_steal.ts index 4ca7ffb7c3352..a400551d492e1 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_steal.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_steal.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageSteal: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.stealLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.stealLabel', { defaultMessage: 'steal', }), value: 'average(system.cpu.steal.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_system.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_system.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_system.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_system.ts index 591734973647b..80e2e369f3f20 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_system.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_system.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageSystem: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.systemLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.systemLabel', { defaultMessage: 'system', }), value: 'average(system.cpu.system.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_user.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_user.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_user.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_user.ts index 8fe8d2baf1f3b..6fb45344f8896 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/cpu_usage_user.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/cpu_usage_user.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const cpuUsageUser: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.cpuUsage.userLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.cpuUsage.userLabel', { defaultMessage: 'user', }), value: 'average(system.cpu.user.pct) / max(system.cpu.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_iops.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_iops.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_iops.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_iops.ts index 74f3b6b27b2e2..a21a735856ded 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_iops.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_iops.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskIORead: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskIORead', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskIORead', { defaultMessage: 'Disk Read IOPS', }), value: "counter_rate(max(system.diskio.read.count), kql='system.diskio.read.count: *')", diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_throughput.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_throughput.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_throughput.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_throughput.ts index eb92ba34406e3..73b684dc5a65b 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_read_throughput.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_read_throughput.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskReadThroughput: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskReadThroughput', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskReadThroughput', { defaultMessage: 'Disk Read Throughput', }), value: "counter_rate(max(system.diskio.read.bytes), kql='system.diskio.read.bytes: *')", diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_availability.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_availability.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_availability.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_availability.ts index 02fc69d72b106..6ea6811d30d0f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_availability.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_availability.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskSpaceAvailability: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskSpaceAvailability', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskSpaceAvailability', { defaultMessage: 'Disk Space Availability', }), value: '1 - average(system.filesystem.used.pct)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_available.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_available.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_available.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_available.ts index f8d34c24ffee0..c6e9919b4c532 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_space_available.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_space_available.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskSpaceAvailable: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskSpaceAvailable', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskSpaceAvailable', { defaultMessage: 'Disk Space Available', }), value: 'average(system.filesystem.free)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_usage.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_usage.ts index bce105387021f..e9a2ff6f93cbe 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_usage.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskUsage: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskUsage', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskUsage', { defaultMessage: 'Disk Usage', }), value: 'average(system.filesystem.used.pct)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_iops.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_iops.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_iops.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_iops.ts index 6936f6eee3d6c..881a8bcd05294 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_iops.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_iops.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskIOWrite: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskIOWrite', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskIOWrite', { defaultMessage: 'Disk Write IOPS', }), value: "counter_rate(max(system.diskio.write.count), kql='system.diskio.write.count: *')", diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_throughput.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_throughput.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_throughput.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_throughput.ts index 6c1a536c7a3a1..2290ed6e3b83f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/disk_write_throughput.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/disk_write_throughput.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const diskWriteThroughput: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.diskWriteThroughput', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.diskWriteThroughput', { defaultMessage: 'Disk Write Throughput', }), value: "counter_rate(max(system.diskio.write.bytes), kql='system.diskio.write.bytes: *')", diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/host_count.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/host_count.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/host_count.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/host_count.ts index 1fb01045d6eed..d5cea36319d69 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/host_count.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/host_count.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const hostCount: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.hostCount.hostsLabel', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.hostCount.hostsLabel', { defaultMessage: 'Hosts', }), value: 'unique_count(host.name)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/index.ts similarity index 94% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/index.ts index 25b21adb7195a..f290d9f894272 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/index.ts @@ -34,7 +34,7 @@ import { memoryCache } from './memory_cache'; import { rx } from './rx'; import { tx } from './tx'; -export const hostLensFormulas = { +export const formulas = { cpuUsage, cpuUsageIowait, cpuUsageIrq, @@ -64,3 +64,6 @@ export const hostLensFormulas = { rx, tx, }; + +export type HostFormulas = typeof formulas; +export type HostFormulaNames = keyof HostFormulas; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_15m.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_15m.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_15m.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_15m.ts index 84b865d4081c6..79179241b414d 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_15m.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_15m.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const load15m: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.load15m', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.load15m', { defaultMessage: 'Load (15m)', }), value: 'average(system.load.15)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_1m.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_1m.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_1m.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_1m.ts index 8656176be2f04..7346023dc01bb 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_1m.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_1m.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const load1m: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.load1m', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.load1m', { defaultMessage: 'Load (1m)', }), value: 'average(system.load.1)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_5m.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_5m.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_5m.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_5m.ts index b76ae333f093d..027d05ef012ba 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/load_5m.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/load_5m.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const load5m: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.load5m', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.load5m', { defaultMessage: 'Load (5m)', }), value: 'average(system.load.5)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/log_rate.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/log_rate.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/log_rate.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/log_rate.ts index 2db54217e3231..21b1309841b7d 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/log_rate.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/log_rate.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const logRate: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.logRate', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.logRate', { defaultMessage: 'Log Rate', }), value: 'differences(cumulative_sum(count()))', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_cache.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_cache.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_cache.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_cache.ts index 10e54d99dc62c..3e5b32b256fb7 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_cache.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_cache.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const memoryCache: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.metric.label.cache', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.metric.label.cache', { defaultMessage: 'cache', }), value: 'average(system.memory.used.bytes) - average(system.memory.actual.used.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free.ts similarity index 88% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free.ts index 8b2032a63a5e6..2c07c22650926 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const memoryFree: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.memoryFree', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.memoryFree', { defaultMessage: 'Memory Free', }), value: 'max(system.memory.total) - average(system.memory.actual.used.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free_excluding_cache.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free_excluding_cache.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free_excluding_cache.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free_excluding_cache.ts index 71f03b974bf32..97df7baed7dfe 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_free_excluding_cache.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_free_excluding_cache.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const memoryFreeExcludingCache: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.metric.label.free', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.metric.label.free', { defaultMessage: 'free', }), value: 'average(system.memory.free)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_usage.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_usage.ts index 59e09889e65a6..8a4641cd365a6 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_usage.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const memoryUsage: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.memoryUsage', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.memoryUsage', { defaultMessage: 'Memory Usage', }), value: 'average(system.memory.actual.used.pct)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_used.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_used.ts similarity index 86% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_used.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_used.ts index 2c02a22f393be..373164e3705e7 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/memory_used.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/memory_used.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const memoryUsed: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.metric.label.used', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.metric.label.used', { defaultMessage: 'used', }), value: 'average(system.memory.actual.used.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/normalized_load_1m.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/normalized_load_1m.ts similarity index 87% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/normalized_load_1m.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/normalized_load_1m.ts index d0e70374829e4..48d130868667f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/normalized_load_1m.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/normalized_load_1m.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const normalizedLoad1m: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.normalizedLoad1m', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.normalizedLoad1m', { defaultMessage: 'Normalized Load', }), value: 'average(system.load.1) / max(system.load.cores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/rx.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/rx.ts similarity index 90% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/rx.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/rx.ts index 87536f1a573e2..ec341acf9be6f 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/rx.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/rx.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const rx: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.rx', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.rx', { defaultMessage: 'Network Inbound (RX)', }), value: diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/tx.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/tx.ts similarity index 90% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/tx.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/tx.ts index 2aefe2c4cd115..52ada97dd06d6 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/host/tx.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/formulas/tx.ts @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const tx: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.tx', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.tx', { defaultMessage: 'Network Outbound (TX)', }), value: diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/index.ts index e59aaefb2b82b..55ee6e29ee399 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/index.ts @@ -4,79 +4,25 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { snapshot } from './snapshot'; +import { tsvb } from './tsvb'; +import { InventoryMetricsWithDashboards } from '../../types'; +import { type HostFormulas } from './formulas'; +import { type HostDashboards } from './dashboards'; -import { cpu } from './snapshot/cpu'; -import { diskLatency } from './snapshot/disk_latency'; -import { diskSpaceUsage } from './snapshot/disk_space_usage'; -import { count } from '../../shared/metrics/snapshot/count'; -import { load } from './snapshot/load'; -import { logRate } from './snapshot/log_rate'; -import { memory } from './snapshot/memory'; -import { memoryFree } from './snapshot/memory_free'; -import { memoryTotal } from './snapshot/memory_total'; -import { normalizedLoad1m } from './snapshot/normalized_load_1m'; -import { rx } from './snapshot/rx'; -import { tx } from './snapshot/tx'; - -import { hostSystemOverview } from './tsvb/host_system_overview'; -import { hostCpuUsage } from './tsvb/host_cpu_usage'; -import { hostLoad } from './tsvb/host_load'; -import { hostMemoryUsage } from './tsvb/host_memory_usage'; -import { hostNetworkTraffic } from './tsvb/host_network_traffic'; -import { hostFilesystem } from './tsvb/host_filesystem'; - -import { hostK8sOverview } from './tsvb/host_k8s_overview'; -import { hostK8sCpuCap } from './tsvb/host_k8s_cpu_cap'; -import { hostK8sPodCap } from './tsvb/host_k8s_pod_cap'; -import { hostK8sDiskCap } from './tsvb/host_k8s_disk_cap'; -import { hostK8sMemoryCap } from './tsvb/host_k8s_memory_cap'; - -import { hostDockerTop5ByMemory } from './tsvb/host_docker_top_5_by_memory'; -import { hostDockerTop5ByCpu } from './tsvb/host_docker_top_5_by_cpu'; -import { hostDockerOverview } from './tsvb/host_docker_overview'; -import { hostDockerInfo } from './tsvb/host_docker_info'; - -import { InventoryMetrics } from '../../types'; - -const exposedHostSnapshotMetrics = { - cpu, - diskLatency, - diskSpaceUsage, - load, - logRate, - memory, - memoryFree, - memoryTotal, - normalizedLoad1m, - rx, - tx, -}; // not sure why this is the only model with "count" -const hostSnapshotMetrics = { count, ...exposedHostSnapshotMetrics }; +const { count, ...exposedHostSnapshotMetrics } = snapshot; export const hostSnapshotMetricTypes = Object.keys(exposedHostSnapshotMetrics) as Array< keyof typeof exposedHostSnapshotMetrics >; -export const metrics: InventoryMetrics = { - tsvb: { - hostSystemOverview, - hostCpuUsage, - hostLoad, - hostMemoryUsage, - hostNetworkTraffic, - hostFilesystem, - hostK8sOverview, - hostK8sCpuCap, - hostK8sPodCap, - hostK8sDiskCap, - hostK8sMemoryCap, - hostDockerOverview, - hostDockerInfo, - hostDockerTop5ByMemory, - hostDockerTop5ByCpu, - }, - snapshot: hostSnapshotMetrics, +export const metrics: InventoryMetricsWithDashboards = { + tsvb, + snapshot, + getFormulas: async () => await import('./formulas').then(({ formulas }) => ({ ...formulas })), + getDashboards: async () => + await import('./dashboards').then(({ dashboards }) => ({ ...dashboards })), defaultSnapshot: 'cpu', defaultTimeRangeInSeconds: 3600, // 1 hour }; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/snapshot/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/snapshot/index.ts new file mode 100644 index 0000000000000..8cf567b40165e --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/snapshot/index.ts @@ -0,0 +1,34 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { cpu } from './cpu'; +import { diskLatency } from './disk_latency'; +import { diskSpaceUsage } from './disk_space_usage'; +import { count } from '../../../shared/metrics/snapshot/count'; +import { load } from './load'; +import { logRate } from './log_rate'; +import { memory } from './memory'; +import { memoryFree } from './memory_free'; +import { memoryTotal } from './memory_total'; +import { normalizedLoad1m } from './normalized_load_1m'; +import { rx } from './rx'; +import { tx } from './tx'; + +export const snapshot = { + cpu, + diskLatency, + diskSpaceUsage, + count, + load, + logRate, + memory, + memoryFree, + memoryTotal, + normalizedLoad1m, + rx, + tx, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/tsvb/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/tsvb/index.ts new file mode 100644 index 0000000000000..fb91ee9dd8b27 --- /dev/null +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/host/metrics/tsvb/index.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { hostSystemOverview } from './host_system_overview'; +import { hostCpuUsage } from './host_cpu_usage'; +import { hostLoad } from './host_load'; +import { hostMemoryUsage } from './host_memory_usage'; +import { hostNetworkTraffic } from './host_network_traffic'; +import { hostFilesystem } from './host_filesystem'; + +import { hostK8sOverview } from './host_k8s_overview'; +import { hostK8sCpuCap } from './host_k8s_cpu_cap'; +import { hostK8sPodCap } from './host_k8s_pod_cap'; +import { hostK8sDiskCap } from './host_k8s_disk_cap'; +import { hostK8sMemoryCap } from './host_k8s_memory_cap'; + +import { hostDockerTop5ByMemory } from './host_docker_top_5_by_memory'; +import { hostDockerTop5ByCpu } from './host_docker_top_5_by_cpu'; +import { hostDockerOverview } from './host_docker_overview'; +import { hostDockerInfo } from './host_docker_info'; + +export const tsvb = { + hostSystemOverview, + hostCpuUsage, + hostLoad, + hostMemoryUsage, + hostNetworkTraffic, + hostFilesystem, + hostK8sOverview, + hostK8sCpuCap, + hostK8sPodCap, + hostK8sDiskCap, + hostK8sMemoryCap, + hostDockerOverview, + hostDockerInfo, + hostDockerTop5ByMemory, + hostDockerTop5ByCpu, +}; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/index.ts index 6d683f287c991..f3199f21593d1 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/index.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { POD_FIELD, HOST_FIELD, CONTAINER_FIELD } from '../constants'; import { host } from './host'; -import { pod } from './pod'; +import { pod } from './kubernetes/pod'; import { awsEC2 } from './aws_ec2'; import { awsS3 } from './aws_s3'; import { awsRDS } from './aws_rds'; @@ -17,9 +17,21 @@ import { container } from './container'; import { InventoryItemType } from './types'; export { metrics } from './metrics'; -export const inventoryModels = [host, pod, container, awsEC2, awsS3, awsRDS, awsSQS]; +const catalog = { + host, + pod, + container, + awsEC2, + awsS3, + awsRDS, + awsSQS, +} as const; -export const findInventoryModel = (type: InventoryItemType) => { +export const inventoryModels = Object.values(catalog); + +type InventoryModels = typeof catalog[T]; + +export const findInventoryModel = (type: T): InventoryModels => { const model = inventoryModels.find((m) => m.id === type); if (!model) { throw new Error( @@ -28,7 +40,8 @@ export const findInventoryModel = (type: InventoryItemType) => { }) ); } - return model; + + return model as InventoryModels; }; const LEGACY_TYPES = ['host', 'pod', 'container']; diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/index.ts similarity index 95% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/index.ts index f7593588f254d..5203d1a0abf31 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/index.ts @@ -14,7 +14,7 @@ import { nodeMemoryUsed } from './node_memory_used'; import { nodePodCapacity } from './node_pod_capacity'; import { nodePodUsed } from './node_pod_used'; -export const kubernetesLensFormulas = { +export const formulas = { nodeCpuCapacity, nodeCpuUsed, nodeDiskCapacity, diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_capacity.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_capacity.ts similarity index 77% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_capacity.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_capacity.ts index 1be71eb6c1a56..952edac1d5de4 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_capacity.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_capacity.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeCpuCapacity: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.capacity', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.capacity', { defaultMessage: 'Capacity', }), value: 'max(kubernetes.node.cpu.allocatable.cores) * 1000000000', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_used.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_used.ts similarity index 77% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_used.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_used.ts index ece5d4437961f..4561303430d15 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_cpu_used.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_cpu_used.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeCpuUsed: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.used', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.used', { defaultMessage: 'Used', }), value: 'average(kubernetes.node.cpu.usage.nanocores)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_capacity.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_capacity.ts similarity index 76% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_capacity.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_capacity.ts index ef30107970d04..45e0e61c1b8f6 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_capacity.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_capacity.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeDiskCapacity: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.capacity', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.capacity', { defaultMessage: 'Capacity', }), value: 'max(kubernetes.node.fs.capacity.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_used.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_used.ts similarity index 76% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_used.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_used.ts index 8a38f22cfe141..4f6d07a0a4379 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_disk_used.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_disk_used.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeDiskUsed: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.used', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.used', { defaultMessage: 'Used', }), value: 'average(kubernetes.node.fs.used.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_capacity.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_capacity.ts similarity index 76% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_capacity.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_capacity.ts index 379580c7fba30..4607f002194a9 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_capacity.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_capacity.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeMemoryCapacity: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.capacity', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.capacity', { defaultMessage: 'Capacity', }), value: 'max(kubernetes.node.memory.allocatable.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_used.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_used.ts similarity index 76% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_used.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_used.ts index 34d5bffebd92a..cdcaf32593a3c 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_memory_used.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_memory_used.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodeMemoryUsed: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.used', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.used', { defaultMessage: 'Used', }), value: 'average(kubernetes.node.memory.usage.bytes)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_capacity.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_capacity.ts similarity index 78% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_capacity.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_capacity.ts index d3990328c0552..9bf455df9ccf8 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_capacity.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_capacity.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodePodCapacity: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.capacity', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.capacity', { defaultMessage: 'Capacity', }), value: diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_used.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_used.ts similarity index 76% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_used.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_used.ts index 6c3e3e952d635..697ceaca02f67 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/kubernetes/node_pod_used.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/formulas/node_pod_used.ts @@ -6,10 +6,10 @@ */ import { i18n } from '@kbn/i18n'; -import { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; +import type { FormulaValueConfig } from '@kbn/lens-embeddable-utils'; export const nodePodUsed: FormulaValueConfig = { - label: i18n.translate('xpack.infra.assetDetails.formulas.kubernetes.used', { + label: i18n.translate('xpack.metricsData.assetDetails.formulas.kubernetes.used', { defaultMessage: 'Used', }), value: 'unique_count(kubernetes.pod.uid)', diff --git a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/index.ts similarity index 72% rename from x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/index.ts index fbdb959e0e945..7340df0d8c049 100644 --- a/x-pack/plugins/infra/public/common/visualizations/lens/formulas/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/node/metrics/index.ts @@ -5,5 +5,4 @@ * 2.0. */ -export { hostLensFormulas } from './host'; -export { kubernetesLensFormulas } from './kubernetes'; +export { formulas } from './formulas'; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/index.ts similarity index 85% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/index.ts index 3a8cf778c00f3..a61abbfeb01e3 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/index.ts @@ -7,12 +7,12 @@ import { i18n } from '@kbn/i18n'; import { metrics } from './metrics'; -import { InventoryModel } from '../types'; -import { nginx as nginxRequiredMetrics } from '../shared/metrics/required_metrics'; +import { InventoryModel } from '../../types'; +import { nginx as nginxRequiredMetrics } from '../../shared/metrics/required_metrics'; export { podSnapshotMetricTypes } from './metrics'; -export const pod: InventoryModel = { +export const pod: InventoryModel = { id: 'pod', displayName: i18n.translate('xpack.metricsData.inventoryModel.pod.displayName', { defaultMessage: 'Kubernetes Pods', diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/index.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/index.ts similarity index 95% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/index.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/index.ts index 25ec090da3a5d..eeae2c2ec586b 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/index.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/index.ts @@ -15,7 +15,7 @@ import { podCpuUsage } from './tsvb/pod_cpu_usage'; import { podLogUsage } from './tsvb/pod_log_usage'; import { podMemoryUsage } from './tsvb/pod_memory_usage'; import { podNetworkTraffic } from './tsvb/pod_network_traffic'; -import { InventoryMetrics } from '../../types'; +import { InventoryMetrics } from '../../../types'; const podSnapshotMetrics = { cpu, memory, rx, tx }; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/cpu.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/cpu.ts similarity index 93% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/cpu.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/cpu.ts index fe8c0d1740e66..5a190a1530b5b 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/cpu.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/cpu.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { MetricsUIAggregation } from '../../../types'; +import { MetricsUIAggregation } from '../../../../types'; export const cpu: MetricsUIAggregation = { cpu_with_limit: { diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/memory.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/memory.ts similarity index 93% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/memory.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/memory.ts index 480fdc055a03f..70640bdc2ac6c 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/memory.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/memory.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { MetricsUIAggregation } from '../../../types'; +import { MetricsUIAggregation } from '../../../../types'; export const memory: MetricsUIAggregation = { memory_with_limit: { diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/rx.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/rx.ts similarity index 79% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/rx.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/rx.ts index c2162499c32d7..8108b699eb299 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/rx.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/rx.ts @@ -5,5 +5,5 @@ * 2.0. */ -import { networkTraffic } from '../../../shared/metrics/snapshot/network_traffic'; +import { networkTraffic } from '../../../../shared/metrics/snapshot/network_traffic'; export const rx = networkTraffic('rx', 'kubernetes.pod.network.rx.bytes'); diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/tx.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/tx.ts similarity index 79% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/tx.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/tx.ts index 4d43262e904fb..4a0e1d6e4e165 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/snapshot/tx.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/snapshot/tx.ts @@ -5,5 +5,5 @@ * 2.0. */ -import { networkTraffic } from '../../../shared/metrics/snapshot/network_traffic'; +import { networkTraffic } from '../../../../shared/metrics/snapshot/network_traffic'; export const tx = networkTraffic('tx', 'kubernetes.pod.network.tx.bytes'); diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_cpu_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_cpu_usage.ts similarity index 99% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_cpu_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_cpu_usage.ts index a7574fc68813f..c1d4234725ae6 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_cpu_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_cpu_usage.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../types'; +import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../../types'; export const podCpuUsage: TSVBMetricModelCreator = ( timeField, diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_log_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_log_usage.ts similarity index 99% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_log_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_log_usage.ts index 0e2a588463160..e57b839c4d0c2 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_log_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_log_usage.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../types'; +import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../../types'; export const podLogUsage: TSVBMetricModelCreator = ( timeField, diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_memory_usage.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_memory_usage.ts similarity index 99% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_memory_usage.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_memory_usage.ts index 9c774e1b18ed0..408d7d21386b5 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_memory_usage.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_memory_usage.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../types'; +import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../../types'; export const podMemoryUsage: TSVBMetricModelCreator = ( timeField, diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_network_traffic.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_network_traffic.ts similarity index 99% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_network_traffic.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_network_traffic.ts index c7a2db09497ab..b95fd8e2f463b 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_network_traffic.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_network_traffic.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../types'; +import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../../types'; export const podNetworkTraffic: TSVBMetricModelCreator = ( timeField, diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_overview.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_overview.ts similarity index 99% rename from x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_overview.ts rename to x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_overview.ts index 0fe94c7f53dab..f9789dff288c5 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/pod/metrics/tsvb/pod_overview.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/kubernetes/pod/metrics/tsvb/pod_overview.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../types'; +import { TSVBMetricModelCreator, TSVBMetricModel } from '../../../../types'; export const podOverview: TSVBMetricModelCreator = ( timeField, diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/metrics.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/metrics.ts index 0f73cdb6ef3b1..00937a064a7b8 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/metrics.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/metrics.ts @@ -7,7 +7,7 @@ import { metrics as hostMetrics } from './host/metrics'; import { metrics as sharedMetrics } from './shared/metrics'; -import { metrics as podMetrics } from './pod/metrics'; +import { metrics as podMetrics } from './kubernetes/pod/metrics'; import { metrics as containerMetrics } from './container/metrics'; import { metrics as awsEC2Metrics } from './aws_ec2/metrics'; import { metrics as awsS3Metrics } from './aws_s3/metrics'; diff --git a/x-pack/plugins/metrics_data_access/common/inventory_models/types.ts b/x-pack/plugins/metrics_data_access/common/inventory_models/types.ts index 5bc36429e2ba2..25bc3ab001b2d 100644 --- a/x-pack/plugins/metrics_data_access/common/inventory_models/types.ts +++ b/x-pack/plugins/metrics_data_access/common/inventory_models/types.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { ChartModel, FormulaValueConfig } from '@kbn/lens-embeddable-utils'; import * as rt from 'io-ts'; export const ItemTypeRT = rt.keyof({ @@ -384,11 +385,21 @@ export interface InventoryMetrics { defaultTimeRangeInSeconds: number; } -export interface InventoryModel { +export interface InventoryMetricsWithDashboards< + TFormula extends Record, + TDashboard extends Record +> extends InventoryMetrics { + getFormulas: () => Promise; + getDashboards: () => Promise; +} + +type Modules = 'aws' | 'docker' | 'system' | 'kubernetes'; + +export interface InventoryModel { id: string; displayName: string; singularDisplayName: string; - requiredModule: string; + requiredModule: Modules; fields: { id: string; name: string; @@ -402,8 +413,17 @@ export interface InventoryModel { apm: boolean; uptime: boolean; }; - metrics: InventoryMetrics; + metrics: TMetrics; requiredMetrics: InventoryMetric[]; tooltipMetrics: SnapshotMetricType[]; nodeFilter?: object[]; } + +export interface DashboardFn { + get: (...args: any[]) => DashboardModel; +} + +export interface DashboardModel { + charts: ChartModel[]; + dependsOn?: string[]; +} diff --git a/x-pack/plugins/metrics_data_access/tsconfig.json b/x-pack/plugins/metrics_data_access/tsconfig.json index 5eecf2fc31735..5f387443ed53a 100644 --- a/x-pack/plugins/metrics_data_access/tsconfig.json +++ b/x-pack/plugins/metrics_data_access/tsconfig.json @@ -33,6 +33,7 @@ "@kbn/observability-shared-plugin", "@kbn/i18n-react", "@kbn/logging", - "@kbn/core-http-request-handler-context-server" + "@kbn/core-http-request-handler-context-server", + "@kbn/lens-embeddable-utils" ] } diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 29f7e6f76fa32..3575fa0bb4d39 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -20295,62 +20295,58 @@ "xpack.infra.appName": "Logs Infra", "xpack.infra.assetDetails.alerts.tooltip.documentationLink": "documentation", "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "Afficher tout", - "xpack.infra.assetDetails.formulas.cpuUsage": "Utilisation CPU", - "xpack.infra.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", - "xpack.infra.assetDetails.formulas.cpuUsage.irqLabel": "irq", - "xpack.infra.assetDetails.formulas.cpuUsage.niceLabel": "nice", - "xpack.infra.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", - "xpack.infra.assetDetails.formulas.cpuUsage.stealLabel": "steal", - "xpack.infra.assetDetails.formulas.cpuUsage.systemLabel": "system", - "xpack.infra.assetDetails.formulas.cpuUsage.userLabel": "utilisateur", - "xpack.infra.assetDetails.formulas.diskIORead": "Entrées et sorties par seconde en lecture sur le disque", - "xpack.infra.assetDetails.formulas.diskIOWrite": "Entrées et sorties par seconde en écriture sur le disque", - "xpack.infra.assetDetails.formulas.diskReadThroughput": "Rendement de lecture du disque", - "xpack.infra.assetDetails.formulas.diskSpaceAvailability": "Disponibilité de l'espace disque", - "xpack.infra.assetDetails.formulas.diskSpaceAvailable": "Espace disque disponible", - "xpack.infra.assetDetails.formulas.diskUsage": "Utilisation du disque", - "xpack.infra.assetDetails.formulas.diskWriteThroughput": "Rendement d’écriture du disque", - "xpack.infra.assetDetails.formulas.hostCount.hostsLabel": "Hôtes", - "xpack.infra.assetDetails.formulas.kubernetes.capacity": "Capacité", - "xpack.infra.assetDetails.formulas.kubernetes.used": "Utilisé", - "xpack.infra.assetDetails.formulas.load15m": "Charge (15 min)", - "xpack.infra.assetDetails.formulas.load1m": "Charge (1 min)", - "xpack.infra.assetDetails.formulas.load5m": "Charge (5 min)", - "xpack.infra.assetDetails.formulas.logRate": "Taux de log", - "xpack.infra.assetDetails.formulas.memoryFree": "Sans mémoire", - "xpack.infra.assetDetails.formulas.memoryUsage": "Utilisation mémoire", - "xpack.infra.assetDetails.formulas.metric.label.cache": "cache", - "xpack.infra.assetDetails.formulas.metric.label.free": "gratuit", - "xpack.infra.assetDetails.formulas.metric.label.used": "utilisé", - "xpack.infra.assetDetails.formulas.normalizedLoad1m": "Charge normalisée", - "xpack.infra.assetDetails.formulas.rx": "Réseau entrant (RX)", - "xpack.infra.assetDetails.formulas.tx": "Réseau sortant (TX)", + "xpack.metricsData.assetDetails.formulas.cpuUsage": "Utilisation CPU", + "xpack.metricsData.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", + "xpack.metricsData.assetDetails.formulas.cpuUsage.irqLabel": "irq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.niceLabel": "nice", + "xpack.metricsData.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.stealLabel": "steal", + "xpack.metricsData.assetDetails.formulas.cpuUsage.systemLabel": "system", + "xpack.metricsData.assetDetails.formulas.cpuUsage.userLabel": "utilisateur", + "xpack.metricsData.assetDetails.formulas.diskIORead": "Entrées et sorties par seconde en lecture sur le disque", + "xpack.metricsData.assetDetails.formulas.diskIOWrite": "Entrées et sorties par seconde en écriture sur le disque", + "xpack.metricsData.assetDetails.formulas.diskReadThroughput": "Rendement de lecture du disque", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailability": "Disponibilité de l'espace disque", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailable": "Espace disque disponible", + "xpack.metricsData.assetDetails.formulas.diskUsage": "Utilisation du disque", + "xpack.metricsData.assetDetails.formulas.diskWriteThroughput": "Rendement d’écriture du disque", + "xpack.metricsData.assetDetails.formulas.hostCount.hostsLabel": "Hôtes", + "xpack.metricsData.assetDetails.formulas.kubernetes.capacity": "Capacité", + "xpack.metricsData.assetDetails.formulas.kubernetes.used": "Utilisé", + "xpack.metricsData.assetDetails.formulas.load15m": "Charge (15 min)", + "xpack.metricsData.assetDetails.formulas.load1m": "Charge (1 min)", + "xpack.metricsData.assetDetails.formulas.load5m": "Charge (5 min)", + "xpack.metricsData.assetDetails.formulas.logRate": "Taux de log", + "xpack.metricsData.assetDetails.formulas.memoryFree": "Sans mémoire", + "xpack.metricsData.assetDetails.formulas.memoryUsage": "Utilisation mémoire", + "xpack.metricsData.assetDetails.formulas.metric.label.cache": "cache", + "xpack.metricsData.assetDetails.formulas.metric.label.free": "gratuit", + "xpack.metricsData.assetDetails.formulas.metric.label.used": "utilisé", + "xpack.metricsData.assetDetails.formulas.normalizedLoad1m": "Charge normalisée", + "xpack.metricsData.assetDetails.formulas.rx": "Réseau entrant (RX)", + "xpack.metricsData.assetDetails.formulas.tx": "Réseau sortant (TX)", + "xpack.metricsData.assetDetails.metricsCharts.diskIOPS": "Entrées et sorties par seconde (IOPS) sur le disque", + "xpack.metricsData.assetDetails.metricsCharts.diskThroughput": "Rendement du disque", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.available": "Disponible", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.used": "Utilisé", + "xpack.metricsData.assetDetails.metricsCharts.diskUsageByMountingPoint": "Utilisation du disque par point de montage", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "Capacité CPU du nœud", + "xpack.metricsData.assetDetails.metricsCharts.load": "Charge", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.cache": "Cache", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.free": "Gratuit", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.read": "Lire", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.used": "Utilisé", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.write": "Écrire", + "xpack.metricsData.assetDetails.metricsCharts.network": "Réseau", + "xpack.metricsData.assetDetails.metricsCharts.network.label.rx": "Entrant (RX)", + "xpack.metricsData.assetDetails.metricsCharts.network.label.tx": "Sortant (TX)", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeDiskCapacity": "Capacité du disque du nœud", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeMemoryCapacity": "Capacité de mémoire du nœud", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodePodCapacity": "Capacité de pod du nœud", + "xpack.metricsData.assetDetails.overview.kpi.subtitle.average": "Moyenne", "xpack.infra.assetDetails.header.return": "Renvoyer", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "Métadonnées", - "xpack.infra.assetDetails.metricsCharts.cpuUsage": "Utilisation CPU", - "xpack.infra.assetDetails.metricsCharts.diskIOPS": "Entrées et sorties par seconde (IOPS) sur le disque", - "xpack.infra.assetDetails.metricsCharts.diskThroughput": "Rendement du disque", - "xpack.infra.assetDetails.metricsCharts.diskUsage": "Utilisation du disque", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.available": "Disponible", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.used": "Utilisé", - "xpack.infra.assetDetails.metricsCharts.diskUsageByMountingPoint": "Utilisation du disque par point de montage", - "xpack.infra.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "Capacité CPU du nœud", - "xpack.infra.assetDetails.metricsCharts.load": "Charge", - "xpack.infra.assetDetails.metricsCharts.logRate": "Taux de log", - "xpack.infra.assetDetails.metricsCharts.memoryUsage": "Utilisation mémoire", - "xpack.infra.assetDetails.metricsCharts.metric.label.cache": "Cache", - "xpack.infra.assetDetails.metricsCharts.metric.label.free": "Gratuit", - "xpack.infra.assetDetails.metricsCharts.metric.label.read": "Lire", - "xpack.infra.assetDetails.metricsCharts.metric.label.used": "Utilisé", - "xpack.infra.assetDetails.metricsCharts.metric.label.write": "Écrire", - "xpack.infra.assetDetails.metricsCharts.network": "Réseau", - "xpack.infra.assetDetails.metricsCharts.network.label.rx": "Entrant (RX)", - "xpack.infra.assetDetails.metricsCharts.network.label.tx": "Sortant (TX)", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeDiskCapacity": "Capacité du disque du nœud", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeMemoryCapacity": "Capacité de mémoire du nœud", - "xpack.infra.assetDetails.metricsCharts.nginx.nodePodCapacity": "Capacité de pod du nœud", - "xpack.infra.assetDetails.metricsCharts.normalizedLoad1m": "Charge normalisée", "xpack.infra.assetDetails.overview.alertsSectionTitle": "Alertes", "xpack.infra.assetDetails.overview.kubernetesMetricsSectionTitle": "Aperçu Kubernetes", "xpack.infra.assetDetails.overview.metadataSectionTitle": "Métadonnées", @@ -20363,11 +20359,6 @@ "xpack.infra.assetDetailsEmbeddable.displayName": "Détails de ressource", "xpack.infra.assetDetailsEmbeddable.metadataSummary.showAllMetadataButton": "Afficher tout", "xpack.infra.assetDetailsEmbeddable.notApplicableLabel": "S. O.", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.cpuUsage.title": "Utilisation CPU", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.diskUsage.title": "Utilisation du disque", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.memoryUsage.title": "Utilisation mémoire", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.normalizedLoad1m.title": "Charge normalisée", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.subtitle.average": "Moyenne", "xpack.infra.assetDetailsEmbeddable.overview.metadataCloudProviderHeading": "Fournisseur cloud", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostIpHeading": "IP de l'hôte", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostOsVersionHeading": "Version de l'OS de l'hôte", @@ -20485,19 +20476,7 @@ "xpack.infra.hostsViewPage.tabs.logs.textFieldPlaceholder": "Rechercher les entrées de logs...", "xpack.infra.hostsViewPage.tabs.logs.title": "Logs", "xpack.infra.hostsViewPage.tabs.metricsCharts.actions.openInLines": "Ouvrir dans Lens", - "xpack.infra.hostsViewPage.tabs.metricsCharts.cpuUsage": "Utilisation CPU", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIORead": "Entrées et sorties par seconde en lecture sur le disque", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIOWrite": "Entrées et sorties par seconde en écriture sur le disque", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskReadThroughput": "Rendement de lecture du disque", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskSpaceAvailable": "Espace disque disponible", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskUsage": "Utilisation du disque", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskWriteThroughput": "Rendement d’écriture du disque", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryFree": "Sans mémoire", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryUsage": "Utilisation mémoire", - "xpack.infra.hostsViewPage.tabs.metricsCharts.normalizedLoad1m": "Charge normalisée", - "xpack.infra.hostsViewPage.tabs.metricsCharts.rx": "Réseau entrant (RX)", "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "Indicateurs", - "xpack.infra.hostsViewPage.tabs.metricsCharts.tx": "Réseau sortant (TX)", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "Que sont ces indicateurs ?", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "Pourquoi des lignes pointillées apparaissent-elles ?", "xpack.infra.infra.assetDetails.alerts.createAlertLink": "Créer une règle", @@ -43668,4 +43647,4 @@ "xpack.serverlessObservability.nav.projectSettings": "Paramètres de projet", "xpack.serverlessObservability.nav.visualizations": "Visualisations" } -} +} \ No newline at end of file diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 53a85b00ca3bc..186cb1775ac89 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -20308,62 +20308,59 @@ "xpack.infra.appName": "インフラログ", "xpack.infra.assetDetails.alerts.tooltip.documentationLink": "ドキュメンテーション", "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "すべて表示", - "xpack.infra.assetDetails.formulas.cpuUsage": "CPU使用状況", - "xpack.infra.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", - "xpack.infra.assetDetails.formulas.cpuUsage.irqLabel": "irq", - "xpack.infra.assetDetails.formulas.cpuUsage.niceLabel": "nice", - "xpack.infra.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", - "xpack.infra.assetDetails.formulas.cpuUsage.stealLabel": "steal", - "xpack.infra.assetDetails.formulas.cpuUsage.systemLabel": "システム", - "xpack.infra.assetDetails.formulas.cpuUsage.userLabel": "ユーザー", - "xpack.infra.assetDetails.formulas.diskIORead": "ディスク読み取りIOPS", - "xpack.infra.assetDetails.formulas.diskIOWrite": "ディスク書き込みIOPS", - "xpack.infra.assetDetails.formulas.diskReadThroughput": "ディスク読み取りスループット", - "xpack.infra.assetDetails.formulas.diskSpaceAvailability": "空きディスク容量", - "xpack.infra.assetDetails.formulas.diskSpaceAvailable": "空きディスク容量", - "xpack.infra.assetDetails.formulas.diskUsage": "ディスク使用量", - "xpack.infra.assetDetails.formulas.diskWriteThroughput": "ディスク書き込みスループット", - "xpack.infra.assetDetails.formulas.hostCount.hostsLabel": "ホスト", - "xpack.infra.assetDetails.formulas.kubernetes.capacity": "容量", - "xpack.infra.assetDetails.formulas.kubernetes.used": "使用中", - "xpack.infra.assetDetails.formulas.load15m": "読み込み(15m)", - "xpack.infra.assetDetails.formulas.load1m": "読み込み(1m)", - "xpack.infra.assetDetails.formulas.load5m": "読み込み(5m)", - "xpack.infra.assetDetails.formulas.logRate": "ログレート", - "xpack.infra.assetDetails.formulas.memoryFree": "空きメモリー", - "xpack.infra.assetDetails.formulas.memoryUsage": "メモリー使用状況", - "xpack.infra.assetDetails.formulas.metric.label.cache": "キャッシュ", - "xpack.infra.assetDetails.formulas.metric.label.free": "空き", - "xpack.infra.assetDetails.formulas.metric.label.used": "使用中", - "xpack.infra.assetDetails.formulas.normalizedLoad1m": "正規化された負荷", - "xpack.infra.assetDetails.formulas.rx": "ネットワーク受信(RX)", - "xpack.infra.assetDetails.formulas.tx": "ネットワーク送信(TX)", + "xpack.metricsData.assetDetails.formulas.cpuUsage": "CPU使用状況", + "xpack.metricsData.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", + "xpack.metricsData.assetDetails.formulas.cpuUsage.irqLabel": "irq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.niceLabel": "nice", + "xpack.metricsData.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.stealLabel": "steal", + "xpack.metricsData.assetDetails.formulas.cpuUsage.systemLabel": "システム", + "xpack.metricsData.assetDetails.formulas.cpuUsage.userLabel": "ユーザー", + "xpack.metricsData.assetDetails.formulas.diskIORead": "ディスク読み取りIOPS", + "xpack.metricsData.assetDetails.formulas.diskIOWrite": "ディスク書き込みIOPS", + "xpack.metricsData.assetDetails.formulas.diskReadThroughput": "ディスク読み取りスループット", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailability": "空きディスク容量", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailable": "空きディスク容量", + "xpack.metricsData.assetDetails.formulas.diskUsage": "ディスク使用量", + "xpack.metricsData.assetDetails.formulas.diskWriteThroughput": "ディスク書き込みスループット", + "xpack.metricsData.assetDetails.formulas.hostCount.hostsLabel": "ホスト", + "xpack.metricsData.assetDetails.formulas.kubernetes.capacity": "容量", + "xpack.metricsData.assetDetails.formulas.kubernetes.used": "使用中", + "xpack.metricsData.assetDetails.formulas.load15m": "読み込み(15m)", + "xpack.metricsData.assetDetails.formulas.load1m": "読み込み(1m)", + "xpack.metricsData.assetDetails.formulas.load5m": "読み込み(5m)", + "xpack.metricsData.assetDetails.formulas.logRate": "ログレート", + "xpack.metricsData.assetDetails.formulas.memoryFree": "空きメモリー", + "xpack.metricsData.assetDetails.formulas.memoryUsage": "メモリー使用状況", + "xpack.metricsData.assetDetails.formulas.metric.label.cache": "キャッシュ", + "xpack.metricsData.assetDetails.formulas.metric.label.free": "空き", + "xpack.metricsData.assetDetails.formulas.metric.label.used": "使用中", + "xpack.metricsData.assetDetails.formulas.normalizedLoad1m": "正規化された負荷", + "xpack.metricsData.assetDetails.formulas.rx": "ネットワーク受信(RX)", + "xpack.metricsData.assetDetails.formulas.tx": "ネットワーク送信(TX)", + "xpack.metricsData.assetDetails.metricsCharts.diskIOPS": "Disk IOPS", + "xpack.metricsData.assetDetails.metricsCharts.diskThroughput": "Disk Throughput", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage": "ディスク使用量", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.available": "利用可能", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.used": "使用中", + "xpack.metricsData.assetDetails.metricsCharts.diskUsageByMountingPoint": "マウントポイント別ディスク使用量", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "ノード CPU 処理能力", + "xpack.metricsData.assetDetails.metricsCharts.load": "読み込み", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.cache": "キャッシュ", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.free": "空き", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.read": "読み取り", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.used": "使用中", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.write": "書き込み", + "xpack.metricsData.assetDetails.metricsCharts.network": "ネットワーク", + "xpack.metricsData.assetDetails.metricsCharts.network.label.rx": "受信(RX)", + "xpack.metricsData.assetDetails.metricsCharts.network.label.tx": "送信(TX)", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeDiskCapacity": "ノードディスク容量", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeMemoryCapacity": "ノードメモリー容量", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodePodCapacity": "ノードポッド容量", + "xpack.metricsData.assetDetails.overview.kpi.subtitle.average": "平均", "xpack.infra.assetDetails.header.return": "戻る", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "メタデータ", - "xpack.infra.assetDetails.metricsCharts.cpuUsage": "CPU使用状況", - "xpack.infra.assetDetails.metricsCharts.diskIOPS": "Disk IOPS", - "xpack.infra.assetDetails.metricsCharts.diskThroughput": "Disk Throughput", - "xpack.infra.assetDetails.metricsCharts.diskUsage": "ディスク使用量", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.available": "利用可能", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.used": "使用中", - "xpack.infra.assetDetails.metricsCharts.diskUsageByMountingPoint": "マウントポイント別ディスク使用量", - "xpack.infra.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "ノード CPU 処理能力", - "xpack.infra.assetDetails.metricsCharts.load": "読み込み", - "xpack.infra.assetDetails.metricsCharts.logRate": "ログレート", - "xpack.infra.assetDetails.metricsCharts.memoryUsage": "メモリー使用状況", - "xpack.infra.assetDetails.metricsCharts.metric.label.cache": "キャッシュ", - "xpack.infra.assetDetails.metricsCharts.metric.label.free": "空き", - "xpack.infra.assetDetails.metricsCharts.metric.label.read": "読み取り", - "xpack.infra.assetDetails.metricsCharts.metric.label.used": "使用中", - "xpack.infra.assetDetails.metricsCharts.metric.label.write": "書き込み", - "xpack.infra.assetDetails.metricsCharts.network": "ネットワーク", - "xpack.infra.assetDetails.metricsCharts.network.label.rx": "受信(RX)", - "xpack.infra.assetDetails.metricsCharts.network.label.tx": "送信(TX)", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeDiskCapacity": "ノードディスク容量", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeMemoryCapacity": "ノードメモリー容量", - "xpack.infra.assetDetails.metricsCharts.nginx.nodePodCapacity": "ノードポッド容量", - "xpack.infra.assetDetails.metricsCharts.normalizedLoad1m": "正規化された負荷", "xpack.infra.assetDetails.overview.alertsSectionTitle": "アラート", "xpack.infra.assetDetails.overview.kubernetesMetricsSectionTitle": "Kubernetes概要", "xpack.infra.assetDetails.overview.metadataSectionTitle": "メタデータ", @@ -20376,11 +20373,6 @@ "xpack.infra.assetDetailsEmbeddable.displayName": "アセット詳細", "xpack.infra.assetDetailsEmbeddable.metadataSummary.showAllMetadataButton": "すべて表示", "xpack.infra.assetDetailsEmbeddable.notApplicableLabel": "N/A", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.cpuUsage.title": "CPU使用状況", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.diskUsage.title": "ディスク使用量", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.memoryUsage.title": "メモリー使用状況", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.normalizedLoad1m.title": "正規化された負荷", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.subtitle.average": "平均", "xpack.infra.assetDetailsEmbeddable.overview.metadataCloudProviderHeading": "クラウドプロバイダー", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostIpHeading": "ホスト IP", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostOsVersionHeading": "ホストOSバージョン", @@ -20498,19 +20490,7 @@ "xpack.infra.hostsViewPage.tabs.logs.textFieldPlaceholder": "ログエントリーを検索...", "xpack.infra.hostsViewPage.tabs.logs.title": "ログ", "xpack.infra.hostsViewPage.tabs.metricsCharts.actions.openInLines": "Lensで開く", - "xpack.infra.hostsViewPage.tabs.metricsCharts.cpuUsage": "CPU使用状況", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIORead": "ディスク読み取りIOPS", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIOWrite": "ディスク書き込みIOPS", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskReadThroughput": "ディスク読み取りスループット", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskSpaceAvailable": "空きディスク容量", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskUsage": "ディスク使用量", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskWriteThroughput": "ディスク書き込みスループット", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryFree": "空きメモリー", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryUsage": "メモリー使用状況", - "xpack.infra.hostsViewPage.tabs.metricsCharts.normalizedLoad1m": "正規化された負荷", - "xpack.infra.hostsViewPage.tabs.metricsCharts.rx": "ネットワーク受信(RX)", "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "メトリック", - "xpack.infra.hostsViewPage.tabs.metricsCharts.tx": "ネットワーク送信(TX)", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "これらのメトリックは何か。", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "点線が表示されている理由", "xpack.infra.infra.assetDetails.alerts.createAlertLink": "ルールを作成", @@ -43658,4 +43638,4 @@ "xpack.serverlessObservability.nav.projectSettings": "プロジェクト設定", "xpack.serverlessObservability.nav.visualizations": "ビジュアライゼーション" } -} +} \ No newline at end of file diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 46c87ba2d7332..13139d199e092 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -20308,62 +20308,58 @@ "xpack.infra.appName": "基础架构日志", "xpack.infra.assetDetails.alerts.tooltip.documentationLink": "文档", "xpack.infra.assetDetails.flyout.AlertsPageLinkLabel": "全部显示", - "xpack.infra.assetDetails.formulas.cpuUsage": "CPU 使用率", - "xpack.infra.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", - "xpack.infra.assetDetails.formulas.cpuUsage.irqLabel": "irq", - "xpack.infra.assetDetails.formulas.cpuUsage.niceLabel": "nice", - "xpack.infra.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", - "xpack.infra.assetDetails.formulas.cpuUsage.stealLabel": "steal", - "xpack.infra.assetDetails.formulas.cpuUsage.systemLabel": "system", - "xpack.infra.assetDetails.formulas.cpuUsage.userLabel": "用户", - "xpack.infra.assetDetails.formulas.diskIORead": "磁盘读取 IOPS", - "xpack.infra.assetDetails.formulas.diskIOWrite": "磁盘写入 IOPS", - "xpack.infra.assetDetails.formulas.diskReadThroughput": "磁盘读取吞吐量", - "xpack.infra.assetDetails.formulas.diskSpaceAvailability": "磁盘空间可用性", - "xpack.infra.assetDetails.formulas.diskSpaceAvailable": "可用磁盘空间", - "xpack.infra.assetDetails.formulas.diskUsage": "磁盘使用率", - "xpack.infra.assetDetails.formulas.diskWriteThroughput": "磁盘写入吞吐量", - "xpack.infra.assetDetails.formulas.hostCount.hostsLabel": "主机", - "xpack.infra.assetDetails.formulas.kubernetes.capacity": "容量", - "xpack.infra.assetDetails.formulas.kubernetes.used": "已使用", - "xpack.infra.assetDetails.formulas.load15m": "负载(15 分钟)", - "xpack.infra.assetDetails.formulas.load1m": "负载(1 分钟)", - "xpack.infra.assetDetails.formulas.load5m": "负载(5 分钟)", - "xpack.infra.assetDetails.formulas.logRate": "日志速率", - "xpack.infra.assetDetails.formulas.memoryFree": "可用内存", - "xpack.infra.assetDetails.formulas.memoryUsage": "内存利用率", - "xpack.infra.assetDetails.formulas.metric.label.cache": "缓存", - "xpack.infra.assetDetails.formulas.metric.label.free": "可用", - "xpack.infra.assetDetails.formulas.metric.label.used": "已使用", - "xpack.infra.assetDetails.formulas.normalizedLoad1m": "标准化负载", - "xpack.infra.assetDetails.formulas.rx": "网络入站数据 (RX)", - "xpack.infra.assetDetails.formulas.tx": "网络出站数据 (TX)", + "xpack.metricsData.assetDetails.formulas.cpuUsage": "CPU 使用率", + "xpack.metricsData.assetDetails.formulas.cpuUsage.iowaitLabel": "iowait", + "xpack.metricsData.assetDetails.formulas.cpuUsage.irqLabel": "irq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.niceLabel": "nice", + "xpack.metricsData.assetDetails.formulas.cpuUsage.softirqLabel": "softirq", + "xpack.metricsData.assetDetails.formulas.cpuUsage.stealLabel": "steal", + "xpack.metricsData.assetDetails.formulas.cpuUsage.systemLabel": "system", + "xpack.metricsData.assetDetails.formulas.cpuUsage.userLabel": "用户", + "xpack.metricsData.assetDetails.formulas.diskIORead": "磁盘读取 IOPS", + "xpack.metricsData.assetDetails.formulas.diskIOWrite": "磁盘写入 IOPS", + "xpack.metricsData.assetDetails.formulas.diskReadThroughput": "磁盘读取吞吐量", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailability": "磁盘空间可用性", + "xpack.metricsData.assetDetails.formulas.diskSpaceAvailable": "可用磁盘空间", + "xpack.metricsData.assetDetails.formulas.diskUsage": "磁盘使用率", + "xpack.metricsData.assetDetails.formulas.diskWriteThroughput": "磁盘写入吞吐量", + "xpack.metricsData.assetDetails.formulas.hostCount.hostsLabel": "主机", + "xpack.metricsData.assetDetails.formulas.kubernetes.capacity": "容量", + "xpack.metricsData.assetDetails.formulas.kubernetes.used": "已使用", + "xpack.metricsData.assetDetails.formulas.load15m": "负载(15 分钟)", + "xpack.metricsData.assetDetails.formulas.load1m": "负载(1 分钟)", + "xpack.metricsData.assetDetails.formulas.load5m": "负载(5 分钟)", + "xpack.metricsData.assetDetails.formulas.logRate": "日志速率", + "xpack.metricsData.assetDetails.formulas.memoryFree": "可用内存", + "xpack.metricsData.assetDetails.formulas.memoryUsage": "内存利用率", + "xpack.metricsData.assetDetails.formulas.metric.label.cache": "缓存", + "xpack.metricsData.assetDetails.formulas.metric.label.free": "可用", + "xpack.metricsData.assetDetails.formulas.metric.label.used": "已使用", + "xpack.metricsData.assetDetails.formulas.normalizedLoad1m": "标准化负载", + "xpack.metricsData.assetDetails.formulas.rx": "网络入站数据 (RX)", + "xpack.metricsData.assetDetails.formulas.tx": "网络出站数据 (TX)", + "xpack.metricsData.assetDetails.metricsCharts.diskIOPS": "磁盘 IOPS", + "xpack.metricsData.assetDetails.metricsCharts.diskThroughput": "磁盘吞吐量", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.available": "可用", + "xpack.metricsData.assetDetails.metricsCharts.diskUsage.label.used": "已使用", + "xpack.metricsData.assetDetails.metricsCharts.diskUsageByMountingPoint": "磁盘使用率(按装载点)", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "节点 CPU 容量", + "xpack.metricsData.assetDetails.metricsCharts.load": "加载", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.cache": "缓存", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.free": "可用", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.read": "读取", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.used": "已使用", + "xpack.metricsData.assetDetails.metricsCharts.metric.label.write": "写入", + "xpack.metricsData.assetDetails.metricsCharts.network": "网络", + "xpack.metricsData.assetDetails.metricsCharts.network.label.rx": "入站 (RX)", + "xpack.metricsData.assetDetails.metricsCharts.network.label.tx": "出站 (TX)", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeDiskCapacity": "节点磁盘容量", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodeMemoryCapacity": "节点内存容量", + "xpack.metricsData.assetDetails.metricsCharts.kubernetes.nodePodCapacity": "节点 Pod 容量", + "xpack.metricsData.assetDetails.overview.kpi.subtitle.average": "平均值", "xpack.infra.assetDetails.header.return": "返回", "xpack.infra.assetDetails.metadata.tooltip.documentationLink": "host.name", "xpack.infra.assetDetails.metadata.tooltip.metadata": "元数据", - "xpack.infra.assetDetails.metricsCharts.cpuUsage": "CPU 使用率", - "xpack.infra.assetDetails.metricsCharts.diskIOPS": "磁盘 IOPS", - "xpack.infra.assetDetails.metricsCharts.diskThroughput": "磁盘吞吐量", - "xpack.infra.assetDetails.metricsCharts.diskUsage": "磁盘使用率", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.available": "可用", - "xpack.infra.assetDetails.metricsCharts.diskUsage.label.used": "已使用", - "xpack.infra.assetDetails.metricsCharts.diskUsageByMountingPoint": "磁盘使用率(按装载点)", - "xpack.infra.assetDetails.metricsCharts.kubernetes.nodeCpuCapacity": "节点 CPU 容量", - "xpack.infra.assetDetails.metricsCharts.load": "加载", - "xpack.infra.assetDetails.metricsCharts.logRate": "日志速率", - "xpack.infra.assetDetails.metricsCharts.memoryUsage": "内存利用率", - "xpack.infra.assetDetails.metricsCharts.metric.label.cache": "缓存", - "xpack.infra.assetDetails.metricsCharts.metric.label.free": "可用", - "xpack.infra.assetDetails.metricsCharts.metric.label.read": "读取", - "xpack.infra.assetDetails.metricsCharts.metric.label.used": "已使用", - "xpack.infra.assetDetails.metricsCharts.metric.label.write": "写入", - "xpack.infra.assetDetails.metricsCharts.network": "网络", - "xpack.infra.assetDetails.metricsCharts.network.label.rx": "入站 (RX)", - "xpack.infra.assetDetails.metricsCharts.network.label.tx": "出站 (TX)", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeDiskCapacity": "节点磁盘容量", - "xpack.infra.assetDetails.metricsCharts.nginx.nodeMemoryCapacity": "节点内存容量", - "xpack.infra.assetDetails.metricsCharts.nginx.nodePodCapacity": "节点 Pod 容量", - "xpack.infra.assetDetails.metricsCharts.normalizedLoad1m": "标准化负载", "xpack.infra.assetDetails.overview.alertsSectionTitle": "告警", "xpack.infra.assetDetails.overview.kubernetesMetricsSectionTitle": "Kubernetes 概览", "xpack.infra.assetDetails.overview.metadataSectionTitle": "元数据", @@ -20376,11 +20372,6 @@ "xpack.infra.assetDetailsEmbeddable.displayName": "资产详情", "xpack.infra.assetDetailsEmbeddable.metadataSummary.showAllMetadataButton": "全部显示", "xpack.infra.assetDetailsEmbeddable.notApplicableLabel": "不可用", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.cpuUsage.title": "CPU 使用率", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.diskUsage.title": "磁盘使用率", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.memoryUsage.title": "内存利用率", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.normalizedLoad1m.title": "标准化负载", - "xpack.infra.assetDetailsEmbeddable.overview.kpi.subtitle.average": "平均值", "xpack.infra.assetDetailsEmbeddable.overview.metadataCloudProviderHeading": "云服务提供商", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostIpHeading": "主机 IP", "xpack.infra.assetDetailsEmbeddable.overview.metadataHostOsVersionHeading": "主机操作系统版本", @@ -20498,19 +20489,7 @@ "xpack.infra.hostsViewPage.tabs.logs.textFieldPlaceholder": "搜索日志条目......", "xpack.infra.hostsViewPage.tabs.logs.title": "日志", "xpack.infra.hostsViewPage.tabs.metricsCharts.actions.openInLines": "在 Lens 中打开", - "xpack.infra.hostsViewPage.tabs.metricsCharts.cpuUsage": "CPU 使用率", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIORead": "磁盘读取 IOPS", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskIOWrite": "磁盘写入 IOPS", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskReadThroughput": "磁盘读取吞吐量", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskSpaceAvailable": "可用磁盘空间", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskUsage": "磁盘使用率", - "xpack.infra.hostsViewPage.tabs.metricsCharts.diskWriteThroughput": "磁盘写入吞吐量", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryFree": "可用内存", - "xpack.infra.hostsViewPage.tabs.metricsCharts.memoryUsage": "内存利用率", - "xpack.infra.hostsViewPage.tabs.metricsCharts.normalizedLoad1m": "标准化负载", - "xpack.infra.hostsViewPage.tabs.metricsCharts.rx": "网络入站数据 (RX)", "xpack.infra.hostsViewPage.tabs.metricsCharts.title": "指标", - "xpack.infra.hostsViewPage.tabs.metricsCharts.tx": "网络出站数据 (TX)", "xpack.infra.hostsViewPage.tooltip.whatAreTheseMetricsLink": "这些指标是什么?", "xpack.infra.hostsViewPage.tooltip.whyAmISeeingDottedLines": "为什么我看到的是虚线?", "xpack.infra.infra.assetDetails.alerts.createAlertLink": "创建规则", @@ -43652,4 +43631,4 @@ "xpack.serverlessObservability.nav.projectSettings": "项目设置", "xpack.serverlessObservability.nav.visualizations": "可视化" } -} +} \ No newline at end of file diff --git a/x-pack/test/cloud_security_posture_functional/pages/findings_old_data.ts b/x-pack/test/cloud_security_posture_functional/pages/findings_old_data.ts index 1269c85c1ecda..9586387c028ea 100644 --- a/x-pack/test/cloud_security_posture_functional/pages/findings_old_data.ts +++ b/x-pack/test/cloud_security_posture_functional/pages/findings_old_data.ts @@ -55,7 +55,7 @@ export default function ({ getPageObjects }: FtrProviderContext) { }, ]; - describe.skip('Old Data', function () { + describe('Old Data', function () { this.tags(['cloud_security_posture_findings']); let findings: typeof pageObjects.findings; diff --git a/x-pack/test/functional/apps/infra/home_page.ts b/x-pack/test/functional/apps/infra/home_page.ts index 27cc61ca0c273..6637b7d42d222 100644 --- a/x-pack/test/functional/apps/infra/home_page.ts +++ b/x-pack/test/functional/apps/infra/home_page.ts @@ -146,7 +146,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '0.8%' }, { metric: 'normalizedLoad1m', value: '1.4%' }, { metric: 'memoryUsage', value: '18.0%' }, - { metric: 'diskSpaceUsage', value: '17.5%' }, + { metric: 'diskUsage', value: '17.5%' }, ].forEach(({ metric, value }) => { it(`${metric} tile should show ${value}`, async () => { await retry.tryForTime(3 * 1000, async () => { diff --git a/x-pack/test/functional/apps/infra/hosts_view.ts b/x-pack/test/functional/apps/infra/hosts_view.ts index 3a5b5a0156d5e..f06ac57e893cb 100644 --- a/x-pack/test/functional/apps/infra/hosts_view.ts +++ b/x-pack/test/functional/apps/infra/hosts_view.ts @@ -192,7 +192,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '13.9%' }, { metric: 'normalizedLoad1m', value: '18.8%' }, { metric: 'memoryUsage', value: '94.9%' }, - { metric: 'diskSpaceUsage', value: 'N/A' }, + { metric: 'diskUsage', value: 'N/A' }, ].forEach(({ metric, value }) => { it(`${metric} tile should show ${value}`, async () => { await retry.try(async () => { @@ -397,7 +397,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '0.8%' }, { metric: 'normalizedLoad1m', value: '0.3%' }, { metric: 'memoryUsage', value: '16.8%' }, - { metric: 'diskSpaceUsage', value: '17.1%' }, + { metric: 'diskUsage', value: '17.1%' }, ].forEach(({ metric, value }) => { it(`${metric} tile should show ${value}`, async () => { await retry.try(async () => { @@ -552,7 +552,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '0.8%' }, { metric: 'normalizedLoad1m', value: '0.2%' }, { metric: 'memoryUsage', value: '16.3%' }, - { metric: 'diskSpaceUsage', value: '16.9%' }, + { metric: 'diskUsage', value: '16.9%' }, ].map(async ({ metric, value }) => { await retry.try(async () => { const tileValue = await pageObjects.infraHostsView.getKPITileValue(metric); diff --git a/x-pack/test/functional/apps/infra/node_details.ts b/x-pack/test/functional/apps/infra/node_details.ts index a824106c6f617..e4cfdaae3d227 100644 --- a/x-pack/test/functional/apps/infra/node_details.ts +++ b/x-pack/test/functional/apps/infra/node_details.ts @@ -169,7 +169,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '13.9%' }, { metric: 'normalizedLoad1m', value: '18.8%' }, { metric: 'memoryUsage', value: '94.9%' }, - { metric: 'diskSpaceUsage', value: 'N/A' }, + { metric: 'diskUsage', value: 'N/A' }, ].forEach(({ metric, value }) => { it(`${metric} tile should show ${value}`, async () => { await retry.tryForTime(3 * 1000, async () => { @@ -366,7 +366,7 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { { metric: 'cpuUsage', value: '99.6%' }, { metric: 'normalizedLoad1m', value: '1,300.3%' }, { metric: 'memoryUsage', value: '42.2%' }, - { metric: 'diskSpaceUsage', value: '36.0%' }, + { metric: 'diskUsage', value: '36.0%' }, ].forEach(({ metric, value }) => { it(`${metric} tile should show ${value}`, async () => { await retry.tryForTime(3 * 1000, async () => { diff --git a/x-pack/test/functional/page_objects/asset_details.ts b/x-pack/test/functional/page_objects/asset_details.ts index d51341c0fef42..ef4e8967e6922 100644 --- a/x-pack/test/functional/page_objects/asset_details.ts +++ b/x-pack/test/functional/page_objects/asset_details.ts @@ -37,14 +37,9 @@ export function AssetDetailsProvider({ getService }: FtrProviderContext) { }, async getAssetDetailsMetricsCharts() { - const container = await testSubjects.find('infraAssetDetailsMetricsChartGrid'); - return container.findAllByCssSelector('[data-test-subj*="infraAssetDetailsMetricsChart"]'); - }, - - async getAssetDetailsNginxMetricsCharts() { - const container = await testSubjects.find('infraAssetDetailsNginxMetricsChartGrid'); + const container = await testSubjects.find('infraAssetDetailsHostMetricsChartGrid'); return container.findAllByCssSelector( - '[data-test-subj*="infraAssetDetailsNginxMetricsChart"]' + '[data-test-subj*="infraAssetDetailsHostMetricsChart"]' ); },