resource "datadog_dashboard" "delphi_api_screenboard_artist_sza_dashboard" {
  layout_type = "free"
  title       = "Delphi API Screenboard - Artist: SZA"
  url         = "/dashboard/5zh-ppt-d24/delphi-api-screenboard---artist-sza"
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Hit/error count on service prod-delphi-nginx-cache-api, resource GE… in env prod"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.nginx.handle.hits{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}.as_count()"
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.nginx.handle.errors{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}.as_count()"
        style {
          palette = "warm"
        }
      }
    }
    widget_layout {
      height          = 15
      is_column_break = false
      width           = 47
      x               = 0
      y               = 53
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Error count on service prod-delphi-nginx-cache-api, resource GET /v… in env prod"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.nginx.handle.errors{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api} by {http.status_code}.as_count()"
        style {
          palette = "warm"
        }
      }
    }
    widget_layout {
      height          = 15
      is_column_break = false
      width           = 47
      x               = 96
      y               = 53
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Latency on service prod-delphi-nginx-cache-api, resource GET /v3/ar… in env prod"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        metadata {
          alias_name = "p50"
          expression = "p50:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        metadata {
          alias_name = "p75"
          expression = "p75:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        metadata {
          alias_name = "p90"
          expression = "p90:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        metadata {
          alias_name = "p95"
          expression = "p95:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        metadata {
          alias_name = "p99"
          expression = "p99:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}.rollup(max)"
        metadata {
          alias_name = "max"
          expression = "max:trace.nginx.handle{env:prod,resource:84fdb379d0b6364c,service:prod-delphi-nginx-cache-api}.rollup(max)"
        }
      }
    }
    widget_layout {
      height          = 15
      is_column_break = false
      width           = 47
      x               = 48
      y               = 53
    }
  }
  widget {
    toplist_definition {
      title       = "Log count by @extra.path over \"host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")\""
      title_align = "left"
      title_size  = "16"
      request {
        log_query {
          index        = "*"
          search_query = "host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")"
          compute_query {
            aggregation = "count"
            interval    = 0
          }
          group_by {
            facet = "@extra.path"
            limit = 10
            sort_query {
              aggregation = "count"
              order       = "desc"
            }
          }
        }
      }
    }
    widget_layout {
      height          = 19
      is_column_break = false
      width           = 47
      x               = 0
      y               = 2
    }
  }
  widget {
    query_table_definition {
      has_search_bar = "auto"
      title          = "Avg of @duration, Pc95 of @duration, and Pc90 of @duration by @extra.path over \"host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")\""
      title_align    = "left"
      title_size     = "16"
      request {
        limit = 0
        log_query {
          index        = "*"
          search_query = "host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")"
          group_by {
            facet = "@extra.path"
            limit = 10
            sort_query {
              aggregation = "avg"
              facet       = "@duration"
              order       = "desc"
            }
          }
          multi_compute {
            aggregation = "avg"
            facet       = "@duration"
            interval    = 0
          }
          multi_compute {
            aggregation = "pc95"
            facet       = "@duration"
            interval    = 0
          }
          multi_compute {
            aggregation = "pc90"
            facet       = "@duration"
            interval    = 0
          }
        }
      }
    }
    widget_layout {
      height          = 19
      is_column_break = false
      width           = 47
      x               = 48
      y               = 2
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Avg of @duration, Pc95 of @duration, and Pc90 of @duration by @extra.path over \"host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")\""
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        log_query {
          index        = "*"
          search_query = "host:(\"/ecs/prod-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-nginx-cache-api\" OR \"/ecs/stage-delphi-cache-mobile-api\") -@extra.path:(\"/v3/health\" OR \"/health\") @nginx_version:* (@extra.full_url_details.queryString.artist_id:GRAS_1601863 OR @extra.uri:\"/v3/artists/GRAS_1601863\")"
          compute_query {
            aggregation = "pc95"
            facet       = "@duration"
            interval    = 0
          }
          group_by {
            facet = "@extra.path"
            limit = 10
            sort_query {
              aggregation = "pc95"
              facet       = "@duration"
              order       = "desc"
            }
          }
        }
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 19
      is_column_break = false
      width           = 47
      x               = 101
      y               = 2
    }
  }
}

resource "datadog_dashboard" "delphi_api_timeboard_dashboard" {
  layout_type = "ordered"
  title       = "Delphi API Timeboard"
  url         = "/dashboard/c6y-kjr-him/delphi-api-timeboard"
  template_variable {
    defaults = ["prod"]
    name     = "environment"
    prefix   = "env"
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "Overall Performance"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = false
          title         = "Hit/error count on service delphi-api-nginx"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,!resource_name:/health}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,!resource_name:/health}.as_count()"
            style {
              palette = "warm"
            }
          }
          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         = "Hit/error count on service delphi-api"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.hits{service:delphi-api,$environment,!resource_name:get_/health}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.errors{service:delphi-api,$environment,!resource_name:get_/health}.as_count()"
            style {
              palette = "warm"
            }
          }
          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         = "Latency on service delphi-api-nginx"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p50:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "p50"
              expression = "p50:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p75:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "p75"
              expression = "p75:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p90:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "p90"
              expression = "p90:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p95:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "p95"
              expression = "p95:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p99:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "p99"
              expression = "p99:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "max:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            metadata {
              alias_name = "max"
              expression = "max:trace.nginx.handle{service:delphi-api-nginx,$environment,!resource_name:/health}"
            }
            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         = "Latency on service delphi-api"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p50:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "p50"
              expression = "p50:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p75:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "p75"
              expression = "p75:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p90:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "p90"
              expression = "p90:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p95:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "p95"
              expression = "p95:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p99:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "p99"
              expression = "p99:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "max:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            metadata {
              alias_name = "max"
              expression = "max:trace.servlet.request{service:delphi-api,$environment,!resource_name:get_/health}"
            }
            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         = "Hit/error count on service delphi-api-nginx (Daily)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,!resource_name:/health}.as_count().rollup(count, 86400)"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,!resource_name:/health}.as_count().rollup(count, 86400)"
            style {
              palette = "warm"
            }
          }
          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         = "Hit/error count on service delphi-api (Daily)"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.hits{service:delphi-api,$environment,!resource_name:get_/health}.as_count().rollup(sum, 86400)"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.errors{service:delphi-api,$environment,!resource_name:get_/health}.as_count().rollup(sum, 86400)"
            style {
              palette = "warm"
            }
          }
          yaxis {
            include_zero = true
            max          = "auto"
            min          = "auto"
            scale        = "linear"
          }
        }
      }
      widget {
        query_table_definition {
          has_search_bar = "auto"
          title          = "APM delphi-api"
          title_align    = "left"
          title_size     = "16"
          request {
            cell_display_mode = [
              "bar",
            ]
            limit = 0
            apm_stats_query {
              env      = "$environment"
              name     = "servlet.request"
              row_type = "resource"
              service  = "delphi-api"
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
                order             = "desc"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              primary_tag = ""
            }
          }
        }
      }
      widget {
        query_table_definition {
          has_search_bar = "auto"
          title          = "APM delphi-api-nginx"
          title_align    = "left"
          title_size     = "16"
          request {
            cell_display_mode = [
              "bar",
            ]
            limit = 0
            apm_stats_query {
              env      = "$environment"
              name     = "nginx.handle"
              row_type = "resource"
              service  = "delphi-api-nginx"
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
                order             = "desc"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              columns {
                cell_display_mode = "bar"
                name              = "Errors"
              }
              primary_tag = ""
            }
          }
        }
      }
    }
  }
  widget {
    group_definition {
      layout_type = "ordered"
      show_title  = false
      title       = "Decibel - /ads/performance"
      widget {
        timeseries_definition {
          legend_columns = [
            "avg",
            "max",
            "min",
            "sum",
            "value",
          ]
          legend_layout = "auto"
          show_legend   = false
          title         = "Hit/error count on service delphi-api-nginx /ads/performance"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}.as_count()"
            style {
              palette = "warm"
            }
          }
          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         = "Hit/error count on service  delphi-api /v3/ads/performance"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.hits{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}.as_count()"
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "bars"
            on_right_yaxis = false
            q              = "sum:trace.servlet.request.errors{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}.as_count()"
            style {
              palette = "warm"
            }
          }
          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         = "Latency on service delphi-api-nginx /v3/ads/performance"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p50:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p50"
              expression = "p50:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p75:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p75"
              expression = "p75:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p90:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p90"
              expression = "p90:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p95:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p95"
              expression = "p95:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p99:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p99"
              expression = "p99:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "max:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "max"
              expression = "max:trace.nginx.handle{service:delphi-api-nginx,$environment,resource_name:get_/v3/ads/performance}"
            }
            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         = "Latency on service delphi-api /v3/ads/performance"
          title_align   = "left"
          title_size    = "16"
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p50:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p50"
              expression = "p50:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p75:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p75"
              expression = "p75:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p90:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p90"
              expression = "p90:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p95:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p95"
              expression = "p95:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "p99:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "p99"
              expression = "p99:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            style {
              line_type  = "solid"
              line_width = "normal"
              palette    = "dog_classic"
            }
          }
          request {
            display_type   = "line"
            on_right_yaxis = false
            q              = "max:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            metadata {
              alias_name = "max"
              expression = "max:trace.servlet.request{service:delphi-api,$environment,resource_name:get_/v3/ads/performance}"
            }
            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         = "Hit/error count on service delphi-api-nginx /v3/streams"
      title_align   = "left"
      title_size    = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count()"
        style {
          palette = "warm"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "robust_trend(sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "red"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "robust_trend(sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "red"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count())"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count())"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(robust_trend(sum:trace.nginx.handle.hits{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count()))"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(robust_trend(sum:trace.nginx.handle.errors{service:delphi-api-nginx,$environment,resource_name:get_/v3/streams,!resource_name:/health}.as_count()))"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      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         = "Hit/error count on service delphi-api /v3/streams"
      title_align   = "left"
      title_size    = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count()"
        style {
          palette = "warm"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "robust_trend(sum:trace.servlet.request.hits{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "red"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "robust_trend(sum:trace.servlet.request.errors{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "red"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.hits{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count())"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.errors{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count())"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(robust_trend(sum:trace.servlet.request.hits{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count()))"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(robust_trend(sum:trace.servlet.request.errors{service:delphi-api,$environment,resource_name:get_/v3/streams}.as_count()))"
        style {
          line_type  = "dotted"
          line_width = "normal"
          palette    = "gray"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
  }
}

resource "datadog_dashboard" "delphi_api_utilization_dashboard" {
  layout_type = "ordered"
  title       = "Delphi API Utilization"
  url         = "/dashboard/fsm-pb3-k6b/delphi-api-utilization"
  template_variable {
    defaults = ["*"]
    name     = "clustername"
    prefix   = "clustername"
  }
  template_variable {
    defaults = ["prod-delphi-api"]
    name     = "servicename"
    prefix   = "servicename"
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "CPU"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "avg:aws.ecs.service.cpuutilization{$servicename,$clustername} by {clustername}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:aws.ecs.cpuutilization.maximum{$servicename,$clustername} by {clustername}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Memory"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "avg:aws.ecs.service.memory_utilization{$servicename,$clustername} by {clustername}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:aws.ecs.memory_utilization.maximum{$servicename,$clustername} by {clustername}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
  }
}

resource "datadog_dashboard" "prod_delphi_api_all_streams_dashboard" {
  description = <<-EOT
            HISTORICAL LATENCY ON PROD-DELPHI-API BY SUBLAYER-SERVICE 'AWS SECRETS', 'PROD-DELPHI-API' & 'GRPC CLIENT'.
        EOT
  layout_type = "ordered"
  title       = "PROD-DELPHI-API (all streams)"
  url         = "/dashboard/u9x-k3n-zsu/prod-delphi-api-all-streams"
  template_variable {
    defaults = ["*"]
    name     = ""
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Historical Max Latency on service prod-delphi-api in env none"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{env:none,service:prod-delphi-api}.rollup(max)"
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(max:trace.flask.request{env:none,service:prod-delphi-api}.rollup(max))"
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(max:trace.flask.request{env:none,service:prod-delphi-api}.rollup(max))"
      }
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "% of Time Spent by service on service prod-delphi-api in env none"
      marker {
        display_type = "error dashed"
        value        = "y = 0"
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.exec_time.by_service{env:none,service:prod-delphi-api} by {sublayer_service}.rollup(sum).fill(zero)*100/sum:trace.flask.request.exec_time.by_service{env:none,service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Hit/error count on service prod-delphi-api in env none"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{env:none,service:prod-delphi-api}.as_count()"
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api}.as_count()"
        style {
          palette = "warm"
        }
      }
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Error rate on service prod-delphi-api, resource GET /v2/amazon/trac… in env none"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,resource:a75291b7dca325bf,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
  }
}

resource "datadog_dashboard" "delphi_production_dashboard" {
  layout_type = "free"
  title       = "Delphi production"
  url         = "/dashboard/gn3-vds-cfv/delphi-production"
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 7
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 62
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = -1
      y               = 117
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 172
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 227
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 282
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Throughput (hits/sec)"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 0
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 7
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 7
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 3
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 29
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Total requests"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 55
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 62
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 62
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 58
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 84
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Error ratio"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 110
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 113
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 117
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 117
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = -1
      y               = 139
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Error count"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 165
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 168
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 172
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 172
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 194
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Latency"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 220
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 223
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 227
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 227
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 249
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Avg time per request"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 275
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 282
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 282
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 278
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 304
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 33
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 253
    }
  }
  widget {
    timeseries_definition {
      live_span   = "1w"
      show_legend = false
      title       = "Past 1 week"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 253
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p50:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p75:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 253
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1d"
      show_legend = false
      title       = "Past 1 day"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 33
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      live_span   = "1mo"
      show_legend = false
      title       = "Past 1 month"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 33
    }
  }
}

resource "datadog_dashboard" "delphi_production_v2_dashboard" {
  layout_type = "free"
  title       = "Delphi production v2"
  url         = "/dashboard/edd-8n4-eyv/delphi-production-v2"
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 7
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.flask.request.errors{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 62
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*day_before(sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60))/day_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = -1
      y               = 117
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 172
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p90:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p95:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p99:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(max:trace.flask.request{service:prod-delphi-api}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 227
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "day_before(sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero))/day_before(sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 282
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Throughput (hits/sec)"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 0
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 7
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 7
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 3
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 29
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Total requests"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 55
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.flask.request.errors{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 62
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.hits{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{service:prod-delphi-api}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.flask.request.errors{service:prod-delphi-api}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 62
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 58
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 84
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Error ratio"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 110
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 113
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*week_before(sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60))/week_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 117
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*month_before(sum:trace.flask.request.errors{service:prod-delphi-api} by {http.status_code}.as_rate().rollup(sum, 60))/month_before(sum:trace.flask.request.hits{service:prod-delphi-api}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 117
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = -1
      y               = 139
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Error count"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 165
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 168
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 172
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.flask.request.errors{env:none,service:prod-delphi-api} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 172
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 194
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Latency"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 220
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 223
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 249
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "auto"
      text       = "Avg time per request"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 275
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "week_before(sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero))/week_before(sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 282
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "month_before(sum:trace.flask.request.duration.by_type{service:prod-delphi-api} by {sublayer_type}.rollup(sum).fill(zero))/month_before(sum:trace.flask.request.hits{service:prod-delphi-api}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 282
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Python"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 278
    }
  }
  widget {
    free_text_definition {
      color      = "#4d4d4d"
      font_size  = "16"
      text       = "Java"
      text_align = "left"
    }
    widget_layout {
      height          = 3
      is_column_break = false
      width           = 120
      x               = 0
      y               = 304
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 33
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "week_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*week_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60))/week_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "week_before(sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero))/week_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero))/day_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "month_before(sum:trace.servlet.request.duration.by_type{service:prod-delphi-api-java} by {sublayer_type}.rollup(sum).fill(zero))/month_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.rollup(sum).fill(zero))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = false
        max          = "auto"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 308
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p90:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p95:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(p99:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 253
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 198
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*day_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60))/day_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60)/sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "area"
        on_right_yaxis = false
        q              = "100*month_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java} by {http.status_code}.as_rate().rollup(sum, 60))/month_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate().rollup(sum, 60))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 143
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "bars"
        on_right_yaxis = false
        q              = "month_before(sum:trace.servlet.request.errors{service:prod-delphi-api-java}.as_count())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "warm"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 88
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a day before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "day_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 0
      y               = 33
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate()"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(sum:trace.servlet.request.hits{service:prod-delphi-api-java}.as_rate())"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 33
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p90:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p95:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p99:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(max:trace.flask.request{service:prod-delphi-api}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 227
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.flask.request{service:prod-delphi-api}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.flask.request{service:prod-delphi-api}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p90:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p95:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p99:trace.flask.request{service:prod-delphi-api})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(max:trace.flask.request{service:prod-delphi-api}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 227
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a week before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p90:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p95:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(p99:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "week_before(max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 41
      y               = 253
    }
  }
  widget {
    timeseries_definition {
      legend_size = "0"
      show_legend = false
      title       = "Compare to a month before"
      title_align = "left"
      title_size  = "16"
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p90:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p95:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "p99:trace.servlet.request{service:prod-delphi-api-java}"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max)"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p90:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p95:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(p99:trace.servlet.request{service:prod-delphi-api-java})"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      request {
        display_type   = "line"
        on_right_yaxis = false
        q              = "month_before(max:trace.servlet.request{service:prod-delphi-api-java}.rollup(max))"
        style {
          line_type  = "solid"
          line_width = "normal"
          palette    = "dog_classic"
        }
      }
      yaxis {
        include_zero = true
        max          = "auto"
        min          = "auto"
        scale        = "linear"
      }
    }
    widget_layout {
      height          = 21
      is_column_break = false
      width           = 40
      x               = 82
      y               = 253
    }
  }
}
