Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BucketSelector pipeline aggregation extension #144

Merged
merged 1 commit into from
Aug 23, 2021

Conversation

qreshi
Copy link
Contributor

@qreshi qreshi commented Aug 20, 2021

Signed-off-by: Mohammad Qureshi qreshi@amazon.com

Issue #, if available: #86

Description of changes:
BucketSelectorExt is an extension to BucketSelector pipeline aggregation. Some of the limitations with BucketSelector -

  1. Only one bucket selector can be applied on a parent multi-bucket aggregation. Since, BucketSelector retains the selected buckets and discards the others, so allowing multiple BucketSelector for an aggregation isn't the ideal behavior.
  2. Key filters are not supported. Script variables in BucketSelector only pertains to the numeric values and keys cannot be used a script variable to write selection expression.
  3. Doesn't works with composite aggregations: None of the pipeline aggregation works with composite aggregation as most of the pipeline aggregations works on entirety of the results, whereas, composite aggregations results could be paginated. Refer: Pipeline metrics aggregations do not recognize composite aggregations as multi-bucket elastic/elasticsearch#32692

With BucketSelectorExt we are trying to address above limitations.

  • For 1, each BucketSelectorExt will have its own output section displaying the index of the selected buckets from the parent multi-bucket aggregation instead of the actual bucket. Also, the parent aggregation will contain all buckets and BucketSelectorExt will not have any impact of its result.
  • For 2, there would be a optional filter field. Here one can pass an include/exclude filter which would works on the lines of term aggregation filtering supported by elasticsearch.
  • For 3, key filters should support passing the filter for each source of the composite aggregation. For this, we have introduced a new key, value object where key is the name of the source and value is the key filter for the corresponding source in composite aggregation. Refer examples below.

Parameters:
parent_bucket_path - this is to navigate to the right parent multi-bucket aggregation on which selector has to be applied. It supports nested aggregations but should comply with below constraint -
agg1>agg2>agg3 - where agg1 and agg2 are all single-bucket aggs. Whereas, agg3 i.e. the last aggregation in the hierarchy should be a multi-bucket aggregation on which bucket selector would be applicable.
buckets_path - this is same as existing BucketSelector buckets_path

script - this is same as existing BucketSelector script

filter - key filter condition. First keys are filtered and then the bucket selector scripts are executed on the filtered keys.
It containsinclude/exclude filter which works on the lines of term aggregation filtering supported by elasticsearch.

composite_agg_filter: key filter condition for composite aggregations. Refer to example below for usage.

Some usage examples -

  • Simple case -
"aggs": {
   "<parent_agg_name>": {
      "<child_multi_bucket_agg_name>": { "terms": {"field": "<fieldname>"}}},
      "aggs": {
         "<metric_agg_name>": { "stats": { "field": "<fieldname>" } }
      }
   },
   "<bucket_selector_name>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>"
      }
   }
}
  • Multiple bucket selectors selectors
"aggs": {
   "<parent_agg_name>": {
      "<child_multi_bucket_agg_name>": { "terms": {"field": "<fieldname>"}}},
      "aggs": {
         "<metric_agg_name>": { "stats": { "field": "<fieldname>" } }
      }
   },
   "<bucket_selector_name_1>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>"
      }
   },
   "<bucket_selector_name_2>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>"
      }
   }
}
  • Key filters -
"aggs": {
   "<parent_agg_name>": {
      "<child_multi_bucket_agg_name>": { "terms": {"field": "<fieldname>"}}},
      "aggs": {
         "<metric_agg_name>": { "stats": { "field": "<fieldname>" } }
      }
   },
   "<bucket_selector_name>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>",
         "filter": {
           "include": ["key1", "key2"]
         }
      }
   }
}

For regex, refer lucene regular expression

"aggs": {
   "<parent_agg_name>": {
      "<child_multi_bucket_agg_name>": { "terms": {"field": "<fieldname>"}}},
      "aggs": {
         "<metric_agg_name>": { "stats": { "field": "<fieldname>" } }
      }
   },
   "<bucket_selector_name_1>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>",
         "filter": {
           "include": "key_prefix*"
         }
      }
   }
}
  • Composite aggregation -
