{"id":20148263,"url":"https://github.com/chainguard-dev/terraform-cloudrun-dashboard","last_synced_at":"2025-05-06T21:34:35.932Z","repository":{"id":211385076,"uuid":"728957797","full_name":"chainguard-dev/terraform-cloudrun-dashboard","owner":"chainguard-dev","description":null,"archived":false,"fork":false,"pushed_at":"2023-12-19T04:08:05.000Z","size":467,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2023-12-19T09:19:07.568Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chainguard-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-12-08T04:27:30.000Z","updated_at":"2023-12-13T08:54:54.000Z","dependencies_parsed_at":"2023-12-19T06:50:29.659Z","dependency_job_id":null,"html_url":"https://github.com/chainguard-dev/terraform-cloudrun-dashboard","commit_stats":null,"previous_names":["chainguard-dev/terraform-cloudrun-dashboard"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainguard-dev%2Fterraform-cloudrun-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainguard-dev%2Fterraform-cloudrun-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainguard-dev%2Fterraform-cloudrun-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chainguard-dev%2Fterraform-cloudrun-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chainguard-dev","download_url":"https://codeload.github.com/chainguard-dev/terraform-cloudrun-dashboard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224537004,"owners_count":17327687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T22:36:28.416Z","updated_at":"2024-11-13T22:36:30.825Z","avatar_url":"https://github.com/chainguard-dev.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `terraform-cloudrun-dashboard`\n\nThis module creates `google_monitoring_dashboard` resources in a repeatable structured way.\n\n## Usage\n\nThe most basic example is a multi-regional Cloud Run dashboard:\n\n```hcl\nmodule \"cloudrun-dashboard\" {\n  source       = \"https://github.com/chainguard-dev/terraform-cloudrun-dashboard/cloudrun-service\"\n  project_id   = \"[MY-PROJECT]\"\n  service_name = \"[MY-SERVICE]\"\n}\n```\n\nThis creates a dashboard with the following tiles:\n\n- Request count grouped by response status\n- Incoming request latency (p50,p95,p99)\n- Instance count grouped by revision name\n- CPU utilization\n- Memory utilization\n- Startup latency\n- Bytes sent\n- Bytes received\n\nThis can be useful if you want to get a quick overview of your Cloud Run service's performance across many regions, where the service has the same name in each region.\n\nWhen exporting a dashboard from the console, there are certain fields that the console defaults to that do not get reconciled by the Terraform provider.\nThis results in permanent diffs during `terraform plan`.\nIn most cases you shouldn't have to care, except when redefining exported dashboards.\n\nIt dashboard looks something like this:\n\n![Screenshot of an example dashboard](./screenshot.png)\n\n_(This is probably out of date!)_\n\nThere's also a dashboard for Cloud Run Jobs:\n\n```hcl\nmodule \"cloudrun-job\" {\n  source       = \"https://github.com/chainguard-dev/terraform-cloudrun-dashboard/cloudrun-job\"\n  project_id   = \"[MY-PROJECT]\"\n  job_name     = \"[MY-JOB]\"\n}\n```\n\nThe dashboard modules output the URL of the dashboard in the Google Cloud Console.\n\n## Advanced Usage: Alert Graphs\n\nIf you've defined alert policies, you can display graphs for those policies at the top of the dashboard too:\n\n```\nmodule \"cloudrun-service\" {\n  source       = \"https://github.com/chainguard-dev/terraform-cloudrun-dashboard/cloudrun-service\"\n  project_id   = \"[MY-PROJECT]\"\n  service_name = \"[MY-SERVICE]\"\n  alert_policies {\n    \"Prober\": google_monitoring_alert_policy.prober.name\n  }\n}\n```\n\n## Advanced Usage: Customizing a dashboard with modular tiles\n\nTiles in the dashboard are defined as sub-modules in this repository.\n\nThis means that, in addition to just using the module directly, you can define your own module using the sub-modules as a base.\n\nBased on [`main.tf`](./main.tf), you can create a new `google_monitoring_dashboard` resource like so:\n\n```hcl\nmodule \"fancy\" {\n  source = \"https://github.com/chainguard-dev/terraform-cloudrun-dashboard//tiles/xy\"\n  title = \"Fancy Tile\"\n  filter = [\n    \"metric.type=\\\"run.googleapis.com/request_count\\\"\", // Show request counts...\n    \"resource.type=\\\"cloud_run_revision\\\"\"              // ...for all Cloud Run services\n  ]\n  group_by_fields = [\"resource.label.\\\"service_name\\\"\"] // ...grouped by service name\n}\n\nresource \"google_monitoring_dashboard\" \"dashboard\" {\n  project = var.project_id\n\n  dashboard_json = jsonencode({\n    \"displayName\" : \"${var.service_name} Custom Dashboard\",\n    \"gridLayout\" : {\n      \"columns\" : 3,\n      \"widgets\" : [\n        module.fancy.tile,\n        //... add more here\n      ]\n    }\n  })\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainguard-dev%2Fterraform-cloudrun-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchainguard-dev%2Fterraform-cloudrun-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchainguard-dev%2Fterraform-cloudrun-dashboard/lists"}