Contoh dasbor dan tata letak

Halaman ini mengilustrasikan cara membuat dasbor menggunakan Cloud Monitoring API. Untuk setiap contoh, definisi dasbor di JSON dan dasbor terkait akan ditampilkan.

Cloud Monitoring juga menyediakan kumpulan definisi dasbor pilihan di GitHub. Anda dapat menginstal definisi ini di project Google Cloud sebagai dasbor kustom. Untuk informasi tentang repositori ini dan cara menginstal dasbor ini, lihat Menginstal contoh dasbor.

Kapan menggunakan API

Cloud Monitoring API menyediakan cara untuk mengelola banyak dasbor sekaligus. Meskipun dapat menggunakan Konsol Google Cloud untuk mengelola dasbor, akan lebih mudah jika Anda menggunakan API untuk mengelola dasbor kustom secara massal.

Anda juga harus menggunakan API tersebut jika ingin menambahkan widget placeholder kosong ke dasbor.

Menggunakan MQL atau PromQL dengan API

Anda membuat dasbor menggunakan metode dashboards.create. Anda meneruskan objek Dashboard ke metode API, yang berisi satu entri untuk setiap widget yang ditampilkan dasbor.

Saat widget menampilkan data deret waktu, seperti widget diagram, entrinya dalam objek Dashboard berisi objek TimeSeriesQuery. Objek ini menjelaskan data deret waktu yang akan dibuat diagram, dan Anda menentukan data tersebut menggunakan filter Monitoring, kueri MQL, atau kueri PromQL:

  • Untuk menggunakan filter Monitoring, isi kolom timeSeriesField. Contoh di halaman ini menggunakan filter Cloud Monitoring.

  • Untuk menggunakan kueri MQL, isi kolom timeSeriesQueryLanguage. Untuk informasi selengkapnya, lihat Membuat diagram.

  • Untuk menggunakan kueri PromQL, isi kolom prometheusQuery. Untuk informasi umum, lihat PromQL di Cloud Monitoring.

Tata letak dasbor

Bagian ini berisi informasi tentang berbagai tata letak dasbor yang tersedia.

Dasbor di GridLayout

Dasbor ini menampilkan GridLayout dengan tiga widget.

{
  "displayName": "Grid Layout Example",
  "gridLayout": {
    "columns": "2",
    "widgets": [
      {
        "title": "Widget 1",
        "xyChart": {
          "dataSets": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"agent.googleapis.com/nginx/connections/accepted_count\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "1"
            },
            "plotType": "LINE"
          },
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          }
        }
      },
      {
        "text": {
          "content": "Widget 2"
        }
      },
      {
        "title": "Widget 3",
        "xyChart": {
          "dataSets": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"agent.googleapis.com/nginx/connections/accepted_count\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "1"
            },
            "plotType": "STACKED_BAR"
          },
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          }
        }
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan tata letak petak.

Dasbor di MosaicLayout

Dasbor ini menampilkan MosaicLayout dengan dua widget.

{
  "displayName": "Mosaic Layout Example",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "xPos": 2,
        "yPos": 2,
        "width": 7,
        "height": 2,
        "widget": {
          "title": "CPU utilization in us-central1-a",
          "scorecard": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" resource.label.zone=\"us-central1-a\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_MEAN",
                  "crossSeriesReducer": "REDUCE_MAX"
                }
              },
              "unitOverride": "1"
            },
            "gaugeView": {
              "upperBound": 1.5
            },
            "thresholds": [
              {
                "value": 0.8,
                "color": "YELLOW",
                "direction": "ABOVE"
              },
              {
                "value": 1,
                "color": "RED",
                "direction": "ABOVE"
              }
            ]
          }
        }
      },
      {
        "xPos": 1,
        "yPos": 5,
        "width": 4,
        "height": 4,
        "widget": {
          "title": "My Chart",
          "xyChart": {
            "dataSets": [
              {
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
                    "aggregation": {
                      "perSeriesAligner": "ALIGN_MEAN",
                      "crossSeriesReducer": "REDUCE_MAX",
                      "groupByFields": [
                        "resource.label.zone"
                      ]
                    }
                  },
                  "unitOverride": "'1'"
                },
                "plotType": "LINE",
                "minAlignmentPeriod": "60s"
              }
            ],
            "yAxis": {
              "label": "y1Axis",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan tata letak mosaik.

Dasbor di RowLayout

Dasbor ini menampilkan RowLayout dengan tiga widget.

{
  "displayName": "Row Layout Example",
  "rowLayout": {
    "rows": [
      {
        "weight": "1",
        "widgets": [
          {
            "text": {
              "content": "Widget 1",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 2",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 3",
              "format": "MARKDOWN"
            }
          }
        ]
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan tata letak baris.

Dasbor di ColumnLayout

Dasbor ini menampilkan ColumnLayout dengan tiga widget.

{
  "displayName": "Column Layout Example",
  "columnLayout": {
    "columns": [
      {
        "weight": "1",
        "widgets": [
          {
            "text": {
              "content": "Widget 1",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 2",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 3",
              "format": "MARKDOWN"
            }
          }
        ]
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan tata letak kolom

Dasbor dengan Widgets

Dasbor dengan XyChart

Dasbor ini menampilkan dasbor dengan XyChart dasar. Jika Anda pernah menggunakan konsol Google Cloud untuk membuat diagram di dasbor, diagram tersebut adalah instance dari widget XyChart.

Serupa dengan fungsi yang disediakan di Konsol Google Cloud, API menyediakan opsi untuk mengubah PlotType diagram atau untuk mengonfigurasi mode tampilan diagram.

{
  "dashboardFilters": [],
  "displayName": "Example line chart",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

Diagram di dasbor terlihat mirip dengan contoh berikut:

Contoh XyChart.

Bagian berikutnya menggambarkan cara membuat widget diagram Log Analytics, cara menampilkan nilai minimum pada diagram, dan cara mengonfigurasi apakah diagram menggunakan sumbu Y kiri, sumbu Y kanan, atau keduanya.

Dasbor dengan diagram Log Analytics

Dasbor ini menampilkan dasbor dengan diagram Log Analytics. Contoh JSON berisi kueri SQL.

{
  "displayName": "Example Log Analytics",
  "dashboardFilters": [],
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "width": 24,
        "height": 16,
        "widget": {
          "title": "Sample Log Analytics chart",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [
                  {
                    "column": "location",
                    "columnType": "STRING",
                    "maxBinCount": 5,
                    "sortColumn": "location",
                    "sortOrder": "SORT_ORDER_ASCENDING"
                  }
                ],
                "measures": [
                  {
                    "aggregationFunction": {
                      "parameters": [],
                      "type": "count"
                    },
                    "column": ""
                  }
                ],
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "opsAnalyticsQuery": {
                    "queryHandle": "",
                    "sql": "SELECT\n  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,\n  severity,\nFROM\n  `TABLE`"
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  },
  "labels": {}
}

Diagram di dasbor terlihat mirip dengan contoh berikut:

Contoh XyChart dengan kueri Log Analytics SQL.

Dasbor dengan XyChart dan nilai minimum

Dasbor ini menampilkan dasbor dengan XyChart dasar, nilai minimum, dan sumbu Y kiri yang dikonfigurasi.

{
  "dashboardFilters": [],
  "displayName": "Example line with threshold",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [
              {
                "label": "",
                "targetAxis": "Y1",
                "value": 0.2
              }
            ],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

Dalam contoh sebelumnya, JSON menentukan penggunaan sumbu Y kiri karena berisi struktur y2Axis. Di kolom targetAxis, gunakan "Y1" untuk sumbu Y kanan dan "Y2" untuk sumbu Y kiri. Jika Anda menghilangkan kolom targetAxis, sumbu Y kanan akan digunakan.

Diagram di dasbor ini terlihat mirip dengan contoh berikut:

Contoh XyChart yang menggunakan sumbu Y di sebelah kiri dan memiliki nilai minimum.

Anda dapat membuat diagram yang menampilkan beberapa jenis metrik dan yang menggunakan sumbu kiri dan kanan. Contoh sebelumnya mengilustrasikan diagram dengan jenis metrik tunggal, yaitu, ada satu elemen dalam array dataSets. Saat Anda membuat diagram dua jenis metrik, array dataSets berisi dua elemen, dan setiap elemen menentukan targetAxis-nya.

Dasbor dengan XyChart dengan STACKED_AREA PlotType

Dasbor ini menampilkan XyChart dengan STACKED_AREA PlotType.

{
  "dashboardFilters": [],
  "displayName": "Example stacked area",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_AREA",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

Diagram di dasbor terlihat mirip dengan contoh berikut:

Contoh XyChart dengan plot area bertumpuk.

Dasbor dengan XyChart dengan STACKED_BAR PlotType

Dasbor ini menampilkan XyChart dengan STACKED_BAR PlotType.

{
  "dashboardFilters": [],
  "displayName": "Example stacked bar",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh XyChart dengan diagram batang bertumpuk.

Dasbor dengan Scorecard dasar

Dasbor ini menampilkan Scorecard tanpa pengukur atau garis percik. Contoh ini menunjukkan pemakaian CPU Compute Engine dan kartu skor memiliki dua batas. Satu batas menggunakan warna kuning untuk menunjukkan bahwa penggunaan CPU di atas 70%, sedangkan nilai minimum lainnya menggunakan warna merah untuk menunjukkan bahwa penggunaan CPU lebih dari 90%.

Karena pemakaian CPU saat ini kurang dari batas yang ditentukan, warnanya hijau.

{
  "dashboardFilters": [],
  "displayName": "Example-basic scorecard",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 8,
        "widget": {
          "scorecard": {
            "thresholds": [
              {
                "color": "YELLOW",
                "direction": "ABOVE",
                "label": "",
                "value": 0.7
              },
              {
                "color": "RED",
                "direction": "ABOVE",
                "label": "",
                "value": 0.9
              }
            ],
            "timeSeriesQuery": {
              "outputFullDuration": true,
              "timeSeriesFilter": {
                "aggregation": {
                  "alignmentPeriod": "60s",
                  "crossSeriesReducer": "REDUCE_MEAN",
                  "groupByFields": [],
                  "perSeriesAligner": "ALIGN_MEAN"
                },
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
              }
            }
          },
          "title": "VM Instance - CPU utilization [MEAN]"
        },
        "width": 16
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget Kartu Skor.

Dasbor dengan Scorecard dengan GaugeView

Dasbor ini menambahkan pengukur ke kartu skor dasar di contoh sebelumnya. Objek GaugeView dapat menentukan batas atas dan bawah, untuk menentukan rentang nilai yang akan ditampilkan pada pengukur. Karena kartu skor menampilkan nilai dari 0 hingga 1, batas atas dan bawah tersebut wajar. Untuk menambahkan pengukur, tambahkan hal berikut ke JSON untuk kartu skor dasar:

  "gaugeView": {
    "lowerBound": 0,
    "upperBound": 1,
  },

Berikut ini spesifikasi dasbor yang dimodifikasi secara lengkap: Nilai saat ini berada di bawah ambang batas, yang diberi warna yang sesuai pada alat pengukur.

{
  "dashboardFilters": [],
  "displayName": "Example-Gauge",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 8,
        "widget": {
          "scorecard": {
            "gaugeView": {
              "lowerBound": 0,
              "upperBound": 1
            },
            "thresholds": [
              {
                "color": "YELLOW",
                "direction": "ABOVE",
                "label": "",
                "value": 0.7
              },
              {
                "color": "RED",
                "direction": "ABOVE",
                "label": "",
                "value": 0.9
              }
            ],
            "timeSeriesQuery": {
              "outputFullDuration": true,
              "timeSeriesFilter": {
                "aggregation": {
                  "alignmentPeriod": "60s",
                  "crossSeriesReducer": "REDUCE_MEAN",
                  "groupByFields": [],
                  "perSeriesAligner": "ALIGN_MEAN"
                },
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
              }
            }
          },
          "title": "VM Instance - CPU utilization [MEAN]"
        },
        "width": 16
      }
    ]
  }
}

Diagram di dasbor ini terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget Kartu Skor dengan GaugeView.

Dasbor dengan Scorecard dengan SparkChartView

Dasbor ini menggantikan pengukur di contoh sebelumnya dengan garis percik. Objek SparkChartView dapat membuat diagram garis atau diagram batang di kartu skor. Contoh ini menggunakan garis. Asalkan tidak melanggar batas, nilainya akan berwarna hijau. Untuk menambahkan garis percik, ganti objek JSON gaugeView pada diagram sebelumnya dengan yang berikut ini:

  "sparkChartView": {
    "sparkChartType": "SPARK_LINE"
  },

Kartu skor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget Kartu Skor dengan SparkChartView.

Dasbor dengan widget PieChart

Dasbor dapat menampilkan data dengan menggunakan bagan pai. Setiap deret waktu berkontribusi satu irisan pada lingkaran. Diagram lingkaran tidak menampilkan data dari waktu ke waktu; melainkan hanya menampilkan nilai terbaru.

Semua diagram lingkaran ditentukan oleh widget PieChart. Untuk mengonfigurasi diagram guna menampilkan jumlah pengukuran terbaru, tetapkan kolom chartType ke DONUT. Jika tidak, tetapkan kolom ini ke nilai PIE.

"pieChart": {
  "chartType": "DONUT",
},

Contoh berikut mengonfigurasi dasbor dengan dua diagram lingkaran, dengan satu diagram lingkaran dikonfigurasi sebagai donat:

{
  "dashboardFilters": [],
  "displayName": "Example Pie Donut",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    }
                  }
                }
              }
            ]
          },
          "title": "VM Instance - Disk read bytes [MEAN]"
        },
        "width": 24
      },
      {
        "height": 16,
        "widget": {
          "pieChart": {
            "chartType": "PIE",
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    }
                  }
                }
              }
            ]
          },
          "title": "VM Instance - Disk read bytes [MEAN]"
        },
        "width": 24,
        "xPos": 24
      },
    ]
  }
}

