Configurer des champs d'application d'observabilité pour les requêtes multiprojets

Ce document explique comment créer des graphiques ou afficher des données de journaux lorsque ces données sont stockées dans plusieurs projets. Par défaut, seuls les outils de visualisation ont accès aux données provenant d'un projet. Toutefois, si vous configurez un champ d'application, les outils de visualisation et d'analyse peuvent interroger les données stockées dans plusieurs projets.

Si vous souhaitez uniquement surveiller ou afficher les données stockées dans un seul projetGoogle Cloud , vous n'avez pas besoin d'effectuer de configuration.

Les champs d'application fournissent une agrégation au moment de la lecture

Les agrégations en lecture permettent aux outils de visualisation et d'analyse d'agréger les données stockées dans plusieurs emplacements. Les niveaux d'accès ne contrôlent pas l'emplacement de stockage des données. Au lieu de cela, les moteurs de requête s'appuient sur des champs d'application pour déterminer où rechercher les données.

Les données métriques et de trace sont toujours stockées dans le projet Google Cloud d'où proviennent les données. Pour afficher les données de métriques stockées dans plusieurs projets sur un même graphique, configurez un champ d'application des métriques afin de lister ces projets. Une fois que vous avez configuré ce champ d'application, lorsque vous créez un graphique ou une règle d'alerte, la requête émise par ces services renvoie automatiquement les données de métriques des projets listés. Le comportement est similaire pour les données de trace.

Par défaut, les données de journaux sont stockées dans le projet, le compte de facturation, le dossier ou l'organisation Google Cloud d'où proviennent les données. Toutefois, vous pouvez configurer la journalisation pour acheminer les données de journaux depuis la ressource où elles sont générées vers un autre emplacement, comme un autre projet ou un bucket de journaux centralisé. Dans tous les cas, configurez un champ d'application de journal personnalisé. Nous vous recommandons d'inclure des vues de journaux plutôt que des projets dans vos listes de champs d'application des journaux. Une vue de journaux permet d'accéder en lecture à un sous-ensemble d'entrées de journal dans un bucket de journaux. Par exemple, si vous avez des données de journaux stockées dans trois projets, vous pouvez configurer la vue des journaux pour inclure la vue _Default/_AllLogs pour chacun de ces projets.

Utilisation des portées par Google Cloud Observability

Les outils d'analyse et de visualisation de Google Cloud Observability s'appuient sur des portées spécifiques aux types de données pour déterminer les ressources à interroger afin d'obtenir les données que l'outil doit afficher ou analyser.

Exemples :

  • Lorsque la page Explorateur de journaux s'ouvre, le système interroge les ressources listées dans le champ d'application des journaux par défaut pour obtenir des données de journal. Une fois cette page ouverte, vous pouvez utiliser une option de barre d'outils pour interroger les ressources dans un autre champ d'application.
  • Lorsque la page Explorateur Trace s'ouvre, le système interroge les projets listés dans le champ d'application de trace par défaut pour obtenir des données de trace. Une fois cette page ouverte, vous pouvez utiliser une option de la barre d'outils pour interroger les ressources dans un autre champ d'application.
  • Lorsque vous créez une règle d'alerte, Monitoring interroge les projets listés dans le champ d'application des métriques pour obtenir des données de métriques. Il analyse ensuite la réponse à la requête et détermine s'il faut créer un incident.
  • Lorsque vous créez un graphique à l'aide de la page Explorateur de métriques, vous spécifiez une métrique à représenter sous forme de graphique. Monitoring interroge les projets listés dans le champ d'application des métriques pour obtenir des données de métriques, puis affiche les résultats de la requête.

Logging et Trace vérifient vos rôles Identity and Access Management (IAM) sur une ressource avant qu'une requête ne renvoie des données. Par exemple, si un champ d'application de journaux spécifie un projet pour lequel vous n'avez pas reçu les autorisations nécessaires pour lire les données de journaux, une requête adressée à ce projet ne renvoie aucune donnée.

