Skip to content

Commit 09d7b33

Browse files
committed
Fix nodes stats API compatibility with OpenSearch 3.3.0+
Add missing fields to nodes stats API structs for OpenSearch 3.3.0+ compatibility: - Add NeuralSearch field to NodesStatsBreakers struct for neural search circuit breaker support - Add QueryFailed and StartreeQueryFailed fields to search stats for tracking failed queries - Add SystemGeneratedProcessors and SystemGeneratedFactories fields to NodesStatsSearchPipeline for search pipeline system components Fixes test failures where these fields were being dropped during JSON unmarshalling, causing jsondiff mismatches in OpenSearch 3.3.0+. Signed-off-by: Sean Chittenden <sean.chittenden@crowdstrike.com>
1 parent e66c644 commit 09d7b33

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
2020
- Fix cat APIs compatibility with OpenSearch 3.2.0+ by adding indexing timestamp and startree query fields
2121
- Fix floating point precision loss in nodes stats concurrent_avg_slice_count field by changing from float32 to float64
2222
- Fix security plugin health API compatibility with OpenSearch 3.2.0+ by adding settings field
23+
- Fix nodes stats API compatibility with OpenSearch 3.3.0+ by adding neural_search breaker, query_failed and startree_query_failed search fields, and search pipeline system_generated fields
2324

2425
### Security
2526

opensearchapi/api_nodes-stats.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,15 @@ type NodesStatsIndices struct {
154154
QueryTotal int `json:"query_total"`
155155
QueryTimeInMillis int `json:"query_time_in_millis"`
156156
QueryCurrent int `json:"query_current"`
157+
QueryFailed int `json:"query_failed"` // Available in OpenSearch 3.3.0+
157158
ConcurrentQueryTotal int `json:"concurrent_query_total"`
158159
ConcurrentQueryTimeInMillis int `json:"concurrent_query_time_in_millis"`
159160
ConcurrentQueryCurrent int `json:"concurrent_query_current"`
160161
ConcurrentAVGSliceCount float64 `json:"concurrent_avg_slice_count"`
161162
StartreeQueryTotal int `json:"startree_query_total"` // Available in OpenSearch 3.2.0+
162163
StartreeQueryTimeInMillis int `json:"startree_query_time_in_millis"` // Available in OpenSearch 3.2.0+
163164
StartreeQueryCurrent int `json:"startree_query_current"` // Available in OpenSearch 3.2.0+
165+
StartreeQueryFailed int `json:"startree_query_failed"` // Available in OpenSearch 3.3.0+
164166
FetchTotal int `json:"fetch_total"`
165167
FetchTimeInMillis int `json:"fetch_time_in_millis"`
166168
FetchCurrent int `json:"fetch_current"`
@@ -494,6 +496,7 @@ type NodesStatsBreakers struct {
494496
Fielddata NodesStatsBreaker `json:"fielddata"`
495497
InFlightRequests NodesStatsBreaker `json:"in_flight_requests"`
496498
Parent NodesStatsBreaker `json:"parent"`
499+
NeuralSearch NodesStatsBreaker `json:"neural_search"` // Available in OpenSearch 3.3.0+
497500
}
498501

499502
// NodesStatsScript is a sub type of NodesStats representing script information of the node
@@ -679,7 +682,9 @@ type NodesStatsSearchPipeline struct {
679682
Current int `json:"current"`
680683
Failed int `json:"failed"`
681684
} `json:"total_response"`
682-
Pipelines json.RawMessage `json:"pipelines"`
685+
Pipelines json.RawMessage `json:"pipelines"`
686+
SystemGeneratedProcessors json.RawMessage `json:"system_generated_processors"` // Available in OpenSearch 3.3.0+
687+
SystemGeneratedFactories json.RawMessage `json:"system_generated_factories"` // Available in OpenSearch 3.3.0+
683688
}
684689

685690
// NodesStatsTaskCancellation is a sub type of NodesStats containing stats about canceled tasks

0 commit comments

Comments
 (0)