logbrew login avant de
commencer.
Problèmes et occurrences
Une liste de problèmes renvoie un résumé du groupe, pas un événement complet. Lisez ces champs avant d’ouvrir le détail :
Le nombre d’occurrences n’est pas un nombre d’utilisateurs touchés. Les
comptages et les heures s’appliquent au périmètre renvoyé, pas à tout
l’historique des erreurs. Un filtre
--since ou --until limite les
occurrences que LogBrew compte. Quand vous communiquez un comptage, indiquez
aussi les filtres qui l’ont produit.
Valeurs de statut
archived s’appelait auparavant ignored. Les 2 noms sélectionnent les mêmes
problèmes, et les 2 sont acceptés en entrée. logbrew read, logbrew issues
et les versions 2 et 3 de l’API affichent archived. La version 1 de l’API
(par défaut), le flux de suivi en direct et la réponse d’investigation de
problème affichent ignored. Le tableau de bord affiche les statuts
« Non résolu », « Résolu » et « Archivé ».
Le statut s’applique à tout le problème, pas à une seule occurrence. La gravité
indique l’urgence, et le statut enregistre la décision. Gardez les deux
séparés. Un problème critical peut passer à resolved après un correctif
vérifié. Un problème archived conserve sa gravité capturée.
LogBrew ne rouvre pas automatiquement un problème résolu. Quand une nouvelle
occurrence arrive après la résolution, l’investigation indique
regressed pour lifecycle.effective_status. Le status reste resolved
jusqu’à ce qu’une personne rouvre le problème.
Priorité
La priorité fixe l’ordre dans lequel l’équipe trie les problèmes :
Chaque problème a une priorité. Si personne ne la définit, elle suit la gravité
du problème :
error et critical donnent high, warning donne medium,
et info donne low. Quand une règle de problème modifie la gravité, la
priorité suit triage.effective_severity. priority_source vaut alors
derived. Quand une personne définit la priorité, celle-ci reste fixe et
priority_source vaut manual.
Pour lister les problèmes à examiner en premier :
Attribuer des problèmes
Attribuez un problème pour indiquer qui est responsable de la prochaine étape. Un problème a 0 ou 1 responsable : un compte ou une équipe.1
Trouver les comptes attribuables
assignees contient chaque compte qui peut lire le projet, avec
user_id, name et email. teams contient chaque équipe de
l’organisation du projet, avec team_id, slug et name. Vous ne pouvez
pas attribuer un problème à un compte qui ne peut pas lire le projet, ni à
une équipe d’une autre organisation.2
Attribuer le problème
me à la place d’un ID d’utilisateur pour vous attribuer le
problème. Utilisez logbrew issues unassign "<issue_id>" --json pour
retirer l’attribution. Ajoutez --project pour modifier jusqu’à 100
problèmes d’un même projet.3
Lire vos problèmes
--assignee my_teams pour les problèmes de vos équipes,
--assignee "team:<team_id>" pour une seule équipe, et --assignee none
pour les problèmes qui n’ont pas de responsable.--assignee none. Si le membre retrouve
l’accès, les problèmes affichent de nouveau ce membre, sauf si quelqu’un a
changé ou retiré l’attribution entre-temps.
Trouver le propriétaire d’un problème
suggested_assignee. Chaque propriétaire a une
source :
inputs compte les chemins de frames de pile, les modules, le modèle de route,
les tags et les règles que LogBrew a vérifiés. Si la liste est vide et que
inputs n’indique aucun chemin, le problème n’a pas de preuve à comparer. Cela
ne veut pas dire qu’il n’a pas de propriétaire.
Écrivez les règles de propriété dans un fichier texte, une règle par ligne :
path correspond à la fin du chemin d’un frame de pile : ainsi,
src/payments/** trouve les frames sous n’importe quel répertoire de
déploiement. * correspond à n’importe quel texte. Les propriétaires sont des
e-mails de comptes ou des #team-slug. La dernière règle qui correspond passe
en premier. Envoyez ensuite les règles, un fichier CODEOWNERS de GitHub, ou les
deux :
@org/team-slug désigne
l’équipe qui a ce slug. Les règles qui désignent un compte sans accès au projet
ou une équipe inconnue échouent avec 422. Les propriétaires CODEOWNERS qui ne
désignent personne apparaissent dans unresolved_owners. Un fichier vide
efface son texte.
Lire l’historique d’un problème
first_seen. Un compte qui a perdu l’accès au projet
ne garde que son ID. Utilisez --limit et les valeurs de next_cursor pour
lire la suite.
Lire votre boîte de réception
unread
compte les attributions arrivées après votre marque de lecture.
logbrew inbox read place la marque de lecture à maintenant. LogBrew n’envoie
pas d’e-mail pour ces attributions. La boîte de réception n’affiche que les
projets que vous pouvez lire actuellement.
Workflow recommandé
1
Lister les problèmes non résolus d’un périmètre
2
Lire le détail du problème
3
Investiguer une occurrence
subject.project_id, event.occurred_at, la version et
l’environnement avec votre périmètre. L’occurrence recommandée peut être
plus ancienne que la dernière. Suivez
Investiguer un problème pour l’examen
complet des preuves.4
Suivre les preuves de trace seulement si elles sont disponibles
Lisez la trace uniquement quand La lecture de trace n’a pas de filtre de période. Si le statut vaut
correlations.trace.status vaut
available. Utilisez l’ID de trace de la réponse. N’en inventez jamais
un.not_linked, continuez avec les preuves du problème.5
Vérifier le déploiement candidat
Utilisez l’occurrence investiguée comme référence. Récupérez l’ID du
déploiement dans les preuves de déploiement ou dans votre processus de
livraison.L’absence de récurrence pendant la période d’observation ne prouve pas
une correction définitive. Si
status vaut insufficient_traffic ou
unavailable, laissez le problème à unresolved. Suivez la prochaine
étape renvoyée.6
Changer le statut, la priorité ou le responsable
Exécutez une seule commande. Ces commandes ne demandent pas de
confirmation : vérifiez donc d’abord l’ID du problème.Sans
--project, chaque commande accepte 1 ID de problème. Vérifiez le
code de sortie ainsi que les status, priority et assignee renvoyés.
Si le résultat manque, relisez le problème avant la modification
suivante.Les anciens scripts peuvent utiliser
logbrew set issue "<issue_id>" resolved et les raccourcis resolve,
ignore et reopen. ignore définit archived.Modifier plusieurs problèmes à la fois
Ajoutez--project pour modifier jusqu’à 100 problèmes d’un même projet en
une seule commande :
Chaque entrée contient
issue_id, outcome et issue. issue est le
problème dans son état actuel, ou null pour not_found. Vous pouvez relancer
la même commande après une panne réseau. Les problèmes déjà modifiés affichent
unchanged. Pour plus de 100 problèmes, exécutez plusieurs commandes. Pour un
résultat not_found, recopiez l’ID depuis une liste de problèmes de ce projet.
Consultez
Mettre à jour des problèmes en masse
pour la requête d’API.
Choisir le statut suivant
- Gardez
unresolvedquand l’échec est actif ou que le correctif n’est pas vérifié. Une trace manquante n’est pas une raison d’archiver un problème. - Passez à
resolvedquand l’équipe a accepté les preuves du correctif. Un correctif proposé n’est pas une preuve. - Passez à
archivedpour une condition acceptée ou un signal de test uniquement. La décision s’applique à toutes les occurrences du problème. La commande n’a pas de champ de motif : notez donc le motif dans le suivi de travail de votre équipe. - Rouvrez avec
unresolvedquand une nouvelle occurrence arrive après la résolution.lifecycle.regression.first_reappeared_occurrencel’identifie. Comparez-la avec l’occurrence utilisée pour la résolution. Ne créez pas un autre problème.
Transmettre l’investigation
Donnez à la personne suivante des références, pas une copie brute des événements :- L’ID, le statut, la priorité, le responsable et la gravité du problème.
- Le projet, le service, l’environnement et la version.
- L’heure de première occurrence, l’heure de dernière occurrence et le nombre d’occurrences.
- L’ID de l’occurrence sélectionnée et
occurrence_selection.reason. fix.status,cause.statuset leurprovenance.- Le statut et l’ID de la trace, s’ils sont disponibles.
- Le statut de reproduction et les preuves manquantes.
- Le résultat de la vérification du déploiement candidat.
- La prochaine étape renvoyée par la réponse.
Corriger les erreurs de la CLI
Vérifiez le code de sortie du processus avant d’analyser la sortie. En cas de succès, le JSON est écrit sur la sortie standard. Une erreur d’analyse de la commande se termine avec le code2. Une erreur d’exécution se termine avec le
code 1. Les erreurs JSON sont écrites sur la sortie d’erreur standard et
contiennent ok: false, error, message et next. Affichez next comme
une indication. Ne l’exécutez pas automatiquement.
Par exemple, logbrew issues archive "<issue_id_1>" "<issue_id_2>" --json
n’a pas de --project. La commande se termine avec le code 2 avant toute
requête, avec l’erreur invalid_issue_command.
Quand l’API rejette une requête, error vaut api_error. Lisez status pour
le statut HTTP et api_code pour le code d’erreur de l’API.
Une réponse en échec ne prouve pas qu’un changement de statut, de priorité ou
de responsable n’a eu aucun effet. Relisez le problème avant de réessayer.
Ce qui rend un problème utile
- Un titre clair et un message lisible.
- Une empreinte stable.
- Des frames de pile, quand ils sont disponibles.
- Le contexte de version, d’environnement et de service.
- Le contexte de trace, quand il est capturé avec l’occurrence.
- Quelques attributs courts et pertinents, pas des payloads complets.