Monitoring vérifie votre rôle IAM sur le projet à partir duquel la requête est émise. Supposons que le champ d'application des métriques d'un projet nommé AllEnv liste les projets suivants : AllEnv, Prod et Staging. Supposons également que le rôle Lecteur Monitoring vous a été attribué dans le projet AllEnv. Les graphiques que vous créez sur la page Explorateur de métriques lorsque vous utilisez le projet AllEnv affichent automatiquement les données de métriques pour les trois projets.

Périmètres Google Cloud Observability

Cette section décrit les différents niveaux d'accès utilisés par Google Cloud Observability.

Périmètre d'observabilité

Le champ d'application de l'observabilité spécifie le champ d'application des journaux et le champ d'application des traces par défaut. Des pages comme l'explorateur de journaux et l'explorateur Trace utilisent les champs d'application par défaut pour déterminer les ressources à interroger lorsque la page s'ouvre. Par exemple, supposons que vous ayez une application qui génère des données de trace dans trois projets. Vous pouvez configurer la page Explorateur Trace pour qu'elle interroge automatiquement ces trois projets en définissant le champ d'application de trace par défaut.

Si vous ne configurez pas le champ d'application de l'observabilité, les éléments suivants se produisent :

  • La page Explorateur de journaux interroge votre projet pour obtenir des données de journaux.
  • La page Explorateur Trace interroge votre projet pour obtenir des données de trace.

Le champ d'application de l'observabilité ne s'applique pas aux données de métriques.

Quand configurer le champ d'application de l'observabilité

Configurez le champ d'application de l'observabilité dans les scénarios suivants :

  • Vous créez un champ d'application de journaux personnalisé et vous souhaitez que les ressources listées dans ce champ d'application soient interrogées par défaut.

  • Vous créez un champ d'application de trace personnalisé et vous souhaitez que les projets listés dans ce champ d'application soient interrogés par défaut.

Limites associées aux périmètres d'observabilité

Description Valeur maximale
Nombre de portées d'observabilité par projet 1

Champs d'application de journaux

Les étendues de journaux sont utilisées par la page Explorateur de journaux et par les tableaux de bord qui affichent les données de journaux :

  • Lorsque la page Explorateur de journaux s'ouvre, le système interroge automatiquement les ressources listées dans le champ d'application des journaux par défaut pour obtenir les données de journaux. Cette page fournit également des commandes qui vous permettent de passer d'un champ d'application à un autre.

  • Pour les tableaux de bord, l'implémentation détermine si le système interroge le projet ou les ressources listées dans le champ d'application des journaux par défaut.

Un champ d'application des journaux peut lister des vues de journaux, des projets, des dossiers et des organisations.

Si vous ne configurez pas de champ d'application des journaux personnalisé, la page Explorateur de journaux interroge votre projet pour obtenir des données de journal.

Quand créer des portées de journaux personnalisées

Créez des niveaux de journalisation personnalisés pour les configurations suivantes :

Dans tous les cas, configurez vos portées de journaux personnalisées pour qu'elles listent une ou plusieurs vues de journaux. Ces vues de journaux peuvent se trouver dans un bucket de journaux centralisé ou dans différents buckets de journaux. Si vous utilisez un bucket de journaux centralisé, vous pouvez créer plusieurs portées de journaux personnalisées, chacune avec son propre ensemble de vues de journaux.

Si vous créez des champs d'application de journaux personnalisés, pensez à mettre à jour le champ d'application de journaux par défaut.

Bonnes pratiques pour configurer les niveaux de journaux

  • N'incluez que les vues de journaux.
  • Ne configurez pas un champ d'application qui liste à la fois des projets et des vues de journal.

Limites associées aux niveaux de journaux

