Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

terraform gce monitoring dashboard

I am getting unspecified resource in the dashboard when i create dashboard iwth terraform using this

 

 

resource "google_monitoring_dashboard" "dashboard" {
  dashboard_json = <<EOF
{
  "displayName": "Resource Monitoring Dashboard",
  "gridLayout": {
    "columns": 2,
    "widgets": [
      {
        "title": "CPU Utilization",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_MEAN"
                }
              },
              "unitOverride": "%"
            },
            "plotType": "LINE"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "CPU Utilization",
            "scale": "LINEAR"
          }
        }
      },
      {
        "title": "Disk Read Bytes",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" AND resource.type=\"gce_instance\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "By/s"
            },
            "plotType": "LINE"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "Disk Read Bytes",
            "scale": "LINEAR"
          }
        }
      },
      {
        "title": "Disk Write Bytes",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" AND resource.type=\"gce_instance\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "By/s"
            },
            "plotType": "STACKED_BAR"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "Disk Write Bytes",
            "scale": "LINEAR"
          }
        }
      }
    ]
  }
}
EOF
}

 

any idea why?  

2 2 240
2 REPLIES 2

Hello @gcp888  ,Welcome on Google Cloud Community.

I believe that was internal error, as I've few minutes ago created dashboard from your code, without any issues. BTW, you have issue only with provisioning this particular resource via TF, or it's a piece of TF code? 

DamianS_0-1723179351177.png

--
cheers,
DamianS
LinkedIn medium.com Cloudskillsboost

i modified it a bit because I want to create the dashboard based on instance names. but its not working

resource "google_monitoring_dashboard" "dashboard" {
  dashboard_json = <<EOF
{
  "displayName": "Resource Monitoring Dashboard",
  "gridLayout": {
    "columns": 2,
    "widgets": [
      {
        "title": "CPU Utilization",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\" AND (resource.label.instance_name=\"d-tst-app1-01u1\" OR resource.label.instance_name=\"d-tst-app1-02u1\" OR resource.label.instance_name=\"d-tst-app1-03u1\")",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_MEAN"
                }
              },
              "unitOverride": "%"
            },
            "plotType": "LINE"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "CPU Utilization",
            "scale": "LINEAR"
          }
        }
      },
      {
        "title": "Disk Read Bytes",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" AND resource.type=\"gce_instance\" AND (resource.label.instance_name=\"d-tst-app1-01u1\" OR resource.label.instance_name=\"d-tst-app1-02u1\" OR resource.label.instance_name=\"d-tst-app1-03u1\")",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "By/s"
            },
            "plotType": "LINE"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "Disk Read Bytes",
            "scale": "LINEAR"
          }
        }
      },
      {
        "title": "Disk Write Bytes",
        "xyChart": {
          "dataSets": [{
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" AND resource.type=\"gce_instance\" AND (resource.label.instance_name=\"d-tst-app1-01u1\" OR resource.label.instance_name=\"d-tst-app1-02u1\" OR resource.label.instance_name=\"d-tst-app1-03u1\")",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "By/s"
            },
            "plotType": "STACKED_BAR"
          }],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "Disk Write Bytes",
            "scale": "LINEAR"
          }
        }
      }
    ]
  }
}
EOF
}