From 66e4f298f285e7edc59d1e87f83a5a0c8fb28528 Mon Sep 17 00:00:00 2001 From: Swetha Guptha Date: Thu, 24 Oct 2024 10:33:36 +0530 Subject: [PATCH] Add spec for cluster stats metric and index_metric filter paths. Signed-off-by: Swetha Guptha --- spec/namespaces/cluster.yaml | 54 +++++++++++++++++++ spec/schemas/cluster.stats.yaml | 27 ++++++++++ tests/default/cluster/stats/index_metric.yaml | 17 ++++++ tests/default/cluster/stats/metric.yaml | 15 ++++++ 4 files changed, 113 insertions(+) create mode 100644 tests/default/cluster/stats/index_metric.yaml create mode 100644 tests/default/cluster/stats/metric.yaml diff --git a/spec/namespaces/cluster.yaml b/spec/namespaces/cluster.yaml index 8820d2eda..a6300d1d0 100644 --- a/spec/namespaces/cluster.yaml +++ b/spec/namespaces/cluster.yaml @@ -331,6 +331,39 @@ paths: responses: '200': $ref: '#/components/responses/cluster.stats@200' + /_cluster/stats/{metric}/nodes/{node_id}: + get: + operationId: cluster.stats.2 + x-operation-group: cluster.stats + x-version-added: '2.18' + description: Returns high-level overview of cluster statistics. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/cluster-api/cluster-stats/ + parameters: + - $ref: '#/components/parameters/nodes.stats::path.metric' + - $ref: '#/components/parameters/cluster.stats::path.node_id' + - $ref: '#/components/parameters/cluster.stats::query.flat_settings' + - $ref: '#/components/parameters/cluster.stats::query.timeout' + responses: + '200': + $ref: '#/components/responses/cluster.stats@200' + /_cluster/stats/{metric}/{index_metric}/nodes/{node_id}: + get: + operationId: cluster.stats.1 + x-operation-group: cluster.stats + x-version-added: '2.18' + description: Returns high-level overview of cluster statistics. + externalDocs: + url: https://opensearch.org/docs/latest/api-reference/cluster-api/cluster-stats/ + parameters: + - $ref: '#/components/parameters/nodes.stats::path.index_metric' + - $ref: '#/components/parameters/nodes.stats::path.metric' + - $ref: '#/components/parameters/cluster.stats::path.node_id' + - $ref: '#/components/parameters/cluster.stats::query.flat_settings' + - $ref: '#/components/parameters/cluster.stats::query.timeout' + responses: + '200': + $ref: '#/components/responses/cluster.stats@200' /_cluster/voting_config_exclusions: post: operationId: cluster.post_voting_config_exclusions.0 @@ -1380,6 +1413,27 @@ components: schema: $ref: '../schemas/_common.yaml#/components/schemas/Duration' style: form + cluster.stats::path.index_metric: + in: path + name: index_metric + description: Limit the information returned for indices metric to the specific index metrics. It can be used only if indices (or all) metric is specified. + required: true + schema: + type: array + items: + $ref: '../schemas/cluster.stats.yaml#/components/schemas/IndexMetric' + style: simple + cluster.stats::path.metric: + in: path + name: metric + description: Limit the information returned to the specified metrics + required: true + schema: + type: array + items: + $ref: '../schemas/cluster.stats.yaml#/components/schemas/Metric' + style: + simple cluster.stats::path.node_id: in: path name: node_id diff --git a/spec/schemas/cluster.stats.yaml b/spec/schemas/cluster.stats.yaml index 55a95cd61..aa556ba6b 100644 --- a/spec/schemas/cluster.stats.yaml +++ b/spec/schemas/cluster.stats.yaml @@ -689,3 +689,30 @@ components: - avg - max - min + Metric: + type: string + enum: + - _all + - indices + - os + - process + - jvm + - fs + - plugins + - network_types + - discovery_type + - packaging_types + - ingest + IndexMetric: + type: string + enum: + - _all + - shards + - docs + - store + - fielddata + - query_cache + - completion + - segments + - mappings + - analysis diff --git a/tests/default/cluster/stats/index_metric.yaml b/tests/default/cluster/stats/index_metric.yaml new file mode 100644 index 000000000..72a8dca0e --- /dev/null +++ b/tests/default/cluster/stats/index_metric.yaml @@ -0,0 +1,17 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test cluster manager stats. +version: '>= 2.18' +chapters: + - synopsis: Get mapping and analysis indices stats. + path: /_cluster/stats/{metric}/{index_metric}/nodes/{node_id} + method: GET + parameters: + node_id: _all + metric: + - indices + index_metric: + - mappings + - analysis + response: + status: 200 diff --git a/tests/default/cluster/stats/metric.yaml b/tests/default/cluster/stats/metric.yaml new file mode 100644 index 000000000..bd7d7ac39 --- /dev/null +++ b/tests/default/cluster/stats/metric.yaml @@ -0,0 +1,15 @@ +$schema: ../../../../json_schemas/test_story.schema.yaml + +description: Test cluster manager stats. +version: '>= 2.18' +chapters: + - synopsis: Get nodes fs and jvm stats. + path: /_cluster/stats/{metric}/nodes/{node_id} + method: GET + parameters: + node_id: _all + metric: + - fs + - jvm + response: + status: 200