Seperti yang ditunjukkan pada screenshot berikut, kedua widget menampilkan data sebagai diagram lingkaran, dengan satu widget yang menampilkan jumlah nilai terbaru:

Contoh widget **PieChart**.

Dasbor dengan widget TimeSeriesTable

Dasbor dapat menampilkan data dalam format tabel, dengan ada satu baris untuk setiap deret waktu yang dipantau. Tabel tidak menampilkan data dari waktu ke waktu; sebaliknya, tabel hanya menampilkan nilai terbaru.

Semua tabel ditentukan oleh widget TimeSeriesTable:

  • Untuk mengonfigurasi jumlah maksimum baris yang akan ditampilkan, tetapkan kolom pickTimeSeriesFilter. Misalnya, untuk menampilkan hanya dua deret waktu dengan nilai rata-rata terbesar selama 10 menit sebelumnya, sertakan baris berikut:

    "pickTimeSeriesFilter": {
        "direction": "TOP",
        "numTimeSeries": 2,
        "rankingMethod": "METHOD_MEAN"
    },
    

    Jika Anda menghapus kolom pickTimeSeriesFilter, tabel akan menampilkan maksimum 300 baris.

  • Untuk mengonfigurasi cara tabel menampilkan data, gunakan kolom metricVisualization:

    • Untuk menampilkan hanya nilai seperti "25%", hapus kolom ini atau tetapkan nilai ke "NUMBER". Saat Anda menggunakan konfigurasi ini, Konsol Google Cloud akan menampilkan widget sebagai widget Tabel.
    • Untuk menampilkan nilai dan indikator visual nilai dibandingkan dengan rentang nilai yang memungkinkan, tetapkan nilai kolom ini ke "BAR". Saat Anda menggunakan konfigurasi ini, Konsol Google Cloud akan menampilkan widget sebagai widget Daftar Teratas.
  • Untuk mengonfigurasi kolom yang ditampilkan, gunakan kolom columnSettings. Contoh berikut menghasilkan tabel dengan dua kolom, satu berjudul Latest Value, yang merupakan kolom wajib, dan satunya lagi berjudul Name (from instance_id):

    "columnSettings": [
      {
        "column": "Name (from instance_id)",
        "visible": true
      }
    ],
    

    Jika Anda menghapus kolom columnSettings, tabel akan menampilkan satu kolom untuk setiap label.

