resource "datadog_dashboard_json" "ameba_graphql_dashboard_json" {
  dashboard = jsonencode({
    title       = "AMEBA GraphQL Dashboard"
    description = "[[suggested_dashboards]]"
    widgets = [
      {
        id = 8205070038526366
        definition = {
          title       = "Queries : By Username"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:sonymusic.graphql.master_details.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query1"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.metadata_import_history.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query2"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.validate_link_attempt.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query3"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.product_links.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query4"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.product_details.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query5"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.product_tracks.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query6"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.product_link_doc.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query7"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.events.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query8"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.validate_link_attempt.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query9"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query1 + query2 + query3 + query4 + query5 + query6 + query7 + query8 + query9"
                }
              ]
              sort = {
                order_by = [
                  {
                    type  = "formula"
                    index = 0
                    order = "desc"
                  }
                ]
              }
            }
          ]
          type = "sunburst"
          legend = {
            type = "automatic"
          }
        }
        layout = {
          x      = 0
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 3591219958634164
        definition = {
          title       = "Query : Master Details : User"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:sonymusic.graphql.master_details.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query8"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query8"
                }
              ]
              sort = {
                count = 500
                order_by = [
                  {
                    type  = "formula"
                    index = 0
                    order = "desc"
                  }
                ]
              }
            }
          ]
          type = "sunburst"
          legend = {
            type = "automatic"
          }
        }
        layout = {
          x      = 2
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 4775941794317002
        definition = {
          title       = "Query :Metadata Import History : User"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.metadata_import_history.counter{$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 4
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 572089892407504
        definition = {
          title       = "Query : Product Details"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_details.counter{$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 6
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 1249414336474100
        definition = {
          title       = "Query:Product Links : User"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_links.counter{$pod,$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 8
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 3632418464246422
        definition = {
          title       = "Query: Product Tracks"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_tracks.counter{$pod,$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 10
          y      = 0
          width  = 2
          height = 3
        }
      },
      {
        id = 5984732738802304
        definition = {
          title       = "Mutations: By Username"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  query       = "sum:sonymusic.graphql.generate_debezium_events_to_system.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query9"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.generate_jms_events_to_system.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query1"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.generate_kafka_events_to_system.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query2"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.product_link_doc_mutation.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query3"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.aoma_product_link.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query4"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.aoma_product_unlink.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query5"
                  aggregator  = "sum"
                },
                {
                  query       = "sum:sonymusic.graphql.metadata_import.counter{$namespace,$pod} by {username}.as_count()"
                  data_source = "metrics"
                  name        = "query6"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query9 + query1 + query2 + query3 + query4 + query5 + query6"
                }
              ]
              sort = {
                count = 500
                order_by = [
                  {
                    type  = "formula"
                    index = 0
                    order = "desc"
                  }
                ]
              }
            }
          ]
          type = "sunburst"
          legend = {
            type = "automatic"
          }
        }
        layout = {
          x      = 0
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 1329560325835340
        definition = {
          title       = "Mutation : Product Link"
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.aoma_product_link.counter{$pod,$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 2
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 6113960674452502
        definition = {
          title       = "Mutation:Metadata Import "
          title_size  = "16"
          title_align = "left"
          requests = [
            {
              response_format = "scalar"
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.metadata_import.counter{$pod,$namespace} by {username}.as_count()"
                  aggregator  = "sum"
                }
              ]
              style = {
                palette = "datadog16"
              }
              formulas = [
                {
                  formula = "query0"
                }
              ]
            }
          ]
          type = "sunburst"
        }
        layout = {
          x      = 4
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 6313658578536720
        definition = {
          title          = "Metadata Import Mutation Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.metadata_import.counter{$pod,$namespace} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 6
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 5324476237058800
        definition = {
          title          = "GraphqlErrorCounter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.error.counter{$namespace,$pod} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 8
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 8033489126216778
        definition = {
          title          = "Validate Link Attempt Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.validate_link_attempt.counter{$pod,$namespace} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 10
          y      = 3
          width  = 2
          height = 3
        }
      },
      {
        id = 5285771993693462
        definition = {
          title          = "Master Details Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "avg:sonymusic.graphql.master_details.counter{$namespace,$pod} by {pod,namespace,application,username}"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 0
          y      = 6
          width  = 2
          height = 3
        }
      },
      {
        id = 7542603706335044
        definition = {
          title          = "Metadata Import History Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.metadata_import_history.counter{$pod,$namespace} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 2
          y      = 6
          width  = 2
          height = 3
        }
      },
      {
        id = 1493636288774370
        definition = {
          title          = "Product Details Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_details.counter{*} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 4
          y      = 6
          width  = 2
          height = 3
        }
      },
      {
        id = 2941872551090938
        definition = {
          title          = "Product Links Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_links.counter{*} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 6
          y      = 6
          width  = 2
          height = 3
        }
      },
      {
        id = 3198097621050598
        definition = {
          title          = "Product Tracks Query Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.product_tracks.counter{$pod,$namespace} by {application,namespace,pod,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 8
          y      = 6
          width  = 2
          height = 3
        }
      },
      {
        id = 147178462257462
        definition = {
          title          = "AOMA Product Link Mutation Counter"
          title_size     = "16"
          title_align    = "left"
          show_legend    = true
          legend_layout  = "auto"
          legend_columns = ["avg", "min", "max", "value", "sum"]
          type           = "timeseries"
          requests = [
            {
              formulas = [
                {
                  formula = "query0"
                }
              ]
              queries = [
                {
                  data_source = "metrics"
                  name        = "query0"
                  query       = "sum:sonymusic.graphql.aoma_product_link.counter{$pod,$namespace} by {pod,namespace,service_name,username}.as_count()"
                }
              ]
              response_format = "timeseries"
              style = {
                palette    = "dog_classic"
                line_type  = "solid"
                line_width = "normal"
              }
              display_type = "line"
            }
          ]
        }
        layout = {
          x      = 10
          y      = 6
          width  = 2
          height = 3
        }
      }
    ]
    template_variables = [
      {
        name             = "pod"
        prefix           = "pod"
        available_values = []
        default          = "*"
      },
      {
        name             = "namespace"
        prefix           = "namespace"
        available_values = ["ameba-prod", "ameba-dev", "ameba-stage"]
        default          = "ameba-prod"
      }
    ]
    layout_type        = "ordered"
    notify_list        = []
    pause_auto_refresh = false
    reflow_type        = "fixed"
    tags               = ["team:ameba-team", "team:aoma-amp-del-data"]
  })
}
