resource "datadog_dashboard_json" "ameba_msk_dashboard_json" {
  dashboard = jsonencode({
    title       = "AMEBA MSK"
    description = "## Amazon MSK Overview\n\nThis is an example Amazon MSK dashboard demonstrating the metrics that the integration collects. (cloned)"
    widgets = [
      {
        id     = 0
        layout = { x = 92, y = 52, width = 34, height = 15 }
        definition = {
          title          = "Free memory by broker"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "sum:aws.kafka.memory_free{$cluster_name} by {cluster_name,broker_id}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 1
        layout = { x = 1, y = 15, width = 17, height = 10 }
        definition = {
          title       = "# Offline Partitions"
          title_size  = "16"
          title_align = "left"
          type        = "query_value"
          requests = [
            {
              conditional_formats = [
                { comparator = ">", value = 1, palette = "white_on_red" },
                { comparator = "<=", value = 0, palette = "white_on_green" }
              ]
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "avg:aws.kafka.offline_partitions_count{$cluster_name}"
                  aggregator  = "avg"
                }
              ]
              formulas = [{ formula = "query1" }]
            }
          ]
        }
      },
      {
        id     = 2
        layout = { x = 1, y = 27, width = 17, height = 11 }
        definition = {
          title       = "# Under replicated"
          title_size  = "16"
          title_align = "left"
          type        = "query_value"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "avg:aws.kafka.under_replicated_partitions{$cluster_name}"
                  aggregator  = "avg"
                }
              ]
              formulas = [{ formula = "query1" }]
            }
          ]
        }
      },
      {
        id     = 3
        layout = { x = 57, y = 52, width = 34, height = 15 }
        definition = {
          title          = "Disk usage (data logs)"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "sum:aws.kafka.kafka_data_logs_disk_used{$cluster_name} by {cluster_name,broker_id}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 4
        layout = { x = 21, y = 69, width = 34, height = 15 }
        definition = {
          title          = "User CPU"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "avg:aws.kafka.cpu_user{$cluster_name} by {cluster_name}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 5
        layout = { x = 21, y = 52, width = 34, height = 15 }
        definition = {
          title          = "System CPU"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "avg:aws.kafka.cpu_system{$cluster_name} by {cluster_name}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 7
        layout = { x = 57, y = 69, width = 34, height = 15 }
        definition = {
          title          = "Disk usage (application logs)"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "sum:aws.kafka.kafka_app_logs_disk_used{$cluster_name} by {cluster_name,broker_id}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 9
        layout = { x = 92, y = 68, width = 34, height = 15 }
        definition = {
          title          = "Used memory by broker"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "sum:aws.kafka.memory_used{$cluster_name} by {cluster_name,broker_id}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
          yaxis = {
            label        = ""
            scale        = "linear"
            include_zero = true
            min          = "auto"
            max          = "auto"
          }
        }
      },
      {
        id     = 14
        layout = { x = 1, y = 0.07638888888888888, width = 17, height = 12 }
        definition = {
          type   = "image"
          url    = "/static/images/logos/amazon-msk_avatar.svg"
          sizing = "fit"
          margin = "large"
        }
      },
      {
        id     = 6522317645664052
        layout = { x = 19, y = 0.08333333333333333, width = 37, height = 15 }
        definition = {
          title          = "Max Offset Lag"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              response_format = "timeseries"
              queries = [
                {
                  name        = "query1"
                  data_source = "metrics"
                  query       = "avg:aws.kafka.max_offset_lag{$cluster_name,!consumer_group:amazon* , !consumer_group:eom.oms-asset-ingest.prodtest.*} by {topic,consumer_group}"
                }
              ]
              formulas     = [{ formula = "query1" }]
              style        = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type = "line"
            }
          ]
        }
      },
      {
        id     = 8365479927448290
        layout = { x = 57, y = 0, width = 37, height = 15 }
        definition = {
          title          = "Consumer-Groups-Lag"
          title_size     = "16"
          title_align    = "left"
          show_legend    = false
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              response_format = "timeseries"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query2"
                  query       = "max:aws.kafka.sum_offset_lag{$cluster_name,!topic:_amazon_msk_canary , !consumer_group:eom.oms-asset-ingest.prodtest.*} by {topic,consumer_group}"
                }
              ]
              formulas     = [{ formula = "query2" }]
              style        = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type = "line"
            }
          ]
        }
      },
      {
        id     = 1746498009977698
        layout = { x = 95, y = 0, width = 37, height = 15 }
        definition = {
          title          = "Max Offset Lag Time"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [{ formula = "query1" }]
              queries = [
                {
                  name        = "query1"
                  data_source = "metrics"
                  query       = "max:aws.kafka.estimated_max_time_lag{$cluster_name,!consumer_group:amazon* ,!consumer_group:eom.oms-asset-ingest.prodtest.*} by {consumer_group,topic}"
                }
              ]
              response_format = "timeseries"
              style           = { palette = "dog_classic", line_type = "solid", line_width = "normal" }
              display_type    = "line"
            }
          ]
        }
      },
      {
        id     = 4469929469225288
        layout = { x = 19, y = 16, width = 36, height = 34 }
        definition = {
          title       = "messages_in_per_sec"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  name        = "query1"
                  data_source = "metrics"
                  query       = "avg:aws.kafka.messages_in_per_sec{$cluster_name,!topic:_amazon*,!topic:_consumer_offsets , !consumer_group:eom.oms-asset-ingest.prodtest.*} by {topic}"
                  aggregator  = "sum"
                }
              ]
              style    = { palette = "classic" }
              formulas = [{ formula = "query1" }]
            }
          ]
          type = "sunburst"
        }
      },
      {
        id     = 4152478902770530
        layout = { x = 0, y = 39, width = 18, height = 20 }
        definition = {
          title       = "client-connections"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:aws.kafka.client_connection_count{$cluster_name} by {client_authentication}"
                  data_source = "metrics"
                  name        = "query1"
                  aggregator  = "sum"
                }
              ]
              style    = { palette = "datadog16" }
              formulas = [{ formula = "query1" }]
              sort     = { order_by = [{ type = "formula", index = 0, order = "desc" }] }
            }
          ]
          type   = "sunburst"
          legend = { type = "automatic" }
        }
      },
      {
        id     = 7461750921773340
        layout = { x = 56, y = 16, width = 35, height = 34 }
        definition = {
          title       = "Consumer-Group_lag"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:aws.kafka.sum_offset_lag{$cluster_name,!topic:_amazon_msk_canary , !consumer_group:eom.oms-asset-ingest.prodtest.*} by {topic,consumer_group}"
                  data_source = "metrics"
                  name        = "query1"
                  aggregator  = "sum"
                }
              ]
              style    = { palette = "datadog16" }
              formulas = [{ formula = "query1" }]
              sort     = { count = 500, order_by = [{ type = "formula", index = 0, order = "desc" }] }
            }
          ]
          type   = "sunburst"
          legend = { type = "automatic" }
        }
      },
      {
        id     = 6636218669876720
        layout = { x = 92, y = 16, width = 45, height = 34 }
        definition = {
          title       = "Consumer group Lag"
          title_size  = "16"
          title_align = "left"
          type        = "toplist"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query1"
                  query       = "avg:aws.kafka.sum_offset_lag{$cluster_name,!topic:_amazon_msk_canary , !consumer_group:eom.oms-asset-ingest.prodtest.*} by {consumer_group,topic}"
                  aggregator  = "avg"
                }
              ]
              formulas = [{ formula = "query1" }]
              sort     = { count = 10, order_by = [{ type = "formula", index = 0, order = "desc" }] }
            }
          ]
          style = {}
        }
      },
      {
        id     = 3713668655609784
        layout = { x = 0, y = 61, width = 18, height = 20 }
        definition = {
          title       = "client-connections"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:aws.kafka.traffic_bytes{$cluster_name} by {client_authentication}"
                  data_source = "metrics"
                  name        = "query1"
                  aggregator  = "sum"
                }
              ]
              style    = { palette = "datadog16" }
              formulas = [{ formula = "query1" }]
              sort     = { count = 500, order_by = [{ type = "formula", index = 0, order = "desc" }] }
            }
          ]
          type   = "sunburst"
          legend = { type = "automatic" }
        }
      }
    ]
    template_variables = [
      {
        name             = "cluster_name"
        prefix           = "cluster_name"
        available_values = ["aomad2-ameba-msk-01", "aomap-ameba-msk-01", "aomas-ameba-msk-01"]
        default          = "aomap-ameba-msk-01"
      }
    ]
    layout_type        = "free"
    notify_list        = []
    pause_auto_refresh = false
    tags = ["team:ameba-team"]
  })
}
