Ce document explique comment créer et gérer des tableaux de bord personnalisés et les widgets de ces tableaux de bord à l'aide de la ressource Dashboard
de l'API Cloud Monitoring.
Les exemples ci-dessous montrent comment gérer vos tableaux de bord à l'aide de curl
pour appeler l'API et comment utiliser la CLI Google Cloud.
Vous pouvez également gérer vos tableaux de bord personnalisés via la console Google Cloud, mais l'API vous permet de gérer plusieurs tableaux de bord en même temps et par programmation.
Le point de terminaison accepte les méthodes suivantes pour la gestion et la configuration des tableaux de bord :
dashboards.create
: crée un tableau de bord.dashboards.delete
: supprime le tableau de bord spécifié.dashboards.list
: récupère la liste de tous les tableaux de bord d'un projet donné.dashboards.get
: récupère le tableau de bord spécifié.dashboards.patch
: met à jour la structure du tableau de bord spécifié.
Vous pouvez appeler l'API directement à l'aide de l'utilitaire curl
ou de la Google Cloud CLI.
Vous ne pouvez pas récupérer, modifier ni supprimer des tableaux de bord prédéfinis.
Cette fonctionnalité n'est disponible que pour les projets Google Cloud. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
À propos des tableaux de bord
Lorsque vous créez un tableau de bord, vous devez spécifier les composants ou widgets que vous souhaitez afficher ainsi que leur disposition. Vous pouvez également ajouter des libellés et des filtres à votre tableau de bord. Les libellés peuvent vous aider à trouver un tableau de bord ou à indiquer le type de contenu qu'il contient.
Dispositions de tableaux de bord
La disposition ou mise en page d'un tableau de bord définit la façon dont ses composants sont organisés. L'API fournit les dispositions suivantes :
GridLayout
(en grille) : partage l'espace disponible en colonnes verticales de même largeur et organise l'ensemble de widgets ligne par ligne.MosaicLayout
(en grille) : divise l'espace disponible en grille. Chaque widget peut occuper un ou plusieurs blocs de type grille.RowLayout
(en mosaïque) : partage l'espace disponible en lignes et organise l'ensemble de widgets horizontalement sur chaque ligne.ColumnLayout
(en colonne) : partage l'espace disponible en colonnes verticales et organise l'ensemble de widgets verticalement dans chaque colonne.
Par exemple, voici la représentation JSON d'un tableau de bord en disposition RowLayout
avec trois widgets Text
:
{
"displayName": "Row-layout example",
"rowLayout": {
"rows": [
{
"widgets": [
{
"text": {
"content": "Text Widget 1",
"format": "RAW"
}
},
{
"text": {
"content": "**Text Widget 2**",
"format": "MARKDOWN"
}
},
{
"text": {
"content": "_Text Widget 3_",
"format": "MARKDOWN"
}
}
]
}
]
}
}
Widgets de tableau de bord
Un widget contient un unique composant de tableau de bord, ainsi que la configuration définissant comment présenter ce composant dans le tableau de bord. Un tableau de bord peut comporter plusieurs widgets. Il existe plusieurs types d'objets Widget
:
Le widget
XyChart
affiche les données sur les axes X et Y.Ce widget affiche un ensemble de données pouvant être des données de série temporelle ou générées par une requête SQL. Ce widget vous permet d'associer les données du graphique à l'axe Y de gauche ou de droite. Lorsque plusieurs types de métriques sont représentés graphiquement, vous pouvez utiliser les deux axes Y. Le widget
XyChart
est compatible avec les styles d'affichage suivants:- Graphiques en courbes
- Graphique à barres
- Graphiques en aires empilées
- Cartes de densité
Widgets qui s'affichent à partir d'une dimension, comme la dernière valeur:
PieChart
: affiche les dernières valeurs d'une collection de séries temporelles, où chaque série temporelle contribue à une tranche du graphique en secteurs.Scorecard
(tableau de données) : affiche la valeur la plus récente d'une série temporelle et sa position par rapport à un ou plusieurs seuils.TimeSeriesTable
(tableau de données) : affiche la valeur la plus récente ou une valeur agrégée pour chaque série temporelle. Les tableaux sont personnalisables. Par exemple, vous pouvez attribuer un code couleur aux cellules, et configurer les noms de colonnes et l'alignement des données.
Widgets qui affichent des règles d'alerte ou des informations sur les incidents:
AlertChart
(graphique d'alerte) : affiche un résumé d'une règle d'alerte à une seule condition. Ce widget affiche les données sous la forme d'un graphique en courbes, affiche le seuil et indique le nombre d'incidents ouverts.IncidentList
: affiche la liste des incidents. Vous pouvez configurer le widget pour afficher des incidents pour des règles d'alerte spécifiques ou pour des types de ressources spécifiques.
Widgets qui affichent des entrées de journal et des erreurs:
ErrorReportingPanel
: affiche les groupes d'erreurs stockés dans le projet Google Cloud sélectionné.LogsPanel
(panneau des journaux) : affiche les entrées de journal à l'échelle du projet stockées dans le projet Google Cloud actuel. Vous pouvez configurer le widget pour afficher les entrées de journal stockées dans les projets Google Cloud accessibles via le champ d'application des métriques actuel.
Widgets de texte et d'organisation:
CollapsibleGroup
: affiche une collection de widgets. Vous pouvez réduire la vue d'un groupe.SingleViewGroup
: affiche un widget dans une collection de widgets. Vous pouvez sélectionner le widget à afficher.SectionHeader
: crée un séparateur horizontal dans votre tableau de bord et une entrée dans la table des matières du tableau de bord.Text
(texte) : affiche du contenu textuel sous forme de texte brut ou de chaîne Markdown.
Pour inclure les widgets de texte et d'organisation dans un tableau de bord, celui-ci doit comporter un
MosaicLayout
.
Outre ces objets, vous pouvez également ajouter à un tableau de bord un espace réservé vide.
Par exemple, voici la représentation JSON d'un widget XyChart
dont l'axe Y droit est configuré:
{
"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"
}
}
}
]
}
}
Étiquettes du tableau de bord
Les libellés peuvent vous aider à gérer et à organiser vos tableaux de bord. Par exemple, vous pouvez ajouter un libellé nommé prod
pour indiquer que le tableau de bord affiche des données de série temporelle et des données de journal pour vos ressources de production. Vous pouvez également ajouter le libellé playbook
pour indiquer que le tableau de bord contient des informations pour vous aider à résoudre les échecs.
L'ajout de libellés à un tableau de bord est facultatif.
Par exemple, l'exemple suivant montre un objet Dashboard
qui spécifie l'étiquette nommée playbook
.
{
"displayName": "Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
...
]
},
"dashboardFilters": [],
"labels": {
"playbook": ""
}
}
Comme l'illustre l'exemple précédent, le champ labels
est implémenté en tant que map
, où les champs key
et value
sont tous deux des chaînes. Lorsque vous ajoutez un libellé à un tableau de bord, définissez key
sur le nom du libellé et le champ value
sur une chaîne vide.
Filtres et variables de tableau de bord
Lorsque vous concevez un tableau de bord, vous pouvez identifier plusieurs façons d'afficher les données qu'il affiche. Par exemple, supposons qu'un tableau de bord affiche des données de série temporelle pour vos instances de machine virtuelle (VM). Vous pouvez afficher les données de séries temporelles pour toutes les VM, ou uniquement celles d'une zone spécifique. Dans ce cas, nous vous recommandons de créer un filtre épinglé ou une variable, puis de définir la valeur par défaut de ce filtre sur la zone la plus consultée.
Les filtres épinglés s'appliquent à tous les widgets de tableau de bord compatibles avec le libellé spécifié dans le filtre, sauf si le widget contient un filtre avec la même clé de libellé.
Par exemple, lorsqu'un graphique inclut le filtre zone = us-central1-a
, il ignore un filtre épinglé dont la clé de libellé est zone
. De même, ce filtre est ignoré par les graphiques qui ne comportent pas de libellé avec une clé zone
.
Les variables sont comme des filtres épinglés, mais elles ne s'appliquent qu'à des widgets spécifiques. Les variables peuvent être basées sur des libellés, comme les filtres épinglés, ou ne comporter qu'une valeur. Les variables à valeur unique contiennent une ou plusieurs valeurs par défaut et une liste de toutes les valeurs possibles. Si vous ne spécifiez pas de valeur par défaut, la valeur par défaut est l'opérateur générique (*)
.
Pour définir l'ensemble de toutes les valeurs possibles, vous devez fournir un tableau de valeurs ou écrire une requête SQL.
Pour les widgets qui interrogent des données, vous pouvez inclure une variable dans la requête des widgets et vous pouvez utiliser une variable pour contrôler la visibilité du widget. Lorsque la requête dépend d'une variable, les données que le widget demande changent lorsque vous modifiez la valeur de la variable. Par conséquent, les données affichées changent également. Lorsque vous utilisez une variable pour contrôler la visibilité d'un widget, une icône visibility Visible s'affiche dans la barre d'outils. Pour en savoir plus sur les restrictions liées à la visibilité, consultez la section Définir la visibilité d'un widget.
Pour les filtres et les variables épinglés, la barre d'outils du tableau de bord affiche chaque variable, ainsi qu'un menu qui vous permet de modifier temporairement la valeur de la variable. La même structure de données est utilisée pour représenter les filtres et les variables épinglés. Pour vous aider à différencier les filtres des variables, dans la barre d'outils du tableau de bord, le nom d'une variable est précédé d'un signe dollar $
.
Pour en savoir plus, consultez DashboardFilter
.
Pour voir comment contrôler la visibilité d'un widget à l'aide d'une variable, consultez la section Tableau de bord avec la visibilité des widgets configurée.
Pour savoir comment mettre à jour la requête d'un widget avec une variable basée sur un libellé ou une variable de valeur uniquement, consultez les sections suivantes:
- Syntaxe générale pour désadresser une variable
- Widgets du panneau "Journaux"
- Graphiques avec des requêtes PromQL
- Graphiques avec des requêtes SQL
- Graphiques avec des requêtes MQL
Graphiques avec des requêtes de filtre Monitoring
Lorsque vous utilisez l'interface à menus pour créer un graphique qui affiche des données de séries temporelles, vos sélections sont converties en filtre de surveillance.
Créer des filtres et des variables
Console
Pour savoir comment utiliser la console Google Cloud pour créer des filtres et des variables épinglés, consultez les documents suivants:
API
Pour définir des filtres et des variables épinglés, utilisez la structure de données dashboardFilters
.
- Pour créer une variable, définissez la valeur du champ
templateVariable
sur le nom de la variable. Omettez ce champ ou définissez sa valeur sur une chaîne vide lorsque vous souhaitez créer un filtre épinglé. - Pour créer un filtre épinglé ou une variable basée sur un libellé, vous devez spécifier le champ
labelKey
. Omettre ce champ lorsque vous souhaitez une variable à valeur unique. Définissez la valeur par défaut du filtre ou de la variable. La configuration de ce champ détermine si un utilisateur peut sélectionner exactement une option dans le menu de valeurs ou s'il peut sélectionner plusieurs valeurs.
- Pour définir une seule valeur par défaut et limiter les utilisateurs à la sélection d'une seule option dans le menu des valeurs, définissez le champ
valueType
surSTRING
et définissez également le champstringValue
:
"valueType": "STRING", "stringValue": "my-default-value",
- Pour définir au moins une valeur par défaut et permettre aux utilisateurs de sélectionner plusieurs options dans le menu des valeurs, définissez le champ
valueType
surSTRING_ARRAY
et définissez également le champstringArrayValue
. Dans l'exemple suivant, il existe trois valeurs par défaut.
"valueType": "STRING_ARRAY", "stringArrayValue": { "values": [ "a", "b", "c" ] },
- Pour définir une seule valeur par défaut et limiter les utilisateurs à la sélection d'une seule option dans le menu des valeurs, définissez le champ
Facultatif: pour spécifier la liste de toutes les valeurs possibles pour une variable à valeur unique, définissez le champ
stringArray
ou le champtimeSeriesQuery
. Si vous spécifiez une requête, il doit s'agir d'une requête d'analyse.
Prenons l'exemple de l'objet dashboardFilters
suivant:
{ "dashboardFilters": [ { "labelKey": "zone" "stringValue": "us-central1-c", "valueType": "STRING", "filterType": "RESOURCE_LABEL" }, { "labelKey": "instance_id", "stringValue": "3133577226154888113", "valueType": "STRING", "filterType": "RESOURCE_LABEL", "templateVariable": "my_label_based_variable" }, { "filterType": "VALUE_ONLY", "templateVariable": "my_value_only_variable", timeSeriesQuery: { opsAnalyticsQuery: { sql: " SELECT log_name FROM `MY_TABLE` GROUP BY log_name ", } } } ], "displayName": "Illustrate Variables", ... }
Le code JSON précédent définit un filtre épinglé et deux variables:
Le filtre épinglé a la clé de libellé
zone
, qui s'affiche dans la barre d'outils. Les champsvalueType
etstringValue
spécifient la valeur par défaut unique. Pour en savoir plus, consultez la page de la documentation de référence de l'API pour la structure de donnéesdashboardFilters
.La variable basée sur une étiquette s'appelle
my_label_based_variable
, et sa clé d'étiquette estinstance_id
. La valeur par défaut de cette variable est définie sur un ID d'instance spécifique. Vous pouvez également configurer la valeur par défaut à l'aide d'un tableau. Dans la barre d'outils, le filtre s'affiche sous le nommy_label_based_variable
.La variable à valeur unique est nommée
my_value_only_variable
. Cette entrée ne spécifie pas de valeur par défaut. L'opérateur générique,(*)
, est donc appliqué automatiquement. De plus, cette variable utilise une requête SQL pour générer la liste des valeurs possibles.
Notez que l'objet dashboardFilters
ne liste pas les widgets auxquels la variable s'applique. Vous devez plutôt mettre à jour la requête d'un widget pour qu'elle dépende d'une variable.
Syntaxe générale pour désadresser une variable
Pour tous les widgets, à l'exception de ceux définis par SQL, utilisez la syntaxe suivante pour appliquer une variable à une requête:
Pour appliquer une variable basée sur une étiquette et que la clé et la valeur de l'étiquette soient résolues en une expression de filtre valide pour le langage de requête, utilisez
${my_label_based_variable}
.Pour n'appliquer que la valeur d'une variable basée sur un libellé, utilisez
${my_label_based_variable.value}
. La comparaison doit utiliser une expression régulière.Pour n'appliquer que la valeur d'une variable à valeur unique, utilisez
${my_value_only_variable}
. Pour les variables de type "Valeur uniquement", n'incluez pas de clause.value
. La comparaison doit utiliser une expression régulière.
Widgets du panneau des journaux
Pour appliquer une variable à un widget de panneau de journaux, mettez à jour le volet des requêtes. La syntaxe de ces widgets suit celle spécifiée sous Syntaxe générale.
Console
Par exemple, la requête suivante utilise une expression régulière pour comparer la valeur du champ jsonPayload.message
à une valeur de chaîne qui inclut la valeur d'une variable basée sur un libellé:
jsonPayload.message=~"Connected to instance: ${my_label_based_variable.value}"
Prenons un autre exemple. Considérons une variable à valeur unique, value_only_severity_variable
, et supposons que trois valeurs sont sélectionnées dans le menu des valeurs: ERROR
, INFO
et NOTICE
.
Ajoutez ensuite ce qui suit au volet de requête du widget de panneau des journaux:
severity =~ "${value_only_severity_variable}"
Voici un exemple de formulaire affiché:
severity =~ "^(ERROR|INFO|NOTICE)$"
API
Par exemple, le code JSON suivant montre comment modifier la requête d'un widget de panneau de journaux avec une variable basée sur un libellé:
"logsPanel": { "filter": "${my_label_based_variable}", "resourceNames": [ "projects/1234512345" ] },
Par exemple, la requête suivante utilise une expression régulière pour comparer la valeur du champ jsonPayload.message
à une valeur de chaîne qui inclut la valeur d'une variable basée sur un libellé:
"logsPanel": { "filter": "resource.type=\"gce_instance\"\n resource.labels.project_id=~\"${my_label_based_variable.value}\"\n", "resourceNames": [ "projects/012345" ] }
Prenons un autre exemple. Imaginons une variable à valeur unique, value_only_severity_variable
, et supposons que trois valeurs sont sélectionnées dans le menu: ERROR
, INFO
et NOTICE
.
Ajoutez ensuite ce qui suit au volet de requête du widget de panneau des journaux:
"logsPanel": {
"filter": "severity =~ \"${value_only_severity_variable}\"\n",
...
}
L'illustration suivante montre la requête exécutée par le widget du panneau des journaux:
severity =~ "^(ERROR|INFO|NOTICE)$"
Si vous avez configuré une requête pour le panneau des journaux, puis sélectionné le bouton pour ouvrir l'explorateur de journaux, les variables sont résolues avant l'ouverture de l'explorateur de journaux.
Le tableau suivant illustre la façon dont les exemples de variables sont résolus par le panneau des journaux. Comme indiqué précédemment, lorsque seule la valeur d'une variable est utilisée, vous devez utiliser une expression régulière comme opérateur de comparaison:
Syntaxe | Valeur sélectionnée |
Expression du panneau des journaux résolus |
---|---|---|
${my_label_based_variable} |
12345 |
resource.labels."instance_id"="12345"
L'exemple de variable est basé sur le libellé de ressource |
${my_label_based_variable} |
* |
"" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.* |
Graphiques avec des requêtes PromQL
Pour mettre à jour un graphique dont une requête PromQL dépend d'une variable basée sur un libellé, suivez les instructions de la section Syntaxe générale.
Console
Par exemple, la requête suivante repose sur la résolution de la variable basée sur le libellé, my_label_based_variable
, en une expression de filtre:
compute_googleapis_com:instance_cpu_utilization{ monitored_resource="gce_instance", ${my_label_based_variable} }
Vous pouvez également modifier la requête pour ne résoudre que la valeur d'une variable.
L'exemple suivant utilise une expression régulière pour comparer la valeur d'une requête basée sur un libellé à instance_id
:
compute_googleapis_com:instance_cpu_utilization{ instance_id=~"${my_label_based_variable.value}" }
Si vous disposez d'une variable à valeur unique, omettez la clause .value
. Par exemple, pour filtrer par zone à l'aide d'une variable à valeur unique, la requête inclurait quelque chose comme ce qui suit:
zone=~"${my_value_only_variable}"
API
Par exemple, le code JSON suivant illustre une requête qui repose sur la résolution de la variable basée sur le libellé, my_label_based_variable
, en une expression de filtre:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", ${my_label_based_variable} }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Vous pouvez également modifier la requête pour ne résoudre que la valeur d'une variable.
L'exemple suivant utilise une expression régulière pour comparer la valeur d'une requête basée sur un libellé à instance_id
:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", instance_id=~\"${my_label_based_variable.value}\" }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Si vous disposez d'une variable à valeur unique, omettez la clause .value
. Par exemple, pour filtrer par zone à l'aide d'une variable à valeur unique, la requête inclurait quelque chose comme ce qui suit:
zone=~\"${my_value_only_variable}\"
Le tableau suivant illustre la façon dont les exemples de variables sont résolus par PromQL. Comme indiqué précédemment, lorsque seule la valeur d'une variable est utilisée, vous devez utiliser une expression régulière comme opérateur de comparaison:
Syntaxe | Valeur sélectionnée |
Expression PromQL résolue |
---|---|---|
${my_label_based_variable} |
12345 |
instance_id == '12345'
L'exemple de variable est basé sur le libellé de ressource |
${my_label_based_variable} |
* |
noop_filter=~".*" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.+ |
Graphiques avec des requêtes SQL
Lorsque vous souhaitez mettre à jour un widget défini en SQL pour qu'il dépende d'une variable, modifiez la clause WHERE
pour faire référence à la valeur de la variable.
Pour toutes les variables, ajoutez le signe "at" au nom de la variable, par exemple : @variable_name
. Pour les variables basées sur des libellés, ajoutez .value
au nom de la variable, @my_label_based_variabe.value
.
Pour les requêtes SQL, la substitution de variables repose sur BigQuery et est sécurisée contre les injections SQL. Pour en savoir plus, consultez la section Exécuter des requêtes paramétrées.
Console
Étant donné que SQL n'interprète pas l'opérateur générique comme signifiant "n'importe quelle valeur", nous vous recommandons de toujours utiliser une instruction IF
lorsque vous utilisez des variables dans une requête SQL. L'exemple suivant illustre l'utilisation d'une variable à valeur unique dont le type de données est une chaîne:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Lorsque l'option de menu de la variable permet aux utilisateurs de sélectionner plusieurs valeurs, vous devez caster la valeur de la variable en type de données GoogleSQL à l'aide de la fonction CAST
.
La requête suivante illustre cette syntaxe:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
L'instruction IF
indiquée dans les exemples précédents est recommandée, car SQL n'interprète pas l'opérateur générique comme signifiant "n'importe quelle valeur". Par conséquent, si vous omettez l'instruction IF
et si vous sélectionnez l'opérateur de caractères génériques, le résultat de la requête est une table vide. Dans le deuxième exemple, la fonction UNNEST
convertit le tableau en table.
Pour ajouter une clause WHERE
correctement formatée, procédez comme suit:
- Modifiez le widget.
- Dans la barre d'outils, sélectionnez Insérer un filtre de variable, puis sélectionnez la variable dont vous souhaitez modifier la clause
WHERE
. - Dans la boîte de dialogue qui s'affiche, vérifiez le code généré, puis cliquez sur Copier et fermer.
Collez le code copié dans le volet Requête, puis apportez les modifications nécessaires.
Par exemple, supposons que vous créiez une variable nommée
LogName
qui génère une liste de noms de journaux et affiche le résultat dans un tableau avec une seule colonne nomméelog_name
. Vous créez ensuite un graphique, sélectionnez Insérer un filtre de variable, puis la variableLogName
. Le code suivant est généré:WHERE IF(@LogName = '*', TRUE, LogName = @LogName)
Dans cet exemple, vous devez modifier le code généré et remplacer
LogName =
parlog_name =
pour que la jointure de tables puisse avoir lieu:WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
Cliquez sur Run (Exécuter), puis sur Apply (Appliquer).
Pour enregistrer le tableau de bord modifié, cliquez sur Enregistrer dans la barre d'outils.
API
Étant donné que SQL n'interprète pas l'opérateur générique comme signifiant "n'importe quelle valeur", nous vous recommandons de toujours utiliser une instruction IF
lorsque vous utilisez des variables dans une requête SQL. L'exemple suivant illustre l'utilisation d'une variable à valeur unique dont le type de données est une chaîne:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Par exemple, voici une représentation JSON partielle d'un graphique qui affiche les résultats d'une requête SQL : Pour permettre de filtrer les résultats par nom de journal, une clause WHERE
a été ajoutée qui fait référence à la variable nommée LogName
:
"plotType": "STACKED_BAR", "targetAxis": "Y1", "timeSeriesQuery": { "opsAnalyticsQuery": { "queryExecutionRules": {}, "queryHandle": "", "sql": "SELECT\n timestamp, severity, resource.type, log_name, text_payload, proto_payload, json_payload\n FROM\n `my-project.global._Default._Default`\n WHERE \n IF (@LogName = \"*\", TRUE, log_name=@LogName)\nLIMIT 10000" } }
La variable LogName
émet également une requête pour déterminer la liste des noms de journaux possibles:
"dashboardFilters": [ { "filterType": "VALUE_ONLY", "templateVariable": "LogName", "valueType": "STRING", "timeSeriesQuery": { "opsAnalyticsQuery": { "savedQueryId": "", "sql": "SELECT log_name FROM `my-project.global._Default._Default` GROUP BY log_name LIMIT 1000", "queryHandle": "" }, "unitOverride": "", "outputFullDuration": false } } ],
Lorsque l'option de menu de la variable permet aux utilisateurs de sélectionner plusieurs valeurs, vous devez caster la valeur de la variable en type de données GoogleSQL à l'aide de la fonction CAST
.
La requête suivante illustre cette syntaxe:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
L'instruction IF
indiquée dans les exemples précédents est recommandée, car SQL n'interprète pas l'opérateur générique comme signifiant "n'importe quelle valeur". Par conséquent, si vous omettez l'instruction IF
et si vous sélectionnez l'opérateur de caractères génériques, le résultat de la requête est une table vide. Dans le deuxième exemple, la fonction UNNEST
convertit le tableau en table.
Graphiques avec des requêtes MQL
Pour ajouter une variable basée sur un libellé à un graphique contenant une requête MQL, ajoutez un pipe, (|)
, puis suivez les instructions de la section Syntaxe générale.
Lorsque vous utilisez l'interface à menus pour créer un graphique qui affiche des données de séries temporelles, vos sélections sont converties en filtre de surveillance.
Console
Par exemple, la requête suivante repose sur une variable basée sur un libellé, my_label_based_variable
, qui est résolue en expression de filtre:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | every 1m | ${my_label_based_variable}
Vous pouvez également modifier la requête pour ne résoudre que la valeur d'une variable.
L'exemple suivant utilise une expression régulière pour comparer la valeur d'une requête basée sur un libellé à instance_id
:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | filter resource.instance_id=~'${my_label_based_variable.value}' | group_by 1m, [value_utilization_mean: mean(value.utilization)] | every 1m
Si vous disposez d'une variable à valeur unique, omettez la clause .value
. Par exemple, pour filtrer par zone à l'aide d'une variable à valeur unique, la requête inclurait quelque chose comme ce qui suit:
resource.zone=~'${my_value_only_variable}'
API
Par exemple, le code JSON suivant illustre une requête qui s'appuie sur une variable basée sur un libellé, my_label_based_variable
, qui est résolue en expression de filtre:
"timeSeriesQuery": { "timeSeriesQueryLanguage": "fetch gce_instance\n | metric 'compute.googleapis.com/instance/cpu/utilization'\n | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n | every 1m\n | ${my_label_based_variable}", "unitOverride": "", "outputFullDuration": false },
Vous pouvez également modifier la requête pour ne résoudre que la valeur d'une variable.
L'exemple suivant utilise une expression régulière pour comparer la valeur d'une requête basée sur un libellé à instance_id
:
"timeSeriesQuery": { "timeSeriesQueryLanguage": "fetch gce_instance\n | metric 'compute.googleapis.com/instance/cpu/utilization'\n | filter resource.instance_id=~'${my_label_based_variable.value}'\n | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n | every 1m\n", "unitOverride": "", "outputFullDuration": false },
Si vous disposez d'une variable à valeur unique, omettez la clause .value
. Par exemple, pour filtrer par zone à l'aide d'une variable à valeur unique, la requête inclurait quelque chose comme ce qui suit:
resource.zone=~'${my_value_only_variable}'
Le tableau suivant illustre la façon dont les exemples de variables sont résolus par le MQL. Comme indiqué précédemment, lorsque seule la valeur d'une variable est utilisée, vous devez utiliser une expression régulière comme opérateur de comparaison:
Syntaxe | Valeur sélectionnée |
Expression MQL résolue |
---|---|---|
${my_label_based_variable} |
12345 |
filter (resource.instance_id == '12345')
L'exemple de variable est basé sur le libellé de ressource |
${my_label_based_variable} |
* |
filter (true) |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.* |
Graphiques avec des requêtes de filtres de surveillance
Pour mettre à jour un graphique contenant une requête sous la forme d'un filtre de surveillance afin qu'il dépende d'une variable basée sur un libellé, suivez les instructions de la section Syntaxe générale.
Console
Si vous utilisez la console Google Cloud pour créer vos graphiques et si vous utilisez l'interface basée sur les menus, vous pouvez mettre à jour la requête du graphique à l'aide du champ Appliquer aux graphiques de la variable ou en modifiant le widget et en sélectionnant la variable basée sur les libellés dans le menu Filtrer. Le menu Filtrer liste toutes les variables basées sur des étiquettes et toutes les clés d'étiquette.
Pour modifier la requête d'un graphique afin qu'elle dépende d'une variable basée sur la valeur, procédez comme suit:
- Modifier le graphique
- Dans le volet de requête, cliquez sur Ajouter un filtre, puis sélectionnez une clé de libellé. Par exemple, vous pouvez sélectionner zone.
- Dans le menu Valeur, sélectionnez votre variable à valeur unique.
- Cliquez sur Appliquer.
- Pour enregistrer le tableau de bord modifié, cliquez sur Enregistrer dans la barre d'outils.
Par exemple, le code JSON suivant illustre une requête qui s'appuie sur une variable basée sur un libellé, my_label_based_variable
, qui est résolue en expression de filtre:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" ${my_label_based_variable}"
Les widgets qui utilisent une requête sous la forme d'un filtre de surveillance ne peuvent pas filtrer la série temporelle en fonction de la valeur d'une variable basée sur des étiquettes. Toutefois, vous pouvez filtrer en fonction de variables de type "Valeur uniquement".
Par exemple, la requête suivante affiche la valeur du champ Filtres d'une requête qui filtre par zone
, en fonction de la valeur d'une variable à valeur unique:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})
API
Par exemple, le code JSON suivant illustre une requête qui s'appuie sur une variable basée sur un libellé, my_label_based_variable
, qui est résolue en expression de filtre:
"timeSeriesQuery": { "timeSeriesFilter": { "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" ${my_label_based_variable} ", "aggregation": { "alignmentPeriod": "60s", "perSeriesAligner": "ALIGN_MEAN", "groupByFields": [] } }, "unitOverride": "", "outputFullDuration": false },
Les widgets qui utilisent une requête sous la forme d'un filtre de surveillance ne peuvent pas filtrer la série temporelle en fonction de la valeur d'une variable basée sur des étiquettes. Toutefois, vous pouvez filtrer en fonction de variables de type "Valeur uniquement".
Par exemple, la requête suivante affiche le champ "filter"
d'une requête qui filtre par zone
, en fonction de la valeur d'une variable à valeur unique:
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" resource.labels.\"zone\"=monitoring.regex.full_match(${my_value_only_variable})"
Le tableau suivant illustre la façon dont les exemples de variables sont résolus par le filtre de surveillance. Comme indiqué précédemment, lorsque seule la valeur d'une variable est utilisée, vous devez utiliser une expression régulière comme opérateur de comparaison:
Syntaxe | Valeur sélectionnée |
Expression de filtre résolue |
---|---|---|
${my_label_based_variable} |
12345 |
resource.instance_id == "12345"
L'exemple de variable est basé sur le libellé de ressource |
${my_label_based_variable} |
* |
Omission |
${my_label_based_variable.value} |
12345 |
Non compatible |
${my_label_based_variable.value} |
* |
Non compatible |
${my_value_based_variable} |
12345 |
"12345" |
${my_value_based_variable} |
* |
".*" |
Avant de commencer
Dans le projet Google Cloud dans lequel vous souhaitez créer ou gérer des tableaux de bord, procédez comme suit:
-
Select the tab for how you plan to use the samples on this page:
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Créer un tableau de bord
Pour créer un tableau de bord personnalisé, appelez la méthode
dashboards.create
en lui fournissant la disposition du tableau de bord et les widgets à y afficher.Le champ
name
est facultatif. La valeur du champ de nom a la structure suivante:"name": "projects/PROJECT_ID_OR_NUMBER/dashboards/DASHBOARD_ID"
Lorsque vous créez un tableau de bord, l'API génère automatiquement le composant DASHBOARD_ID. Si vous souhaitez spécifier un identifiant DASHBOARD_ID personnalisé, vous pouvez spécifier le champ
name
de l'objetDashboard
.gcloud
Pour créer un tableau de bord dans un projet, utilisez la commande
gcloud monitoring dashboards create
.gcloud monitoring dashboards create --config-from-file=my-dashboard.json --project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Par exemple, si vous souhaitez dupliquer un tableau de bord, procédez comme suit:
- Suivez la procédure de la section Obtenir un tableau de bord pour télécharger la définition du tableau de bord d'origine.
- Modifiez le code JSON renvoyé pour supprimer les champs
etag
etname
, et modifiez la valeur du champdisplayName
. - Exécutez la commande pour créer le tableau de bord.
Pour en savoir plus, consultez la référence
gcloud monitoring dashboards create
.Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.
Pour créer un tableau de bord à l'aide de Terraform, procédez comme suit:
- Installez et configurez Terraform pour votre projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Utilisez la ressource Terraform
google_monitoring_dashboard
.Dans la commande, définissez les champs suivants:
dashboard_json
: représentation JSON du tableau de bord, au formatDashboards
.Pour obtenir des exemples de ce format, vous pouvez lister vos tableaux de bord à l'aide de l'explorateur d'API, ou ouvrir un tableau de bord dans la console Google Cloud et afficher les représentations JSON.
parent
: nom complet de votre projet. Par exemple, vous pouvez définir ce champ sur"projects/PROJECT_ID"
, où PROJECT_ID correspond à l'ID de votre projet Google Cloud. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
REST
Pour créer un tableau de bord, envoyez une requête
POST
au point de terminaisonDashboard
.curl -d @my-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X POST https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Les exemples présentés ici créent un tableau de bord à l'aide du fichier
my-dashboard.json
. Vous pouvez gérer votre tableau de bord via la console Google Cloud.Pour voir d'autres configurations de tableau de bord, consultez la page Exemples de tableaux de bord et de dispositions.
Supprimer des tableaux de bord
Pour supprimer un tableau de bord personnalisé, appelez la méthode
dashboards.delete
en spécifiant le tableau de bord à supprimer.gcloud
Pour supprimer un tableau de bord personnalisé, utilisez
gcloud monitoring dashboards delete
et spécifiez l'ID complet du tableau de bord à supprimer:gcloud monitoring dashboards delete DASHBOARD_ID --project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
- DASHBOARD_ID: ID du tableau de bord.
Pour en savoir plus, consultez la référence
gcloud monitoring dashboards delete
.Terraform
Vous pouvez supprimer des ressources à l'aide de Terraform. Pour en savoir plus sur la suppression de ressources, consultez la commande Terraform destroy.
REST
Pour supprimer un tableau de bord personnalisé, envoyez une requête
DELETE
au point de terminaisonDashboard
incluant l'ID du tableau de bord à supprimer.curl -H "Authorization: Bearer $ACCESS_TOKEN" -X DELETE https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.${DASHBOARD_ID}
: variable d'environnement qui stocke l'ID du tableau de bord.
Si l'opération réussit, l'API renvoie une réponse vide. Sinon, l'appel renvoie une erreur.
Répertorier les tableaux de bord
Pour lister tous les tableaux de bord associés à un projet, appelez la méthode
dashboards.list
en spécifiant l'ID du projet.gcloud
Pour répertorier tous les tableaux de bord personnalisés d'un projet, utilisez la commande
gcloud monitoring dashboards list
:gcloud monitoring dashboards list --project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Pour en savoir plus, consultez la documentation de référence sur
gcloud monitoring dashboards list
.Terraform
Vous ne pouvez pas utiliser Terraform pour envoyer une requête à votre projet, la réponse étant une liste de tableaux de bord. Toutefois, vous pouvez afficher ces tableaux de bord à l'aide de la console Google Cloud.
REST
Pour répertorier tous les tableaux de bord personnalisés d'un projet, envoyez l'ID du projet au point de terminaison
Dashboard
.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Les exemples renvoient les tableaux de bord personnalisés associés à votre projet.
Paginer la réponse de List
La méthode
dashboards.list
permet la pagination, ce qui vous permet d'afficher les résultats page par page et non en un seul bloc.gcloud
Pour spécifier le nombre de ressources par page, transmettez l'option
--page-size
à l'aide de la commande. Exemple :gcloud monitoring dashboards list --page-size=1 --project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Terraform
Vous ne pouvez pas utiliser Terraform pour envoyer une requête à votre projet, la réponse étant une liste paginée de tableaux de bord. Toutefois, vous pouvez afficher ces tableaux de bord à l'aide de la console Google Cloud.
REST
Pour la première page de la liste de résultats, spécifiez le paramètre
pageSize
(taille de page) dans la requête :curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards?page_size=1
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
La méthode renvoie la première page de la liste ainsi que le jeton
nextPageToken
. Exemple :{ "dashboards" : [ { "displayName" : "Grid Layout Example", "gridLayout" : { "widgets" : [ { ... }, { ... }, { ... }, ] } } ] }, "nextPageToken": "ChYqFDEyMzkzMzUwNzg0OTE1MDI4MjM3"
Pour chacune des pages restantes, vous devez inclure le jeton
nextPageToken
correspondant dans la requête.Obtenir un tableau de bord
Pour obtenir un tableau de bord personnalisé spécifique pour un projet, appelez la méthode
dashboards.get
en spécifiant l'ID du tableau de bord.gcloud
Pour obtenir un tableau de bord personnalisé spécifique, utilisez la commande
gcloud monitoring dashboards describe
et spécifiez l'ID du tableau de bord:gcloud monitoring dashboards describe DASHBOARD_ID --format=json -project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
- DASHBOARD_ID: ID du tableau de bord.
La commande renvoie le tableau de bord demandé :
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }
Pour en savoir plus, consultez la documentation de référence sur
gcloud monitoring dashboards describe
.Terraform
Vous ne pouvez pas utiliser Terraform pour envoyer une requête à votre projet, la réponse étant un tableau de bord individuel. Toutefois, vous pouvez afficher ces tableaux de bord à l'aide de la console Google Cloud.
REST
Pour récupérer un tableau de bord personnalisé spécifique, envoyez l'ID du tableau de bord au point de terminaison
Dashboard
.curl -H "Authorization: Bearer $ACCESS_TOKEN" https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.${DASHBOARD_ID}
: variable d'environnement qui stocke l'ID du tableau de bord.
Dans l'expression précédente,
${DASHBOARD_ID}
est une variable d'environnement qui stocke le nom complet du tableau de bord.La méthode renvoie une réponse semblable à l'exemple ci-dessous :
{ "columnLayout": { "columns": [ { "widgets": [ { "text": { "content": "Text Widget 1", "format": "RAW" } }, { "text": { "content": "**Text Widget 2**", "format": "MARKDOWN" } }, { "text": { "content": "_Text Widget 3_", "format": "MARKDOWN" } } ] } ] }, "displayName": "Column-layout example", "etag": "cb3070baf15de7c79d78761baac3a386", "name": "projects/730041941835/dashboards/e4cd063e-5414-4e07-9e1e-450d6d3a531d" }
Mettre à jour le tableau de bord
Pour mettre à jour un tableau de bord personnalisé existant, appelez la méthode
dashboards.patch
. Pour obtenir la valeuretag
actuelle, vous pouvez appeler la méthodedashboards.get
: la valeur figure dans la réponse.gcloud
Pour mettre à jour un tableau de bord personnalisé, utilisez
gcloud monitoring dashboards update
, spécifiez l'ID du tableau de bord à mettre à jour et effectuez les modifications.gcloud monitoring dashboards update DASHBOARD_ID --config-from-file=my-updated-dashboard.json --project=PROJECT_ID
Avant d'exécuter la commande précédente, remplacez les éléments suivants:
- PROJECT_ID: identifiant du projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
- DASHBOARD_ID: ID du tableau de bord.
Pour en savoir plus, consultez la documentation de référence sur
gcloud monitoring dashboards update
.L'exemple précédent met à jour un tableau de bord personnalisé existant à l'aide du fichier
my-updated-dashboard.json
. La réponse, qui inclut une nouvelle valeuretag
, est une copie de la liste de tableaux de bord mise à jour.Terraform
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base. Pour en savoir plus, consultez la documentation de référence du fournisseur Terraform.
Pour mettre à jour un tableau de bord à l'aide de Terraform, procédez comme suit:
- Installez et configurez Terraform pour votre projet. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
Utilisez la ressource Terraform
google_monitoring_dashboard
.Dans la commande, définissez les champs suivants:
dashboard_json
: représentation JSON du tableau de bord, au formatDashboards
.parent
: nom complet de votre projet. Par exemple, vous pouvez définir ce champ sur"projects/PROJECT_ID"
, où PROJECT_ID correspond à l'ID de votre projet Google Cloud. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.
REST
Pour mettre à jour un tableau de bord personnalisé, envoyez une requête
PATCH
au point de terminaisonDashboard
et fournissez l'objetDashboard
révisé et la valeuretag
de la dernière réponsedashboards.get
.curl -d @my-updated-dashboard.json -H "Authorization: Bearer $ACCESS_TOKEN" -H 'Content-Type: application/json' -X PATCH https://monitoring.googleapis.com/v1/projects/${PROJECT_ID}/dashboards/${DASHBOARD_ID}
Avant d'exécuter la commande précédente, configurez les éléments suivants:
${PROJECT_ID}
: variable d'environnement qui stocke l'ID du projet dans lequel créer le tableau de bord. Pour les configurations App Hub, sélectionnez le projet hôte App Hub ou le projet de gestion du dossier compatible avec les applications.${DASHBOARD_ID}
: variable d'environnement qui stocke l'ID du tableau de bord.
L'exemple précédent met à jour un tableau de bord personnalisé existant à l'aide du fichier
my-updated-dashboard.json
. La réponse, qui inclut une nouvelle valeuretag
, est une copie de la liste de tableaux de bord mise à jour.Étape suivante
- Exemples de tableaux de bord et de dispositions
- Créer et gérer des tableaux de bord personnalisés avec la console Google Cloud
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/04/01 (UTC).