Ajouter des filtres permanents à un tableau de bord personnalisé

Ce document explique comment ajouter des filtres permanents au niveau du tableau de bord à vos tableaux de bord personnalisés. Les filtres permanents, qui vous permettent de modifier les données affichées par un tableau de bord sans avoir à modifier chaque widget, ont un état par défaut et peuvent s'appliquer à l'ensemble du tableau de bord ou uniquement à des widgets spécifiques. La barre d'outils du tableau de bord affiche chaque filtre permanent, ainsi qu'un menu qui vous permet de modifier temporairement la valeur du filtre.

Lorsque vous souhaitez définir une présentation par défaut des données d'un tableau de bord ainsi que des options accessibles via un menu pour modifier cet affichage, ajoutez des filtres permanents. Par exemple, si vous souhaitez afficher les métriques de toutes les zones et d'une zone spécifique, créez un filtre permanent basé sur l'étiquette zone.

Vous pouvez créer et appliquer des filtres permanents à l'aide de la console Google Cloud ou de l'API Cloud Monitoring. Ce document explique comment utiliser la console Google Cloud. Pour plus d'informations sur l'utilisation de l'API Cloud Monitoring, consultez la page Créer et gérer des tableaux de bord à l'aide de l'API: Filtres de tableau de bord.

Pour savoir comment ajouter et modifier des regroupements et des filtres temporaires, consultez la section Ajouter des filtres temporaires à un tableau de bord personnalisé.

Fonctionnement des filtres des tableaux de bord

Un filtre de tableau de bord spécifie une étiquette et une valeur. Les séries temporelles affichées sur le tableau de bord déterminent les étiquettes disponibles pour le filtrage. La prise en charge d'un filtre à l'échelle du tableau de bord par un widget dépend du type de données qu'il affiche et de la configuration du widget:

  • Pour les widgets qui affichent des données de séries temporelles, tels que les graphiques en courbes, les règles suivantes s'appliquent:

    • Si la série temporelle affichée par le widget ne prend pas en charge le libellé d'un filtre, le filtre pour l'ensemble du tableau de bord ne modifie pas les données affichées.

      Par exemple, si vous ajoutez un filtre sur l'étiquette instance_id, mais qu'un graphique du tableau de bord n'affiche pas de données avec un libellé instance_id, le filtre ne modifie pas les données affichées.

    • Si le widget spécifie une valeur pour un libellé, le filtre du tableau de bord ne modifie pas les données affichées.

      Par exemple, si vous ajoutez un filtre sur le libellé instance_id, mais qu'un graphique du tableau de bord inclut un filtre basé sur le libellé instance_id, le filtre appliqué à l'ensemble du tableau de bord ne modifie pas les données affichées.

    • Sinon, le graphique filtre les données qu'il affiche uniquement pour les séries temporelles qui correspondent au filtre appliqué au tableau de bord.

  • Pour les widgets du panneau des journaux, les filtres à l'échelle du tableau de bord qui sont basés sur un libellé de ressource mettent à jour la requête. Par exemple, si vous ajoutez le filtre cluster_name: mycluster à l'échelle du tableau de bord, la requête est mise à jour pour inclure resource.labels."cluster_name"="mycluster".

Vous pouvez ajouter plusieurs filtres à l'ensemble du tableau de bord. Ces filtres sont joints par un opérateur logique ET.

Avant de commencer

Pour obtenir les autorisations nécessaires pour ajouter ou modifier des filtres permanents à l'aide de la console Google Cloud, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Monitoring (roles/monitoring.editor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles, consultez la page Contrôler les accès avec Identity and Access Management.

Créer un filtre permanent

Lorsque vous concevez un tableau de bord, vous pouvez identifier plusieurs façons d'afficher les données qu'il affiche. Par exemple, lorsqu'un tableau de bord affiche des métriques pour les instances de VM, vous pouvez afficher les métriques de toutes les VM et celles des VM d'une zone spécifique. Vous pouvez créer un filtre permanent pour le libellé zone avec le libellé par défaut défini sur toutes les zones, *. Lorsque vous affichez le tableau de bord, vous pouvez utiliser le menu du filtre zone pour sélectionner une zone spécifique.

Vous pouvez limiter l'application d'un filtre permanent à des widgets spécifiques. Imaginez que vous souhaitez une vue côte à côte des métriques pour les VM de deux zones différentes. Vous construisez deux collections de graphiques et créez un filtre pour chaque collection. Votre configuration par défaut répond à votre objectif initial. Toutefois, lorsque vous affichez le tableau de bord, la barre d'outils répertorie vos variables et inclut des menus vous permettant de sélectionner différentes valeurs. Vous pouvez utiliser ces menus pour afficher les données de différentes zones.

Les filtres permanents qui ne s'appliquent qu'à des widgets spécifiques sont parfois appelés variables de modèle. Une fois que vous avez créé un filtre de ce type, lorsque vous ajoutez un widget à votre tableau de bord, vous pouvez également l'appliquer à ce widget. Pour en savoir plus, consultez la section Appliquer un filtre permanent à un widget.

Pour créer un filtre permanent, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Tableaux de bord .

    Accéder à Tableaux de bord

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Surveillance.

  2. Dans la barre d'outils du tableau de bord, cliquez sur Paramètres, puis sélectionnez Gérer les filtres.
  3. Cliquez sur Libellé, puis sélectionnez un libellé. Par exemple, vous pouvez sélectionner zone.
  4. Cliquez sur Valeur par défaut, puis sélectionnez la valeur par défaut du libellé. Pour faire correspondre toutes les valeurs, sélectionnez *.

    Une fois le filtre créé, il est ajouté à la barre d'outils de votre tableau de bord. Pour modifier temporairement la valeur du filtre, sélectionnez le filtre, puis effectuez une sélection dans le menu.

  5. Effectuez l'une des opérations suivantes :

    • Pour appliquer le filtre à tous les widgets du tableau de bord, sélectionnez Appliquer à tous, puis Appliquer.

    • Pour appliquer le filtre à certains widgets du tableau de bord:

      1. Décochez la case Appliquer à tous les éléments.
      2. Dans le champ Nom de la variable, saisissez un nom à afficher pour la variable.
      3. Développez le menu Appliquer aux graphiques, sélectionnez les widgets auxquels le filtre s'applique, puis sélectionnez OK.

      4. Cliquez sur Appliquer.

Appliquer un filtre permanent à un widget

Pour appliquer un filtre permanent à un widget, vous devez associer ce widget à la variable:

  • Pour les graphiques que vous configurez à l'aide de menus, vous pouvez effectuer cette association lorsque vous créez ou modifiez le filtre.

  • Dans le panneau des journaux, modifiez le widget et configurez la requête par défaut. Veillez à suivre les instructions de la section intitulée Syntaxe pour appliquer un filtre permanent.

  • Pour les graphiques et les tables définis par MQL ou PromQL, modifiez le graphique ou la table, puis modifiez le MQL ou PromQL. Veillez à suivre les instructions de la section intitulée Syntaxe pour appliquer un filtre permanent.

Syntaxe pour appliquer un filtre permanent

L'exemple suivant montre la représentation JSON partielle d'un tableau de bord qui définit une variable de modèle et un filtre à l'échelle du tableau de bord:

{
  "dashboardFilters": [
      {
        "filterType": "RESOURCE_LABEL",
        "labelKey": "instance_id",
        "stringValue": "3133577226154888113",
        "templateVariable": "iid"
      },
      {
        "filterType": "RESOURCE_LABEL",
        "labelKey": "zone"
      }
    ],
  "displayName": "Illustrate Template Variables",
  ...

Dans le fichier JSON affiché, la première entrée de la structure dashboardFilters correspond à une variable de modèle nommée iid et à un filtre pour l'ensemble du tableau de bord avec la clé d'étiquette zone. La variable de modèle est un alias du libellé instance_id.

La structure de données d'une variable de modèle ne répertorie pas les widgets auxquels elle s'applique. À la place, vous associez un widget à une variable de modèle en modifiant la requête du widget pour inclure une référence à la variable. Lorsque le widget est affiché dans le tableau de bord, la valeur de la variable de modèle est résolue.

Consultez les sections suivantes pour découvrir comment annoter les panneaux et les graphiques des journaux:

Panneau des journaux

Pour configurer un panneau des journaux afin de filtrer l'affichage en fonction de la valeur d'une variable de modèle, ajoutez la variable au volet de requête. L'exemple suivant illustre une requête qui filtre les données en fonction de la valeur de la variable de modèle iid:

${iid}

Avant que le panneau des journaux n'interroge les journaux à afficher, la variable de modèle est résolue. Dans cet exemple, si la valeur de la variable de modèle est "12345", ${iid} est remplacé par l'instruction resource.labels."instance_id"="12345".

Vous pouvez également n'inclure que la valeur d'une variable de modèle dans une requête. Nous vous recommandons de n'utiliser la valeur que dans le cadre d'un filtre défini avec une expression régulière. Par exemple, la requête suivante utilise une expression régulière pour faire correspondre les entrées de journal ayant une charge utile JSON contenant la chaîne décrite:

jsonPayload.message=~"Connected to instance: ${iid.value}"

Si vous avez configuré une requête pour le panneau des journaux, puis que vous sélectionnez le bouton permettant d'ouvrir l'explorateur de journaux, les variables de modèle sont résolues avant l'ouverture de l'explorateur de journaux.

Le tableau suivant montre comment la variable de modèle est résolue par le panneau des journaux:

Syntaxe Valeur
sélectionnée
Expression du panneau des journaux résolus
${iid} 12345 resource.labels."instance_id"="12345"
${iid} * ""
${iid.value} 12345 12345
${iid.value} * .*

Graphiques et tableaux définis par MQL

Lorsque vous utilisez le langage MQL (Monitoring Query Language) pour configurer un graphique, ajoutez un tuyau et la variable à la chaîne de requête:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| every 1m
| ${iid}

Avant que le graphique n'interroge la série temporelle, la variable de modèle est résolue. Dans cet exemple, si la valeur de la variable de modèle est "12345", ${iid} est remplacé par l'instruction filter (resource.instance_id == '12345'). Ce filtre correspond aux séries temporelles portant une étiquette nommée resource.instance_id, et uniquement lorsque la valeur de cette étiquette est exactement 12345.

Lorsque vous souhaitez filtrer des séries temporelles à l'aide d'une expression régulière, configurez la requête pour n'inclure que la valeur de la variable de modèle. Pour illustrer la syntaxe, voici comment utiliser une expression régulière pour déterminer si la valeur du libellé resource.instance_id contient la valeur de la variable de modèle iid:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| filter resource.instance_id=~"${iid.value}"
| group_by 1m, [value_utilization_mean: mean(value.utilization)]
| every 1m

Le tableau suivant montre comment la variable de modèle est résolue pour les requêtes MQL:

Syntaxe Valeur
sélectionnée
Expression MQL résolue
${iid} 12345 filter (resource.instance_id == '12345')
${iid} * filter (true)
${iid.value} 12345 12345
${iid.value} * .*

Graphiques et tableaux définis par PromQL

Lorsque vous définissez un graphique à l'aide de PromQL, ajoutez à la chaîne de requête la variable entre accolades:

compute_googleapis_com:instance_cpu_utilization {
    project_id="my-project", ${iid}
}

Avant que le graphique n'interroge la série temporelle, la variable de modèle est résolue. Dans cet exemple, si la valeur de la variable de modèle est "12345", ${iid} est remplacé par l'instruction instance_id == '12345'.

Comme pour MQL, lorsque vous définissez un widget avec PromQL, la requête ne peut extraire que la valeur de la variable de modèle. Nous vous recommandons de n'utiliser la valeur que dans le cadre d'un filtre défini avec une expression régulière. Pour illustrer la syntaxe, voici comment utiliser une expression régulière pour déterminer si la valeur de l'étiquette instance_id contient la valeur de la variable de modèle iid:

compute_googleapis_com:instance_cpu_utilization{
    instance_id=~"${iid.value}"
}

Le tableau suivant montre comment la variable de modèle est résolue pour les requêtes PromQL:

Syntaxe Valeur
sélectionnée
Expression PromQL résolue
${iid} 12345 instance_id == '12345'
${iid} * noop_filter=~".*"
${iid.value} 12345 12345
${iid.value} * .+

Graphiques et tables définis avec des filtres de séries temporelles

Lorsque vous définissez un graphique à l'aide de filtres de séries temporelles, ajoutez la variable à la chaîne de filtre:

"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
           resource.type=\"gce_instance\" ${iid}"

Contrairement aux graphiques définis par MQL et PromQL, vous ne pouvez pas utiliser la valeur d'une variable de modèle dans un filtre de série temporelle.

Le tableau suivant montre comment la variable de modèle est résolue:

Syntaxe Valeur
sélectionnée
Expression de filtre résolue
${iid} 12345 resource.instance_id == "12345"
${iid} * Omission
${iid.value} 12345 Non compatible
${iid.value} * Non compatible

Modifier un filtre permanent

Pour modifier temporairement la valeur d'un filtre affiché dans la barre d'outils du tableau de bord, cliquez sur le nom du filtre, puis saisissez une valeur ou effectuez une sélection dans le menu.

Pour modifier la configuration d'un filtre permanent, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Tableaux de bord .

    Accéder à Tableaux de bord

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Surveillance.

  2. Dans la barre d'outils du tableau de bord, cliquez sur Paramètres, puis sélectionnez Gérer les filtres.
  3. Recherchez le filtre que vous souhaitez modifier, puis utilisez les menus pour le modifier.
  4. Cliquez sur Appliquer.

Supprimer un filtre permanent

  1. Dans la console Google Cloud, accédez à la page Tableaux de bord .

    Accéder à Tableaux de bord

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Surveillance.

  2. Dans la barre d'outils du tableau de bord, cliquez sur Paramètres, puis sélectionnez Gérer les filtres.
  3. Recherchez le filtre que vous souhaitez supprimer, puis cliquez sur Supprimer.
  4. Cliquez sur Appliquer.

Étapes suivantes