"aggs": {
   "<parent_agg_name>": {
      "composite": {
         "sources": [
            {"<source_1>": { "terms": {"field": "<field_1>"}}},
            {"<source_2>": { "terms": {"field": "<field_2>" }}}  
         ]
      },      
      "aggs": {
         "<metric_agg_name>": { "stats": { "field": "<fieldname>" } }
      }
   },
   "<bucket_selector_name_1>": {
      "bucket_selector_ext": {
         "buckets_path": {
           "metric_value": "<metric_agg_name>.<metric_name>"
         },
         "script": {
           "source": "params.metric_value >= 10.0"
         },
         "parent_bucket_path": "<parent_agg_name>",
         "composite_agg_filter": {
            "<source_1>" : {
               "include": ["<include_key_1>"]
            },
            "<source_2>" : {
               "include": "@"
            }
         }
      }
   }
}

CheckList:
[x] Commits are signed per the DCO using --signoff

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.

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>
@qreshi qreshi requested review from adityaj1107 and lezzago August 20, 2021 20:41
val bucket = buckets[i]
if (bucketSelectorExtFilter != null) {
var accepted = true
if (bucketSelectorExtFilter!!.isCompositeAggregation) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we break this function into smaller pieces to make it more readable? Outsource the responsibility of updating the accepted variable to another function?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Some of the inner loops could potentially be broken up. Will revisit this later though to give time to merge in other changes.

@qreshi qreshi merged commit 25194d6 into opensearch-project:main Aug 23, 2021
@qreshi qreshi deleted the bucket-selector-ext branch August 23, 2021 19:22
adityaj1107 added a commit that referenced this pull request Sep 2, 2021
* Added release notes for OpenSearch 1.0.0.0. (#123) (#124)

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>

* Add Integtest.sh for OpenSearch integtest setups (#121)

* Add integtest script to the repo

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Add Alerting specific security param for integTest

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Remove default assignee (#127)

Signed-off-by: Ashish Agrawal <ashisagr@amazon.com>

* Removing All Usages of Action Get Method Calls and adding the listeners (#130)

Signed-off-by: Aditya Jindal <aditjind@amazon.com>

* Fix snapshot build and increment to 1.1.0. (#142)

Signed-off-by: dblock <dblock@amazon.com>

* Refactor MonitorRunner (#143)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update Bucket-Level Alerting RFC (#145)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add BucketSelector pipeline aggregation extension (#144)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add AggregationResultBucket (#148)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add ActionExecutionPolicy (#149)

* Add ActionExecutionPolicy

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Throw exception if there is an invalid field in PER_ALERT config when parsing

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Don't allow throttle to be configured for PerExecutionActionScope at the data class level since it is not supported yet

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Lev… (#150)

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Level Monitors

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Require condition to not be null when parsing Bucket-Level Trigger

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update InputService for Bucket-Level Alerting (#152)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Update TriggerService for Bucket-Level Alerting (#153)

* Update TriggerService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Remove client from TriggerService

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update AlertService for Bucket-Level Alerting (#154)

* Update AlertService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Move Alert search size for Bucket-Level Monitors to a const

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add worksheets to help with testing (#151)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update MonitorRunner for Bucket-Level Alerting (#155)

* Update MonitorRunner for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update regressed comment in MonitorRunnerIT

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add TODO to break down runBucketLevelMonitor method in MonitorRunner

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix ktlint formatting issues (#156)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Execute Actions on runTrigger exceptions for Bucket-Level Monitor (#157)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Skip execution of Actions on ACKNOWLEDGED Alerts for Bucket-Level Monitors (#158)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return first page of input results in MonitorRunResult for Bucket-Level Monitor (#159)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add setting to limit per alert action executions and don't save Alerts for test Bucket-Level Monitors (#161)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor (#163)

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Change trigger after key conditionals to when statement

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Various bug fixes pertaining to throttling on PER_ALERT, saving COMPLETED Alerts and rewriting input query for Bucket-Level Monitors (#164)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return only monitors for /monitors/_search. (#162)

* Return only monitors for /monitors/_search.

* Added missing imports

* Added additional check to the unit test

* Resolve default for ActionExecutionPolicy at runtime (#165)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>
Co-authored-by: Peter Zhu <zhujiaxi@amazon.com>
Co-authored-by: Ashish Agrawal <ashisagr@amazon.com>
Co-authored-by: Daniel Doubrovkine (dB.) <dblock@dblock.org>
Co-authored-by: Mohammad Qureshi <47198598+qreshi@users.noreply.github.com>
Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
Co-authored-by: Sriram <59816283+skkosuri-amzn@users.noreply.github.com>
@qreshi qreshi added the feature A change that introduces a new unit of functionality label Sep 8, 2021
AWSHurneyt added a commit that referenced this pull request Oct 15, 2021
…ledging more than 10 alerts at once. (#205)

* Added release notes for OpenSearch 1.0.0.0. (#123)

* Merge commits from the main branch to the 1.x branch.  (#133)

* Added release notes for OpenSearch 1.0.0.0. (#123) (#124)

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>

* Add Integtest.sh for OpenSearch integtest setups (#121)

* Add integtest script to the repo

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Add Alerting specific security param for integTest

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Remove default assignee (#127)

Signed-off-by: Ashish Agrawal <ashisagr@amazon.com>

* Removing All Usages of Action Get Method Calls and adding the listeners (#130)

Signed-off-by: Aditya Jindal <aditjind@amazon.com>

* Fix snapshot build and increment to 1.1.0. (#142)

Signed-off-by: dblock <dblock@amazon.com>

* Refactor MonitorRunner (#143)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update Bucket-Level Alerting RFC (#145)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add BucketSelector pipeline aggregation extension (#144)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add AggregationResultBucket (#148)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add ActionExecutionPolicy (#149)

* Add ActionExecutionPolicy

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Throw exception if there is an invalid field in PER_ALERT config when parsing

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Don't allow throttle to be configured for PerExecutionActionScope at the data class level since it is not supported yet

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Lev… (#150)

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Level Monitors

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Require condition to not be null when parsing Bucket-Level Trigger

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update InputService for Bucket-Level Alerting (#152)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Update TriggerService for Bucket-Level Alerting (#153)

* Update TriggerService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Remove client from TriggerService

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update AlertService for Bucket-Level Alerting (#154)

* Update AlertService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Move Alert search size for Bucket-Level Monitors to a const

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add worksheets to help with testing (#151)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update MonitorRunner for Bucket-Level Alerting (#155)

* Update MonitorRunner for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update regressed comment in MonitorRunnerIT

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add TODO to break down runBucketLevelMonitor method in MonitorRunner

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix ktlint formatting issues (#156)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Execute Actions on runTrigger exceptions for Bucket-Level Monitor (#157)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Skip execution of Actions on ACKNOWLEDGED Alerts for Bucket-Level Monitors (#158)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return first page of input results in MonitorRunResult for Bucket-Level Monitor (#159)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add setting to limit per alert action executions and don't save Alerts for test Bucket-Level Monitors (#161)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor (#163)

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Change trigger after key conditionals to when statement

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Various bug fixes pertaining to throttling on PER_ALERT, saving COMPLETED Alerts and rewriting input query for Bucket-Level Monitors (#164)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return only monitors for /monitors/_search. (#162)

* Return only monitors for /monitors/_search.

* Added missing imports

* Added additional check to the unit test

* Resolve default for ActionExecutionPolicy at runtime (#165)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>
Co-authored-by: Peter Zhu <zhujiaxi@amazon.com>
Co-authored-by: Ashish Agrawal <ashisagr@amazon.com>
Co-authored-by: Daniel Doubrovkine (dB.) <dblock@dblock.org>
Co-authored-by: Mohammad Qureshi <47198598+qreshi@users.noreply.github.com>
Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
Co-authored-by: Sriram <59816283+skkosuri-amzn@users.noreply.github.com>

* Add release notes for 1.1.0.0 release (#166) (#167)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Remove default integtest.sh. (#181)

Signed-off-by: dblock <dblock@dblock.org>

* Add valid search filters. (#191)

* Add valid search filters.

* Added this fix to release notes

* Publish notification JARs checksums. (#197)

Signed-off-by: dblock <dblock@dblock.org>

* Also publish SHA 256 and 512 checksums. (#198)

* Also publish SHA 256 and 512 checksums.

Signed-off-by: dblock <dblock@dblock.org>

* Remove sonatype staging.

Signed-off-by: dblock <dblock@dblock.org>

* Fixed a bug that was preventing the AcknowledgeAlerts API from acknowledging more than 10 alerts at once. Signed-off-by: Thomas Hurney <hurneyt@amazon.com>

* Implemented integration tests to ensure fix for issue 203 is working as expected. Signed-off-by: Thomas Hurney <hurneyt@amazon.com>

* Refactored integ tests based on PR feedback, and listed the bug fix in the release notes. Signed-off-by: Thomas Hurney <hurneyt@amazon.com>

* Removing bug fixes from release notes. Currently discussing adding separate notes for this patch. Signed-off-by: Thomas Hurney <hurneyt@amazon.com>

Co-authored-by: Aditya Jindal <13850971+aditjind@users.noreply.github.com>
Co-authored-by: Peter Zhu <zhujiaxi@amazon.com>
Co-authored-by: Ashish Agrawal <ashisagr@amazon.com>
Co-authored-by: Daniel Doubrovkine (dB.) <dblock@dblock.org>
Co-authored-by: Mohammad Qureshi <47198598+qreshi@users.noreply.github.com>
Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
Co-authored-by: Sriram <59816283+skkosuri-amzn@users.noreply.github.com>
AWSHurneyt added a commit to AWSHurneyt/OpenSearch-Alerting that referenced this pull request Mar 30, 2022
…ject#133)

* Added release notes for OpenSearch 1.0.0.0. (opensearch-project#123) (opensearch-project#124)

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>

* Add Integtest.sh for OpenSearch integtest setups (opensearch-project#121)

* Add integtest script to the repo

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Add Alerting specific security param for integTest

Signed-off-by: Peter Zhu <zhujiaxi@amazon.com>

* Remove default assignee (opensearch-project#127)

Signed-off-by: Ashish Agrawal <ashisagr@amazon.com>

* Removing All Usages of Action Get Method Calls and adding the listeners (opensearch-project#130)

Signed-off-by: Aditya Jindal <aditjind@amazon.com>

* Fix snapshot build and increment to 1.1.0. (opensearch-project#142)

Signed-off-by: dblock <dblock@amazon.com>

* Refactor MonitorRunner (opensearch-project#143)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update Bucket-Level Alerting RFC (opensearch-project#145)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add BucketSelector pipeline aggregation extension (opensearch-project#144)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add AggregationResultBucket (opensearch-project#148)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Add ActionExecutionPolicy (opensearch-project#149)

* Add ActionExecutionPolicy

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Throw exception if there is an invalid field in PER_ALERT config when parsing

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Don't allow throttle to be configured for PerExecutionActionScope at the data class level since it is not supported yet

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Lev… (opensearch-project#150)

* Refactor Monitor and Trigger to split into Query-Level and Bucket-Level Monitors

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Require condition to not be null when parsing Bucket-Level Trigger

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update InputService for Bucket-Level Alerting (opensearch-project#152)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>

* Update TriggerService for Bucket-Level Alerting (opensearch-project#153)

* Update TriggerService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Remove client from TriggerService

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update AlertService for Bucket-Level Alerting (opensearch-project#154)

* Update AlertService for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Move Alert search size for Bucket-Level Monitors to a const

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add worksheets to help with testing (opensearch-project#151)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update MonitorRunner for Bucket-Level Alerting (opensearch-project#155)

* Update MonitorRunner for Bucket-Level Alerting

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Update regressed comment in MonitorRunnerIT

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add TODO to break down runBucketLevelMonitor method in MonitorRunner

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix ktlint formatting issues (opensearch-project#156)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Execute Actions on runTrigger exceptions for Bucket-Level Monitor (opensearch-project#157)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Skip execution of Actions on ACKNOWLEDGED Alerts for Bucket-Level Monitors (opensearch-project#158)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return first page of input results in MonitorRunResult for Bucket-Level Monitor (opensearch-project#159)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Add setting to limit per alert action executions and don't save Alerts for test Bucket-Level Monitors (opensearch-project#161)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor (opensearch-project#163)

* Fix bug in paginating multiple bucket paths for Bucket-Level Monitor

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Change trigger after key conditionals to when statement

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Various bug fixes pertaining to throttling on PER_ALERT, saving COMPLETED Alerts and rewriting input query for Bucket-Level Monitors (opensearch-project#164)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

* Return only monitors for /monitors/_search. (opensearch-project#162)

* Return only monitors for /monitors/_search.

* Added missing imports

* Added additional check to the unit test

* Resolve default for ActionExecutionPolicy at runtime (opensearch-project#165)

Signed-off-by: Mohammad Qureshi <qreshi@amazon.com>

Co-authored-by: AWSHurneyt <79280347+AWSHurneyt@users.noreply.github.com>
Co-authored-by: Peter Zhu <zhujiaxi@amazon.com>
Co-authored-by: Ashish Agrawal <ashisagr@amazon.com>
Co-authored-by: Daniel Doubrovkine (dB.) <dblock@dblock.org>
Co-authored-by: Mohammad Qureshi <47198598+qreshi@users.noreply.github.com>
Co-authored-by: Rishabh Maurya <rishabhmaurya05@gmail.com>
Co-authored-by: Sriram <59816283+skkosuri-amzn@users.noreply.github.com>
Signed-off-by: AWSHurneyt <hurneyt@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A change that introduces a new unit of functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants