Skip to main content
L’API de télémétrie échange du JSON en HTTP sur 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 :
  1. Choisissez la route et la méthode HTTP dans le tableau des points de terminaison.
  2. Utilisez le bon jeton bearer : un jeton bearer d’ingestion pour l’ingestion, un jeton bearer de compte pour tout le reste.
  3. 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.
  4. N’ajoutez que les paramètres de requête que la route accepte. Consultez Filtres de requête.
  5. Envoyez Content-Type: application/json quand la route a un corps JSON.
  6. Lisez le statut HTTP et le corps de la réponse avant de réessayer.
  7. 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 commande logbrew 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 comme project, 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

Lisez 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 de LOGBREW_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

Ajoutez response_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.
La réponse est le problème mis à jour. Consultez les exemples de réponses de statut de problème.

Mettre à jour des problèmes en masse

Envoyez project_id et 1 à 100 ID de problèmes différents de ce projet :
La requête applique la même modification à chaque problème. La réponse contient 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 :
La liste contient tous les comptes qui peuvent lire le projet. Chaque entrée contient 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. La severity 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.
N’envoyez pas de versions vides. LogBrew les refuse pour que le suivi des versions reste fiable.