opendistro-for-elasticsearch / alerting

📟 Open Distro Alerting Plugin
https://opendistro.github.io/for-elasticsearch/features/alerting.html
Apache License 2.0
279 stars 80 forks source link

AggregationTrigger implementation #375

Closed rishabhmaurya closed 3 years ago

rishabhmaurya commented 3 years ago

Description of changes: Implementation of AggregationTrigger. It replaces and also introduces additional fields for AggregationTrigger. Trigger definition would look like -

  "triggers": [{
    "aggregation_trigger": {
      "name": "test-trigger",
      "severity": "1",
      "condition": {
        "buckets_path": {
          "avg": "goals_stats.avg"
        },
        "script": {
          "source": "params.avg >= 0 "
        },
        "parent_bucket_path": "<path_to_parent_bucket>",
        "filter": {
           "include": ["foo*", "bar*"]
        }
      },
      "actions": [{
         ...
      }]
    }
  }]

For details on usage of BucketSelectorExt pipeline aggregation, refer the documentation in PR: https://github.com/opendistro-for-elasticsearch/alerting/pull/374 By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.