opensearch-project / alerting

📟 Get notified when your data meets certain conditions by setting up monitors, alerts, and notifications
https://opensearch.org/docs/latest/monitoring-plugins/alerting/index/
Apache License 2.0
58 stars 99 forks source link

doc-level monitor fan-out approach #1496

Closed sbcd90 closed 2 months ago

sbcd90 commented 3 months ago

Issue #, if available:

Description of changes: doc-level monitor fan-out approach. forked from the original implementation of @eirsep https://github.com/eirsep/alerting/tree/fan_out

CheckList:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.

eirsep commented 3 months ago

mutli node tests are very key for PR approvers make sure we verify all multi-node tests are passing before merging

eirsep commented 3 months ago

when cluster is upgrading from a version without fan out logic to a version with fan out logic and both nodes from old version and new version are part of cluster: cluster will go down due to ser-der failures

plz submit fan out requests only to nodes on versions compatible with fan out logic

eirsep commented 3 months ago

does this code avoid fan-out for index patterns?

eirsep commented 3 months ago

plz add logs for time taken to do the entire operation on job coordinator node.

sbcd90 commented 3 months ago

when cluster is upgrading from a version without fan out logic to a version with fan out logic and both nodes from old version and new version are part of cluster: cluster will go down due to ser-der failures

plz submit fan out requests only to nodes on versions compatible with fan out logic

@eirsep , this is fixed now. added a bwc test to verify this. https://github.com/opensearch-project/alerting/blob/9250a7dd93e32f6613efd0bf435467ce4bfe72b3/alerting/src/test/kotlin/org/opensearch/alerting/bwc/AlertingBackwardsCompatibilityIT.kt#L109

sbcd90 commented 3 months ago

does this code avoid fan-out for index patterns?

will be taken up in separate pr.

sbcd90 commented 3 months ago

plz add logs for time taken to do the entire operation on job coordinator node.

added totalTimeTakenStat. https://github.com/opensearch-project/alerting/pull/1496/files#diff-68866b22ed9703814b4d5db8d3488872bcb972086ecaca10c9b8bfd54db981bcR52

eirsep commented 3 months ago

all the commits are titled doc-level monitor fan-out approach making it incredibly difficult to understand what changes have been pushed in each commit. this also creates meaningless and non-descriptive commit messages when doing squash-merge

opensearch-trigger-bot[bot] commented 2 months ago

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/alerting/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/alerting/backport-2.x
# Create a new branch
git switch --create backport-1496-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 65acca128211b60338088f24ea7bd3d1cc8ee964
# Push it to GitHub
git push --set-upstream origin backport-1496-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/alerting/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport-1496-to-2.x.

opensearch-trigger-bot[bot] commented 2 months ago

The backport to 2.13 failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/alerting/backport-2.13 2.13
# Navigate to the new working tree
pushd ../.worktrees/alerting/backport-2.13
# Create a new branch
git switch --create backport-1496-to-2.13
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 65acca128211b60338088f24ea7bd3d1cc8ee964
# Push it to GitHub
git push --set-upstream origin backport-1496-to-2.13
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/alerting/backport-2.13

Then, create a pull request where the base branch is 2.13 and the compare/head branch is backport-1496-to-2.13.