Exemples de tableaux de bord et de dispositions

Ce guide illustre des configurations de tableau de bord supplémentaires que vous pouvez créer à l'aide de l'API Cloud Monitoring. Pour obtenir d'autres exemples, consultez la section Tableaux de bord installables.

Quand utiliser l'API ?

L'API Dashboard vous permet de gérer plusieurs tableaux de bord à la fois. Même si vous pouvez vous servir de Google Cloud Console pour gérer vos tableaux de bord, vous trouverez peut-être l'API plus simple pour gérer vos tableaux de bord personnalisés de façon groupée.

Vous devez également utiliser l'API si vous souhaitez ajouter les widgets Text, Scorecard ou à espace réservé vide à votre tableau de bord.

Dispositions de tableaux de bord

Tableau de bord dans GridLayout

Ce tableau de bord affiche une ressource GridLayout comportant trois widgets.

{
  "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"
          }
        }
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec une disposition en grille

Tableau de bord dans MosaicLayout

Ce tableau de bord affiche une ressource MosaicLayout comportant deux widgets.

{
  "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"
            }
          }
        }
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec une disposition en mosaïque

Tableau de bord dans RowLayout

Ce tableau de bord affiche une ressource RowLayout comportant trois widgets.

{
  "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"
            }
          }
        ]
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec une disposition en lignes

Tableau de bord dans ColumnLayout

Ce tableau de bord affiche une ressource ColumnLayout comportant trois widgets.

{
  "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"
            }
          }
        ]
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec une disposition en colonnes

Tableaux de bord avec Widgets

Tableau de bord avec un widget XyChart

Ce tableau de bord affiche un tableau de bord comportant un widget XyChart de base. Si vous avez déjà utilisé Google Cloud Console pour créer des graphiques sur des tableaux de bord, ces graphiques sont des instances du widget XyChart.

À l'instar de la fonctionnalité fournie dans Cloud Console, l'API propose des options permettant de modifier la ressource PlotType ou de configurer les modes d'affichage du graphique.

{
  "displayName": "Demo dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Sample line 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"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de widget XyChart

Tableau de bord avec un widget XyChart comportant une ressource STACKED_AREA PlotType

Ce tableau de bord affiche un widget XyChart comportant une ressource STACKED_AREA PlotType.

{
  "displayName": "Demo dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Sample stacked-area 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": "STACKED_AREA"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de widget XyChart avec un graphique en aires empilées

Tableau de bord avec un widget XyChart comportant une ressource STACKED_BAR PlotType

Ce tableau de bord affiche un widget XyChart comportant une ressource STACKED_BAR PlotType.

{
  "displayName": "Demo Dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "My First 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": "STACKED_BAR"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      },
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de widget XyChart avec un graphique en barres empilées

Tableau de bord avec un widget Scorecard de base

Ce tableau de bord affiche un widget Scorecard sans jauge ni graphique sparkline. Il indique l'utilisation du processeur Compute Engine et comporte deux seuils, un qui utilise la couleur jaune pour indiquer que l'utilisation du processeur est supérieure à 70 % et l'autre qui utilise le rouge pour indiquer que l'utilisation du processeur est supérieure à 90 %.

Étant donné que l'utilisation actuelle du processeur est inférieure aux seuils spécifiés, elle est considérée comme une réussite.

{
  "displayName": "Unadorned scorecard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Compute Engine CPU utilization",
        "scorecard": {
          "timeSeriesQuery": {
            "timeSeriesFilter": {
              "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
              "aggregation": {
                "perSeriesAligner": "ALIGN_MEAN",
                "crossSeriesReducer": "REDUCE_MAX",
              }
            },
            "unitOverride": "1"
          },
          "thresholds": [
            {
              "color": "RED",
              "direction": "ABOVE",
              "label": "Danger",
              "value": 0.9,
            },
            {
              "color": "YELLOW",
              "direction": "ABOVE",
              "label": "Warning",
              "value": 0.7,
            }
          ]
        }
      },
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec un widget Scorecard

Tableau de bord avec un widget Scorecard comportant une ressource GaugeView

Ce tableau de bord ajoute une jauge au widget Scorecard de base de l'exemple précédent. L'objet GaugeView peut spécifier une limite supérieure et une limite inférieure, afin d'indiquer la plage de valeurs à afficher sur la jauge. Étant donné que le widget Scorecard affiche des valeurs comprises entre 0 et 1, il s'agit de limites supérieures et inférieures raisonnables. Pour ajouter la jauge, ajoutez ce qui suit au fichier JSON du widget Scorecard de base :

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

Vous trouverez ci-dessous la spécification complète du tableau de bord modifié. La valeur actuelle est inférieure aux seuils, qui sont colorés de manière appropriée sur la jauge.

{
  "displayName": "Gauge scorecard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Compute Engine CPU utilization",
        "scorecard": {
          "timeSeriesQuery": {
            "timeSeriesFilter": {
              "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
              "aggregation": {
                "perSeriesAligner": "ALIGN_MEAN",
                "crossSeriesReducer": "REDUCE_MAX",
              }
            },
            "unitOverride": "1"
          },
          "gaugeView": {
            "lowerBound": 0,
            "upperBound": 1,
          },
          "thresholds": [
            {
              "color": "RED",
              "direction": "ABOVE",
              "label": "Danger",
              "value": 0.9,
            },
            {
              "color": "YELLOW",
              "direction": "ABOVE",
              "label": "Warning",
              "value": 0.7,
            }
          ]
        }
      },
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec un widget Scorecard comportant une ressource GaugeView

Tableau de bord avec un widget Scorecard comportant une ressource SparkChartView

Ce tableau de bord remplace la jauge de l'exemple précédent par un graphique sparkline. L'objet SparkChartView peut créer des graphiques en courbes ou à barres dans un widget Scorecard. Cet exemple utilise une courbe. Tant que la valeur n'enfreint pas un seuil, elle est verte. Pour ajouter le graphique sparkline, remplacez l'objet JSON gaugeView dans le graphique précédent par ce qui suit :

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

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec un widget Scorecard comportant une ressource SparkChartView

Tableau de bord avec un widget Text

Cet exemple montre un tableau de bord simple avec un widget Text.

{
  "displayName": "Demo Dashboard"
  "gridLayout": {
    "widgets": [
      {
        "text" {
          "content": "Hello World"
        }
      }
    ]
  }
}

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec un widget Text

Tableau de bord avec un widget vide

Cet exemple montre un tableau de bord simple avec un widget à espace réservé et vide. Notez que seul le paramètre displayName du tableau de bord apparaît dans le widget.

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

Le tableau de bord ressemble à l'exemple suivant :

Exemple de tableau de bord avec un widget vide