Activer la bibliothèque
Vous pouvez envoyer des rapports d'erreurs à Error Reporting depuis des applications PHP à l'aide de la bibliothèque Error Reporting pour PHP. Utilisez la bibliothèque Error Reporting pour PHP afin de créer des groupes d'erreurs dans les cas suivants:
- Votre bucket de journaux contient des clés de chiffrement gérées par le client (CMEK).
- Vos buckets de journaux ne se trouvent pas dans la région
global
. - Vous souhaitez signaler des événements d'erreur personnalisés.
Error Reporting est intégré à certains services Google Cloud, tels que App Engine, Compute Engine et Google Kubernetes Engine. Error Reporting vous permet d'afficher les erreurs qui sont consignées dans Cloud Logging par les applications exécutées sur ces services. Pour en savoir plus, consultez la section Exécuter sur Google Cloud de cette page.
Vous pouvez également envoyer des données d'erreur à Error Reporting à l'aide de Logging. Pour en savoir plus sur les exigences en matière de mise en forme des données, consultez la page Formater les messages d'erreur dans Logging.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez Error Reporting API .
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activez Error Reporting API .
Installer la bibliothèque cliente
La bibliothèque Error Reporting pour PHP vous permet de surveiller et d'afficher les erreurs signalées par les applications PHP exécutées depuis presque n'importe quel emplacement.
Pour en savoir plus sur l'installation, consultez la documentation sur la bibliothèque Error Reporting pour PHP. Vous pouvez également signaler d'éventuels problèmes à l'aide de l'outil de suivi des problèmes.
Configurer la bibliothèque cliente
Vous pouvez personnaliser le comportement de la bibliothèque Error Reporting pour PHP. Consultez la configuration de la bibliothèque pour afficher la liste des options de configuration possibles.
Exécuter des applications sur Google Cloud
Pour créer des groupes d'erreurs à l'aide de projects.events.report
, votre compte de service nécessite le rôle Rédacteur Error Reporting (roles/errorreporting.writer
).
Certains services Google Cloud accordent automatiquement le rôle Rédacteur Error Reporting (roles/errorreporting.writer
) au compte de service approprié. Toutefois, vous devez attribuer ce rôle au compte de service approprié pour certains services.
Environnement flexible App Engine
App Engine attribue automatiquement le rôle Rédacteur Error Reporting (roles/errorreporting.writer
) à votre compte de service par défaut.
La bibliothèque Error Reporting pour PHP peut être utilisée sans avoir à fournir explicitement des identifiants.
Pour activer Error Reporting dans l'environnement flexible App Engine, procédez comme suit :
Installez les bibliothèques nécessaires avec la commande suivante :
$ composer require google/cloud-error-reporting
Ajoutez la ligne suivante à la section
runtime_config
du fichierapp.yaml
:
La bibliothèque collecte ensuite automatiquement toutes les erreurs et exceptions non interceptées dans Error Reporting. Si vous utilisez un framework Web qui installe ses propres gestionnaires d'exceptions, consultez la section Intégrations de framework pour en savoir plus.
Google Kubernetes Engine
Pour utiliser Error Reporting avec Google Kubernetes Engine, procédez comme suit:
Assurez-vous que le compte de service que votre conteneur doit utiliser a reçu le rôle Rédacteur Error Reporting (
roles/errorreporting.writer
).Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.
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.
Créez votre cluster et accordez-lui le niveau d'accès
cloud-platform
.Par exemple, la commande "create" suivante spécifie le niveau d'accès
cloud-platform
et un compte de service:gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
Pour utiliser Error Reporting avec des instances de VM Compute Engine, procédez comme suit:
Assurez-vous que le compte de service que votre instance de VM doit utiliser a reçu le rôle Rédacteur Error Reporting (
roles/errorreporting.writer
).Vous pouvez utiliser le compte de service Compute Engine par défaut ou un compte de service personnalisé.
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.
-
Dans la console Google Cloud, sélectionnez Compute Engine, puis Instances de VM ou cliquez sur le bouton suivant :
Sélectionnez l'instance de VM à laquelle vous souhaitez recevoir le niveau d'accès
cloud-platform
.Cliquez sur Arrêter, puis sur Modifier.
Dans la section Identité et accès à l'API, sélectionnez un compte de service disposant du rôle Rédacteur Error Reporting (
roles/errorreporting.writer
).Dans la section Champs d'application de l'accès, sélectionnez Autoriser l'accès complet à l'ensemble des API Cloud, puis enregistrez vos modifications.
Cliquez sur Démarrer/Réactiver.
Exemple
1. Installez les bibliothèques cloud avec la commande suivante :
$ composer require google/cloud-error-reporting2. Ajoutez la ligne suivante au fichier
php.ini
, où WORKSPACE correspond au chemin absolu du répertoire racine de votre espace de travail :
auto_prepend_file='/WORKSPACE/vendor/google/cloud-error-reporting/src/prepend.php'
Ce fichier ajoute un gestionnaire d'exceptions et un gestionnaire d'erreurs qui envoient automatiquement des erreurs à Error Reporting.
Si vous utilisez l'environnement flexible App Engine, consultez la section Environnement flexible App Engine de cette page.
Exécuter des applications dans un environnement de développement local
Pour utiliser la bibliothèque Error Reporting pour PHP dans un environnement de développement local, par exemple en l'exécutant sur votre propre poste de travail, vous devez fournir à votre bibliothèque Error Reporting pour PHP les identifiants par défaut de l'application locale. Pour en savoir plus, consultez S'authentifier auprès d'Error Reporting.
Pour utiliser les exemples PHP 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.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez des identifiants d'authentification locaux pour votre compte Google :
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
La méthode projects.events.report
est également compatible avec les clés API.
Si vous souhaitez utiliser des clés API pour l'authentification, vous n'avez pas besoin de configurer un fichier d'identifiants par défaut de l'application local.
Pour en savoir plus, consultez la page Créer une clé API dans la documentation sur l'authentification Google Cloud
Afficher les rapports d'erreurs
Dans la console Google Cloud, sélectionnez Error Reporting ou cliquez sur le bouton suivant, puis sélectionnez un projet :
Pour en savoir plus, consultez la page Afficher les erreurs.
Intégrations de framework
Certains framework Web remplacent le gestionnaire d'exceptions. Vous trouverez ci-dessous des exemples où Error Reporting est activé avec Laravel et Symfony. Pour les autres frameworks, vous pouvez utiliser Google\Cloud\ErrorReporting\Bootstrap::exceptionHandler
comme gestionnaire d'exceptions.
Laravel
Modifiez la fonction report
dans le fichier app/Exceptions/Handler.php
, comme suit :
Vous devez également ajouter une instruction use
d'une ligne au début du fichier :
use Google\Cloud\ErrorReporting\Bootstrap;
Symfony
Créez un fichier src/AppBundle/EventSubscriber/ExceptionSubscriber.php
avec le contenu suivant :