https://api.logbrew.co. Les
SDK publics envoient leurs lots gérés à POST /v1/events. Les clients natifs
personnalisés envoient des enveloppes natives à POST /api/telemetry/ingest.
Les deux routes d’ingestion exigent un jeton bearer d’ingestion limité au
projet.
Les lectures et les modifications qui appartiennent au compte utilisent un
jeton bearer de compte. N’utilisez jamais un jeton bearer de compte ni une
session de navigateur comme configuration du SDK ou de l’ingestion. N’envoyez
jamais un jeton bearer d’ingestion à une route de lecture.
Envoyer une requête bien délimitée
Suivez cette liste avant qu’un client envoie une requête :- Choisissez la route et la méthode HTTP dans le tableau des points de terminaison.
- Utilisez le bon jeton bearer : un jeton bearer d’ingestion pour l’ingestion, un jeton bearer de compte pour tout le reste.
- Sélectionnez le périmètre de projet que la route prend en charge. N’élargissez pas le périmètre après une réponse vide.
- N’ajoutez que les paramètres de requête que la route accepte. Consultez Filtres de requête.
- Envoyez
Content-Type: application/jsonquand la route a un corps JSON. - Lisez le statut HTTP et le corps de la réponse avant de réessayer.
- Gardez les jetons bearer, les tickets de flux et les corps de réponse complets hors des logs et des prompts des agents.
Points de terminaison
Ingestion
Laissez le SDK construire les lots
/v1/events. Ne les construisez pas à la
main. Pour l’enveloppe native, consultez
Intégration du SDK.
Lectures de télémétrie
Déploiements
Enregistrez un déploiement depuis votre automatisation de livraison, après sa
réussite ou son échec. Le corps de
PUT contient project_id, release,
environment, service_name, status (succeeded ou failed),
started_at, finished_at et un commit_sha facultatif. Utilisez les mêmes
valeurs de release, environment et service_name que votre SDK. Le compte
doit posséder le projet.
deployment_id est votre propre ID du déploiement. Une nouvelle
tentative avec le même ID et le même corps renvoie le déploiement
enregistré. Le même ID avec un corps différent échoue avec 409 et
idempotency_conflict. Utilisez un nouvel ID pour un autre
déploiement.
Investigations
Chaque route d’investigation renvoie un dossier de preuves borné sur un seul objet. La commandelogbrew explain de la CLI lit ces
routes et valide la réponse.
Analyses produit
Les routes d’analyse
POST acceptent un corps JSON, pas des paramètres de
requête. Consultez Analyses produit.
Flux en direct
Compte et connexion
Les routes d’utilisation, de quota, d’abonnement et de déconnexion se trouvent dans l’API de compte.Codes de statut de succès
Une réponse
200 ne prouve pas que les preuves sont complètes. Lisez les
champs de couverture, de troncature et de statut de la réponse.
Filtres de requête et pagination
Chaque route de lecture accepte ses propres paramètres de requête. Les alias pratiques commeproject, trace et user ne sont pas des paramètres de
requête. Par défaut, les routes de liste renvoient un tableau simple. Avec
pagination=cursor, elles renvoient une enveloppe avec curseur. La liste des
déploiements renvoie toujours un objet de page. Consultez
Filtres de requête.
Réponses et erreurs
- Formats de réponse montre un exemple pour chaque famille de réponses.
- Erreurs de l’API liste les codes d’erreur et les actions de correction.
code avant le message destiné aux humains. Utilisez next_action pour
le comportement du programme et next pour guider une personne. N’analysez
pas le texte de error ni de next.
Mettre à jour les problèmes
Ces requêtes utilisent un jeton bearer de compte. Il est volontairement différent deLOGBREW_INGEST_BEARER. Le compte doit avoir l’autorisation de
gérer les problèmes du projet concerné. Sinon, la requête échoue avec 403 et
forbidden. La même autorisation couvre les modifications du statut, de la
priorité et du responsable, ainsi que les règles des problèmes et des logs.
Chaque requête définit un ou plusieurs de ces champs :
Une requête sans aucun de ces champs échoue avec
422 et
validation_failed.
Un problème a au plus un responsable : un compte ou une équipe. Un compte doit
pouvoir lire le projet, et une équipe doit appartenir à l’organisation du
projet. Sinon, la requête échoue avec 422 et validation_failed, et LogBrew
ne modifie rien. Pour obtenir les comptes que vous pouvez désigner, utilisez
Lister les responsables. Toute autre valeur de assignee
échoue aussi avec 422 et validation_failed.
Une priorité que vous définissez reste fixe. Sans priorité définie à la main,
la priorité suit la gravité du problème : error et critical donnent
high, warning donne medium et info donne low.
Un champ qui a déjà la valeur demandée ne change pas. Vous pouvez renvoyer la
même requête après un délai d’attente dépassé. Un délai dépassé ne prouve pas
que la modification n’a pas eu lieu. Relisez le problème avant d’envoyer une
modification différente.
Mettre à jour un problème
Ajoutezresponse_version=4 pour obtenir archived, la priorité et le
responsable dans la réponse. En version 4, assignee vaut
{ "type": "user", "user_id", "name", "email" },
{ "type": "team", "team_id", "slug", "name" } ou null. La version 3
affiche une équipe responsable comme null.
Mettre à jour des problèmes en masse
Envoyezproject_id et 1 à 100 ID de problèmes différents de ce
projet :
project_id et results, avec un résultat par ID de
problème, dans l’ordre de la requête. Chaque résultat contient issue_id,
outcome et issue. issue est le problème actuel dans la version 3 de la
réponse, ou null pour not_found. Ajoutez "response_version": 2 au corps
de la requête pour obtenir chaque problème dans la version 4 de la réponse.
Une liste vide, plus de 100 ID ou un ID répété échouent avec
422 et validation_failed. Répartissez un ensemble plus grand sur plusieurs
requêtes. Si le compte ne peut pas lire le projet, la requête échoue avec 404
et not_found.
Lister les responsables
Envoyez l’ID du projet pour obtenir tous les comptes auxquels des problèmes peuvent être attribués dans ce projet :user_id, name et email. name vaut null quand le compte n’a
pas de nom. Ajoutez response_version=2 pour obtenir aussi teams : toutes
les équipes de l’organisation du projet, avec team_id, slug et name.
Consultez la
réponse de la liste des responsables.
Tout compte qui peut lire le projet peut obtenir cette liste. Si le compte ne
peut pas lire le projet, la requête échoue avec 404 et not_found.
Quand un membre perd l’accès au projet, les problèmes qui lui sont attribués
n’affichent plus de responsable. Si le membre retrouve l’accès, les problèmes
l’affichent de nouveau, sauf si quelqu’un a modifié ou retiré le responsable
entre-temps.
Propriété et propriétaires suggérés
GET /api/telemetry/issues/ownership?project_id=<project-uuid> renvoie
rules, codeowners, updated_at et unresolved_owners. Tout compte qui
peut lire le projet peut le lire. PUT avec project_id et rules,
codeowners ou les deux remplace ce texte et demande l’autorisation de gérer
les problèmes. Un champ absent garde son texte, et une chaîne vide l’efface.
Chaque texte fait 128 Kio au plus. Un texte non valide échoue avec 422 et
indique la ligne en cause.
GET /api/telemetry/issues/{issue_id}/owners?response_version=2 renvoie
suggested_assignee, owners et inputs. Chaque propriétaire a un type
(user ou team), une source (ownership_rule, codeowners ou
recent_activity), ainsi que rule, line et matched. La version 1, par
défaut, ne liste que des comptes.
Historique d’un problème
GET /api/telemetry/issues/{issue_id}/activity?response_version=2 renvoie
activity, du plus récent au plus ancien, et next_cursor. Chaque entrée
contient type (status, priority, assigned, unassigned,
severity_rule ou first_seen), value, actor_id, actor,
assignee_id, assignee, team et at. limit va de 1 à 200, avec 50 par
défaut. Envoyez cursor_time et cursor_id issus de next_cursor pour la
page suivante.
Notifications
GET /api/telemetry/issues/notifications renvoie notifications, unread,
read_at et next_cursor. Chaque notification est l’attribution d’un
problème, à vous ou à votre équipe, par un autre compte. POST /api/telemetry/issues/notifications/read avec un objet JSON vide, ou avec
read_at, déplace votre marque de lecture. La marque ne recule jamais.
Définir des règles pour les problèmes et les logs
Une règle change la façon dont LogBrew affiche les signaux correspondants. Elle ne supprime pas de données. Laseverity capturée reste inchangée, et la
réponse affiche la règle dans triage.
severity vaut info, warning, error, critical ou source. source
annule le remplacement et affiche de nouveau la gravité capturée. Pour une règle
de log, ignored: true masque les logs correspondants dans la liste de logs
par défaut. Lisez-les avec status=ignored ou status=all. La règle
s’applique aux signaux correspondants déjà conservés et futurs. Une autre
valeur échoue avec 422 et validation_failed.