Contoh berikut menampilkan dasbor dengan widget Table dan widget Top List:

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "value",
                "visible": false
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "metricVisualization": "NUMBER"
          },
          "title": "Table"
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "value",
                "visible": false
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "metricVisualization": "BAR"
          },
          "title": "Top List"
        },
        "width": 24
      }
    ]
  }
}

Seperti yang ditunjukkan dalam screenshot berikut, kedua widget menampilkan data dalam bentuk tabel, dan keduanya berisi panel filter. Namun, kedua widget ini telah dikonfigurasi sebelumnya untuk menampilkan kolom yang berbeda dan untuk merepresentasikan nilai numerik secara berbeda:

Contoh dasbor dengan widget tabel.

Kolom tabel sesuai dengan label. Setiap baris terkait dengan deret waktu.

Dasbor dengan widget Text

Contoh ini menampilkan dasbor dengan widget Text.

{
  "dashboardFilters": [],
  "displayName": "DB2+TE",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
    ...
      {
        "height": 16,
        "widget": {
          "text": {
            "content": "# Support information\n\n\nContact information: my-support-team@example.com\nOnline help: [Playbooks](https://example.com)\n\n",
            "format": "MARKDOWN",
            "style": {
              "backgroundColor": "",
              "fontSize": "FS_LARGE",
              "horizontalAlignment": "H_LEFT",
              "padding": "P_EXTRA_SMALL",
              "textColor": "",
              "verticalAlignment": "V_TOP"
            }
          }
        },
        "width": 24,
        "yPos": 14
      }
    ]
  }
}

