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

Convert integration AWS ES to gen (+ improve rules in gen format) #518

Merged
merged 7 commits into from
Nov 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions docs/severity.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@
|AWS ElastiCache evictions|X|X|-|-|-|
|AWS ElastiCache connections over max allowed|X|-|-|-|-|
|AWS ElastiCache current connections|X|-|-|-|-|
|AWS ElastiCache swap|X|X|-|-|-|
|AWS ElastiCache swap usage|X|X|-|-|-|
|AWS ElastiCache freeable memory|-|X|X|-|-|
|AWS ElastiCache evictions changing rate grows|X|X|-|-|-|

Expand Down Expand Up @@ -294,16 +294,16 @@

|Detector|Critical|Major|Minor|Warning|Info|
|---|---|---|---|---|---|
|AWS ElasticSearch heartbeat|X|-|-|-|-|
|AWS ElasticSearch cluster status|X|X|-|-|-|
|AWS ElasticSearch cluster free storage space|X|X|-|-|-|
|AWS ElasticSearch cluster UltraWarm free storage space|X|X|-|-|-|
|AWS ElasticSearch cluster CPU|X|X|-|-|-|
|AWS ElasticSearch cluster Master nodes CPU|X|X|-|-|-|
|AWS Elasticsearch heartbeat|X|-|-|-|-|
|AWS Elasticsearch jvm memory pressure|X|X|-|-|-|
|AWS Elasticsearch 4xx http response|X|X|-|-|-|
|AWS Elasticsearch 5xx http response|X|X|-|-|-|
|AWS Elasticsearch shard count|X|X|-|-|-|
|AWS Elasticsearch cluster status|X|X|-|-|-|
|AWS Elasticsearch free storage space|X|X|-|-|-|
|AWS Elasticsearch ultrawarm free storage space|X|X|-|-|-|
|AWS Elasticsearch cpu utilization|X|X|-|-|-|
|AWS Elasticsearch master cpu utilization|X|X|-|-|-|


## integration_aws-elb
Expand Down
4 changes: 2 additions & 2 deletions modules/integration_aws-elasticache-common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Note the following parameters:

These 3 parameters along with all variables defined in [common-variables.tf](common-variables.tf) are common to all
[modules](../) in this repository. Other variables, specific to this module, are available in
[variables.tf](variables.tf).
[variables-gen.tf](variables-gen.tf).
In general, the default configuration "works" but all of these Terraform
[variables](https://www.terraform.io/language/values/variables) make it possible to
customize the detectors behavior to better fit your needs.
Expand All @@ -79,7 +79,7 @@ This module creates the following SignalFx detectors which could contain one or
|AWS ElastiCache evictions|X|X|-|-|-|
|AWS ElastiCache connections over max allowed|X|-|-|-|-|
|AWS ElastiCache current connections|X|-|-|-|-|
|AWS ElastiCache swap|X|X|-|-|-|
|AWS ElastiCache swap usage|X|X|-|-|-|
|AWS ElastiCache freeable memory|-|X|X|-|-|
|AWS ElastiCache evictions changing rate grows|X|X|-|-|-|

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module: AWS ElastiCache
name: heartbeat

transformation: false
aggregation: ".mean(by=['CacheClusterId'])"
filtering: "filter('stat', 'mean') and filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: CPUUtilization
rules:
critical:
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
module: AWS ElastiCache
name: "Evictions"

transformation: ".sum(over='15m')"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "Evictions"
filter: "filter('stat', 'mean') and filter('CacheNodeId', '*')"

rules:
major:
threshold: 0
comparator: ">"
dependency: critical
critical:
threshold: 30
comparator: ">"
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module: AWS ElastiCache
id: "max_connection"
name: "Connections over max allowed"

transformation: ".max(over='5m')"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "CurrConnections"
filter: "filter('stat', 'upper') and filter('CacheNodeId', '*')"

rules:
critical:
threshold: 64999
comparator: ">"
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
module: AWS ElastiCache
id: "no_connection"
name: "Current connections"

transformation: ".min(over='5m')"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "CurrConnections"
filter: "filter('stat', 'lower') and filter('CacheNodeId', '*')"

rules:
critical:
threshold: 0
comparator: "<="
22 changes: 22 additions & 0 deletions modules/integration_aws-elasticache-common/conf/04-swap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module: AWS ElastiCache
id: "swap"
name: "Swap usage"

transformation: ".min(over='5m')"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "SwapUsage"
filter: "filter('stat', 'upper') and filter('CacheNodeId', '*')"

rules:
major:
threshold: 0
comparator: ">"
dependency: critical
critical:
threshold: 50000000
comparator: ">"
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module: AWS ElastiCache
id: "free_memory"
name: "Freeable memory"

transformation: ".rateofchange().mean(over='15m')"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "FreeableMemory"
filter: "filter('stat', 'lower') and filter('CacheNodeId', '*')"

rules:
minor:
threshold: -50
comparator: "<"
dependency: major
major:
threshold: -70
comparator: "<"
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module: AWS ElastiCache
id: "evictions_growing"
name: "Evictions changing rate grows"

transformation: ".mean(over='5m').rateofchange().scale(100)"
aggregation: true

filtering: "filter('namespace', 'AWS/ElastiCache')"

signals:
signal:
metric: "Evictions"
filter: "filter('stat', 'mean') and filter('CacheNodeId', '*')"

rules:
major:
threshold: 10
comparator: ">"
dependency: critical
critical:
threshold: 30
comparator: ">"
Loading
Loading