Skip to content

Commit

Permalink
Add spec for cluster stats metric and index_metric filter paths.
Browse files Browse the repository at this point in the history
Signed-off-by: Swetha Guptha <[email protected]>
  • Loading branch information
Swetha Guptha committed Nov 13, 2024
1 parent fce5721 commit afd68b1
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 0 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,8 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Added API spec for `adjust_pure_negative` for bool queries ([#641](https://github.com/opensearch-project/opensearch-api-specification/pull/641))
- Added a spec style checker [#620](https://github.com/opensearch-project/opensearch-api-specification/pull/620).
- Added `remote_store` to node `Stats` ([#643](https://github.com/opensearch-project/opensearch-api-specification/pull/643))
- Added spec for _cluster/stats metric and index_metric filter paths([#639](https://github.com/opensearch-project/opensearch-api-specification/pull/639))


### Changed

Expand Down
54 changes: 54 additions & 0 deletions spec/namespaces/cluster.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.

Check failure on line 1419 in spec/namespaces/cluster.yaml

View workflow job for this annotation

GitHub Actions / check

[vale] reported by reviewdog 🐶 [OpenSearch.SubstitutionsError] Use 'indexes' instead of 'indices'. Raw Output: {"message": "[OpenSearch.SubstitutionsError] Use 'indexes' instead of 'indices'.", "location": {"path": "spec/namespaces/cluster.yaml", "range": {"start": {"line": 1419, "column": 55}}}, "severity": "ERROR"}

Check failure on line 1419 in spec/namespaces/cluster.yaml

View workflow job for this annotation

GitHub Actions / check

[vale] reported by reviewdog 🐶 [OpenSearch.SubstitutionsError] Use 'indexes' instead of 'indices'. Raw Output: {"message": "[OpenSearch.SubstitutionsError] Use 'indexes' instead of 'indices'.", "location": {"path": "spec/namespaces/cluster.yaml", "range": {"start": {"line": 1419, "column": 124}}}, "severity": "ERROR"}
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
Expand Down
27 changes: 27 additions & 0 deletions spec/schemas/cluster.stats.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
18 changes: 18 additions & 0 deletions tests/default/cluster/stats/index_metric.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test cluster manager stats.
# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613
version: '>= 2.18 < 3'
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:
- analysis
- mappings
response:
status: 200
16 changes: 16 additions & 0 deletions tests/default/cluster/stats/metric.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
$schema: ../../../../json_schemas/test_story.schema.yaml

description: Test cluster manager stats.
# TODO: Re-enable in 3.0, see https://github.com/opensearch-project/opensearch-api-specification/pull/613
version: '>= 2.18 < 3'
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

0 comments on commit afd68b1

Please sign in to comment.