From 4c500a75c2755a2dcf37018b4bd36c6375a652ce 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..731f5da20 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/cluster.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.3 + 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/cluster.stats::path.index_metric' + - $ref: '#/components/parameters/cluster.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..c1c2e023c 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 + - discovery_type + - fs + - indices + - ingest + - jvm + - network_types + - os + - packaging_types + - plugins + - process + IndexMetric: + type: string + enum: + - _all + - analysis + - completion + - docs + - fielddata + - mappings + - query_cache + - segments + - shards + - store 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