Skip to content

Commit f2118c3

Browse files
authored
Merge pull request #265 from thoughtbot/migrate-albaik-ordering-prod
Adjust Telemtry module to migrate Albaik Ordering prod
2 parents c7764c8 + 997d106 commit f2118c3

12 files changed

Lines changed: 66 additions & 21 deletions

File tree

aws/telemetry/README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ module "telemetry" {
2525
| Name | Version |
2626
|------|---------|
2727
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.14.8 |
28-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 5.0 |
28+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 6.0 |
2929

3030
## Providers
3131

3232
| Name | Version |
3333
|------|---------|
34-
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 5.0 |
34+
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 6.0 |
3535

3636
## Modules
3737

@@ -59,11 +59,14 @@ module "telemetry" {
5959
| <a name="input_alert_resolve_timeout"></a> [alert\_resolve\_timeout](#input\_alert\_resolve\_timeout) | Time after which alerts without an end time after resolved | `string` | `null` | no |
6060
| <a name="input_alert_severities"></a> [alert\_severities](#input\_alert\_severities) | List of alert priorities for AlertManager | `list(string)` | <pre>[<br> "warning",<br> "ticket",<br> "page"<br>]</pre> | no |
6161
| <a name="input_alert_subject_template"></a> [alert\_subject\_template](#input\_alert\_subject\_template) | Template used for AlertManager alert subjects | `string` | `null` | no |
62+
| <a name="input_alertmanager_config_enabled"></a> [alertmanager\_config\_enabled](#input\_alertmanager\_config\_enabled) | Enable alertmanager configs for the Prometheus workspace | `bool` | `true` | no |
6263
| <a name="input_grafana_role_name"></a> [grafana\_role\_name](#input\_grafana\_role\_name) | Name of the IAM role created for Grafana | `string` | `"grafana"` | no |
6364
| <a name="input_grafana_workspace_name"></a> [grafana\_workspace\_name](#input\_grafana\_workspace\_name) | Name of the Grafana workspace which will use telemetry resources | `string` | `"Grafana"` | no |
6465
| <a name="input_kms_alias_name"></a> [kms\_alias\_name](#input\_kms\_alias\_name) | KMS alias name for SNS topics | `string` | `"alias/sns-alarm-topics"` | no |
66+
| <a name="input_log_group_arn"></a> [log\_group\_arn](#input\_log\_group\_arn) | ARN for the CW log group | `list(string)` | `[]` | no |
6567
| <a name="input_monitoring_account_ids"></a> [monitoring\_account\_ids](#input\_monitoring\_account\_ids) | AWS account IDs in which Grafana will run | `list(string)` | `null` | no |
6668
| <a name="input_prometheus_workspace_name"></a> [prometheus\_workspace\_name](#input\_prometheus\_workspace\_name) | Name of the AWS Managed Prometheus workspace | `string` | n/a | yes |
69+
| <a name="input_sns_topic_name_suffix"></a> [sns\_topic\_name\_suffix](#input\_sns\_topic\_name\_suffix) | Suffix for SNS topic names | `string` | `""` | no |
6770
| <a name="input_tags"></a> [tags](#input\_tags) | Tags to be applied to created resources | `map(string)` | `{}` | no |
6871

6972
## Outputs

aws/telemetry/main.tf

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ module "sns_topics" {
88
for source in ["alertmanager", "cloudwatch-alarms", "cloudwatch-logs"] :
99
[
1010
for severity in var.alert_severities :
11-
"${source}-${severity}"
11+
"${source}-${severity}${var.sns_topic_name_suffix}"
1212
]
1313
])
1414

@@ -18,21 +18,23 @@ module "sns_topics" {
1818
module "prometheus_workspace" {
1919
source = "./modules/prometheus-workspace"
2020

21-
alert_group_by = var.alert_group_by
22-
alert_message_template = var.alert_message_template
23-
alert_resolve_timeout = var.alert_resolve_timeout
24-
alert_subject_template = var.alert_subject_template
25-
name = var.prometheus_workspace_name
26-
tags = var.tags
21+
alert_group_by = var.alert_group_by
22+
alert_message_template = var.alert_message_template
23+
alert_resolve_timeout = var.alert_resolve_timeout
24+
alert_subject_template = var.alert_subject_template
25+
alertmanager_config_enabled = var.alertmanager_config_enabled
26+
log_group_arn = var.log_group_arn
27+
name = var.prometheus_workspace_name
28+
tags = var.tags
2729

2830
sns_receivers = merge({
29-
default = module.sns_topics.arns["alertmanager-${var.alert_default_severity}"]
31+
default = module.sns_topics.arns["alertmanager-${var.alert_default_severity}${var.sns_topic_name_suffix}"]
3032
},
3133
zipmap(
3234
var.alert_severities,
3335
[
3436
for severity in var.alert_severities :
35-
module.sns_topics.arns["alertmanager-${severity}"]
37+
module.sns_topics.arns["alertmanager-${severity}${var.sns_topic_name_suffix}"]
3638
]
3739
)
3840
)

aws/telemetry/modules/grafana-role/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
| Name | Version |
55
|------|---------|
66
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.14.0 |
7-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 5.0 |
7+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 6.0 |
88

99
## Providers
1010

1111
| Name | Version |
1212
|------|---------|
13-
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 5.0 |
13+
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 6.0 |
1414

1515
## Resources
1616

aws/telemetry/modules/grafana-role/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = "~> 5.0"
7+
version = "~> 6.0"
88
}
99
}
1010
}

aws/telemetry/modules/prometheus-workspace/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ write to the workspace.
1111
| Name | Version |
1212
|------|---------|
1313
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 0.14.8 |
14-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 5.0 |
14+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 6.0 |
1515

1616
## Providers
1717

1818
| Name | Version |
1919
|------|---------|
20-
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 5.0 |
20+
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 6.0 |
2121

2222
## Resources
2323

@@ -41,6 +41,8 @@ write to the workspace.
4141
| <a name="input_alert_message_template"></a> [alert\_message\_template](#input\_alert\_message\_template) | Template used for AlertManager messages | `string` | `null` | no |
4242
| <a name="input_alert_resolve_timeout"></a> [alert\_resolve\_timeout](#input\_alert\_resolve\_timeout) | Time after which alerts without an end time after resolved | `string` | `null` | no |
4343
| <a name="input_alert_subject_template"></a> [alert\_subject\_template](#input\_alert\_subject\_template) | Template used for AlertManager alert subjects | `string` | `null` | no |
44+
| <a name="input_alertmanager_config_enabled"></a> [alertmanager\_config\_enabled](#input\_alertmanager\_config\_enabled) | Enable alertmanager configs for the Prometheus workspace | `bool` | `true` | no |
45+
| <a name="input_log_group_arn"></a> [log\_group\_arn](#input\_log\_group\_arn) | ARN for the CW log group | `list(string)` | `[]` | no |
4446
| <a name="input_name"></a> [name](#input\_name) | Name for this Prometheus workspace | `string` | n/a | yes |
4547
| <a name="input_sns_receivers"></a> [sns\_receivers](#input\_sns\_receivers) | Map of alert priorities to SNS topics for AlertManager | `map(string)` | n/a | yes |
4648
| <a name="input_tags"></a> [tags](#input\_tags) | Tags to be applied to created resources | `map(string)` | `{}` | no |

aws/telemetry/modules/prometheus-workspace/main.tf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
resource "aws_prometheus_workspace" "this" {
22
alias = var.name
33
tags = var.tags
4+
5+
dynamic "logging_configuration" {
6+
for_each = var.log_group_arn
7+
content {
8+
log_group_arn = logging_configuration.value
9+
}
10+
}
411
}
512

613
resource "aws_iam_role" "ingestion" {
@@ -51,6 +58,7 @@ data "aws_iam_policy_document" "ingestion_assume_role" {
5158
}
5259

5360
resource "aws_prometheus_alert_manager_definition" "this" {
61+
count = var.alertmanager_config_enabled ? 1 : 0
5462
definition = yamlencode(local.alert_manager_definition)
5563
workspace_id = aws_prometheus_workspace.this.id
5664
}

aws/telemetry/modules/prometheus-workspace/variables.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ variable "alert_subject_template" {
2222
default = null
2323
}
2424

25+
variable "alertmanager_config_enabled" {
26+
description = "Enable alertmanager configs for the Prometheus workspace"
27+
type = bool
28+
default = true
29+
}
30+
31+
variable "log_group_arn" {
32+
description = "ARN for the CW log group"
33+
type = list(string)
34+
default = []
35+
}
36+
2537
variable "name" {
2638
description = "Name for this Prometheus workspace"
2739
type = string

aws/telemetry/modules/prometheus-workspace/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ terraform {
33
required_providers {
44
aws = {
55
source = "hashicorp/aws"
6-
version = "~> 5.0"
6+
version = "~> 6.0"
77
}
88
}
99
}

aws/telemetry/modules/sns-topics/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ contents are encrypted at rest using KMS.
99
| Name | Version |
1010
|------|---------|
1111
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
12-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 5.0 |
12+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | ~> 6.0 |
1313

1414
## Providers
1515

1616
| Name | Version |
1717
|------|---------|
18-
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 5.0 |
18+
| <a name="provider_aws"></a> [aws](#provider\_aws) | ~> 6.0 |
1919

2020
## Resources
2121

aws/telemetry/modules/sns-topics/versions.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ terraform {
44
required_providers {
55
aws = {
66
source = "hashicorp/aws"
7-
version = "~> 5.0"
7+
version = "~> 6.0"
88
}
99
}
1010
}

0 commit comments

Comments
 (0)