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 avec des options issues du menu permettant de modifier cet affichage, et d'ajouter des filtres permanents. Pour exemple : pour afficher les métriques de toutes les zones pour une zone spécifique, puis 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 en savoir plus 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 un libellé et une valeur. Les séries temporelles affichées par le tableau de bord déterminent les libellés disponibles pour le filtrage. La prise en charge d'un filtre à l'échelle du tableau de bord par widget dépend du type de données le widget s'affiche, ainsi que sa configuration:

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

    • Si la série temporelle affichée par le widget n'est pas compatible avec le libellé d'un filtre, le filtre appliqué à l'ensemble 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 n'affiche pas de données avec le libellé instance_id sur le tableau de bord, puis le filtre ne modifie pas les données affichées.

    • Si le widget spécifie une valeur pour une étiquette, alors le un filtre à l'échelle 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 l'étiquette instance_id, puis le filtre d'ensemble du tableau de bord ne modifie pas les données affichées.

    • Dans le cas contraire, le graphique filtre les données affichées des séries temporelles qui satisfont au filtre applicable à l'ensemble du tableau de bord.

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

Vous pouvez ajouter plusieurs filtres appliqués à l'ensemble du tableau de bord. Ces filtres sont joints par un AND logique.

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 page Gérer l'accès aux projets, aux dossiers et aux organisations.

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 section 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 pour toutes les VM et les métriques pour les VM d'une zone spécifique. Vous pouvez créer un filtre permanent pour le libellé zone avec la valeur par défaut définie sur toutes les zones, *. Lorsque vous consultez le tableau de bord, vous pouvez utiliser les du filtre zone pour sélectionner une zone spécifique.

Vous pouvez limiter un filtre permanent à des widgets spécifiques. Imaginez un scénario dans lequel vous souhaitez obtenir une vue côte à côte des métriques pour les VM situées dans deux zones différentes. Vous créez deux collections de graphiques et un filtre pour chacune d'elles. Votre configuration par défaut répond à votre objectif initial. Toutefois, lorsque vous consultez le tableau de bord, liste vos variables et comprend des menus vous permettant de sélectionner 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. Après avoir créé un filtre de ce type, lorsque vous ajouter un widget à votre tableau de bord, vous pouvez également appliquer le filtre à 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 à la page Tableaux de bord

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

  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 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, 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 créer une variable ou appliquer le filtre à certains widgets du tableau de bord :

      1. Décochez Appliquer à tous.
      2. Dans le champ Nom de la variable, saisissez un nom à afficher pour la .
      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 à l'aide de la variable:

  • Pour les graphiques configurés à l'aide de menus, vous pouvez : effectuer cette association lors de la création ou de la modification du filtre.

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

  • Pour les graphiques et les tableaux définis par MQL ou PromQL, modifiez la valeur graphique ou table, puis modifiez le MQL ou PromQL. Assurez-vous de 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 pour l'ensemble 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 code JSON affiché, la première entrée de la structure dashboardFilters correspond à une variable de modèle portant le nom iid et à un filtre à l'échelle 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 liste pas les widgets auxquels elle s'applique. Pour associer un widget à une variable de modèle, modifier 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 de 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 selon 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ésolu. Dans cet exemple, si la valeur de la variable de modèle est "12345", alors ${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 dont la charge utile JSON contient les informations chaîne:

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 pour ouvrir l'explorateur de journaux, les variables de modèle sont résolues avant l'explorateur de journaux est ouvert.

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

Syntaxe Selected
Value
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 pipeline à 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 à afficher, la variable de modèle est résolu. 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 associées au libellé resource.instance_id, et uniquement lorsque la valeur de ce libellé 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, les éléments suivants montre comment utiliser une expression régulière pour déterminer si la valeur de la L'étiquette 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 Selected
Value
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 le encapsulée par des accolades:

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

Avant que le graphique ne demande la série temporelle à 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 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 cette valeur que dans le cadre d'un filtre défini à l'aide d'une expression régulière. Pour illustrer la syntaxe, l'exemple suivant montre comment utiliser une expression régulière pour déterminer si la valeur du libellé 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 PromQL requêtes:

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érie temporelle, 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 Selected
Value
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 de n'importe quel 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.

Si votre tableau de bord contient un tableau qui affiche des données de série temporelle, vous pouvez ajouter des filtres temporaires ou modifier des filtres et des variables permanents à l'aide du bouton Filtrer le tableau de bord selon cette valeur d'une cellule. Lorsqu'il est sélectionné, ce bouton applique un nouveau filtre temporaire ou met à jour la valeur d'un filtre ou d'une variable existants. Filtres et variables existants sont mis à jour lorsque la clé d'étiquette de la colonne de la table correspond à la clé d'étiquette pour un filtre ou une variable.

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 à la page Tableaux de bord

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

  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 effectuer vos modifications.
  4. Cliquez sur Appliquer.

Supprimer un filtre permanent

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

    Accéder à la page Tableaux de bord

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

  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.

Étape suivante