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 Likes

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?


cheers,
DamianS
LinkedIn medium.com Cloudskillsboost

1 Like

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
}
1 Like