Widget teks terlihat mirip dengan contoh berikut:

Contoh widget teks.

Dasbor dengan widget AlertChart

Dasbor ini menampilkan dasbor dengan widget AlertChart:

{
  "category": "CUSTOM",
  "displayName": "Alert chart example",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "alertChart": {
            "name": "projects/my-project/alertPolicies/14205854094151528373"
          }
        },
        "width": 6,
      }
    ]
  }
}

Tidak seperti widget dasbor lainnya, Anda tidak menentukan filter judul atau metrik untuk widget tersebut. Sebagai gantinya, tentukan nama resource untuk kebijakan pemberitahuan. Entri terakhir di kolom name adalah ID kebijakan pemberitahuan.

Diagram di dasbor terlihat mirip dengan contoh berikut:

Contoh diagram pemberitahuan.

Dalam contoh ini, kebijakan pemberitahuan memantau penggunaan CPU dari dua virtual machine yang berbeda. Garis putus-putus menunjukkan ambang batas kondisi, yang ditetapkan ke 50%. Chip hijau dengan label No incidents menunjukkan bahwa tidak ada insiden terbuka untuk kebijakan pemberitahuan. Jika Anda menempatkan pointer pada chip insiden, dialog akan terbuka yang mengarah ke kebijakan pemberitahuan yang mendasarinya.

Dasbor dengan widget ErrorReportingPanel

Dasbor ini menampilkan dasbor dengan widget ErrorReportingPanel:

