diff --git a/x-pack/plugins/alerting/server/rule_type_registry.test.ts b/x-pack/plugins/alerting/server/rule_type_registry.test.ts index 9a6b2232c47d4..ed52ebf8b04da 100644 --- a/x-pack/plugins/alerting/server/rule_type_registry.test.ts +++ b/x-pack/plugins/alerting/server/rule_type_registry.test.ts @@ -20,7 +20,6 @@ let mockedLicenseState: jest.Mocked; let ruleTypeRegistryParams: ConstructorOptions; const taskManager = taskManagerMock.createSetup(); - const inMemoryMetrics = inMemoryMetricsMock.create(); beforeEach(() => { diff --git a/x-pack/plugins/monitoring/public/application/pages/kibana/instance.tsx b/x-pack/plugins/monitoring/public/application/pages/kibana/instance.tsx index 5332968c1c34a..a433ac23de4e0 100644 --- a/x-pack/plugins/monitoring/public/application/pages/kibana/instance.tsx +++ b/x-pack/plugins/monitoring/public/application/pages/kibana/instance.tsx @@ -37,6 +37,11 @@ import { RULE_KIBANA_VERSION_MISMATCH } from '../../../../common/constants'; const KibanaInstance = ({ data, alerts }: { data: any; alerts: any }) => { const { zoomInfo, onBrush } = useCharts(); + const showRules = + data.metrics.kibana_instance_rule_executions && + data.metrics.kibana_instance_rule_executions.length && + data.metrics.kibana_instance_rule_executions[0].indices_found.metricbeat; + return ( @@ -95,6 +100,42 @@ const KibanaInstance = ({ data, alerts }: { data: any; alerts: any }) => { /> + {showRules && ( + <> + + + + + + + + + + + + + + + + + + )} diff --git a/x-pack/plugins/monitoring/public/application/pages/kibana/overview.tsx b/x-pack/plugins/monitoring/public/application/pages/kibana/overview.tsx index 078559ac30663..834fa396fb44f 100644 --- a/x-pack/plugins/monitoring/public/application/pages/kibana/overview.tsx +++ b/x-pack/plugins/monitoring/public/application/pages/kibana/overview.tsx @@ -33,6 +33,11 @@ const KibanaOverview = ({ data }: { data: any }) => { if (!data) return null; + const showRules = + data.metrics.kibana_cluster_rule_overdue_count && + data.metrics.kibana_cluster_rule_overdue_count.length && + data.metrics.kibana_cluster_rule_overdue_count[0].indices_found.metricbeat; + return ( @@ -57,6 +62,42 @@ const KibanaOverview = ({ data }: { data: any }) => { /> + {showRules && ( + <> + + + + + + + + + + + + + + + + + + )} diff --git a/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js b/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js index 086303993106b..160818aa6babd 100644 --- a/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js +++ b/x-pack/plugins/monitoring/public/components/cluster/overview/kibana_panel.js @@ -28,7 +28,7 @@ import { SetupModeFeature } from '../../../../common/enums'; import { AlertsBadge } from '../../../alerts/badge'; import { shouldShowAlertBadge } from '../../../alerts/lib/should_show_alert_badge'; import { ExternalConfigContext } from '../../../application/contexts/external_config_context'; -import { formatNumber } from '../../../lib/format_number'; +import { formatNumber, formatPercentageUsage } from '../../../lib/format_number'; import { getSafeForExternalLink } from '../../../lib/get_safe_for_external_link'; import { isSetupModeFeatureEnabled } from '../../../lib/setup_mode'; import { SetupModeContext } from '../../setup_mode/setup_mode_context'; @@ -143,6 +143,31 @@ export function KibanaPanel(props) { values={{ maxTime: props.response_time_max }} /> + {props.rules.instance && props.rules.cluster && ( + <> + + + + + {formatPercentageUsage( + props.rules.instance.executions - props.rules.instance.failures, + props.rules.instance.executions + )} + + + + + + {props.rules.cluster.overdue.count} + + + )} diff --git a/x-pack/plugins/monitoring/server/kibana_monitoring/bulk_uploader.ts b/x-pack/plugins/monitoring/server/kibana_monitoring/bulk_uploader.ts index 83f5d2037bd70..8abbe4fea1f8e 100644 --- a/x-pack/plugins/monitoring/server/kibana_monitoring/bulk_uploader.ts +++ b/x-pack/plugins/monitoring/server/kibana_monitoring/bulk_uploader.ts @@ -70,6 +70,7 @@ export class BulkUploader implements IBulkUploader { private _timer: NodeJS.Timer | null; private readonly _interval: number; private readonly config: MonitoringConfig; + constructor({ log, config, diff --git a/x-pack/plugins/monitoring/server/lib/cluster/get_clusters_from_request.ts b/x-pack/plugins/monitoring/server/lib/cluster/get_clusters_from_request.ts index 86de6f6c79623..d8bf8487cee09 100644 --- a/x-pack/plugins/monitoring/server/lib/cluster/get_clusters_from_request.ts +++ b/x-pack/plugins/monitoring/server/lib/cluster/get_clusters_from_request.ts @@ -6,7 +6,7 @@ */ import { notFound } from '@hapi/boom'; -import { get } from 'lodash'; +import { get, omit } from 'lodash'; import { set } from '@elastic/safer-lodash-set'; import { i18n } from '@kbn/i18n'; import { getClustersStats } from './get_clusters_stats'; @@ -39,6 +39,7 @@ import { getLogTypes } from '../logs'; import { isInCodePath } from './is_in_code_path'; import { LegacyRequest, Cluster } from '../../types'; import { RulesByType } from '../../../common/types/alerts'; +import { getClusterRuleDataForClusters, getInstanceRuleDataForClusters } from '../kibana/rules'; /** * Get all clusters or the cluster associated with {@code clusterUuid} when it is defined. @@ -168,10 +169,14 @@ export async function getClustersFromRequest( } } // add kibana data - const kibanas = + const [kibanas, kibanaClusterRules, kibanaInstanceRules] = isInCodePath(codePaths, [CODE_PATH_KIBANA]) && !isStandaloneCluster - ? await getKibanasForClusters(req, clusters, CCS_REMOTE_PATTERN) - : []; + ? await Promise.all([ + getKibanasForClusters(req, clusters, CCS_REMOTE_PATTERN), + getClusterRuleDataForClusters(req, clusters, CCS_REMOTE_PATTERN), + getInstanceRuleDataForClusters(req, clusters, CCS_REMOTE_PATTERN), + ]) + : [[], [], []]; // add the kibana data to each cluster kibanas.forEach((kibana) => { const clusterIndex = clusters.findIndex( @@ -179,6 +184,23 @@ export async function getClustersFromRequest( get(cluster, 'elasticsearch.cluster.id', cluster.cluster_uuid) === kibana.clusterUuid ); set(clusters[clusterIndex], 'kibana', kibana.stats); + + const clusterKibanaRules = kibanaClusterRules.every((rule) => !Boolean(rule)) + ? null + : kibanaClusterRules?.find((rule) => rule?.clusterUuid === kibana.clusterUuid); + const instanceKibanaRules = kibanaInstanceRules.every((rule) => !Boolean(rule)) + ? null + : kibanaInstanceRules?.find((rule) => rule?.clusterUuid === kibana.clusterUuid); + set( + clusters[clusterIndex], + 'kibana.rules.cluster', + clusterKibanaRules ? omit(clusterKibanaRules, 'clusterUuid') : null + ); + set( + clusters[clusterIndex], + 'kibana.rules.instance', + instanceKibanaRules ? omit(instanceKibanaRules, 'clusterUuid') : null + ); }); // add logstash data diff --git a/x-pack/plugins/monitoring/server/lib/details/get_series.ts b/x-pack/plugins/monitoring/server/lib/details/get_series.ts index 58e1aac0884b6..495c1a7642d6d 100644 --- a/x-pack/plugins/monitoring/server/lib/details/get_series.ts +++ b/x-pack/plugins/monitoring/server/lib/details/get_series.ts @@ -18,13 +18,16 @@ import { CALCULATE_DURATION_UNTIL, INDEX_PATTERN_TYPES, STANDALONE_CLUSTER_CLUSTER_UUID, + METRICBEAT_INDEX_NAME_UNIQUE_TOKEN, } from '../../../common/constants'; import { formatUTCTimestampForTimezone } from '../format_timezone'; import { getNewIndexPatterns } from '../cluster/get_index_patterns'; import { Globals } from '../../static_globals'; import type { Metric } from '../metrics/metrics'; -type SeriesBucket = Bucket & { metric_mb_deriv?: { normalized_value: number } }; +type SeriesBucket = Bucket & { metric_mb_deriv?: { normalized_value: number } } & { + indices?: { buckets: Array<{ [key: string]: any }> }; +}; /** * Derivative metrics for the first two agg buckets are unusable. For the first bucket, there @@ -152,6 +155,11 @@ async function fetchSeries( }, aggs: { ...dateHistogramSubAggs, + indices: { + terms: { + field: '_index', + }, + }, }, }, }; @@ -267,7 +275,7 @@ function handleSeries( timezone: string, response: ElasticsearchResponse ) { - const { derivative, calculation: customCalculation } = metric; + const { derivative, calculation: customCalculation, isNotSupportedInInternalCollection } = metric; function getAggregatedData(buckets: SeriesBucket[]) { const firstUsableBucketIndex = findFirstUsableBucketIndex(buckets, min); @@ -277,21 +285,44 @@ function handleSeries( firstUsableBucketIndex, bucketSizeInSeconds * 1000 ); + let internalIndicesFound = false; + let mbIndicesFound = false; let data: Array<[string | number, number | null]> = []; if (firstUsableBucketIndex <= lastUsableBucketIndex) { // map buckets to values for charts const key = derivative ? 'metric_deriv.normalized_value' : 'metric.value'; const calculation = customCalculation !== undefined ? customCalculation : defaultCalculation; + const usableBuckets = buckets.slice(firstUsableBucketIndex, lastUsableBucketIndex + 1); // take only the buckets we know are usable + + data = usableBuckets.map((bucket) => { + // map buckets to X/Y coords for Flot charting + if (bucket.indices) { + for (const indexBucket of bucket.indices.buckets) { + if (indexBucket.key.includes(METRICBEAT_INDEX_NAME_UNIQUE_TOKEN)) { + mbIndicesFound = true; + } else { + internalIndicesFound = true; + } + } + } - data = buckets - .slice(firstUsableBucketIndex, lastUsableBucketIndex + 1) // take only the buckets we know are usable - .map((bucket) => [ + return [ formatUTCTimestampForTimezone(bucket.key, timezone), calculation(bucket, key, metric, bucketSizeInSeconds), - ]); // map buckets to X/Y coords for Flot charting + ]; + }); } + const indexSourceData = isNotSupportedInInternalCollection + ? { + indices_found: { + internal: internalIndicesFound, + metricbeat: mbIndicesFound, + }, + } + : {}; + return { bucket_size: formatBucketSize(bucketSizeInSeconds), timeRange: { @@ -299,6 +330,7 @@ function handleSeries( max: formatUTCTimestampForTimezone(max, timezone), }, metric: metric.serialize(), + ...indexSourceData, data, }; } diff --git a/x-pack/plugins/monitoring/server/lib/kibana/rules/get_cluster_rule_data_for_clusters.ts b/x-pack/plugins/monitoring/server/lib/kibana/rules/get_cluster_rule_data_for_clusters.ts new file mode 100644 index 0000000000000..2a2b39259beeb --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/kibana/rules/get_cluster_rule_data_for_clusters.ts @@ -0,0 +1,93 @@ +/* + * 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 { Cluster, LegacyRequest } from '../../../types'; +import { getNewIndexPatterns } from '../../cluster/get_index_patterns'; +import { Globals } from '../../../static_globals'; +import { createQuery } from '../../create_query'; +import { KibanaClusterRuleMetric } from '../../metrics'; + +export async function getClusterRuleDataForClusters( + req: LegacyRequest, + clusters: Cluster[], + ccs: string +) { + const start = req.payload.timeRange.min; + const end = req.payload.timeRange.max; + + const moduleType = 'kibana'; + const type = 'kibana_cluster_rules'; + const dataset = 'cluster_rules'; + const indexPatterns = getNewIndexPatterns({ + config: Globals.app.config, + moduleType, + dataset, + ccs, + }); + + return Promise.all( + clusters.map(async (cluster) => { + const clusterUuid = cluster.elasticsearch?.cluster?.id ?? cluster.cluster_uuid; + const metric = KibanaClusterRuleMetric.getMetricFields(); + const params = { + index: indexPatterns, + size: 0, + ignore_unavailable: true, + body: { + query: createQuery({ + type, + dsDataset: `${moduleType}.${dataset}`, + metricset: dataset, + start, + end, + clusterUuid, + metric, + }), + aggs: { + indices: { + terms: { + field: '_index', + size: 1, + }, + }, + overdue_count: { + max: { + field: 'kibana.cluster_rules.overdue.count', + }, + }, + overdue_delay_p50: { + max: { + field: 'kibana.cluster_rules.overdue.delay.p50', + }, + }, + overdue_delay_p99: { + max: { + field: 'kibana.cluster_rules.overdue.delay.p99', + }, + }, + }, + }, + }; + const { callWithRequest } = req.server.plugins.elasticsearch.getCluster('monitoring'); + const response = await callWithRequest(req, 'search', params); + const indices = response.aggregations?.indices?.buckets ?? []; + if (indices.length === 0) { + // This means they are only using internal monitoring and rule monitoring data is not available + return null; + } + return { + overdue: { + count: response.aggregations?.overdue_count?.value, + delay: { + p50: response.aggregations?.overdue_delay_p50?.value, + p99: response.aggregations?.overdue_delay_p99?.value, + }, + }, + clusterUuid, + }; + }) + ); +} diff --git a/x-pack/plugins/monitoring/server/lib/kibana/rules/get_instance_rule_data_for_clusters.ts b/x-pack/plugins/monitoring/server/lib/kibana/rules/get_instance_rule_data_for_clusters.ts new file mode 100644 index 0000000000000..c2c420952151e --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/kibana/rules/get_instance_rule_data_for_clusters.ts @@ -0,0 +1,90 @@ +/* + * 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 { Cluster, LegacyRequest } from '../../../types'; +import { getNewIndexPatterns } from '../../cluster/get_index_patterns'; +import { Globals } from '../../../static_globals'; +import { createQuery } from '../../create_query'; +import { KibanaClusterRuleMetric } from '../../metrics'; + +export async function getInstanceRuleDataForClusters( + req: LegacyRequest, + clusters: Cluster[], + ccs: string +) { + const start = req.payload.timeRange.min; + const end = req.payload.timeRange.max; + + const moduleType = 'kibana'; + const type = 'kibana_node_rules'; + const dataset = 'node_rules'; + const indexPatterns = getNewIndexPatterns({ + config: Globals.app.config, + moduleType, + dataset, + ccs, + }); + + return Promise.all( + clusters.map(async (cluster) => { + const clusterUuid = cluster.elasticsearch?.cluster?.id ?? cluster.cluster_uuid; + const metric = KibanaClusterRuleMetric.getMetricFields(); + const params = { + index: indexPatterns, + size: 0, + ignore_unavailable: true, + body: { + query: createQuery({ + type, + dsDataset: `${moduleType}.${dataset}`, + metricset: dataset, + start, + end, + clusterUuid, + metric, + }), + aggs: { + indices: { + terms: { + field: '_index', + size: 1, + }, + }, + executions: { + max: { + field: 'kibana.node_rules.executions', + }, + }, + failures: { + max: { + field: 'kibana.node_rules.failures', + }, + }, + timeouts: { + max: { + field: 'kibana.node_rules.timeouts', + }, + }, + }, + }, + }; + + const { callWithRequest } = req.server.plugins.elasticsearch.getCluster('monitoring'); + const response = await callWithRequest(req, 'search', params); + const indices = response.aggregations?.indices?.buckets ?? []; + if (indices.length === 0) { + // This means they are only using internal monitoring and rule monitoring data is not available + return null; + } + return { + failures: response.aggregations?.failures?.value, + executions: response.aggregations?.executions?.value, + timeouts: response.aggregations?.timeouts?.value, + clusterUuid, + }; + }) + ); +} diff --git a/x-pack/plugins/monitoring/server/lib/kibana/rules/index.ts b/x-pack/plugins/monitoring/server/lib/kibana/rules/index.ts new file mode 100644 index 0000000000000..3ab38f03dd200 --- /dev/null +++ b/x-pack/plugins/monitoring/server/lib/kibana/rules/index.ts @@ -0,0 +1,8 @@ +/* + * 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 { getClusterRuleDataForClusters } from './get_cluster_rule_data_for_clusters'; +export { getInstanceRuleDataForClusters } from './get_instance_rule_data_for_clusters'; diff --git a/x-pack/plugins/monitoring/server/lib/metrics/__snapshots__/metrics.test.js.snap b/x-pack/plugins/monitoring/server/lib/metrics/__snapshots__/metrics.test.js.snap index 50fff3734b1a5..91f4779509af2 100644 --- a/x-pack/plugins/monitoring/server/lib/metrics/__snapshots__/metrics.test.js.snap +++ b/x-pack/plugins/monitoring/server/lib/metrics/__snapshots__/metrics.test.js.snap @@ -41,6 +41,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Count", "mbField": undefined, "metricAgg": "max", @@ -91,6 +92,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Count", "mbField": undefined, "metricAgg": "max", @@ -141,6 +143,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Error Count", "mbField": undefined, "metricAgg": "max", @@ -191,6 +194,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Count", "mbField": undefined, "metricAgg": "max", @@ -241,6 +245,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Invalid Query", "mbField": undefined, "metricAgg": "max", @@ -291,6 +296,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Method", "mbField": undefined, "metricAgg": "max", @@ -341,6 +347,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Unauthorized", "mbField": undefined, "metricAgg": "max", @@ -391,6 +398,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Unavailable", "mbField": undefined, "metricAgg": "max", @@ -441,6 +449,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Not Modified", "mbField": undefined, "metricAgg": "max", @@ -491,6 +500,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "OK", "mbField": undefined, "metricAgg": "max", @@ -544,6 +554,7 @@ Object { "fieldSource": "beats_stats.metrics.beat.cgroup", "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -567,6 +578,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Memory Limit", "mbField": undefined, "metricAgg": "max", @@ -590,6 +602,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Memory Utilization (cgroup)", "mbField": undefined, "metricAgg": "max", @@ -613,6 +626,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -636,6 +650,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Allocated Memory", "mbField": undefined, "metricAgg": "max", @@ -659,6 +674,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "GC Next", "mbField": undefined, "metricAgg": "max", @@ -682,6 +698,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Process Total", "mbField": undefined, "metricAgg": "max", @@ -732,6 +749,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Acked", "mbField": undefined, "metricAgg": "max", @@ -782,6 +800,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Active", "mbField": undefined, "metricAgg": "max", @@ -832,6 +851,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Dropped", "mbField": undefined, "metricAgg": "max", @@ -882,6 +902,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Failed", "mbField": undefined, "metricAgg": "max", @@ -932,6 +953,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -982,6 +1004,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Error", "mbField": undefined, "metricAgg": "max", @@ -1032,6 +1055,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Metric", "mbField": undefined, "metricAgg": "max", @@ -1082,6 +1106,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Span", "mbField": undefined, "metricAgg": "max", @@ -1132,6 +1157,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Transaction", "mbField": undefined, "metricAgg": "max", @@ -1182,6 +1208,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Requested", "mbField": undefined, "metricAgg": "max", @@ -1232,6 +1259,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -1282,6 +1310,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Closed", "mbField": undefined, "metricAgg": "max", @@ -1332,6 +1361,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Concurrency", "mbField": undefined, "metricAgg": "max", @@ -1382,6 +1412,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Decode", "mbField": undefined, "metricAgg": "max", @@ -1432,6 +1463,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Forbidden", "mbField": undefined, "metricAgg": "max", @@ -1482,6 +1514,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Internal", "mbField": undefined, "metricAgg": "max", @@ -1532,6 +1565,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Method", "mbField": undefined, "metricAgg": "max", @@ -1582,6 +1616,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Queue", "mbField": undefined, "metricAgg": "max", @@ -1632,6 +1667,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Rate limit", "mbField": undefined, "metricAgg": "max", @@ -1682,6 +1718,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Too large", "mbField": undefined, "metricAgg": "max", @@ -1732,6 +1769,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Unauthorized", "mbField": undefined, "metricAgg": "max", @@ -1782,6 +1820,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Validate", "mbField": undefined, "metricAgg": "max", @@ -1832,6 +1871,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Accepted", "mbField": undefined, "metricAgg": "max", @@ -1882,6 +1922,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Ok", "mbField": undefined, "metricAgg": "max", @@ -1905,6 +1946,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1m", "mbField": undefined, "metricAgg": "max", @@ -1928,6 +1970,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "15m", "mbField": undefined, "metricAgg": "max", @@ -1951,6 +1994,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "5m", "mbField": undefined, "metricAgg": "max", @@ -1974,6 +2018,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "App Search Engines", "mbField": undefined, "metricAgg": "avg", @@ -1996,6 +2041,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bytes Sent", "mbField": undefined, "metricAgg": "max", @@ -2046,6 +2092,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Acknowledged", "mbField": undefined, "metricAgg": "max", @@ -2096,6 +2143,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Dropped in Output", "mbField": undefined, "metricAgg": "max", @@ -2146,6 +2194,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Emitted", "mbField": undefined, "metricAgg": "max", @@ -2196,6 +2245,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bytes Received", "mbField": undefined, "metricAgg": "max", @@ -2246,6 +2296,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Receiving", "mbField": undefined, "metricAgg": "max", @@ -2296,6 +2347,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Sending", "mbField": undefined, "metricAgg": "max", @@ -2346,6 +2398,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bytes Sent", "mbField": undefined, "metricAgg": "max", @@ -2396,6 +2449,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Dropped in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2446,6 +2500,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Queued", "mbField": undefined, "metricAgg": "max", @@ -2496,6 +2551,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Failed in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2546,6 +2602,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Retry in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2596,6 +2653,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -2619,6 +2677,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -2642,6 +2701,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Open Handles", "mbField": undefined, "metricAgg": "max", @@ -2665,6 +2725,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Active", "mbField": undefined, "metricAgg": "max", @@ -2688,6 +2749,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "GC Next", "mbField": undefined, "metricAgg": "max", @@ -2711,6 +2773,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Process Total", "mbField": undefined, "metricAgg": "max", @@ -2734,6 +2797,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Acknowledged", "mbField": undefined, "metricAgg": "max", @@ -2757,6 +2821,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Dropped in Output", "mbField": undefined, "metricAgg": "max", @@ -2780,6 +2845,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Emitted", "mbField": undefined, "metricAgg": "max", @@ -2803,6 +2869,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Receiving", "mbField": undefined, "metricAgg": "max", @@ -2826,6 +2893,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Sending", "mbField": undefined, "metricAgg": "max", @@ -2849,6 +2917,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bytes Received", "mbField": undefined, "metricAgg": "max", @@ -2872,6 +2941,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Dropped in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2895,6 +2965,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Queued", "mbField": undefined, "metricAgg": "max", @@ -2918,6 +2989,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Failed in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2941,6 +3013,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Retry in Pipeline", "mbField": undefined, "metricAgg": "max", @@ -2964,6 +3037,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "New", "mbField": undefined, "metricAgg": "max", @@ -2987,6 +3061,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1m", "mbField": undefined, "metricAgg": "max", @@ -3010,6 +3085,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "15m", "mbField": undefined, "metricAgg": "max", @@ -3033,6 +3109,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "5m", "mbField": undefined, "metricAgg": "max", @@ -3068,6 +3145,7 @@ Object { "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, "getFields": [Function], + "isNotSupportedInInternalCollection": undefined, "label": "Ops delay", "mbField": undefined, "metricAgg": "sum", @@ -3092,6 +3170,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Fetch delay", "mbField": undefined, "metricAgg": "max", @@ -3141,6 +3220,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing Latency", "mbField": undefined, "metricAgg": "sum", @@ -3164,6 +3244,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Primary Shards", "mbField": undefined, "metricAgg": "max", @@ -3188,6 +3269,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Shards", "mbField": undefined, "metricAgg": "max", @@ -3237,6 +3319,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Latency", "mbField": undefined, "metricAgg": "sum", @@ -3260,6 +3343,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Shards", "mbField": undefined, "metricAgg": "max", @@ -3284,6 +3368,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Active", "mbField": undefined, "metricAgg": "max", @@ -3306,6 +3391,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -3329,6 +3415,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Daemon Threads", "mbField": undefined, "metricAgg": "max", @@ -3351,6 +3438,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "JVM GC Rate", "mbField": undefined, "metricAgg": "max", @@ -3373,6 +3461,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Time spent on JVM garbage collection", "mbField": undefined, "metricAgg": "max", @@ -3395,6 +3484,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Committed", "mbField": undefined, "metricAgg": "max", @@ -3417,6 +3507,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -3440,6 +3531,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Used", "mbField": undefined, "metricAgg": "max", @@ -3462,6 +3554,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1xx", "mbField": undefined, "metricAgg": "max", @@ -3485,6 +3578,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "2xx", "mbField": undefined, "metricAgg": "max", @@ -3507,6 +3601,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "3xx", "mbField": undefined, "metricAgg": "max", @@ -3529,6 +3624,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "4xx", "mbField": undefined, "metricAgg": "max", @@ -3551,6 +3647,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "5xx", "mbField": undefined, "metricAgg": "max", @@ -3573,6 +3670,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Received", "mbField": undefined, "metricAgg": "max", @@ -3596,6 +3694,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "HTTP Bytes Received", "mbField": undefined, "metricAgg": "max", @@ -3618,6 +3717,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Sent", "mbField": undefined, "metricAgg": "max", @@ -3640,6 +3740,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "HTTP Bytes Sent", "mbField": undefined, "metricAgg": "max", @@ -3662,6 +3763,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Open HTTP Connections", "mbField": undefined, "metricAgg": "max", @@ -3684,6 +3786,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "HTTP Connections Rate", "mbField": undefined, "metricAgg": "max", @@ -3706,6 +3809,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "JVM Objects Pending Finalization", "mbField": undefined, "metricAgg": "max", @@ -3728,6 +3832,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Active Threads", "mbField": undefined, "metricAgg": "max", @@ -3751,6 +3856,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Thread Creation Rate", "mbField": undefined, "metricAgg": "max", @@ -3773,6 +3879,7 @@ Object { "fieldSource": undefined, "format": "0,0.[0]a", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Document Count", "mbField": undefined, "metricAgg": "max", @@ -3821,6 +3928,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing Latency", "mbField": undefined, "metricAgg": "sum", @@ -3845,6 +3953,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing (Primaries)", "mbField": undefined, "metricAgg": "max", @@ -3869,6 +3978,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Total", "mbField": undefined, "metricAgg": "max", @@ -3893,6 +4003,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing", "mbField": undefined, "metricAgg": "max", @@ -3917,6 +4028,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Fielddata", "mbField": undefined, "metricAgg": "max", @@ -3941,6 +4053,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Fixed Bitsets", "mbField": undefined, "metricAgg": "max", @@ -3965,6 +4078,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Query Cache", "mbField": undefined, "metricAgg": "max", @@ -3989,6 +4103,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Request Cache", "mbField": undefined, "metricAgg": "max", @@ -4013,6 +4128,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Version Map", "mbField": undefined, "metricAgg": "max", @@ -4037,6 +4153,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Writer", "mbField": undefined, "metricAgg": "max", @@ -4061,6 +4178,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Merge Rate", "mbField": undefined, "metricAgg": "max", @@ -4109,6 +4227,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Latency", "mbField": undefined, "metricAgg": "sum", @@ -4132,6 +4251,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Refresh Time", "mbField": undefined, "metricAgg": "max", @@ -4155,6 +4275,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Primary Shards", "mbField": undefined, "metricAgg": "max", @@ -4179,6 +4300,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Shards", "mbField": undefined, "metricAgg": "max", @@ -4203,6 +4325,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Shards", "mbField": undefined, "metricAgg": "max", @@ -4227,6 +4350,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search", "mbField": undefined, "metricAgg": "max", @@ -4251,6 +4375,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Total", "mbField": undefined, "metricAgg": "max", @@ -4275,6 +4400,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Primaries", "mbField": undefined, "metricAgg": "max", @@ -4299,6 +4425,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -4323,6 +4450,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Merges (Primaries)", "mbField": undefined, "metricAgg": "max", @@ -4347,6 +4475,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Merges", "mbField": undefined, "metricAgg": "max", @@ -4371,6 +4500,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Primaries", "mbField": undefined, "metricAgg": "max", @@ -4395,6 +4525,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total", "mbField": undefined, "metricAgg": "max", @@ -4419,6 +4550,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Store (Primaries)", "mbField": undefined, "metricAgg": "max", @@ -4443,6 +4575,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Store", "mbField": undefined, "metricAgg": "max", @@ -4467,6 +4600,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Throttling Time", "mbField": undefined, "metricAgg": "max", @@ -4490,6 +4624,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing (Primaries)", "mbField": undefined, "metricAgg": "max", @@ -4514,6 +4649,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing", "mbField": undefined, "metricAgg": "max", @@ -4538,6 +4674,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "HTTP Connections", "mbField": undefined, "metricAgg": "max", @@ -4560,6 +4697,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Average", "mbField": undefined, "metricAgg": "max", @@ -4571,6 +4709,75 @@ Object { "usageField": undefined, "uuidField": "kibana_stats.kibana.uuid", }, + "kibana_cluster_action_overdue_count": KibanaClusterActionMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Number of overdue actions across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_actions.overdue.count", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Action Overdue Count", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, + "kibana_cluster_action_overdue_p50": KibanaClusterActionMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Average delay of all overdue actions across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_actions.overdue.delay.p50", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Average Action Overdue Delay", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "ms", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, + "kibana_cluster_action_overdue_p99": KibanaClusterActionMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Worst delay of all overdue actions across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_actions.overdue.delay.p99", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Worst Action Overdue Delay", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "ms", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, "kibana_cluster_average_response_times": KibanaEventsRateClusterMetric { "aggs": Object { "event_rate": Object { @@ -4610,6 +4817,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Average", "mbField": undefined, "metricAgg": "max", @@ -4660,6 +4868,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Max", "mbField": undefined, "metricAgg": "max", @@ -4710,6 +4919,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Client Requests", "mbField": undefined, "metricAgg": "max", @@ -4720,6 +4930,167 @@ Object { "usageField": undefined, "uuidField": "cluster_uuid", }, + "kibana_cluster_rule_overdue_count": KibanaClusterRuleMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Number of overdue rules across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_rules.overdue.count", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Rule Overdue Count", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, + "kibana_cluster_rule_overdue_p50": KibanaClusterRuleMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Average delay of all overdue rules across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_rules.overdue.delay.p50", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Average Rule Overdue Delay", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "ms", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, + "kibana_cluster_rule_overdue_p99": KibanaClusterRuleMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": false, + "description": "Worst delay of all overdue rules across the entire cluster.", + "docType": undefined, + "field": "kibana.cluster_rules.overdue.delay.p99", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Worst Rule Overdue Delay", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "ms", + "usageField": undefined, + "uuidField": "cluster_uuid", + }, + "kibana_instance_action_executions": KibanaInstanceActionMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": true, + "description": "Rate of action executions for the Kibana instance.", + "docType": undefined, + "field": "kibana.node_actions.executions", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Action Executions Rate", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "kibana_stats.kibana.uuid", + }, + "kibana_instance_action_failures": KibanaInstanceActionMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": true, + "description": "Rate of action failures for the Kibana instance.", + "docType": undefined, + "field": "kibana.node_actions.failures", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Action Failures Rate", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "kibana_stats.kibana.uuid", + }, + "kibana_instance_rule_executions": KibanaInstanceRuleMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": true, + "description": "Rate of rule executions for the Kibana instance.", + "docType": undefined, + "field": "kibana.node_rules.executions", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Rule Executions Rate", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "kibana_stats.kibana.uuid", + }, + "kibana_instance_rule_failures": KibanaInstanceRuleMetric { + "aggs": undefined, + "app": "kibana", + "calculation": undefined, + "dateHistogramSubAggs": undefined, + "derivative": true, + "description": "Rate of rule failures for the Kibana instance.", + "docType": undefined, + "field": "kibana.node_rules.failures", + "fieldSource": undefined, + "format": "0.[00]", + "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": true, + "label": "Rule Failures Rate", + "mbField": undefined, + "metricAgg": "max", + "periodsField": undefined, + "quotaField": undefined, + "timestampField": "timestamp", + "units": "", + "usageField": undefined, + "uuidField": "kibana_stats.kibana.uuid", + }, "kibana_max_response_times": KibanaMetric { "aggs": undefined, "app": "kibana", @@ -4732,6 +5103,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Max", "mbField": undefined, "metricAgg": "max", @@ -4755,6 +5127,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Heap Size Limit", "mbField": undefined, "metricAgg": "max", @@ -4778,6 +5151,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Memory Size", "mbField": undefined, "metricAgg": "max", @@ -4801,6 +5175,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "15m", "mbField": undefined, "metricAgg": "max", @@ -4824,6 +5199,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1m", "mbField": undefined, "metricAgg": "max", @@ -4847,6 +5223,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "5m", "mbField": undefined, "metricAgg": "max", @@ -4870,6 +5247,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Event Loop Delay", "mbField": undefined, "metricAgg": "max", @@ -4892,6 +5270,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Client Disconnects", "mbField": undefined, "metricAgg": "max", @@ -4914,6 +5293,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Client Requests", "mbField": undefined, "metricAgg": "max", @@ -4963,6 +5343,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Events Received Rate", "mbField": undefined, "metricAgg": "max", @@ -5030,6 +5411,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Event Latency", "mbField": undefined, "metricAgg": "max", @@ -5079,6 +5461,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Events Emitted Rate", "mbField": undefined, "metricAgg": "max", @@ -5101,6 +5484,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": [Function], + "isNotSupportedInInternalCollection": undefined, "label": "Pipeline Node Count", "mbField": undefined, "metricAgg": undefined, @@ -5123,6 +5507,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": [Function], + "isNotSupportedInInternalCollection": undefined, "label": "Pipeline Throughput", "mbField": "logstash.node.stats.pipelines.events.out", "metricAgg": undefined, @@ -5145,6 +5530,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Events Received Rate", "mbField": undefined, "metricAgg": "max", @@ -5192,6 +5578,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Event Latency", "mbField": undefined, "metricAgg": "sum", @@ -5214,6 +5601,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Events Emitted Rate", "mbField": undefined, "metricAgg": "max", @@ -5236,6 +5624,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Elapsed Periods", "mbField": undefined, "metricAgg": "max", @@ -5289,6 +5678,7 @@ Object { "fieldSource": "logstash_stats.os.cgroup", "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5342,6 +5732,7 @@ Object { "fieldSource": "logstash_stats.os.cgroup", "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5364,6 +5755,7 @@ Object { "fieldSource": undefined, "format": "0,0.[0]a", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Throttling", "mbField": undefined, "metricAgg": "max", @@ -5387,6 +5779,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Throttled Count", "mbField": undefined, "metricAgg": "max", @@ -5410,6 +5803,7 @@ Object { "fieldSource": undefined, "format": "0,0.[0]a", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Usage", "mbField": undefined, "metricAgg": "max", @@ -5433,6 +5827,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5455,6 +5850,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Max Heap", "mbField": undefined, "metricAgg": "max", @@ -5478,6 +5874,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Used Heap", "mbField": undefined, "metricAgg": "max", @@ -5501,6 +5898,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": [Function], + "isNotSupportedInInternalCollection": undefined, "label": "Pipeline Node Count", "mbField": undefined, "metricAgg": undefined, @@ -5523,6 +5921,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": [Function], + "isNotSupportedInInternalCollection": undefined, "label": "Pipeline Throughput", "mbField": "logstash.node.stats.pipelines.events.out", "metricAgg": undefined, @@ -5545,6 +5944,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "15m", "mbField": undefined, "metricAgg": "max", @@ -5568,6 +5968,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1m", "mbField": undefined, "metricAgg": "max", @@ -5591,6 +5992,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "5m", "mbField": undefined, "metricAgg": "max", @@ -5640,6 +6042,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Max Queue Size", "mbField": undefined, "metricAgg": undefined, @@ -5688,6 +6091,7 @@ Object { "fieldSource": undefined, "format": "0,0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Queue Size", "mbField": undefined, "metricAgg": undefined, @@ -5711,6 +6115,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Events Queued", "mbField": undefined, "metricAgg": "max", @@ -5734,6 +6139,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Elapsed Periods", "mbField": undefined, "metricAgg": "max", @@ -5788,6 +6194,7 @@ Object { "fieldSource": "node_stats.os.cgroup", "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5842,6 +6249,7 @@ Object { "fieldSource": "node_stats.os.cgroup", "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5865,6 +6273,7 @@ Object { "fieldSource": undefined, "format": "0,0.[0]a", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Throttling", "mbField": undefined, "metricAgg": "max", @@ -5889,6 +6298,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Throttled Count", "mbField": undefined, "metricAgg": "max", @@ -5913,6 +6323,7 @@ Object { "fieldSource": undefined, "format": "0,0.[0]a", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Cgroup Usage", "mbField": undefined, "metricAgg": "max", @@ -5937,6 +6348,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "CPU Utilization", "mbField": undefined, "metricAgg": "max", @@ -5960,6 +6372,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Disk Free Space", "mbField": undefined, "metricAgg": "max", @@ -6008,6 +6421,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing", "mbField": undefined, "metricAgg": "sum", @@ -6032,6 +6446,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Fielddata", "mbField": undefined, "metricAgg": "max", @@ -6056,6 +6471,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Fixed Bitsets", "mbField": undefined, "metricAgg": "max", @@ -6080,6 +6496,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Query Cache", "mbField": undefined, "metricAgg": "max", @@ -6104,6 +6521,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Request Cache", "mbField": undefined, "metricAgg": "max", @@ -6128,6 +6546,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Version Map", "mbField": undefined, "metricAgg": "max", @@ -6152,6 +6571,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Writer", "mbField": undefined, "metricAgg": "max", @@ -6176,6 +6596,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "GET Queue", "mbField": undefined, "metricAgg": "max", @@ -6201,6 +6622,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "GET Rejections", "mbField": undefined, "metricAgg": "max", @@ -6226,6 +6648,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Queue", "mbField": undefined, "metricAgg": "max", @@ -6251,6 +6674,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Rejections", "mbField": undefined, "metricAgg": "max", @@ -6292,6 +6716,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Write Queue", "mbField": undefined, "metricAgg": "max", @@ -6353,6 +6778,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Write Rejections", "mbField": undefined, "metricAgg": "max", @@ -6377,6 +6803,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Time", "mbField": undefined, "metricAgg": "max", @@ -6401,6 +6828,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Indexing Total", "mbField": undefined, "metricAgg": "max", @@ -6425,6 +6853,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Old", "mbField": undefined, "metricAgg": "max", @@ -6449,6 +6878,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Old", "mbField": undefined, "metricAgg": "max", @@ -6473,6 +6903,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Young", "mbField": undefined, "metricAgg": "max", @@ -6497,6 +6928,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Young", "mbField": undefined, "metricAgg": "max", @@ -6521,6 +6953,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Max Heap", "mbField": undefined, "metricAgg": "max", @@ -6545,6 +6978,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Used Heap", "mbField": undefined, "metricAgg": "max", @@ -6569,6 +7003,7 @@ Object { "fieldSource": undefined, "format": "0.0 b", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Used Heap", "mbField": undefined, "metricAgg": "max", @@ -6593,6 +7028,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "1m", "mbField": undefined, "metricAgg": "max", @@ -6642,6 +7078,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search", "mbField": undefined, "metricAgg": "sum", @@ -6666,6 +7103,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search Total", "mbField": undefined, "metricAgg": "max", @@ -6690,6 +7128,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Segment Count", "mbField": undefined, "metricAgg": "max", @@ -6713,6 +7152,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bulk", "mbField": undefined, "metricAgg": "max", @@ -6737,6 +7177,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Generic", "mbField": undefined, "metricAgg": "max", @@ -6761,6 +7202,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Get", "mbField": undefined, "metricAgg": "max", @@ -6785,6 +7227,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index", "mbField": undefined, "metricAgg": "max", @@ -6809,6 +7252,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Management", "mbField": undefined, "metricAgg": "max", @@ -6833,6 +7277,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search", "mbField": undefined, "metricAgg": "max", @@ -6857,6 +7302,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Watcher", "mbField": undefined, "metricAgg": "max", @@ -6881,6 +7327,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Bulk", "mbField": undefined, "metricAgg": "max", @@ -6905,6 +7352,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Generic", "mbField": undefined, "metricAgg": "max", @@ -6929,6 +7377,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Get", "mbField": undefined, "metricAgg": "max", @@ -6953,6 +7402,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index", "mbField": undefined, "metricAgg": "max", @@ -6977,6 +7427,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Management", "mbField": undefined, "metricAgg": "max", @@ -7001,6 +7452,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Search", "mbField": undefined, "metricAgg": "max", @@ -7025,6 +7477,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Watcher", "mbField": undefined, "metricAgg": "max", @@ -7049,6 +7502,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Index Throttling Time", "mbField": undefined, "metricAgg": "max", @@ -7074,6 +7528,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total I/O", "mbField": undefined, "metricAgg": "max", @@ -7098,6 +7553,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Read I/O", "mbField": undefined, "metricAgg": "max", @@ -7122,6 +7578,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Write I/O", "mbField": undefined, "metricAgg": "max", @@ -7146,6 +7603,7 @@ Object { "fieldSource": undefined, "format": "0,0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Total Shards", "mbField": undefined, "metricAgg": "max", @@ -7170,6 +7628,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Org Sources", "mbField": undefined, "metricAgg": "avg", @@ -7193,6 +7652,7 @@ Object { "fieldSource": undefined, "format": "0.[00]", "getDateHistogramSubAggs": undefined, + "isNotSupportedInInternalCollection": undefined, "label": "Private Sources", "mbField": undefined, "metricAgg": "avg", diff --git a/x-pack/plugins/monitoring/server/lib/metrics/classes/metric.ts b/x-pack/plugins/monitoring/server/lib/metrics/classes/metric.ts index 8c2c54cd2f4ed..e9c04d7e0aebf 100644 --- a/x-pack/plugins/monitoring/server/lib/metrics/classes/metric.ts +++ b/x-pack/plugins/monitoring/server/lib/metrics/classes/metric.ts @@ -23,6 +23,7 @@ interface OptionalMetricOptions { metricAgg?: string; mbField?: string; type?: string; + isNotSupportedInInternalCollection?: boolean; } interface DefaultMetricOptions { @@ -56,6 +57,7 @@ export class Metric { public usageField?: string; public periodsField?: string; public quotaField?: string; + public isNotSupportedInInternalCollection?: boolean; constructor(opts: MetricOptions) { const props: Required = { diff --git a/x-pack/plugins/monitoring/server/lib/metrics/index.ts b/x-pack/plugins/monitoring/server/lib/metrics/index.ts index 12c19cdd4b870..6092d78b2659e 100644 --- a/x-pack/plugins/monitoring/server/lib/metrics/index.ts +++ b/x-pack/plugins/monitoring/server/lib/metrics/index.ts @@ -6,7 +6,12 @@ */ export { ElasticsearchMetric } from './elasticsearch/classes'; -export { KibanaClusterMetric, KibanaMetric } from './kibana/classes'; +export { + KibanaClusterMetric, + KibanaMetric, + KibanaClusterRuleMetric, + KibanaClusterActionMetric, +} from './kibana/classes'; export type { ApmMetricFields } from './apm/classes'; export { ApmMetric, ApmClusterMetric } from './apm/classes'; export { LogstashClusterMetric, LogstashMetric } from './logstash/classes'; diff --git a/x-pack/plugins/monitoring/server/lib/metrics/kibana/classes.ts b/x-pack/plugins/monitoring/server/lib/metrics/kibana/classes.ts index 84c2d60b43fe2..4a171ce6ce40f 100644 --- a/x-pack/plugins/monitoring/server/lib/metrics/kibana/classes.ts +++ b/x-pack/plugins/monitoring/server/lib/metrics/kibana/classes.ts @@ -12,7 +12,14 @@ import { NORMALIZED_DERIVATIVE_UNIT } from '../../../../common/constants'; type KibanaClusterMetricOptions = Pick< MetricOptions, - 'field' | 'label' | 'description' | 'format' | 'units' | 'metricAgg' + | 'field' + | 'label' + | 'description' + | 'format' + | 'units' + | 'metricAgg' + | 'derivative' + | 'isNotSupportedInInternalCollection' > & Partial>; @@ -33,11 +40,73 @@ export class KibanaClusterMetric extends ClusterMetric { } } -type KibanaEventsRateClusterMetricOptions = Pick< - MetricOptions, - 'field' | 'label' | 'description' | 'format' | 'units' -> & - Partial>; +export class KibanaClusterRuleMetric extends ClusterMetric { + constructor(opts: KibanaClusterMetricOptions) { + super({ + ...opts, + app: 'kibana', + ...KibanaClusterRuleMetric.getMetricFields(), + }); + } + + static getMetricFields() { + return { + uuidField: 'cluster_uuid', + timestampField: 'timestamp', // This will alias to @timestamp + }; + } +} + +export class KibanaInstanceRuleMetric extends Metric { + constructor(opts: KibanaClusterMetricOptions) { + super({ + ...opts, + app: 'kibana', + ...KibanaInstanceRuleMetric.getMetricFields(), + }); + } + + static getMetricFields() { + return { + uuidField: 'kibana_stats.kibana.uuid', // This field does not exist in the MB document but the alias exists + timestampField: 'timestamp', // This will alias to @timestamp + }; + } +} + +export class KibanaClusterActionMetric extends ClusterMetric { + constructor(opts: KibanaClusterMetricOptions) { + super({ + ...opts, + app: 'kibana', + ...KibanaClusterActionMetric.getMetricFields(), + }); + } + + static getMetricFields() { + return { + uuidField: 'cluster_uuid', + timestampField: 'timestamp', // This will alias to @timestamp + }; + } +} + +export class KibanaInstanceActionMetric extends Metric { + constructor(opts: KibanaClusterMetricOptions) { + super({ + ...opts, + app: 'kibana', + ...KibanaInstanceActionMetric.getMetricFields(), + }); + } + + static getMetricFields() { + return { + uuidField: 'kibana_stats.kibana.uuid', // This field does not exist in the MB document but the alias exists + timestampField: 'timestamp', // This will alias to @timestamp + }; + } +} export class KibanaEventsRateClusterMetric extends KibanaClusterMetric { constructor(opts: KibanaEventsRateClusterMetricOptions) { @@ -77,6 +146,12 @@ export class KibanaEventsRateClusterMetric extends KibanaClusterMetric { } } +type KibanaEventsRateClusterMetricOptions = Pick< + MetricOptions, + 'field' | 'label' | 'description' | 'format' | 'units' +> & + Partial>; + type KibanaMetricOptions = Pick< MetricOptions, 'field' | 'label' | 'description' | 'format' | 'metricAgg' | 'units' diff --git a/x-pack/plugins/monitoring/server/lib/metrics/kibana/metrics.ts b/x-pack/plugins/monitoring/server/lib/metrics/kibana/metrics.ts index e6db13e222251..022f81f5854ac 100644 --- a/x-pack/plugins/monitoring/server/lib/metrics/kibana/metrics.ts +++ b/x-pack/plugins/monitoring/server/lib/metrics/kibana/metrics.ts @@ -6,7 +6,14 @@ */ import { i18n } from '@kbn/i18n'; -import { KibanaEventsRateClusterMetric, KibanaMetric } from './classes'; +import { + KibanaEventsRateClusterMetric, + KibanaMetric, + KibanaClusterRuleMetric, + KibanaInstanceRuleMetric, + KibanaInstanceActionMetric, + KibanaClusterActionMetric, +} from './classes'; import { LARGE_FLOAT, SMALL_FLOAT, LARGE_BYTES } from '../../../../common/formatting'; const clientResponseTimeTitle = i18n.translate( @@ -253,4 +260,173 @@ export const metrics = { metricAgg: 'max', units: '', }), + + kibana_instance_rule_failures: new KibanaInstanceRuleMetric({ + derivative: true, + field: 'kibana.node_rules.failures', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.ruleInstanceFailuresLabel', { + defaultMessage: 'Rule Failures Rate', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.ruleInstanceFailuresDescription', + { + defaultMessage: 'Rate of rule failures for the Kibana instance.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + kibana_instance_rule_executions: new KibanaInstanceRuleMetric({ + derivative: true, + field: 'kibana.node_rules.executions', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.ruleInstanceExecutionsLabel', { + defaultMessage: 'Rule Executions Rate', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.ruleInstanceExecutionsDescription', + { + defaultMessage: 'Rate of rule executions for the Kibana instance.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + kibana_instance_action_failures: new KibanaInstanceActionMetric({ + derivative: true, + field: 'kibana.node_actions.failures', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.actionInstanceFailuresLabel', { + defaultMessage: 'Action Failures Rate', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.actionInstanceFailuresDescription', + { + defaultMessage: 'Rate of action failures for the Kibana instance.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + kibana_instance_action_executions: new KibanaInstanceActionMetric({ + derivative: true, + field: 'kibana.node_actions.executions', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.actionInstanceExecutionsLabel', { + defaultMessage: 'Action Executions Rate', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.actionInstanceExecutionsDescription', + { + defaultMessage: 'Rate of action executions for the Kibana instance.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + + kibana_cluster_rule_overdue_count: new KibanaClusterRuleMetric({ + field: 'kibana.cluster_rules.overdue.count', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueCountLabel', { + defaultMessage: 'Rule Overdue Count', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueCountDescription', + { + defaultMessage: 'Number of overdue rules across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + kibana_cluster_rule_overdue_p50: new KibanaClusterRuleMetric({ + field: 'kibana.cluster_rules.overdue.delay.p50', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueP50Label', { + defaultMessage: 'Average Rule Overdue Delay', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueP50Description', + { + defaultMessage: 'Average delay of all overdue rules across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: msTimeUnitLabel, + isNotSupportedInInternalCollection: true, + }), + kibana_cluster_rule_overdue_p99: new KibanaClusterRuleMetric({ + field: 'kibana.cluster_rules.overdue.delay.p99', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueP99Label', { + defaultMessage: 'Worst Rule Overdue Delay', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterRuleOverdueP99Description', + { + defaultMessage: 'Worst delay of all overdue rules across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: msTimeUnitLabel, + isNotSupportedInInternalCollection: true, + }), + kibana_cluster_action_overdue_count: new KibanaClusterActionMetric({ + field: 'kibana.cluster_actions.overdue.count', + label: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueCountLabel', + { + defaultMessage: 'Action Overdue Count', + } + ), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueCountDescription', + { + defaultMessage: 'Number of overdue actions across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: '', + isNotSupportedInInternalCollection: true, + }), + kibana_cluster_action_overdue_p50: new KibanaClusterActionMetric({ + field: 'kibana.cluster_actions.overdue.delay.p50', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueP50Label', { + defaultMessage: 'Average Action Overdue Delay', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueP50Description', + { + defaultMessage: 'Average delay of all overdue actions across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: msTimeUnitLabel, + isNotSupportedInInternalCollection: true, + }), + kibana_cluster_action_overdue_p99: new KibanaClusterActionMetric({ + field: 'kibana.cluster_actions.overdue.delay.p99', + label: i18n.translate('xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueP99Label', { + defaultMessage: 'Worst Action Overdue Delay', + }), + description: i18n.translate( + 'xpack.monitoring.metrics.kibanaInstance.clusterActionOverdueP99Description', + { + defaultMessage: 'Worst delay of all overdue actions across the entire cluster.', + } + ), + format: SMALL_FLOAT, + metricAgg: 'max', + units: msTimeUnitLabel, + isNotSupportedInInternalCollection: true, + }), }; diff --git a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_instance.ts b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_instance.ts index 0817c35bb2d36..ca258d1ab97b4 100644 --- a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_instance.ts +++ b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_instance.ts @@ -26,4 +26,8 @@ export const metricSet: MetricDescriptor[] = [ keys: ['kibana_requests_total', 'kibana_requests_disconnects'], name: 'kibana_requests', }, + 'kibana_instance_rule_failures', + 'kibana_instance_rule_executions', + 'kibana_instance_action_failures', + 'kibana_instance_action_executions', ]; diff --git a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_overview.ts b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_overview.ts index 126b220801e2e..2369d0fab2ba2 100644 --- a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_overview.ts +++ b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/metric_set_overview.ts @@ -13,4 +13,14 @@ export const metricSet: MetricDescriptor[] = [ keys: ['kibana_cluster_max_response_times', 'kibana_cluster_average_response_times'], name: 'kibana_cluster_response_times', }, + 'kibana_cluster_rule_overdue_count', + { + keys: ['kibana_cluster_rule_overdue_p50', 'kibana_cluster_rule_overdue_p99'], + name: 'kibana_cluster_rule_overdue_duration', + }, + 'kibana_cluster_action_overdue_count', + { + keys: ['kibana_cluster_action_overdue_p50', 'kibana_cluster_action_overdue_p99'], + name: 'kibana_cluster_action_overdue_duration', + }, ]; diff --git a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/overview.ts b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/overview.ts index 508237ea50bc2..7330ccd27d51a 100644 --- a/x-pack/plugins/monitoring/server/routes/api/v1/kibana/overview.ts +++ b/x-pack/plugins/monitoring/server/routes/api/v1/kibana/overview.ts @@ -33,18 +33,25 @@ export function kibanaOverviewRoute(server: MonitoringCore) { try { const moduleType = 'kibana'; - const dsDataset = 'stats'; + const dsDatasets = ['stats', 'cluster_rules', 'cluster_actions']; + const bools = dsDatasets.reduce( + (accum: Array<{ term: { [key: string]: string } }>, dsDataset) => { + accum.push( + ...[ + { term: { 'data_stream.dataset': `${moduleType}.${dsDataset}` } }, + { term: { 'metricset.name': dsDataset } }, + { term: { type: `kibana_${dsDataset}` } }, + ] + ); + return accum; + }, + [] + ); const [clusterStatus, metrics] = await Promise.all([ getKibanaClusterStatus(req, { clusterUuid }), getMetrics(req, moduleType, metricSet, [ { - bool: { - should: [ - { term: { 'data_stream.dataset': `${moduleType}.${dsDataset}` } }, - { term: { 'metricset.name': dsDataset } }, - { term: { type: 'kibana_stats' } }, - ], - }, + bool: { should: bools }, }, ]), ]); diff --git a/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/multicluster.json b/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/multicluster.json index 5d28989f9010f..453ad92e1b556 100644 --- a/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/multicluster.json +++ b/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/multicluster.json @@ -3,41 +3,21 @@ "cluster_uuid": "6d-9tDFTRe-qT5GoBytdlQ", "cluster_name": "clustertwo", "version": "7.0.0-alpha1", - "license": { - "status": "active", - "type": "basic", - "expiry_date_in_millis": 1914278399999 - }, + "license": { "status": "active", "type": "basic", "expiry_date_in_millis": 1914278399999 }, "elasticsearch": { "cluster_stats": { "indices": { "count": 1, - "docs": { - "deleted": 0, - "count": 8 - }, - "shards": { - "total": 1, - "primaries": 1 - }, - "store": { - "size_in_bytes": 34095 - } + "docs": { "deleted": 0, "count": 8 }, + "shards": { "total": 1, "primaries": 1 }, + "store": { "size_in_bytes": 34095 } }, "nodes": { - "fs": { - "total_in_bytes": 499065712640, - "available_in_bytes": 200403197952 - }, - "count": { - "total": 1 - }, + "fs": { "total_in_bytes": 499065712640, "available_in_bytes": 200403197952 }, + "count": { "total": 1 }, "jvm": { "max_uptime_in_millis": 701043, - "mem": { - "heap_max_in_bytes": 628555776, - "heap_used_in_bytes": 204299464 - } + "mem": { "heap_max_in_bytes": 628555776, "heap_used_in_bytes": 204299464 } } }, "status": "green" @@ -51,10 +31,7 @@ "avg_memory_used": 0, "max_uptime": 0, "pipeline_count": 0, - "queue_types": { - "memory": 0, - "persisted": 0 - }, + "queue_types": { "memory": 0, "persisted": 0 }, "versions": [] }, "kibana": { @@ -65,26 +42,16 @@ "response_time_max": 0, "memory_size": 0, "memory_limit": 0, - "count": 0 - }, - "beats": { - "totalEvents": 0, - "bytesSent": 0, - "beats": { - "total": 0, - "types": [] - } + "count": 0, + "rules": { "cluster": null, "instance": null } }, + "beats": { "totalEvents": 0, "bytesSent": 0, "beats": { "total": 0, "types": [] } }, "apm": { "totalEvents": 0, "memRss": 0, - "apms": { - "total": 0 - }, + "apms": { "total": 0 }, "versions": [], - "config": { - "container": false - } + "config": { "container": false } }, "enterpriseSearch": { "clusterUuid": "6d-9tDFTRe-qT5GoBytdlQ", @@ -100,12 +67,7 @@ "versions": [] } }, - "alerts": { - "list": {}, - "alertsMeta": { - "enabled": true - } - }, + "alerts": { "list": {}, "alertsMeta": { "enabled": true } }, "isPrimary": false, "status": "green", "isCcrEnabled": true @@ -115,41 +77,21 @@ "cluster_uuid": "lOF8kofiS_2DX58o9mXJ1Q", "cluster_name": "monitoring-one", "version": "7.0.0-alpha1", - "license": { - "status": "active", - "type": "trial", - "expiry_date_in_millis": 1505426308997 - }, + "license": { "status": "active", "type": "trial", "expiry_date_in_millis": 1505426308997 }, "elasticsearch": { "cluster_stats": { "indices": { "count": 8, - "docs": { - "deleted": 69, - "count": 3997 - }, - "shards": { - "total": 8, - "primaries": 8 - }, - "store": { - "size_in_bytes": 2647163 - } + "docs": { "deleted": 69, "count": 3997 }, + "shards": { "total": 8, "primaries": 8 }, + "store": { "size_in_bytes": 2647163 } }, "nodes": { - "fs": { - "total_in_bytes": 499065712640, - "available_in_bytes": 200403648512 - }, - "count": { - "total": 1 - }, + "fs": { "total_in_bytes": 499065712640, "available_in_bytes": 200403648512 }, + "count": { "total": 1 }, "jvm": { "max_uptime_in_millis": 761002, - "mem": { - "heap_max_in_bytes": 628555776, - "heap_used_in_bytes": 133041176 - } + "mem": { "heap_max_in_bytes": 628555776, "heap_used_in_bytes": 133041176 } } }, "status": "yellow" @@ -163,10 +105,7 @@ "avg_memory_used": 0, "max_uptime": 0, "pipeline_count": 0, - "queue_types": { - "memory": 0, - "persisted": 0 - }, + "queue_types": { "memory": 0, "persisted": 0 }, "versions": [] }, "kibana": { @@ -177,26 +116,16 @@ "response_time_max": 0, "memory_size": 0, "memory_limit": 0, - "count": 0 - }, - "beats": { - "totalEvents": 0, - "bytesSent": 0, - "beats": { - "total": 0, - "types": [] - } + "count": 0, + "rules": { "cluster": null, "instance": null } }, + "beats": { "totalEvents": 0, "bytesSent": 0, "beats": { "total": 0, "types": [] } }, "apm": { "totalEvents": 0, "memRss": 0, - "apms": { - "total": 0 - }, + "apms": { "total": 0 }, "versions": [], - "config": { - "container": false - } + "config": { "container": false } }, "enterpriseSearch": { "clusterUuid": "lOF8kofiS_2DX58o9mXJ1Q", @@ -212,12 +141,7 @@ "versions": [] } }, - "alerts": { - "list": {}, - "alertsMeta": { - "enabled": true - } - }, + "alerts": { "list": {}, "alertsMeta": { "enabled": true } }, "isPrimary": false, "status": "yellow", "isCcrEnabled": true @@ -227,41 +151,21 @@ "cluster_uuid": "TkHOX_-1TzWwbROwQJU5IA", "cluster_name": "clusterone", "version": "7.0.0-alpha1", - "license": { - "status": "active", - "type": "trial", - "expiry_date_in_millis": 1505426327135 - }, + "license": { "status": "active", "type": "trial", "expiry_date_in_millis": 1505426327135 }, "elasticsearch": { "cluster_stats": { "indices": { "count": 5, - "docs": { - "deleted": 0, - "count": 150 - }, - "shards": { - "total": 26, - "primaries": 13 - }, - "store": { - "size_in_bytes": 4838464 - } + "docs": { "deleted": 0, "count": 150 }, + "shards": { "total": 26, "primaries": 13 }, + "store": { "size_in_bytes": 4838464 } }, "nodes": { - "fs": { - "total_in_bytes": 499065712640, - "available_in_bytes": 200404209664 - }, - "count": { - "total": 2 - }, + "fs": { "total_in_bytes": 499065712640, "available_in_bytes": 200404209664 }, + "count": { "total": 2 }, "jvm": { "max_uptime_in_millis": 741786, - "mem": { - "heap_max_in_bytes": 1257111552, - "heap_used_in_bytes": 465621856 - } + "mem": { "heap_max_in_bytes": 1257111552, "heap_used_in_bytes": 465621856 } } }, "status": "green" @@ -275,13 +179,8 @@ "avg_memory_used": 487782224, "max_uptime": 570039, "pipeline_count": 1, - "queue_types": { - "memory": 1, - "persisted": 0 - }, - "versions": [ - "7.0.0-alpha1" - ] + "queue_types": { "memory": 1, "persisted": 0 }, + "versions": ["7.0.0-alpha1"] }, "kibana": { "status": "green", @@ -291,26 +190,16 @@ "response_time_max": 1930, "memory_size": 231141376, "memory_limit": 1501560832, - "count": 1 - }, - "beats": { - "totalEvents": 0, - "bytesSent": 0, - "beats": { - "total": 0, - "types": [] - } + "count": 1, + "rules": { "cluster": null, "instance": null } }, + "beats": { "totalEvents": 0, "bytesSent": 0, "beats": { "total": 0, "types": [] } }, "apm": { "totalEvents": 0, "memRss": 0, - "apms": { - "total": 0 - }, + "apms": { "total": 0 }, "versions": [], - "config": { - "container": false - } + "config": { "container": false } }, "enterpriseSearch": { "clusterUuid": "TkHOX_-1TzWwbROwQJU5IA", @@ -326,14 +215,9 @@ "versions": [] } }, - "alerts": { - "list": {}, - "alertsMeta": { - "enabled": true - } - }, + "alerts": { "list": {}, "alertsMeta": { "enabled": true } }, "isPrimary": false, "status": "green", "isCcrEnabled": true } -] \ No newline at end of file +] diff --git a/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/overview.json b/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/overview.json index 143800c911307..f4bd6c33996ac 100644 --- a/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/overview.json +++ b/x-pack/test/api_integration/apis/monitoring/cluster/fixtures/overview.json @@ -79,6 +79,7 @@ "requests_total": 914, "concurrent_connections": 646, "response_time_max": 2873, + "rules": { "cluster": null, "instance": null }, "memory_size": 196005888, "memory_limit": 1501560832, "count": 1 @@ -120,4 +121,4 @@ "status": "green", "isCcrEnabled": true } -] \ No newline at end of file +] diff --git a/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js b/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js index 22c7706b9a32f..9a18edf35fa79 100644 --- a/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js +++ b/x-pack/test/api_integration/apis/monitoring/common/mappings_exist.js @@ -56,6 +56,7 @@ export default function ({ getService }) { describe(`for ${name}`, () => { // eslint-disable-line no-loop-func for (const metric of Object.values(metrics)) { + if (metric.isNotSupportedInInternalCollection) continue; for (const field of metric.getFields()) { // eslint-disable-next-line no-loop-func it(`${field} should exist in the mappings`, () => { diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/instance.json b/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/instance.json index b6f675ca1ad2e..b5a88fabdfa66 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/instance.json +++ b/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/instance.json @@ -3,10 +3,7 @@ "kibana_os_load": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.os.load.1m", @@ -20,50 +17,20 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 5.87109375 - ], - [ - 1504027470000, - 5.84375 - ], - [ - 1504027480000, - 5.08984375 - ], - [ - 1504027490000, - 4.53515625 - ], - [ - 1504027500000, - 3.990234375 - ], - [ - 1504027510000, - 3.537109375 - ], - [ - 1504027520000, - 3.29296875 - ], - [ - 1504027530000, - 3.2421875 - ], - [ - 1504027540000, - 3.19140625 - ] + [1504027460000, 5.87109375], + [1504027470000, 5.84375], + [1504027480000, 5.08984375], + [1504027490000, 4.53515625], + [1504027500000, 3.990234375], + [1504027510000, 3.537109375], + [1504027520000, 3.29296875], + [1504027530000, 3.2421875], + [1504027540000, 3.19140625] ] }, { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.os.load.5m", @@ -77,50 +44,20 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 4.92578125 - ], - [ - 1504027470000, - 4.9453125 - ], - [ - 1504027480000, - 4.81640625 - ], - [ - 1504027490000, - 4.70703125 - ], - [ - 1504027500000, - 4.58203125 - ], - [ - 1504027510000, - 4.46484375 - ], - [ - 1504027520000, - 4.3828125 - ], - [ - 1504027530000, - 4.3359375 - ], - [ - 1504027540000, - 4.29296875 - ] + [1504027460000, 4.92578125], + [1504027470000, 4.9453125], + [1504027480000, 4.81640625], + [1504027490000, 4.70703125], + [1504027500000, 4.58203125], + [1504027510000, 4.46484375], + [1504027520000, 4.3828125], + [1504027530000, 4.3359375], + [1504027540000, 4.29296875] ] }, { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.os.load.15m", @@ -134,52 +71,22 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 4.5390625 - ], - [ - 1504027470000, - 4.546875 - ], - [ - 1504027480000, - 4.5078125 - ], - [ - 1504027490000, - 4.46875 - ], - [ - 1504027500000, - 4.4296875 - ], - [ - 1504027510000, - 4.390625 - ], - [ - 1504027520000, - 4.359375 - ], - [ - 1504027530000, - 4.34375 - ], - [ - 1504027540000, - 4.328125 - ] + [1504027460000, 4.5390625], + [1504027470000, 4.546875], + [1504027480000, 4.5078125], + [1504027490000, 4.46875], + [1504027500000, 4.4296875], + [1504027510000, 4.390625], + [1504027520000, 4.359375], + [1504027530000, 4.34375], + [1504027540000, 4.328125] ] } ], "kibana_average_concurrent_connections": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.concurrent_connections", @@ -192,52 +99,22 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 78 - ], - [ - 1504027470000, - 90 - ], - [ - 1504027480000, - 102 - ], - [ - 1504027490000, - 114 - ], - [ - 1504027500000, - 126 - ], - [ - 1504027510000, - 138 - ], - [ - 1504027520000, - 150 - ], - [ - 1504027530000, - 162 - ], - [ - 1504027540000, - 174 - ] + [1504027460000, 78], + [1504027470000, 90], + [1504027480000, 102], + [1504027490000, 114], + [1504027500000, 126], + [1504027510000, 138], + [1504027520000, 150], + [1504027530000, 162], + [1504027540000, 174] ] } ], "kibana_process_delay": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.process.event_loop_delay", @@ -250,52 +127,22 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 9.576263427734375 - ], - [ - 1504027470000, - 10.395200729370117 - ], - [ - 1504027480000, - 11.072744369506836 - ], - [ - 1504027490000, - 11.617706298828125 - ], - [ - 1504027500000, - 12.510245323181152 - ], - [ - 1504027510000, - 13.343531608581543 - ], - [ - 1504027520000, - 14.059904098510742 - ], - [ - 1504027530000, - 14.816107749938965 - ], - [ - 1504027540000, - 15.663384437561035 - ] + [1504027460000, 9.576263427734375], + [1504027470000, 10.395200729370117], + [1504027480000, 11.072744369506836], + [1504027490000, 11.617706298828125], + [1504027500000, 12.510245323181152], + [1504027510000, 13.343531608581543], + [1504027520000, 14.059904098510742], + [1504027530000, 14.816107749938965], + [1504027540000, 15.663384437561035] ] } ], "kibana_memory": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.process.memory.heap.size_limit", @@ -309,50 +156,20 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 1501560832 - ], - [ - 1504027470000, - 1501560832 - ], - [ - 1504027480000, - 1501560832 - ], - [ - 1504027490000, - 1501560832 - ], - [ - 1504027500000, - 1501560832 - ], - [ - 1504027510000, - 1501560832 - ], - [ - 1504027520000, - 1501560832 - ], - [ - 1504027530000, - 1501560832 - ], - [ - 1504027540000, - 1501560832 - ] + [1504027460000, 1501560832], + [1504027470000, 1501560832], + [1504027480000, 1501560832], + [1504027490000, 1501560832], + [1504027500000, 1501560832], + [1504027510000, 1501560832], + [1504027520000, 1501560832], + [1504027530000, 1501560832], + [1504027540000, 1501560832] ] }, { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.process.memory.resident_set_size_in_bytes", @@ -366,52 +183,22 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 228552704 - ], - [ - 1504027470000, - 231333888 - ], - [ - 1504027480000, - 232230912 - ], - [ - 1504027490000, - 229707776 - ], - [ - 1504027500000, - 230150144 - ], - [ - 1504027510000, - 230617088 - ], - [ - 1504027520000, - 229924864 - ], - [ - 1504027530000, - 230363136 - ], - [ - 1504027540000, - 230227968 - ] + [1504027460000, 228552704], + [1504027470000, 231333888], + [1504027480000, 232230912], + [1504027490000, 229707776], + [1504027500000, 230150144], + [1504027510000, 230617088], + [1504027520000, 229924864], + [1504027530000, 230363136], + [1504027540000, 230227968] ] } ], "kibana_response_times": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.response_times.max", @@ -425,50 +212,20 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 2203 - ], - [ - 1504027470000, - 2203 - ], - [ - 1504027480000, - 2203 - ], - [ - 1504027490000, - 2203 - ], - [ - 1504027500000, - 2203 - ], - [ - 1504027510000, - 2203 - ], - [ - 1504027520000, - 2203 - ], - [ - 1504027530000, - 2203 - ], - [ - 1504027540000, - 2203 - ] + [1504027460000, 2203], + [1504027470000, 2203], + [1504027480000, 2203], + [1504027490000, 2203], + [1504027500000, 2203], + [1504027510000, 2203], + [1504027520000, 2203], + [1504027530000, 2203], + [1504027540000, 2203] ] }, { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.response_times.average", @@ -482,52 +239,22 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 171.05714416503906 - ], - [ - 1504027470000, - 171.05714416503906 - ], - [ - 1504027480000, - 171.05714416503906 - ], - [ - 1504027490000, - 171.05714416503906 - ], - [ - 1504027500000, - 171.05714416503906 - ], - [ - 1504027510000, - 171.05714416503906 - ], - [ - 1504027520000, - 171.05714416503906 - ], - [ - 1504027530000, - 171.05714416503906 - ], - [ - 1504027540000, - 171.05714416503906 - ] + [1504027460000, 171.05714416503906], + [1504027470000, 171.05714416503906], + [1504027480000, 171.05714416503906], + [1504027490000, 171.05714416503906], + [1504027500000, 171.05714416503906], + [1504027510000, 171.05714416503906], + [1504027520000, 171.05714416503906], + [1504027530000, 171.05714416503906], + [1504027540000, 171.05714416503906] ] } ], "kibana_requests": [ { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.requests.total", @@ -540,50 +267,20 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 113 - ], - [ - 1504027470000, - 146 - ], - [ - 1504027480000, - 162 - ], - [ - 1504027490000, - 164 - ], - [ - 1504027500000, - 166 - ], - [ - 1504027510000, - 168 - ], - [ - 1504027520000, - 170 - ], - [ - 1504027530000, - 172 - ], - [ - 1504027540000, - 174 - ] + [1504027460000, 113], + [1504027470000, 146], + [1504027480000, 162], + [1504027490000, 164], + [1504027500000, 166], + [1504027510000, 168], + [1504027520000, 170], + [1504027530000, 172], + [1504027540000, 174] ] }, { "bucket_size": "10 seconds", - "timeRange": { - "min": 1504027457000, - "max": 1504027568000 - }, + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", "field": "kibana_stats.requests.disconnects", @@ -596,42 +293,131 @@ "isDerivative": false }, "data": [ - [ - 1504027460000, - 0 - ], - [ - 1504027470000, - 0 - ], - [ - 1504027480000, - 0 - ], - [ - 1504027490000, - 0 - ], - [ - 1504027500000, - 0 - ], - [ - 1504027510000, - 0 - ], - [ - 1504027520000, - 0 - ], - [ - 1504027530000, - 0 - ], - [ - 1504027540000, - 0 - ] + [1504027460000, 0], + [1504027470000, 0], + [1504027480000, 0], + [1504027490000, 0], + [1504027500000, 0], + [1504027510000, 0], + [1504027520000, 0], + [1504027530000, 0], + [1504027540000, 0] + ] + } + ], + "kibana_instance_rule_failures": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.node_rules.failures", + "metricAgg": "max", + "label": "Rule Failures Rate", + "description": "Rate of rule failures for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_instance_rule_executions": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.node_rules.executions", + "metricAgg": "max", + "label": "Rule Executions Rate", + "description": "Rate of rule executions for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_instance_action_failures": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.node_actions.failures", + "metricAgg": "max", + "label": "Action Failures Rate", + "description": "Rate of action failures for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_instance_action_executions": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.node_actions.executions", + "metricAgg": "max", + "label": "Action Executions Rate", + "description": "Rate of action executions for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] ] } ] diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/overview.json b/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/overview.json index d622eed75d3ec..9c6044f396d30 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/overview.json +++ b/x-pack/test/api_integration/apis/monitoring/kibana/fixtures/overview.json @@ -1,11 +1,13 @@ { "clusterStatus": { - "concurrent_connections": 174, - "count": 1, - "memory_limit": 1501560832, - "memory_size": 230227968, + "uuids": ["de3b8f2a-7bb9-4931-9bf3-997ba7824cf9"], + "status": "green", "requests_total": 174, + "concurrent_connections": 174, "response_time_max": 2203, + "memory_size": 230227968, + "memory_limit": 1501560832, + "count": 1, "status": "green", "some_status_is_stale": true, "uuids": [ @@ -16,175 +18,255 @@ "kibana_cluster_requests": [ { "bucket_size": "10 seconds", - "data": [ - [ - 1504027460000, - 113 - ], - [ - 1504027470000, - 146 - ], - [ - 1504027480000, - 162 - ], - [ - 1504027490000, - 164 - ], - [ - 1504027500000, - 166 - ], - [ - 1504027510000, - 168 - ], - [ - 1504027520000, - 170 - ], - [ - 1504027530000, - 172 - ], - [ - 1504027540000, - 174 - ] - ], + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", - "description": "Total number of client requests received by the Kibana instance.", "field": "kibana_stats.requests.total", + "metricAgg": "max", + "label": "Client Requests", + "description": "Total number of client requests received by the Kibana instance.", + "units": "", "format": "0.[00]", "hasCalculation": false, - "isDerivative": false, - "label": "Client Requests", - "metricAgg": "max", - "units": "" + "isDerivative": false }, - "timeRange": { - "max": 1504027568000, - "min": 1504027457000 - } + "data": [ + [1504027460000, 113], + [1504027470000, 146], + [1504027480000, 162], + [1504027490000, 164], + [1504027500000, 166], + [1504027510000, 168], + [1504027520000, 170], + [1504027530000, 172], + [1504027540000, 174] + ] } ], "kibana_cluster_response_times": [ { "bucket_size": "10 seconds", - "data": [ - [ - 1504027460000, - 2203 - ], - [ - 1504027470000, - 2203 - ], - [ - 1504027480000, - 2203 - ], - [ - 1504027490000, - 2203 - ], - [ - 1504027500000, - 2203 - ], - [ - 1504027510000, - 2203 - ], - [ - 1504027520000, - 2203 - ], - [ - 1504027530000, - 2203 - ], - [ - 1504027540000, - 2203 - ] - ], + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", - "description": "Maximum response time for client requests to the Kibana instance.", "field": "kibana_stats.response_times.max", + "metricAgg": "max", + "label": "Max", + "title": "Client Response Time", + "description": "Maximum response time for client requests to the Kibana instance.", + "units": "ms", "format": "0.[00]", "hasCalculation": false, - "isDerivative": false, - "label": "Max", + "isDerivative": false + }, + "data": [ + [1504027460000, 2203], + [1504027470000, 2203], + [1504027480000, 2203], + [1504027490000, 2203], + [1504027500000, 2203], + [1504027510000, 2203], + [1504027520000, 2203], + [1504027530000, 2203], + [1504027540000, 2203] + ] + }, + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.response_times.average", "metricAgg": "max", + "label": "Average", "title": "Client Response Time", - "units": "ms" + "description": "Average response time for client requests to the Kibana instance.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false }, - "timeRange": { - "max": 1504027568000, - "min": 1504027457000 - } + "data": [ + [1504027460000, 171.05714416503906], + [1504027470000, 171.05714416503906], + [1504027480000, 171.05714416503906], + [1504027490000, 171.05714416503906], + [1504027500000, 171.05714416503906], + [1504027510000, 171.05714416503906], + [1504027520000, 171.05714416503906], + [1504027530000, 171.05714416503906], + [1504027540000, 171.05714416503906] + ] + } + ], + "kibana_cluster_rule_overdue_count": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.cluster_rules.overdue.count", + "metricAgg": "max", + "label": "Rule Overdue Count", + "description": "Number of overdue rules across the entire cluster.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_cluster_rule_overdue_duration": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.cluster_rules.overdue.delay.p50", + "metricAgg": "max", + "label": "Average Rule Overdue Delay", + "description": "Average delay of all overdue rules across the entire cluster.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] }, { "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.cluster_rules.overdue.delay.p99", + "metricAgg": "max", + "label": "Worst Rule Overdue Delay", + "description": "Worst delay of all overdue rules across the entire cluster.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "indices_found": { "internal": true, "metricbeat": false }, "data": [ - [ - 1504027460000, - 171.05714416503906 - ], - [ - 1504027470000, - 171.05714416503906 - ], - [ - 1504027480000, - 171.05714416503906 - ], - [ - 1504027490000, - 171.05714416503906 - ], - [ - 1504027500000, - 171.05714416503906 - ], - [ - 1504027510000, - 171.05714416503906 - ], - [ - 1504027520000, - 171.05714416503906 - ], - [ - 1504027530000, - 171.05714416503906 - ], - [ - 1504027540000, - 171.05714416503906 - ] - ], + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_cluster_action_overdue_count": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, "metric": { "app": "kibana", - "description": "Average response time for client requests to the Kibana instance.", - "field": "kibana_stats.response_times.average", + "field": "kibana.cluster_actions.overdue.count", + "metricAgg": "max", + "label": "Action Overdue Count", + "description": "Number of overdue actions across the entire cluster.", + "units": "", "format": "0.[00]", "hasCalculation": false, - "isDerivative": false, - "label": "Average", + "isDerivative": false + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + } + ], + "kibana_cluster_action_overdue_duration": [ + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.cluster_actions.overdue.delay.p50", "metricAgg": "max", - "title": "Client Response Time", - "units": "ms" + "label": "Average Action Overdue Delay", + "description": "Average delay of all overdue actions across the entire cluster.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false }, - "timeRange": { - "max": 1504027568000, - "min": 1504027457000 - } + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] + }, + { + "bucket_size": "10 seconds", + "timeRange": { "min": 1504027457000, "max": 1504027568000 }, + "metric": { + "app": "kibana", + "field": "kibana.cluster_actions.overdue.delay.p99", + "metricAgg": "max", + "label": "Worst Action Overdue Delay", + "description": "Worst delay of all overdue actions across the entire cluster.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "indices_found": { "internal": true, "metricbeat": false }, + "data": [ + [1504027460000, null], + [1504027470000, null], + [1504027480000, null], + [1504027490000, null], + [1504027500000, null], + [1504027510000, null], + [1504027520000, null], + [1504027530000, null], + [1504027540000, null] + ] } ] } diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/index.js b/x-pack/test/api_integration/apis/monitoring/kibana/index.js index b54b09102bc1b..627cabc2ea99d 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/index.js +++ b/x-pack/test/api_integration/apis/monitoring/kibana/index.js @@ -13,5 +13,7 @@ export default function ({ loadTestFile }) { loadTestFile(require.resolve('./listing_mb')); loadTestFile(require.resolve('./instance')); loadTestFile(require.resolve('./instance_mb')); + + loadTestFile(require.resolve('./rules_and_actions')); }); } diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/instance.js b/x-pack/test/api_integration/apis/monitoring/kibana/instance.js index af7a360ec1bd8..5eef8051b6639 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/instance.js +++ b/x-pack/test/api_integration/apis/monitoring/kibana/instance.js @@ -35,7 +35,6 @@ export default function ({ getService }) { .set('kbn-xsrf', 'xxx') .send({ timeRange }) .expect(200); - expect(body).to.eql(instanceFixture); }); }); diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/instance_mb.js b/x-pack/test/api_integration/apis/monitoring/kibana/instance_mb.js index 8ad6f32c2c564..4aaa71101f43c 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/instance_mb.js +++ b/x-pack/test/api_integration/apis/monitoring/kibana/instance_mb.js @@ -7,6 +7,7 @@ import expect from '@kbn/expect'; import { normalizeDataTypeDifferences } from '../normalize_data_type_differences'; +import { setIndicesFound } from '../set_indices_found'; import instanceFixture from './fixtures/instance.json'; import { getLifecycleMethods } from '../data_stream'; @@ -40,6 +41,7 @@ export default function ({ getService }) { .expect(200); body.metrics = normalizeDataTypeDifferences(body.metrics, instanceFixture); + instanceFixture.metrics = setIndicesFound(instanceFixture.metrics, true); expect(body).to.eql(instanceFixture); }); }); diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/overview.js b/x-pack/test/api_integration/apis/monitoring/kibana/overview.js index 4887e7b62b246..4efdb8163cbdd 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/overview.js +++ b/x-pack/test/api_integration/apis/monitoring/kibana/overview.js @@ -33,7 +33,6 @@ export default function ({ getService }) { .set('kbn-xsrf', 'xxx') .send({ timeRange }) .expect(200); - expect(body).to.eql(overviewFixture); }); }); diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/overview_mb.js b/x-pack/test/api_integration/apis/monitoring/kibana/overview_mb.js index ca755c742e0b0..46edaa0d1ff13 100644 --- a/x-pack/test/api_integration/apis/monitoring/kibana/overview_mb.js +++ b/x-pack/test/api_integration/apis/monitoring/kibana/overview_mb.js @@ -7,6 +7,7 @@ import expect from '@kbn/expect'; import { normalizeDataTypeDifferences } from '../normalize_data_type_differences'; +import { setIndicesFound } from '../set_indices_found'; import overviewFixture from './fixtures/overview.json'; import { getLifecycleMethods } from '../data_stream'; @@ -38,6 +39,7 @@ export default function ({ getService }) { .expect(200); body.metrics = normalizeDataTypeDifferences(body.metrics, overviewFixture); + overviewFixture.metrics = setIndicesFound(overviewFixture.metrics, true); expect(body).to.eql(overviewFixture); }); }); diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/instance.json b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/instance.json new file mode 100644 index 0000000000000..17bde11cb7c4e --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/instance.json @@ -0,0 +1,334 @@ +{ + "metrics": { + "kibana_os_load": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.os.load.1m", + "metricAgg": "max", + "label": "1m", + "title": "System Load", + "description": "Load average over the last minute.", + "units": "", + "format": "0,0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 5.27734375], + [1654023120000, 4.78125] + ] + }, + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.os.load.5m", + "metricAgg": "max", + "label": "5m", + "title": "System Load", + "description": "Load average over the last 5 minutes.", + "units": "", + "format": "0,0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 6.7734375], + [1654023120000, 6.5625] + ] + }, + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.os.load.15m", + "metricAgg": "max", + "label": "15m", + "title": "System Load", + "description": "Load average over the last 15 minutes.", + "units": "", + "format": "0,0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 5.8359375], + [1654023120000, 5.78125] + ] + } + ], + "kibana_average_concurrent_connections": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.concurrent_connections", + "metricAgg": "max", + "label": "HTTP Connections", + "description": "Total number of open socket connections to the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 10], + [1654023120000, 17] + ] + } + ], + "kibana_process_delay": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.process.event_loop_delay", + "metricAgg": "max", + "label": "Event Loop Delay", + "description": "Delay in Kibana server event loops. Longer delays may indicate blocking events in server thread, such as synchronous functions taking large amount of CPU time.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 10.624], + [1654023120000, 11.916] + ] + } + ], + "kibana_memory": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.process.memory.heap.size_limit", + "metricAgg": "max", + "label": "Heap Size Limit", + "title": "Memory Size", + "description": "Limit of memory usage before garbage collection.", + "units": "B", + "format": "0,0.0 b", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 8438939648], + [1654023120000, 8438939648] + ] + }, + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.process.memory.resident_set_size_in_bytes", + "metricAgg": "max", + "label": "Memory Size", + "title": "Memory Size", + "description": "Total heap used by Kibana running in Node.js.", + "units": "B", + "format": "0,0.0 b", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 568397824], + [1654023120000, 632569856] + ] + } + ], + "kibana_response_times": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.response_times.max", + "metricAgg": "max", + "label": "Max", + "title": "Client Response Time", + "description": "Maximum response time for client requests to the Kibana instance.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 77], + [1654023120000, 418] + ] + }, + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.response_times.average", + "metricAgg": "max", + "label": "Average", + "title": "Client Response Time", + "description": "Average response time for client requests to the Kibana instance.", + "units": "ms", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 37], + [1654023120000, 40] + ] + } + ], + "kibana_requests": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.requests.total", + "metricAgg": "max", + "label": "Client Requests", + "description": "Total number of client requests received by the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 3], + [1654023120000, 59] + ] + }, + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana_stats.requests.disconnects", + "metricAgg": "max", + "label": "Client Disconnects", + "description": "Total number of client disconnects to the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": false + }, + "data": [ + [1654023060000, 0], + [1654023120000, 0] + ] + } + ], + "kibana_instance_rule_failures": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana.node_rules.failures", + "metricAgg": "max", + "label": "Rule Failures Rate", + "description": "Rate of rule failures for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": false, "metricbeat": true }, + "data": [ + [1654023060000, null], + [1654023120000, 0] + ] + } + ], + "kibana_instance_rule_executions": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana.node_rules.executions", + "metricAgg": "max", + "label": "Rule Executions Rate", + "description": "Rate of rule executions for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": false, "metricbeat": true }, + "data": [ + [1654023060000, null], + [1654023120000, 0.03333333333333333] + ] + } + ], + "kibana_instance_action_failures": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana.node_actions.failures", + "metricAgg": "max", + "label": "Action Failures Rate", + "description": "Rate of action failures for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": false, "metricbeat": true }, + "data": [ + [1654023060000, null], + [1654023120000, 0] + ] + } + ], + "kibana_instance_action_executions": [ + { + "bucket_size": "1 min", + "timeRange": { "min": 1654022659267, "max": 1654027159267 }, + "metric": { + "app": "kibana", + "field": "kibana.node_actions.executions", + "metricAgg": "max", + "label": "Action Executions Rate", + "description": "Rate of action executions for the Kibana instance.", + "units": "", + "format": "0.[00]", + "hasCalculation": false, + "isDerivative": true + }, + "indices_found": { "internal": false, "metricbeat": true }, + "data": [ + [1654023060000, null], + [1654023120000, 0.03333333333333333] + ] + } + ] + }, + "kibanaSummary": { + "name": "CBR-MBP.local", + "host": "localhost", + "status": "green", + "statusIsStale": true, + "transport_address": "localhost:5601", + "uuid": "5b2de169-2785-441b-ae8c-186a1936b17d", + "snapshot": false, + "index": ".kibana", + "lastSeenTimestamp": "2022-05-31T18:52:10.179Z", + "version": "8.4.0", + "os_memory_free": 1504448512, + "uptime": 1845765 + } +} diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/overview.json b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/overview.json new file mode 100644 index 0000000000000..db7e4d7d39131 --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/fixtures/overview.json @@ -0,0 +1,81 @@ +[ + { + "cluster_uuid": "SvjwrFv6Rvuqjm9-cSSVEg", + "cluster_name": "elasticsearch", + "version": "8.4.0", + "license": { "status": "active", "type": "basic" }, + "elasticsearch": { + "cluster_stats": { + "indices": { + "count": 13, + "docs": { "count": 2922 }, + "shards": { "total": 13, "primaries": 13 }, + "store": { "size_in_bytes": 10225568 } + }, + "nodes": { + "fs": { "total_in_bytes": 499963174912, "available_in_bytes": 85294256128 }, + "count": { "total": 1 }, + "jvm": { + "max_uptime_in_millis": 16567476, + "mem": { "heap_max_in_bytes": 1610612736, "heap_used_in_bytes": 984250168 } + } + }, + "status": "yellow" + }, + "logs": { + "enabled": false, + "types": [], + "reason": { + "indexPatternExists": false, + "indexPatternInTimeRangeExists": false, + "typeExistsAtAnyTime": false, + "typeExists": false, + "usingStructuredLogs": false, + "clusterExists": false, + "nodeExists": null, + "indexExists": null + } + } + }, + "logstash": {}, + "kibana": { + "status": "green", + "some_status_is_stale": true, + "requests_total": 59, + "concurrent_connections": 17, + "response_time_max": 418, + "memory_size": 632569856, + "memory_limit": 8438939648, + "count": 1, + "rules": { + "cluster": { "overdue": { "count": 1, "delay": { "p50": 1586, "p99": 1586 } } }, + "instance": { "failures": 0, "executions": 51, "timeouts": 0 } + } + }, + "beats": { "totalEvents": 0, "bytesSent": 0, "beats": { "total": 0, "types": [] } }, + "apm": { + "totalEvents": 0, + "memRss": 0, + "apms": { "total": 0 }, + "versions": [], + "config": { "container": false } + }, + "enterpriseSearch": { + "clusterUuid": "SvjwrFv6Rvuqjm9-cSSVEg", + "stats": { + "appSearchEngines": 0, + "workplaceSearchOrgSources": 0, + "workplaceSearchPrivateSources": 0, + "totalInstances": 0, + "uptime": 0, + "memUsed": 0, + "memCommitted": 0, + "memTotal": 0, + "versions": [] + } + }, + "isPrimary": true, + "status": "yellow", + "isCcrEnabled": false + } +] diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/index.js b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/index.js new file mode 100644 index 0000000000000..987418d01432d --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/index.js @@ -0,0 +1,13 @@ +/* + * 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 default function ({ loadTestFile }) { + describe('Rules and Actions', () => { + loadTestFile(require.resolve('./overview')); + loadTestFile(require.resolve('./instance')); + }); +} diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/instance.js b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/instance.js new file mode 100644 index 0000000000000..a16a053dde3a1 --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/instance.js @@ -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 expect from '@kbn/expect'; +import fixture from './fixtures/instance.json'; +import { getLifecycleMethods } from '../../data_stream'; + +export default function ({ getService }) { + const supertest = getService('supertest'); + const { setup, tearDown } = getLifecycleMethods(getService); + + describe('instance detail', () => { + const archive = 'x-pack/test/functional/es_archives/monitoring/kibana/rules_and_actions'; + const timeRange = { + min: '2022-05-31T18:44:19.267Z', + max: '2022-05-31T19:59:19.267Z', + }; + + before('load archive', () => { + return setup(archive); + }); + + after('unload archive', () => { + return tearDown(); + }); + + it('should get data for the kibana instance view', async () => { + const { body } = await supertest + .post( + '/api/monitoring/v1/clusters/SvjwrFv6Rvuqjm9-cSSVEg/kibana/5b2de169-2785-441b-ae8c-186a1936b17d' + ) + .set('kbn-xsrf', 'xxx') + .send({ timeRange }) + .expect(200); + expect(body).to.eql(fixture); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/overview.js b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/overview.js new file mode 100644 index 0000000000000..d6978dff4183c --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/kibana/rules_and_actions/overview.js @@ -0,0 +1,40 @@ +/* + * 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 expect from '@kbn/expect'; +import fixture from './fixtures/overview.json'; +import { getLifecycleMethods } from '../../data_stream'; + +export default function ({ getService }) { + const supertest = getService('supertest'); + const { setup, tearDown } = getLifecycleMethods(getService); + + describe('overview', () => { + const archive = 'x-pack/test/functional/es_archives/monitoring/kibana/rules_and_actions'; + const timeRange = { + min: '2022-05-31T18:44:19.267Z', + max: '2022-05-31T19:59:19.267Z', + }; + + before('load archive', () => { + return setup(archive); + }); + + after('unload archive', () => { + return tearDown(); + }); + + it('should get data for the entire cluster', async () => { + const { body } = await supertest + .post('/api/monitoring/v1/clusters/SvjwrFv6Rvuqjm9-cSSVEg') + .set('kbn-xsrf', 'xxx') + .send({ timeRange, codePaths: ['all'] }) + .expect(200); + expect(body).to.eql(fixture); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/monitoring/normalize_data_type_differences.ts b/x-pack/test/api_integration/apis/monitoring/normalize_data_type_differences.ts index ef27e439b74b2..6d6b7c2c36523 100644 --- a/x-pack/test/api_integration/apis/monitoring/normalize_data_type_differences.ts +++ b/x-pack/test/api_integration/apis/monitoring/normalize_data_type_differences.ts @@ -22,12 +22,15 @@ export function normalizeDataTypeDifferences(metrics: any, fixture: any) { return { ...item, data: item.data.map(([_x, y], index2) => { - const expectedY = fixture.metrics[metricName][index].data[index2][1]; - if (y !== expectedY) { - const normalizedY = numeral(y).format('0[.]00000'); - const normalizedExpectedY = numeral(y).format('0[.]00000'); - if (normalizedY === normalizedExpectedY) { - return [_x, expectedY]; + const data = fixture.metrics[metricName][index].data; + if (data.length) { + const expectedY = data[index2][1]; + if (y !== expectedY) { + const normalizedY = numeral(y).format('0[.]00000'); + const normalizedExpectedY = numeral(y).format('0[.]00000'); + if (normalizedY === normalizedExpectedY) { + return [_x, expectedY]; + } } } return [_x, y]; diff --git a/x-pack/test/api_integration/apis/monitoring/set_indices_found.tsx b/x-pack/test/api_integration/apis/monitoring/set_indices_found.tsx new file mode 100644 index 0000000000000..6992326cfc5d2 --- /dev/null +++ b/x-pack/test/api_integration/apis/monitoring/set_indices_found.tsx @@ -0,0 +1,25 @@ +/* + * 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 function setIndicesFound(metrics: any, setFromMetricbeat: boolean = false) { + return Object.keys(metrics).reduce((accum: any, metricName) => { + accum[metricName] = metrics[metricName].map( + (item: { indices_found: { internal: boolean; metricbeat: boolean } }, index: number) => { + if (item.indices_found) { + return { + ...item, + indices_found: { + internal: !setFromMetricbeat, + metricbeat: setFromMetricbeat, + }, + }; + } + return item; + } + ); + return accum; + }, {}); +} diff --git a/x-pack/test/api_integration/apis/monitoring/standalone_cluster/fixtures/clusters.json b/x-pack/test/api_integration/apis/monitoring/standalone_cluster/fixtures/clusters.json index 2f0b8547d8192..3246ad2effb99 100644 --- a/x-pack/test/api_integration/apis/monitoring/standalone_cluster/fixtures/clusters.json +++ b/x-pack/test/api_integration/apis/monitoring/standalone_cluster/fixtures/clusters.json @@ -63,6 +63,7 @@ "requests_total": 42, "concurrent_connections": 0, "response_time_max": 864, + "rules": { "cluster": null, "instance": null }, "memory_size": 127283200, "memory_limit": 8564343808, "count": 1 @@ -153,6 +154,7 @@ "requests_total": 0, "concurrent_connections": 0, "response_time_max": 0, + "rules": { "cluster": null, "instance": null }, "memory_size": 0, "memory_limit": 0, "count": 0 @@ -204,4 +206,4 @@ "isPrimary": false, "isCcrEnabled": false } -] \ No newline at end of file +] diff --git a/x-pack/test/functional/es_archives/monitoring/kibana/rules_and_actions/data.json.gz b/x-pack/test/functional/es_archives/monitoring/kibana/rules_and_actions/data.json.gz new file mode 100644 index 0000000000000..138b385406b5d Binary files /dev/null and b/x-pack/test/functional/es_archives/monitoring/kibana/rules_and_actions/data.json.gz differ