resource "datadog_dashboard" "core_load_tester_dashboard" {
  layout_type = "ordered"
  reflow_type = "auto"
  title       = "Core Load Tester"
  url         = "/dashboard/wgy-sq2-tba/core-load-tester"
  widget {
    group_definition {
      background_color = "vivid_green"
      layout_type      = "ordered"
      show_title       = true
      title            = "host:dev-proxy.apollo.stream/vendor-api"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Max/Avg/Min response time (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "avg"
              formula_expression = "query1 / 1000"
              style {
                palette       = "green"
                palette_index = 4
              }
            }
            formula {
              alias              = "max"
              formula_expression = "query2 / 1000"
              style {
                palette       = "orange"
                palette_index = 4
              }
            }
            formula {
              alias              = "min"
              formula_expression = "query3 / 1000"
              style {
                palette       = "cool"
                palette_index = 4
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.avg_response_time{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.max_response_time{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query3"
                query       = "avg:core_load_tester.total.min_response_time{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = false
            scale        = "log"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average response time by endpoint (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / 1000"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_response_time{host:dev-proxy.apollo.stream/vendor-api} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average size (bytes)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_content_length{host:dev-proxy.apollo.stream/vendor-api} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fails %"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "err %"
              formula_expression = "query1 / query2 * 100"
              style {
                palette       = "warm"
                palette_index = 5
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.num_failures{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.num_requests{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "semantic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fail ratio by endpoint"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / query2 * 100"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.num_failures{host:dev-proxy.apollo.stream/vendor-api} by {method_endpoint}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.by_endpoint.num_requests{host:dev-proxy.apollo.stream/vendor-api} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "RPS"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "total_rps"
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.total_rps{host:dev-proxy.apollo.stream/vendor-api}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_green"
      layout_type      = "ordered"
      show_title       = true
      title            = "host:dev-images-api.atlas.stream"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Max/Avg/Min response time (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "avg"
              formula_expression = "query1 / 1000"
              style {
                palette       = "green"
                palette_index = 4
              }
            }
            formula {
              alias              = "max"
              formula_expression = "query2 / 1000"
              style {
                palette       = "orange"
                palette_index = 4
              }
            }
            formula {
              alias              = "min"
              formula_expression = "query3 / 1000"
              style {
                palette       = "cool"
                palette_index = 4
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.avg_response_time{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.max_response_time{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query3"
                query       = "avg:core_load_tester.total.min_response_time{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = false
            scale        = "log"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average response time by endpoint (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / 1000"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_response_time{host:dev-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average size (bytes)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_content_length{host:dev-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fails %"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "err %"
              formula_expression = "query1 / query2 * 100"
              style {
                palette       = "warm"
                palette_index = 5
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.num_failures{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.num_requests{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "semantic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fail ratio by endpoint"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / query2 * 100"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.num_failures{host:dev-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.by_endpoint.num_requests{host:dev-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "RPS"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.total_rps{host:dev-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_green"
      layout_type      = "ordered"
      show_title       = true
      title            = "host:qa-images-api.atlas.stream"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Max/Avg/Min response time (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "avg"
              formula_expression = "query1 / 1000"
              style {
                palette       = "green"
                palette_index = 4
              }
            }
            formula {
              alias              = "max"
              formula_expression = "query2 / 1000"
              style {
                palette       = "orange"
                palette_index = 4
              }
            }
            formula {
              alias              = "min"
              formula_expression = "query3 / 1000"
              style {
                palette       = "cool"
                palette_index = 4
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.avg_response_time{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.max_response_time{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query3"
                query       = "avg:core_load_tester.total.min_response_time{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = false
            scale        = "log"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average response time by endpoint (sec)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / 1000"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_response_time{host:qa-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Average size (bytes)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.avg_content_length{host:qa-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fails %"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / query2 * 100"
              style {
                palette       = "warm"
                palette_index = 5
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.num_failures{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.total.num_requests{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "semantic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Fail ratio by endpoint"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1 / query2 * 100"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.by_endpoint.num_failures{host:qa-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query2"
                query       = "avg:core_load_tester.by_endpoint.num_requests{host:qa-images-api.atlas.stream} by {method_endpoint}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "RPS"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:core_load_tester.total.total_rps{host:qa-images-api.atlas.stream}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
    }
  }
}

resource "datadog_dashboard" "overall_products_performance_dashboard" {
  description = <<-EOT
      ## Title

      Describe this dashboard. Add links to other dashboards, monitors, wikis,  and docs to help your teammates. Markdown is supported.

      - [This might link to a dashboard](#)
      - [This might link to a wiki](#)
        EOT
  layout_type = "ordered"
  reflow_type = "auto"
  title       = "Overall products performance"
  url         = "/dashboard/9yk-ah2-m5n/overall-products-performance"
  widget {
    group_definition {
      background_color = "vivid_blue"
      layout_type      = "ordered"
      show_title       = true
      title            = "Decibel"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.hits{env:prod,service:marketing-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service marketing-api, resource flask.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "p50"
              formula_expression = "p50"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "p75"
              formula_expression = "p75"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "p90"
              formula_expression = "p90"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "p95"
              formula_expression = "p95"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "p99"
              formula_expression = "p99"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              alias              = "max"
              formula_expression = "max"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:marketing-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service marketing-api in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:marketing-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.flask.request{env:prod,service:marketing-api,!resource_name:get_/health} by {resource_name}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:marketing-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:marketing-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "marketing-api"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_blue"
      layout_type      = "ordered"
      show_title       = true
      title            = "Decibel (STG)"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.hits{env:stage,service:marketing-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service marketing-api, resource flask.request in env stage"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:marketing-api,env:stage} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service marketing-api in env stage"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:stage,service:marketing-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.flask.request{env:stage,service:marketing-api,!resource_name:get_/health} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:marketing-api,env:stage} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:stage,service:marketing-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:stage",
              ]
              service = "marketing-api"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_purple"
      layout_type      = "ordered"
      show_title       = true
      title            = "DNA"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.hits{env:prod,service:whitelist-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service whitelist-api, resource aiohttp.request in env uat"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p50"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p75"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p90"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p95"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p99"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "max"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:whitelist-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service whitelist-api in env uat"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:whitelist-api,!http.status_code:404,!http.status_code:422} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health} by {resource_name}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:whitelist-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    timeseries_definition {
      legend_columns = [
        "avg",
        "max",
        "min",
        "sum",
        "value",
      ]
      legend_layout = "auto"
      show_legend   = true
      title_align   = "left"
      title_size    = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        formula {
          formula_expression = "query1"
        }
        query {
          metric_query {
            data_source = "metrics"
            name        = "query1"
            query       = "sum:trace.aiohttp.request.errors{env:prod,service:whitelist-api,!http.status_code:404,!http.status_code:422} by {resource_name}.as_count()"
          }
        }
        style {
          palette = "red"
        }
      }
    }
  }
  widget {
    timeseries_definition {
      legend_columns = [
        "avg",
        "max",
        "min",
        "sum",
        "value",
      ]
      legend_layout = "auto"
      show_legend   = true
      title_align   = "left"
      title_size    = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        formula {
          formula_expression = "top(query1, 5, 'mean', 'desc')"
        }
        query {
          metric_query {
            data_source = "metrics"
            name        = "query1"
            query       = "avg:trace.aiohttp.request{env:prod,service:whitelist-api,!resource_name:get_/health} by {version}"
          }
        }
        style {
          palette = "palette_that_doesnt_exist"
        }
      }
    }
  }
  widget {
    topology_map_definition {
      title_align = "left"
      title_size  = "16"
      request {
        request_type = "topology"
        query {
          data_source = "service_map"
          filters = [
            "env:prod",
          ]
          service = "whitelist-api"
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_purple"
      layout_type      = "ordered"
      show_title       = true
      title            = "DNA (UAT)"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.hits{env:uat,service:whitelist-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service whitelist-api, resource aiohttp.request in env uat"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:marketing-api,env:uat} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service whitelist-api in env uat"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:uat,service:whitelist-api,!http.status_code:404,!http.status_code:422} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:whitelist-api,env:uat} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:uat,service:whitelist-api,!http.status_code:404,!http.status_code:422} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:uat,service:whitelist-api,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:uat",
              ]
              service = "whitelist-api"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_pink"
      layout_type      = "ordered"
      show_title       = true
      title            = "Atlas"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.hits{env:prod,service:core-atlas-um,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service core-atlas-um, resource flask.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:core-atlas-um,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service core-atlas-um in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:core-atlas-um} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.flask.request{env:prod,service:core-atlas-um} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:core-atlas-um,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:core-atlas-um} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.flask.request{env:prod,service:core-atlas-um,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "core-atlas-um"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_pink"
      layout_type      = "ordered"
      show_title       = true
      title            = "Atlas (UAT) - in progress"
    }
  }
  widget {
    group_definition {
      background_color = "blue"
      layout_type      = "ordered"
      show_title       = true
      title            = "Notifications (mails)"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.hits{env:prod,service:core-notifications,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service core-notifications, resource flask.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:core-notifications,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service core-notifications in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:core-notifications} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.flask.request{env:prod,service:core-notifications} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:core-notifications,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.flask.request.errors{env:prod,service:core-notifications} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.flask.request{env:prod,service:core-notifications,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "core-notifications"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_yellow"
      layout_type      = "ordered"
      show_title       = true
      title            = "Image"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.django.request.hits{env:prod,service:core-images-api,!resource_name:get_health} by {resource_name}.as_count()"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service core-images-api-v2, resource django.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p50"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p75"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p90"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p95"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "p99"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "max"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:core-images-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service core-images-api-v2 in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.django.request.errors{env:prod,service:core-images-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "semantic"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.django.request{env:prod,service:core-images-api} by {resource_name}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:core-images-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.django.request.errors{env:prod,service:core-images-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.django.request{env:prod,service:core-images-api,!resource_name:get_health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "postgres"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_orange"
      layout_type      = "ordered"
      show_title       = true
      title            = "Apollo Gate"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.hits{env:prod,service:apollo-gate-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service apollo-gate-api, resource aiohttp.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:apollo-gate-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service apollo-gate-api in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-gate-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:prod,service:apollo-gate-api} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:apollo-gate-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-gate-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-gate-api,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_orange"
      layout_type      = "ordered"
      show_title       = true
      title            = "Apollo DSP"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.hits{env:prod,service:apollo-dsp-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service apollo-dsp-api, resource aiohttp.request in env prod"
          title_align   = "left"
          title_size    = "16"
          marker {
            display_type = "watchdog"
            label        = "Apr 13, 10:00 - 11:00"
            value        = "y > 0"
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:apollo-dsp-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service apollo-dsp-api in env prod"
          title_align   = "left"
          title_size    = "16"
          marker {
            display_type = "watchdog"
            label        = "Apr 13, 20:00 - 20:40"
            value        = "y > 0"
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-dsp-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:prod,service:apollo-dsp-api} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:apollo-dsp-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-dsp-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-dsp-api,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_orange"
      layout_type      = "ordered"
      show_title       = true
      title            = "Apollo - Vendor"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.hits{env:prod,service:apollo-vendor-api,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service apollo-vendor-api, resource aiohttp.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:apollo-vendor-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service apollo-vendor-api in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-vendor-api} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.aiohttp.request{env:prod,service:apollo-vendor-api} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:apollo-vendor-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.aiohttp.request.errors{env:prod,service:apollo-vendor-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.aiohttp.request{env:prod,service:apollo-vendor-api,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "apollo-vendor-api"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_orange"
      layout_type      = "ordered"
      show_title       = true
      title            = "Apollo API (integration broken)"
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:apollo-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:apollo-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_orange"
      layout_type      = "ordered"
      show_title       = true
      title            = "Apollo User Data"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.asgi.request.hits{env:prod,service:apollo-user-data,!resource_name:get_/health} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service apollo-user-data, resource asgi.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:apollo-user-data,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service apollo-user-data in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.asgi.request.errors{env:prod,service:apollo-user-data} by {http.status_code}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.asgi.request{env:prod,service:apollo-user-data} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:apollo-user-data,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.asgi.request.errors{env:prod,service:apollo-user-data} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.asgi.request{env:prod,service:apollo-user-data,!resource_name:get_/health} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      background_color = "vivid_green"
      layout_type      = "ordered"
      show_title       = true
      title            = "RTI user-favorites"
    }
  }
  widget {
    group_definition {
      background_color = "vivid_green"
      layout_type      = "ordered"
      show_title       = true
      title            = "RTI"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.koa.request.hits{env:prod,service:artistapp-api} by {resource_name}.as_count()"
              }
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = true
          title         = "Latency on service artistapp-api, resource koa.request in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p50"
                query       = "p50:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "solid"
              line_width = "thick"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p75"
                query       = "p75:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p90"
                query       = "p90:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p95"
                query       = "p95:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "p99"
                query       = "p99:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
          request {
            on_right_yaxis = false
            query {
              metric_query {
                data_source = "metrics"
                name        = "max"
                query       = "max:trace.koa.request{env:prod,service:artistapp-api}"
              }
            }
            style {
              line_type  = "dotted"
              line_width = "thin"
              palette    = "dog_classic"
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "CPU usage % by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "avg:ecs.fargate.cpu.percent{service:artistapp-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title         = "Errors on service artistapp-api in env prod"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.koa.request.errors{env:prod,service:artistapp-api}.as_count()"
              }
            }
            style {
              palette = "warm"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "avg:trace.koa.request{env:prod,service:artistapp-api} by {resource_name}"
              }
            }
          }
        }
      }
      widget {
        heatmap_definition {
          show_legend = false
          title       = "Memory usage by container"
          title_align = "left"
          title_size  = "16"
          request {
            q = "sum:ecs.fargate.mem.usage{service:artistapp-api,env:prod} by {container_id}"
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            formula {
              formula_expression = "query1"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "sum:trace.koa.request.errors{env:prod,service:artistapp-api} by {resource_name}.as_count()"
              }
            }
            style {
              palette = "red"
            }
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          show_legend   = true
          title_align   = "left"
          title_size    = "16"
          request {
            on_right_yaxis = false
            formula {
              formula_expression = "top(query1, 5, 'mean', 'desc')"
            }
            query {
              metric_query {
                data_source = "metrics"
                name        = "query1"
                query       = "p95:trace.tcp.connect{env:prod,service:artistapp-api} by {version}"
              }
            }
            style {
              palette = "palette_that_doesnt_exist"
            }
          }
        }
      }
      widget {
        topology_map_definition {
          title_align = "left"
          title_size  = "16"
          request {
            request_type = "topology"
            query {
              data_source = "service_map"
              filters = [
                "env:prod",
              ]
              service = "artistapp-api"
            }
          }
        }
      }
    }
  }
}

resource "datadog_dashboard" "performance_load_testing_dashboard" {
  layout_type = "ordered"
  reflow_type = "auto"
  title       = "Performance (Load) Testing"
  url         = "/dashboard/ibi-aam-q6f/performance-load-testing"
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "QA"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:develop} by {label}.as_count() * 76.66 / 1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:develop} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:develop} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:develop} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:develop} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:develop}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:develop}.as_count()/avg:apollo_load_test.all_test.throughput{branch:develop}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:develop}.as_count()/avg:apollo_load_test.all_test.throughput{branch:develop}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.throughput{branch:develop}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "Staging"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:master} by {label}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:master} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:master} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:master} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:master} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:master}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:master}.as_count()/avg:apollo_load_test.all_test.throughput{branch:master}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:master}.as_count()/avg:apollo_load_test.all_test.throughput{branch:master}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.throughput{branch:master}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "VENDOR"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_vendor} by {label}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_vendor} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_vendor} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_vendor} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_vendor} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_vendor}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_vendor}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_vendor}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_vendor}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_vendor}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.throughput{branch:tag_vendor}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "AGO"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_ago} by {label}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_ago} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ago} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_ago} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ago} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = false
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_ago}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_ago}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ago}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_ago}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ago}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.throughput{branch:tag_ago}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "AP"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_ap} by {label}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_ap} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ap} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_ap} by {label}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ap} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.avg_rt{branch:tag_ap}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.fail{branch:tag_ap}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ap}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.bytes{branch:tag_ap}.as_count()/avg:apollo_load_test.all_test.throughput{branch:tag_ap}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:apollo_load_test.all_test.throughput{branch:tag_ap}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "RTI"
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time by endpoint (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.avg_rt{*} by {label}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "fail by endpoint (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.fail{*} by {label}.as_count()/avg:artistapp_load_test.all_test.throughput{*} by {label}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size by endpoint (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.bytes{*} by {label}.as_count()/avg:artistapp_load_test.all_test.throughput{*} by {label}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response time (sec)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.avg_rt{*}.as_count()*76.66/1000"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "total fail rate (%)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.fail{*}.as_count()/avg:artistapp_load_test.all_test.throughput{*}.as_count()*100"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Avg response size (KB)"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.bytes{*}.as_count()/avg:artistapp_load_test.all_test.throughput{*}.as_count()/1024"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        timeseries_definition {
          legend_layout = "auto"
          legend_size   = "0"
          show_legend   = true
          title         = "Total sample count"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "avg:artistapp_load_test.all_test.throughput{*}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
    }
  }
}
