Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 2 Current »

Let’s say we have an ALB, 2 namespaces and 1 running application in per namespace.

We wan’t to create a dashboard, named “Dev”.

Here is my code:

locals = {
  load_balancer_custom = split("loadbalancer/", data.aws_lb.load_balancer_arn.arn)[1]
  cluster_name = "dev"
  namespace_1 = "test"
  namespace_2 = "qa"
}

data "aws_lb" "load_balancer_arn" {
  name = "alb-dev"
}

module "monitoring_dashboard" {
  source  = "dasmeta/monitoring/aws//modules/dashboard"
  version = "1.2.3"
  
  name = "Dev"
  rows = [
    // This part is for Load Balancer
    [
      {
        type : "text/title"
        text : "Requests"
      }
    ],
    [
      {
        type : "balancer/2xx",
        balancer_arn : data.aws_lb.load_balancer_arn.arn
      },
      {
        type : "balancer/4xx",
        balancer_arn : data.aws_lb.load_balancer_arn.arn
      },
      {
        type : "balancer/5xx",
        balancer_arn : data.aws_lb.load_balancer_arn.arn
      },
      {
        type  = "custom",
        title = "Response Time + Volume",
        metrics : [
          {
            MetricNamespace = "AWS/ApplicationELB"
            MetricName      = "ProcessedBytes"
            LoadBalancer    = local.load_balancer_custom
          },
          {
            MetricNamespace = "AWS/ApplicationELB"
            MetricName      = "TargetResponseTime"
            LoadBalancer    = local.load_balancer_custom
          }
        ]
      }
    ], 
    
    //This is for 1-st application in namespace "test"
    [
      {
        type : "text/title"
        text : "Test"
      }
    ],
    [
      {
        type : "container/cpu",
        period : 300,
        container : "application_1",
        cluster : local.cluster_name,
        namespace : local.namespace_1
      },
      {
        type : "container/memory",
        period : 300,
        container : "application_1",
        cluster : local.cluster_name,
        namespace : local.namespace_1
      },
      {
        type : "container/network",
        period : 300,
        container : "application_1",
        cluster : local.cluster_name,
        namespace : local.namespace_1
      },
      {
        type : "container/restarts",
        period : 300,
        container : "application_1",
        cluster : local.cluster_name,
        namespace : local.namespace_1
      },
    ],
    
    //And this is for 2-nd application in namespace "qa"
    [
      {
        type : "text/title"
        text : "QA"
      }
    ],
    [
      {
        type : "container/cpu",
        period : 300,
        container : "application_2",
        cluster : local.cluster_name,
        namespace : local.namespace_2
      },
      {
        type : "container/memory",
        period : 300,
        container : "application_2",
        cluster : local.cluster_name,
        namespace : local.namespace_2
      },
      {
        type : "container/network",
        period : 300,
        container : "application_2",
        cluster : local.cluster_name,
        namespace : local.namespace_2
      },
      {
        type : "container/restarts",
        period : 300,
        container : "application_2",
        cluster : local.cluster_name,
        namespace : local.namespace_2
      },
    ],
  ]
}

Dashboard with RDS / Postgresql widget

locals = {
  db_instance_identifier = "dev-db"
}

module "monitoring_dashboard" {
  source  = "dasmeta/monitoring/aws//modules/dashboard"
  version = "1.2.3"

  name = "Dev-RDS"
  rows = [
    [
      {
        type : "text/title"
        text : "RDS / PostgreSQL"
      }
    ],
    [
      {
        type : "custom",
        title : "Main Units",
        height : 5
        width : 12
        metrics : [
          {
            MetricNamespace      = "AWS/RDS"
            MetricName           = "CPUUtilization"
            DBInstanceIdentifier = local.db_instance_identifier
          },
          {
            MetricNamespace      = "AWS/RDS"
            MetricName           = "FreeableMemory"
            DBInstanceIdentifier = local.db_instance_identifier
          },
          {
            MetricNamespace      = "AWS/RDS"
            MetricName           = "FreeStorageSpace"
            DBInstanceIdentifier = local.db_instance_identifier
          },
          {
            MetricNamespace      = "AWS/RDS"
            MetricName           = "DatabaseConnections"
            DBInstanceIdentifier = local.db_instance_identifier
          }
        ]
      },
    ]
  ]
}

Dashboard with RabbitMQ widget

locals = {
  broker_name = "dev-broker"
}

module "monitoring_dashboard" {
  source  = "dasmeta/monitoring/aws//modules/dashboard"
  version = "1.2.3"

  name = "Dev-MQ"
  rows = [
    [
      {
        type : "text/title"
        text : "RabbitMQ"
      }
    ],
    [
      {
        type : "custom",
        title : "Main Units",
        height : 5
        width : 12
        metrics : [
          {
            MetricNamespace = "AWS/AmazonMQ"
            MetricName      = "MessageCount"
            Broker          = local.broker_name
          },
          {
            MetricNamespace = "AWS/AmazonMQ"
            MetricName      = "ConsumerCount"
            Broker          = local.broker_name
          },
          {
            MetricNamespace = "AWS/AmazonMQ"
            MetricName      = "PublishRate"
            Broker          = local.broker_name
          },
          {
            MetricNamespace = "AWS/AmazonMQ"
            MetricName      = "AckRate"
            Broker          = local.broker_name
          },
        ]
      },
    ],
  ]
}