resource "aws_cloudwatch_log_group" "trail" {
  name = "cg-logs"

  tags = {
    Name = "cg-logs"
  }
}

resource "aws_cloudwatch_log_metric_filter" "trail" {
  name           = "ssm-connection"
  pattern        = "%StartSession%"
  log_group_name = aws_cloudwatch_log_group.trail.name

  metric_transformation {
    namespace = "ssm-connection"
    name      = "ssm-connection"
    value     = "1"
  }
}

resource "aws_cloudwatch_dashboard" "tail" {
  dashboard_name = "cg-dashboard"
  dashboard_body = "${file("./src/widgets.json")}"
}

resource "aws_cloudwatch_query_definition" "trail" {
  name            = "SSMConnectionQuery"
  log_group_names = [aws_cloudwatch_log_group.trail.name]
  query_string    = "${file("./src/ssm_connection_query.txt")}"
}