mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 02:57:34 +00:00
feat: add terraform infra as code for AWS fargate (#1987)
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
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
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user