Description Valeur maximale
Nombre de portées de journaux par projet 100
Nombre de projets par champ d'application des journaux 5
Nombre de vues de journaux ou de projets par champ d'application des journaux 100

Pour en savoir plus, consultez la section Créer et gérer des champs d'action des journaux.

Champ d'application des métriques

Le champ d'application des métriques est utilisé par toutes les requêtes émises par Cloud Monitoring. Par exemple, les règles d'alerte et les outils de création de graphiques tels que l'explorateur de métriques envoient des requêtes aux projets listés dans le champ d'application des métriques.

Si vous ne configurez pas le champ d'application des métriques, les services Monitoring interrogent votre projet pour obtenir des données de métriques.

Quand configurer les champs d'application des métriques

Configurez le champ d'application des métriques si l'une des conditions suivantes est remplie :

Limites associées aux champs d'application des métriques

Description Valeur maximale
Nombre de champs d'application des métriques par projet 1
Nombre de projets par champ d'application des métriques 375

Pour en savoir plus, consultez Présentation des champs d'application des métriques.

Champs d'application des traces

Les champs d'application de trace sont utilisés par la page Explorateur Trace. Lorsque cette page s'ouvre, le système interroge automatiquement les projets listés dans le champ d'application de trace par défaut pour obtenir des données de trace. Cette page fournit également des commandes qui vous permettent de passer d'un champ d'application à un autre.

Si vous ne configurez pas de champ d'application de trace personnalisé, la page Explorateur Trace interroge votre projet pour obtenir des données de trace.

Quand créer des portées de trace personnalisées

Créez des portées de trace personnalisées lorsque vous avez des applications qui s'appuient sur des ressources dans différents projets Google Cloud .

Limites associées aux champs d'application de trace

Description Valeur maximale
Nombre de champs d'application de trace par projet 100
Nombre de projets par champ d'application de trace 20

Pour en savoir plus, consultez Créer et gérer des champs d'application de trace.

Configurer le champ d'application de l'observabilité

Cette section ne s'applique pas aux dossiers ni aux organisations.

Pour les données de journaux et de traces, vos rôles Identity and Access Management (IAM) dans le projet que vous consultez, ainsi que dans les projets et les vues de journaux recherchés, affectent les données renvoyées par la requête. Si vous envoyez une requête pour afficher des données de journaux auxquelles vous n'avez pas accès, la requête ne renvoie aucune donnée de journal.

Pour les données de métriques, lorsqu'un champ d'application de métriques est configuré pour un projet, ce projet obtient un accès en lecture aux données de métriques stockées par les projets listés dans son champ d'application de métriques. Lorsqu'un utilisateur se voit attribuer un rôle Identity and Access Management qui lui permet d'afficher les données de métriques dans un projet, il peut consulter les données de métriques disponibles pour le projet.

