Skip to content

Migrates AlertService to use SdkClient for all alert persistence operations ( - #2088

Merged
riysaxen-amzn merged 4 commits into
opensearch-project:remote-metadata-supportfrom
manaswini1920:feature/sdk-alert-service
Apr 9, 2026
Merged

Migrates AlertService to use SdkClient for all alert persistence operations (#2088
riysaxen-amzn merged 4 commits into
opensearch-project:remote-metadata-supportfrom
manaswini1920:feature/sdk-alert-service

Conversation

@manaswini1920

@manaswini1920 manaswini1920 commented Apr 7, 2026

Copy link
Copy Markdown
Collaborator

Description:

Migrates AlertService to use SdkClient for all alert persistence operations (search, put, bulk, delete) as part of the remote metadata SDK migration for background services. Also addresses review feedback from PR #2083:

Changes:

  • AlertService: Migrate searchAlerts, upsertMonitorErrorAlert, clearMonitorErrorAlert, moveClearedErrorAlertsToHistory, saveAlerts, saveNewAlerts to SdkClient. deleteByQuery stays on direct client (no SDK equivalent).
  • AlertingPlugin: Move sdkClient creation before AlertService, pass to AlertService constructor and MonitorMetadataService.initialize()
  • MonitorMetadataService: Move sdkClient into initialize() parameter, use AlertingException.isIndexNotFoundException() from common-utils

Part of #2094

Depends on:

…back

Migrate AlertService to use SdkClient for all alert persistence:
- searchAlerts: SearchDataObjectRequest with routing
- upsertMonitorErrorAlert: search + put via SdkClient
- clearMonitorErrorAlert: search + bulk put via SdkClient
- moveClearedErrorAlertsToHistory: search + bulk put via SdkClient
- saveAlerts: bulk put/delete via SdkClient
- saveNewAlerts: bulk put via SdkClient
- deleteByQuery stays on direct client (no SDK equivalent)

Address PR opensearch-project#2083 review feedback:
- Move sdkClient into MonitorMetadataService.initialize() parameter
- Use AlertingException.isIndexNotFoundException() from common-utils
- Move sdkClient creation before AlertService in AlertingPlugin

Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
@manaswini1920
manaswini1920 force-pushed the feature/sdk-alert-service branch from 272dadc to 3674b96 Compare April 7, 2026 19:26
}

val bulkResponse: BulkResponse = client.suspendUntil {
bulk(BulkRequest().add(copyRequests).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE), it)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way to preserve the refresh behavior in the remote SDK?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, refresh behavior is preserved. Both BulkDataObjectRequest and PutDataObjectRequest default to RefreshPolicy.IMMEDIATE, same as the original code. The SDK's LocalClusterIndicesClient passes the refresh policy through to the native OpenSearch BulkRequest/IndexRequest. https://github.com/opensearch-project/opensearch-remote-metadata sdk/blob/ffaff73f0c64eff1bd4d79ab42244c5315df51f2/core/src/main/java/org/opensearch/remote/metadata/client/BulkDataObjectRequest.java#L29

@engechas

engechas commented Apr 7, 2026

Copy link
Copy Markdown
Collaborator

CIs are failing. Could you check if it's related to these changes?

Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
@riysaxen-amzn
riysaxen-amzn merged commit 13ec16f into opensearch-project:remote-metadata-support Apr 9, 2026
19 of 23 checks passed
manaswini1920 pushed a commit to manaswini1920/alerting that referenced this pull request Apr 10, 2026
…etadata support

- Migrate TransportGetMonitorAction to use SdkClient (opensearch-project#2053)
- Migrate GetAlerts, DeleteComment, GetWorkflowAlerts, ExecuteMonitor to SdkClient (opensearch-project#2061)
- Fix listener leak in TransportExecuteMonitorAction for empty source (opensearch-project#2080)
- Migrate DeleteMonitor, GetDestinations, SearchAlertingComment, SearchMonitor to SdkClient (opensearch-project#2060)
- Migrate IndexAlertingComment, IndexMonitor to SdkClient (opensearch-project#2081)
- Migrate MonitorMetadataService to SdkClient (opensearch-project#2083)
- Add new query level trigger evaluation independent of ScriptingService (opensearch-project#2079, opensearch-project#2090)
- Migrate AlertService to SdkClient (opensearch-project#2088)
- Migrate TransportAcknowledgeAlertAction to SdkClient (opensearch-project#2089)

Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
AWSHurneyt pushed a commit that referenced this pull request Apr 10, 2026
…etadata support (#2093)

- Migrate TransportGetMonitorAction to use SdkClient (#2053)
- Migrate GetAlerts, DeleteComment, GetWorkflowAlerts, ExecuteMonitor to SdkClient (#2061)
- Fix listener leak in TransportExecuteMonitorAction for empty source (#2080)
- Migrate DeleteMonitor, GetDestinations, SearchAlertingComment, SearchMonitor to SdkClient (#2060)
- Migrate IndexAlertingComment, IndexMonitor to SdkClient (#2081)
- Migrate MonitorMetadataService to SdkClient (#2083)
- Add new query level trigger evaluation independent of ScriptingService (#2079, #2090)
- Migrate AlertService to SdkClient (#2088)
- Migrate TransportAcknowledgeAlertAction to SdkClient (#2089)

Signed-off-by: Manaswini Ragamouni <ragamanu@amazon.com>
Co-authored-by: Manaswini Ragamouni <ragamanu@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants