From 12ea106d6bc9cf921da873166c31f6cb5a5e3908 Mon Sep 17 00:00:00 2001
From: Ryan Kowalewski <rk725@cam.ac.uk>
Date: Wed, 1 Nov 2023 16:12:41 +0000
Subject: [PATCH] feat: remove legacy dashboard resources

---
 dashboard.json | 334 -------------------------------------------------
 dashboard.tf   |  19 ---
 variables.tf   |  11 +-
 3 files changed, 1 insertion(+), 363 deletions(-)
 delete mode 100644 dashboard.json
 delete mode 100644 dashboard.tf

diff --git a/dashboard.json b/dashboard.json
deleted file mode 100644
index a470eca..0000000
--- a/dashboard.json
+++ /dev/null
@@ -1,334 +0,0 @@
-{
-  "displayName": "Cloud Run service: ${service_name}",
-  "mosaicLayout": {
-    "columns": 12,
-    "tiles": [
-      {
-        "width": 6,
-        "height": 4,
-        "widget": {
-          "title": "Request Counts",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/request_count\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" metric.label.\"response_code\"!=\"404\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_RATE",
-                      "crossSeriesReducer": "REDUCE_SUM",
-                      "groupByFields": [
-                        "metric.label.\"response_code_class\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "timeshiftDuration": "0s",
-            "yAxis": {
-              "label": "y1Axis",
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      },
-      {
-        "xPos": 6,
-        "width": 6,
-        "height": 4,
-        "widget": {
-          "title": "Request Latencies",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_DELTA",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_99",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_DELTA",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_95",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/request_latencies\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_DELTA",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_50",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "timeshiftDuration": "0s",
-            "yAxis": {
-              "label": "y1Axis",
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      },
-      {
-        "yPos": 4,
-        "width": 6,
-        "height": 3,
-        "widget": {
-          "title": "Container CPU Utilisation",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/cpu/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_99"
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/cpu/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_95"
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/cpu/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_50"
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "timeshiftDuration": "0s",
-            "yAxis": {
-              "label": "y1Axis",
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      },
-      {
-        "xPos": 6,
-        "yPos": 4,
-        "width": 6,
-        "height": 3,
-        "widget": {
-          "title": "Container Memory Utiliation",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/memory/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_99",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/memory/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_95",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              },
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/memory/utilizations\" resource.type=\"cloud_run_revision\" resource.label.\"service_name\"=\"${service_name}\" resource.label.\"location\"=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_SUM",
-                      "crossSeriesReducer": "REDUCE_PERCENTILE_50",
-                      "groupByFields": [
-                        "resource.label.\"service_name\""
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "timeshiftDuration": "0s",
-            "yAxis": {
-              "label": "y1Axis",
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      },
-      {
-        "yPos": 7,
-        "width": 6,
-        "height": 3,
-        "widget": {
-          "title": "Instance Count",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/instance_count\" resource.type=\"cloud_run_revision\" resource.labels.service_name=\"${service_name}\" resource.labels.location=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_MAX",
-                      "crossSeriesReducer": "REDUCE_SUM",
-                      "groupByFields": [
-                        "resource.label.service_name",
-                        "metric.label.state"
-                      ]
-                    }
-                  },
-                  "unitOverride": "count"
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "xAxis": {
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      },
-      {
-        "xPos": 6,
-        "yPos": 7,
-        "width": 6,
-        "height": 3,
-        "widget": {
-          "title": "Billable instance time",
-          "xyChart": {
-            "dataSets": [
-              {
-                "timeSeriesQuery": {
-                  "timeSeriesFilter": {
-                    "filter": "metric.type=\"run.googleapis.com/container/billable_instance_time\" resource.type=\"cloud_run_revision\" resource.labels.service_name=\"${service_name}\" resource.labels.location=\"${region}\"",
-                    "aggregation": {
-                      "alignmentPeriod": "60s",
-                      "perSeriesAligner": "ALIGN_RATE",
-                      "crossSeriesReducer": "REDUCE_SUM",
-                      "groupByFields": [
-                        "resource.label.service_name"
-                      ]
-                    }
-                  }
-                },
-                "plotType": "LINE",
-                "minAlignmentPeriod": "60s",
-                "targetAxis": "Y1"
-              }
-            ],
-            "xAxis": {
-              "scale": "LINEAR"
-            },
-            "chartOptions": {
-              "mode": "COLOR"
-            }
-          }
-        }
-      }
-    ]
-  }
-}
diff --git a/dashboard.tf b/dashboard.tf
deleted file mode 100644
index dcf1d65..0000000
--- a/dashboard.tf
+++ /dev/null
@@ -1,19 +0,0 @@
-# Create a monitoring dashboard for the provisioned Cloud Run service.
-#
-# The dashboard, defined in ./dashboard.json, contains:
-# - Request counts broken down by response code class (ignoring 404s).
-# - Request latencies for 50th, 95th and 99th percentile.
-# - Container CPU and memory utilisations for 50th, 95th and 99th percentile.
-# - Container instance count and billable instance time.
-locals {
-  dashboard_template = templatefile("${path.module}/dashboard.json", {
-    service_name = var.name
-    region       = var.cloud_run_region
-  })
-}
-
-resource "google_monitoring_dashboard" "dashboard" {
-  count = var.create_monitoring_dashboard ? 1 : 0
-
-  dashboard_json = local.dashboard_template
-}
diff --git a/variables.tf b/variables.tf
index 59a1a8e..8c20772 100644
--- a/variables.tf
+++ b/variables.tf
@@ -370,15 +370,6 @@ variable "disable_monitoring" {
 EOL
 }
 
-variable "create_monitoring_dashboard" {
-  type        = bool
-  default     = false
-  description = <<-EOL
-    Optional. Determines whether to create the monitoring dashboard defined in ./dashboard.json
-    for the provisioned Cloud Run service. Defaults to false.
-EOL
-}
-
 variable "enable_static_egress_ip" {
   default     = false
   type        = bool
@@ -462,4 +453,4 @@ variable "vpc_access_connector_max_throughput" {
     Optional. The maximum throughput of the connector in megabytes per second.
     Defaults to 300.
 EOL
-}
\ No newline at end of file
+}
-- 
GitLab