133 lines
10 KiB
Markdown
133 lines
10 KiB
Markdown
# DATABASE REDIS DataDog monitors
|
|
|
|
## How to use this module
|
|
|
|
```hcl
|
|
module "datadog-monitors-database-redis" {
|
|
source = "claranet/monitors/datadog//database/redis"
|
|
version = "{revision}"
|
|
|
|
environment = var.environment
|
|
message = module.datadog-message-alerting.alerting-message
|
|
}
|
|
|
|
```
|
|
|
|
## Purpose
|
|
|
|
Creates DataDog monitors with the following checks:
|
|
|
|
- Redis blocked clients
|
|
- Redis does not respond
|
|
- Redis evicted keys
|
|
- Redis expired keys
|
|
- Redis hitrate
|
|
- Redis keyspace seems full (no changes since ${var.keyspace_timeframe})
|
|
- Redis latency
|
|
- Redis memory fragmented
|
|
- Redis memory used
|
|
- Redis rejected connections
|
|
|
|
## Inputs
|
|
|
|
| Name | Description | Type | Default | Required |
|
|
|------|-------------|------|---------|:-----:|
|
|
| blocked\_clients\_enabled | Flag to enable Redis Blocked clients monitor | `string` | `"true"` | no |
|
|
| blocked\_clients\_extra\_tags | Extra tags for Redis Blocked clients monitor | `list(string)` | `[]` | no |
|
|
| blocked\_clients\_message | Custom message for Redis Blocked clients monitor | `string` | `""` | no |
|
|
| blocked\_clients\_threshold\_critical | Blocked clients rate (critical threshold) | `number` | `30` | no |
|
|
| blocked\_clients\_threshold\_warning | Blocked clients rate (warning threshold) | `number` | `10` | no |
|
|
| blocked\_clients\_time\_aggregator | Monitor aggregator for Redis Blocked clients [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| blocked\_clients\_timeframe | Monitor timeframe for Redis Blocked clients [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| environment | Architecture environment | `string` | n/a | yes |
|
|
| evaluation\_delay | Delay in seconds for the metric evaluation | `number` | `15` | no |
|
|
| evictedkeys\_change\_enabled | Flag to enable Redis evicted keys monitor | `string` | `"true"` | no |
|
|
| evictedkeys\_change\_extra\_tags | Extra tags for Redis evicted keys monitor | `list(string)` | `[]` | no |
|
|
| evictedkeys\_change\_message | Custom message for Redis evicted keys monitor | `string` | `""` | no |
|
|
| evictedkeys\_change\_threshold\_critical | Evicted keys change (critical threshold) | `number` | `100` | no |
|
|
| evictedkeys\_change\_threshold\_warning | Evicted keys change (warning threshold) | `number` | `20` | no |
|
|
| evictedkeys\_change\_time\_aggregator | Monitor aggregator for Redis evicted keys [available values: min, max or avg] | `string` | `"avg"` | no |
|
|
| evictedkeys\_change\_timeframe | Monitor timeframe for Redis evicted keys [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| expirations\_rate\_enabled | Flag to enable Redis keys expirations monitor | `string` | `"true"` | no |
|
|
| expirations\_rate\_extra\_tags | Extra tags for Redis keys expirations monitor | `list(string)` | `[]` | no |
|
|
| expirations\_rate\_message | Custom message for Redis keys expirations monitor | `string` | `""` | no |
|
|
| expirations\_rate\_threshold\_critical | Expirations percent (critical threshold) | `number` | `80` | no |
|
|
| expirations\_rate\_threshold\_warning | Expirations percent (warning threshold) | `number` | `60` | no |
|
|
| expirations\_rate\_time\_aggregator | Monitor aggregator for Redis keys expirations [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| expirations\_rate\_timeframe | Monitor timeframe for Redis keys expirations [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| filter\_tags\_custom | Tags used for custom filtering when filter\_tags\_use\_defaults is false | `string` | `"*"` | no |
|
|
| filter\_tags\_custom\_excluded | Tags excluded for custom filtering when filter\_tags\_use\_defaults is false | `string` | `""` | no |
|
|
| filter\_tags\_use\_defaults | Use default filter tags convention | `string` | `"true"` | no |
|
|
| hitrate\_enabled | Flag to enable Redis hitrate monitor | `string` | `"true"` | no |
|
|
| hitrate\_extra\_tags | Extra tags for Redis hitrate monitor | `list(string)` | `[]` | no |
|
|
| hitrate\_message | Custom message for Redis hitrate monitor | `string` | `""` | no |
|
|
| hitrate\_threshold\_critical | hitrate limit (critical threshold) | `number` | `10` | no |
|
|
| hitrate\_threshold\_warning | hitrate limit (warning threshold) | `number` | `30` | no |
|
|
| hitrate\_time\_aggregator | Monitor aggregator for Redis hitrate [available values: min, max or avg] | `string` | `"max"` | no |
|
|
| hitrate\_timeframe | Monitor timeframe for Redis hitrate [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| keyspace\_enabled | Flag to enable Redis keyspace monitor | `string` | `"true"` | no |
|
|
| keyspace\_extra\_tags | Extra tags for Redis keyspace monitor | `list(string)` | `[]` | no |
|
|
| keyspace\_message | Custom message for Redis keyspace monitor | `string` | `""` | no |
|
|
| keyspace\_threshold\_critical | Keyspace no changement (critical threshold) | `number` | `0` | no |
|
|
| keyspace\_threshold\_warning | Keyspace no changement (warning threshold) | `number` | `1` | no |
|
|
| keyspace\_time\_aggregator | Monitor aggregator for Redis keyspace [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| keyspace\_timeframe | Monitor timeframe for Redis keyspace [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| latency\_enabled | Flag to enable Redis latency monitor | `string` | `"true"` | no |
|
|
| latency\_extra\_tags | Extra tags for Redis latency monitor | `list(string)` | `[]` | no |
|
|
| latency\_message | Custom message for Redis latency monitor | `string` | `""` | no |
|
|
| latency\_threshold\_critical | latency limit (critical threshold) | `number` | `100` | no |
|
|
| latency\_threshold\_warning | latency limit (warning threshold) | `number` | `50` | no |
|
|
| latency\_time\_aggregator | Monitor aggregator for Redis latency [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| latency\_timeframe | Monitor timeframe for Redis latency [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| mem\_frag\_enabled | Flag to enable Redis memory RAM fragmentation monitor | `string` | `"true"` | no |
|
|
| mem\_frag\_extra\_tags | Extra tags for Redis memory RAM fragmentation monitor | `list(string)` | `[]` | no |
|
|
| mem\_frag\_message | Custom message for Redis memory RAM fragmentation monitor | `string` | `""` | no |
|
|
| mem\_frag\_threshold\_critical | memory RAM fragmentation limit (critical threshold) | `number` | `150` | no |
|
|
| mem\_frag\_threshold\_warning | memory RAM fragmentation limit (warning threshold) | `number` | `130` | no |
|
|
| mem\_frag\_time\_aggregator | Monitor aggregator for Redis memory RAM fragmentation [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| mem\_frag\_timeframe | Monitor timeframe for Redis memory RAM fragmentation [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| mem\_used\_enabled | Flag to enable Redis RAM memory used monitor | `string` | `"true"` | no |
|
|
| mem\_used\_extra\_tags | Extra tags for Redis RAM memory used monitor | `list(string)` | `[]` | no |
|
|
| mem\_used\_message | Custom message for Redis RAM memory used monitor | `string` | `""` | no |
|
|
| mem\_used\_threshold\_critical | RAM memory used limit (critical threshold) | `number` | `95` | no |
|
|
| mem\_used\_threshold\_warning | RAM memory used limit (warning threshold) | `number` | `85` | no |
|
|
| mem\_used\_time\_aggregator | Monitor aggregator for Redis RAM memory used [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| mem\_used\_timeframe | Monitor timeframe for Redis RAM memory used [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
| message | Message sent when a Redis monitor is triggered | `any` | n/a | yes |
|
|
| new\_host\_delay | Delay in seconds for the metric evaluation | `number` | `300` | no |
|
|
| not\_responding\_enabled | Flag to enable Redis does not respond monitor | `string` | `"true"` | no |
|
|
| not\_responding\_extra\_tags | Extra tags for Redis does not respond monitor | `list(string)` | `[]` | no |
|
|
| not\_responding\_message | Custom message for Redis does not respond monitor | `string` | `""` | no |
|
|
| not\_responding\_no\_data\_timeframe | Redis does not respond monitor no data timeframe | `string` | `10` | no |
|
|
| not\_responding\_threshold\_warning | Redis does not respond monitor (warning threshold) | `string` | `3` | no |
|
|
| notify\_no\_data | Will raise no data alert if set to true | `bool` | `true` | no |
|
|
| prefix\_slug | Prefix string to prepend between brackets on every monitors names | `string` | `""` | no |
|
|
| rejected\_con\_enabled | Flag to enable Redis rejected connections errors monitor | `string` | `"true"` | no |
|
|
| rejected\_con\_extra\_tags | Extra tags for Redis rejected connections errors monitor | `list(string)` | `[]` | no |
|
|
| rejected\_con\_message | Custom message for Redis rejected connections errors monitor | `string` | `""` | no |
|
|
| rejected\_con\_threshold\_critical | rejected connections errors limit (critical threshold) | `number` | `50` | no |
|
|
| rejected\_con\_threshold\_warning | rejected connections errors limit (warning threshold) | `number` | `10` | no |
|
|
| rejected\_con\_time\_aggregator | Monitor aggregator for Redis rejected connections errors [available values: min, max or avg] | `string` | `"min"` | no |
|
|
| rejected\_con\_timeframe | Monitor timeframe for Redis rejected connections errors [available values: `last_#m` (1, 5, 10, 15, or 30), `last_#h` (1, 2, or 4), or `last_1d`] | `string` | `"last_5m"` | no |
|
|
|
|
## Outputs
|
|
|
|
| Name | Description |
|
|
|------|-------------|
|
|
| blocked\_clients\_id | id for monitor blocked\_clients |
|
|
| evicted\_keys\_id | id for monitor evicted\_keys |
|
|
| expirations\_id | id for monitor expirations |
|
|
| hitrate\_id | id for monitor hitrate |
|
|
| keyspace\_full\_id | id for monitor keyspace\_full |
|
|
| latency\_id | id for monitor latency |
|
|
| memory\_frag\_id | id for monitor memory\_frag |
|
|
| memory\_used\_id | id for monitor memory\_used |
|
|
| not\_responding\_id | id for monitor not\_responding |
|
|
| rejected\_connections\_id | id for monitor rejected\_connections |
|
|
|
|
## Related documentation
|
|
|
|
[Datadog blog: How to monitor Redis](https://www.datadoghq.com/blog/how-to-monitor-redis-performance-metrics/)
|
|
|
|
[Datadog Redis integration doc](https://docs.datadoghq.com/integrations/redisdb/)
|