Pour configurer le champ d'application de l'observabilité, définissez le champ d'application des journaux et le champ d'application de trace par défaut. Le reste de cette section explique comment effectuer ces actions.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Pour obtenir les autorisations nécessaires pour créer et afficher des portées, demandez à votre administrateur de vous accorder les rôles IAM suivants :

    • Pour créer et afficher des champs d'action de journaux, et pour obtenir le champ d'action des journaux par défaut : Rédacteur de configuration des journaux (roles/logging.configWriter) sur votre projet
    • Pour modifier un champ d'application de métriques : Administrateur Monitoring (roles/monitoring.admin) sur votre projet et sur chaque projet que vous souhaitez ajouter au champ d'application des métriques
    • Pour créer et afficher des champs d'application de trace, et pour obtenir et définir des champs d'application par défaut : Éditeur de champs d'application d'observabilité (roles/observability.scopesEditor) sur votre projet

    Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

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

    Le rôle "Éditeur de portées d'observabilité" inclut des autorisations privées qui vous permettent de créer et d'afficher des portées de trace. Ces autorisations ne peuvent pas être incluses dans des rôles IAM personnalisés.

  9. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    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.

    REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

    Afficher et définir le champ d'application par défaut

    Console

    Pour configurer le champ d'application de l'observabilité, vous configurez ses composants, à savoir le champ d'application des journaux par défaut, le champ d'application des métriques et le champ d'application des traces par défaut :

    1. Dans la console Google Cloud , accédez à la page  Paramètres :

      Accéder aux paramètres

      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 de la console Google Cloud , sélectionnez 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.
    3. Configurez le champ d'application des journaux par défaut :

      1. Sélectionnez l'onglet Étendues du journal.

        Les niveaux d'accès aux journaux existants sont listés. L'entrée comportant l'icône "Par défaut", , est le champ d'application des journaux par défaut. Si vous souhaitez créer un champ d'application des journaux, cliquez sur Créer un champ d'application des journaux, puis remplissez la boîte de dialogue. Pour en savoir plus, consultez Créer et gérer des champs d'action de journaux.

      2. Recherchez l'entrée que vous souhaitez définir comme entrée par défaut, cliquez sur  Plus, puis sélectionnez Définir par défaut.

    4. Configurez le champ d'application des métriques :

      1. Sélectionnez l'onglet "Champ d'application des métriques".
      2. Dans le volet Projets Google Cloud, cliquez sur Ajouter des projets, puis renseignez la boîte de dialogue. Pour en savoir plus, consultez Configurer les champs d'application des métriques.
    5. Configurez le champ d'application de trace par défaut :

      1. Sélectionnez l'onglet Étendues de trace, puis procédez comme suit :

        Les portées de trace existantes sont listées. L'entrée avec l'icône "Par défaut"  correspond au champ d'application de trace par défaut. Si vous souhaitez créer un champ d'application de trace, cliquez sur Créer un champ d'application de journal, puis remplissez la boîte de dialogue. Pour en savoir plus, consultez Créer et gérer des champs d'application de trace.

      2. Recherchez l'entrée que vous souhaitez définir comme entrée par défaut, cliquez sur  Plus, puis sélectionnez Définir par défaut.

    gcloud

    Pour afficher et définir le champ d'application de l'observabilité, procédez comme suit :

    1. Pour afficher les paramètres du champ d'application de l'observabilité, exécutez la commande gcloud observability scopes describe.

      Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

      • OBSERVABILITY_SCOPE_ID : nom d'un objet Scope. Cette valeur doit être définie sur _Default.
      • LOCATION : le champ "Emplacement" doit être défini sur global.
      • PROJECT_ID : identifiant du projet.

      Exécutez la commande gcloud observability scopes describe  :

      Linux, macOS ou Cloud Shell

      gcloud observability scopes describe OBSERVABILITY_SCOPE_ID \
         --location=LOCATION\
         --project=PROJECT_ID

      Windows (PowerShell)

      gcloud observability scopes describe OBSERVABILITY_SCOPE_ID `
         --location=LOCATION`
         --project=PROJECT_ID

      Windows (cmd.exe)

      gcloud observability scopes describe OBSERVABILITY_SCOPE_ID ^
         --location=LOCATION^
         --project=PROJECT_ID

      La réponse à la commande ressemble à ce qui suit :

      logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default
      traceScope: projects/my-project/locations/global/traceScopes/_Default
      name: projects/my-project/locations/global/scopes/_Default
      

    2. Pour mettre à jour le champ d'application de l'observabilité, exécutez la commande gcloud observability scopes update. Dans la commande update, vous pouvez inclure l'option --log-scope pour mettre à jour le champ d'application des journaux par défaut.

      Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

      • OBSERVABILITY_SCOPE_ID : nom d'un objet Scope. Cette valeur doit être définie sur _Default.
      • LOG_SCOPE_FQN_ID : ID complet du champ d'application du journal. Ce champ est au format suivant :
        logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/logScopes/LOG_SCOPE_ID

        Dans l'expression précédente, LOG_SCOPE_ID correspond à l'ID du champ d'application du journal. Exemple : my-scope.

      • LOCATION : le champ "Emplacement" doit être défini sur global.
      • PROJECT_ID : identifiant du projet.

      Exécutez la commande gcloud observability scopes update  :

      Linux, macOS ou Cloud Shell

      gcloud observability scopes update OBSERVABILITY_SCOPE_ID \
         --log-scope=LOG_SCOPE_FQN_ID\
         --location=LOCATION\
         --project=PROJECT_ID

      Windows (PowerShell)

      gcloud observability scopes update OBSERVABILITY_SCOPE_ID `
         --log-scope=LOG_SCOPE_FQN_ID`
         --location=LOCATION`
         --project=PROJECT_ID

      Windows (cmd.exe)

      gcloud observability scopes update OBSERVABILITY_SCOPE_ID ^
         --log-scope=LOG_SCOPE_FQN_ID^
         --location=LOCATION^
         --project=PROJECT_ID

      Par exemple, si la valeur de LOG_SCOPE_ID est my-scope, la réponse est semblable à la suivante :

      Updated scope [_Default].
      logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/my-scope
      name: projects/my-project/locations/global/scopes/_Default
      

    REST

    Pour obtenir et définir le champ d'application des journaux par défaut ou le champ d'application du traçage par défaut à l'aide d'un appel d'API, configurez le champ d'application de l'observabilité. Le champ d'application de l'observabilité liste le champ d'application des journaux par défaut et le champ d'application de trace par défaut :

    • Pour obtenir le champ d'application de l'observabilité par défaut d'un projet, envoyez une requête au point de terminaison projects.locations.scopes.get. Vous devez spécifier un paramètre de chemin d'accès. La réponse est un objet Scope, qui liste le champ d'application des journaux et le champ d'application des traces par défaut.

    • Pour modifier le champ d'application de l'observabilité par défaut d'un projet, envoyez une requête au point de terminaison projects.locations.scopes.patch. Vous devez spécifier un paramètre de chemin d'accès et des paramètres de requête, et fournir un objet Scope. Les paramètres de requête identifient les champs qui ont été modifiés. La réponse est un objet Scope.

    Le paramètre de chemin d'accès pour les deux points de terminaison se présente comme suit :

    projects/PROJECT_ID/locations/LOCATION/scopes/OBSERVABILITY_SCOPE_ID
    

    Les champs de l'expression précédente ont la signification suivante :

    • 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.
    • LOCATION : le champ "Emplacement" doit être défini sur global.
    • OBSERVABILITY_SCOPE_ID : nom d'un objet Scope. La valeur de ce champ doit être définie sur _Default. L'objet Scope portant le nom _Default, qui est créé automatiquement, stocke des informations sur le champ d'application des journaux et des traces par défaut.

    Pour envoyer une commande à un point de terminaison d'API, vous pouvez utiliser APIs Explorer, qui vous permet d'envoyer une commande depuis une page de référence. Par exemple, pour obtenir le champ d'application par défaut actuel, vous pouvez procéder comme suit :

    1. Cliquez sur projects.locations.scopes.get.
    2. Dans le widget Try this method (Essayer cette méthode), saisissez ce qui suit dans le champ name :

      projects/PROJECT_ID/locations/global/scopes/_Default
      

      Avant de copier le champ précédent, remplacez PROJECT_ID par le nom de votre projet.

    3. Sélectionnez Execute (Exécuter).

    4. Dans la boîte de dialogue d'autorisation, effectuez les étapes requises.

      La réponse est semblable à ce qui suit :

      {
      "name": "projects/my-project/locations/global/scopes/_Default",
      "logScope": "logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default"
      "traceScope": "projects/my-project/locations/global/traceScopes/_Default"
      }
      

    En savoir plus sur les champs d'application

    Pour en savoir plus sur les habilitations, consultez les documents suivants :