{
  "dashboardFilters": [],
  "displayName": "Error reporting widget",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "errorReportingPanel": {
            "projectNames": [
              "projects/my-project"
            ],
            "services": [],
            "versions": []
          },
          "title": "Error Reporting Panel"
        },
        "width": 24,
      }
    ]
  }
}

Sebaiknya konfigurasi tinggi panel pelaporan error minimal 16 unit, dan lebarnya minimal 24 unit. Pada contoh sebelumnya, widget memiliki tinggi 16 unit dan lebar 24 unit.

Panel pelaporan error menampilkan grup error dari project yang dipilih, dan panel ini dapat membatasi grup error ke jenis resource, layanan, atau versi layanan tertentu. Contoh berikut mengilustrasikan panel pelaporan error:

Contoh panel konfigurasi panel pelaporan error.

Dasbor dengan widget IncidentList

Dasbor ini menampilkan dasbor dengan widget IncidentList:

{
  "category": "CUSTOM",
  "dashboardFilters": [],
  "displayName": "Incident widget",
  "labels": {},
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 5,
        "widget": {
          "incidentList": {
            "monitoredResources": [],
            "policyNames": []
          },
          "title": "Incidents"
        },
        "width": 8,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

Contoh sebelumnya menetapkan kolom title ke Incidents, dan mengonfigurasi widget untuk menampilkan semua insiden untuk resource jenis gce_instance. Saat mengonfigurasi widget ini, Anda dapat memilih beberapa kebijakan pemberitahuan atau beberapa jenis resource.

Widget insiden di dasbor terlihat mirip dengan contoh berikut:

Contoh widget insiden.

Dasbor dengan widget LogsPanel

Dasbor ini menampilkan dasbor dengan widget LogsPanel:

{
  "category": "CUSTOM",
  "displayName": "Logs Panel",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "logsPanel": {
            "filter": "",
            "resourceNames": [
              "projects/012012012012"
            ]
          },
          "title": "Logs Panel"
        },
        "width": 6,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

Sebaiknya konfigurasi tinggi panel log minimal 3 unit, dan lebarnya minimal 4 unit. Pada contoh sebelumnya, widget memiliki tinggi 4 unit dan lebar 6 unit.

Panel log menampilkan log dari project Google Cloud yang tercantum di kolom resourceNames. Contoh sebelumnya hanya menetapkan satu project; tetapi Anda dapat menyertakan beberapa project dalam daftar ini.

Panel log terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget panel log.

Untuk mendapatkan informasi tentang pemecahan masalah, lihat Panggilan API untuk membuat dasbor dengan panel log gagal.

Dasbor dengan widget CollapsibleGroup

Dasbor ini menampilkan dasbor dengan widget CollapsibleGroup:

{
  "category": "CUSTOM",
  "displayName": "Group testing",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "collapsibleGroup": {
            "collapsed": false
          },
          "title": "My group"
        },
        "width": 12,
        "xPos": 0,
        "yPos": 0
      },
      {
        "height": 4,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "apiSource": "DEFAULT_CLOUD",
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_NONE",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_NONE",
                      "perSeriesAligner": "ALIGN_NONE"
                    }
                  }
                }
              }
            ],
            "thresholds": [],
            "timeshiftDuration": "0s",
            "yAxis": {
              "label": "y1Axis",
              "scale": "LINEAR"
            }
          }
        },
        "width": 6,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

Pada contoh sebelumnya, widget grup yang dapat diciutkan berisi satu diagram yang menunjukkan penggunaan CPU instance VM. Widget grup yang dapat diciutkan mencakup seluruh baris tabel. Widget disertakan dalam grup jika spesifikasi posisi dan tinggi grup (x,y) menyertakan posisi (x,y) widget. Pada contoh sebelumnya, grup berada di posisi (0,0) dan tingginya adalah 4. xyChart berada pada posisi (0,0), sehingga disertakan dalam grup. Namun, jika posisi diagram tersebut diubah menjadi (0,5), diagram akan dikecualikan dari grup. Terakhir, jika posisi widget (x,y) menyebabkan widget disertakan dalam grup, tinggi widget grup yang dapat diciutkan mungkin diperluas.

