mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 06:27:38 +00:00
52 lines
1.3 KiB
Terraform
52 lines
1.3 KiB
Terraform
resource "aws_cloudwatch_log_group" "main" {
|
|
name = var.app_name
|
|
retention_in_days = 3
|
|
}
|
|
|
|
locals {
|
|
stores = split(",",var.streetmerchant_env["STORES"])
|
|
metrics = {
|
|
out_of_stock = [for store in local.stores : ["${var.app_name}-out-of-stock", store]]
|
|
error = [for store in local.stores : ["${var.app_name}-error", store]]
|
|
}
|
|
}
|
|
|
|
resource "aws_cloudwatch_log_metric_filter" "out_of_stock" {
|
|
for_each = toset(local.stores)
|
|
|
|
log_group_name = aws_cloudwatch_log_group.main.name
|
|
name = "${each.key}-out-of-stock"
|
|
|
|
pattern = "${each.key} \"OUT OF STOCK\""
|
|
metric_transformation {
|
|
name = each.key
|
|
namespace = "${var.app_name}-out-of-stock"
|
|
value = 1
|
|
default_value = 0
|
|
}
|
|
}
|
|
|
|
resource "aws_cloudwatch_log_metric_filter" "error" {
|
|
for_each = toset(local.stores)
|
|
|
|
log_group_name = aws_cloudwatch_log_group.main.name
|
|
name = "${each.key}-error"
|
|
|
|
pattern = "${each.key} \"ERROR\""
|
|
metric_transformation {
|
|
name = each.key
|
|
namespace = "${var.app_name}-error"
|
|
value = 1
|
|
default_value = 0
|
|
}
|
|
}
|
|
|
|
resource "aws_cloudwatch_dashboard" "main" {
|
|
dashboard_name = "${var.app_name}-dashboard"
|
|
dashboard_body = templatefile("dashboard.json.template", {
|
|
out_of_stock = jsonencode(local.metrics.out_of_stock)
|
|
error = jsonencode(local.metrics.error)
|
|
region = var.region
|
|
})
|
|
}
|