Un agent SRE en lecture seule sur Cloud Logging et Cloud Monitoring
Construire un agent ADK qui lit les erreurs récentes d'un projet dans Cloud Logging et les compteurs de Cloud Monitoring, les regroupe, les corrèle et propose des remédiations sans jamais rien modifier, testé sur un incident fictif écrit puis supprimé.
Un agent SRE en lecture seule sur Cloud Logging et Cloud Monitoring
Trois heures du matin, une alerte sonne. Avant de toucher à quoi que ce soit, l'ingénieur d'astreinte veut savoir : quelles erreurs ? depuis quand ? laquelle a commencé en premier ? que faire ? Ce lab construit un agent qui prépare cette réponse en lisant Cloud Logging et Cloud Monitoring, sans aucun droit de modification. Il propose ; un humain décide.
Pour qui ?
Vous connaissez ADK et les bases de Google Cloud. Vous voulez un agent utile en exploitation, dont la sécurité repose sur une règle simple : il ne peut que lire.
Ce que vous construisez
flowchart LR G["generer_logs_test.py : incident fictif (journal lab-supervision)"] --> L["Cloud Logging"] L -->|"métrique système"| M["Cloud Monitoring : log_entry_count"] A["Agent ADK sre_lecture_seule"] -->|"lire_erreurs : list_entries"| L A -->|"compter_par_severite : list_time_series"| M A --> R["Rapport : résumé, incidents, corrélations, remédiations à valider"] H["Ingénieur d'astreinte"] --> R
Prérequis
- Python 3.10+,
gcloudconnecté (gcloud auth application-default login), un projet avec Vertex AI, Cloud Logging et Cloud Monitoring activés. pip install -r requirements.txt(ADK 2.10,google-cloud-logging,google-cloud-monitoring).- Le code : files/ —
agent.py,generer_logs_test.py,lancer.py,test_supervision.py,nettoyer.sh.
Programme
| Module | Leçon | Ce que vous faites |
|---|---|---|
| 1. Cas d'usage et architecture | Un SRE qui ne touche à rien | rôle, limites, droits en lecture seule |
| 2. Construire pas à pas | Lire Cloud Logging et Cloud Monitoring | filtres, bibliothèques Python, métrique log_entry_count |
| Regrouper, corréler, rédiger | signatures, corrélation temporelle, consigne de l'agent | |
| 3. Tester et exploiter | Un incident de test, puis on efface tout | tests sans clé, incident fictif, run réel, suppression du journal |
En local ou sur GCP ?
| Ce lab | En production | |
|---|---|---|
| Où tourne l'agent | votre poste, identifiants ADC | Cloud Run ou Agent Engine, compte de service dédié |
| Droits | ceux de votre compte (attention : souvent bien plus que la lecture) | uniquement roles/logging.viewer + roles/monitoring.viewer |
| Données | un incident fictif dans le journal lab-supervision | tous les journaux du projet |
Ressources
- example.env.example1 KB
- pyagent.py7 KBVoir
- pygenerer_logs_test.py2 KBVoir
- pylancer.py2 KBVoir
- shnettoyer.sh1 KBVoir
- txtrequirements.txt1 KBVoir
- pytest_supervision.py3 KBVoir
Références
- Cloud Logging : langage de requêtecloud.google.com
- Bibliothèque Python google-cloud-loggingcloud.google.com
- Cloud Monitoring : liste des métriques Google Cloud (dont log_entry_count)cloud.google.com
- Cloud Logging : contrôle d'accès (roles/logging.viewer)cloud.google.com
- Cloud Logging : journaux structuréscloud.google.com
- Site Reliability Engineering : Monitoring Distributed Systemssre.google