Untuk menyertakan widget grup di dasbor, dasbor harus memiliki MosaicLayout.

Widget grup yang dapat diciutkan terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget grup yang dapat diciutkan.

Dasbor dengan widget SingleViewGroup

Widget SingleViewGroup menampilkan satu anggota grup dalam satu waktu. Anda menentukan diagram dan widget lainnya yang merupakan anggota dalam grup. Selain itu, Anda dapat mengontrol widget mana dalam grup yang ditampilkan menggunakan menu pada widget SingleViewGroup.

Dasbor ini menampilkan dasbor dengan widget SingleViewGroup:

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "singleViewGroup": {},
          "title": "Untitled group"
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk read bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk write bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 16
      }
    ]
  }
}

Seperti yang ditunjukkan pada contoh sebelumnya, array tiles berisi satu objek SingleViewGroup; tetapi, objek tersebut tidak menentukan objek yang dikandungnya. Namun, keanggotaan dalam objek SingleViewGroup ditentukan oleh nilai kolom width dan yPos. Objek yang nilai kolom width dan yPos cocok dengan nilai objek SingleViewGroup ditampung dalam objek SingleViewGroup. Dalam contoh sebelumnya, objek SingleViewGroup berisi dua diagram.

Dasbor dengan widget SectionHeader

Widget SectionHeader membuat pemisah horizontal di dasbor Anda, dan membuat entri di tabel isi dasbor. Anda dapat menyesuaikan entri dalam daftar isi, dan menyertakan informasi tambahan dalam widget. Anda juga dapat mengonfigurasi widget untuk menambahkan pemisah ke daftar isi setelah entri header bagian.

Dasbor ini menampilkan dasbor dengan diagram tunggal dan widget SectionHeader:

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk write bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 4
      },
      {
        "height": 4,
        "widget": {
          "sectionHeader": {
            "dividerBelow": true,
            "subtitle": "Instance metrics"
          },
          "title": "Metrics"
        },
        "width": 48
      }
    ]
  }
}

Pada objek SectionHeader, nilai kolom title ditampilkan di widget dan di daftar isi. Nilai kolom subtitle hanya ditampilkan oleh widget. Jika nilai dividerBelow adalah true, pemisah ditambahkan ke daftar isi.

Dasbor dengan widget SLO

Dasbor ini menampilkan dasbor dengan widget SLO:

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "SLO Error Budget: 99.5% - Distribution Cut - Calendar month",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "Remaining error requests before SLO is burned",
                "measures": [],
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "perSeriesAligner": "ALIGN_NEXT_OLDER"
                    },
                    "filter": "select_slo_budget(\"projects/Project_Number/services/SERVICE_ID/serviceLevelObjectives/SLO_ID\")",
                  },
                  "unitOverride": "1"
                }
              }
            ],
            "thresholds": []
          }
        },
        "width": 24
      }
    ]
  }
}

Seperti yang ditunjukkan JSON sebelumnya, diagram SLO direpresentasikan sebagai objek XyChart. Objek ini menentukan semua kolom agregasi, nilai minimum, dan nilai kolom filter merupakan pemilih deret waktu. Untuk mengetahui informasi selengkapnya tentang pemilih ini, baca artikel Mengambil data SLO.

Widget SLO terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget SLO.

Dasbor dengan widget kosong

Contoh ini menampilkan dasbor dengan widget placeholder kosong. Nilai kolom displayName akan muncul di widget.

{
  "displayName": "Demo Dashboard",
  "gridLayout": {
    "widgets": [
      {
        "blank": {}
      }
    ]
  }
}

Dasbor terlihat mirip dengan contoh berikut:

Contoh dasbor dengan widget kosong.

Dasbor dengan filter permanen

Untuk mengetahui contoh dasbor dengan filter permanen, lihat Filter dasbor.