Skip to main content
Die Telemetrie-API ist JSON über HTTP unter https://api.logbrew.co. Öffentliche SDKs senden ihre verwalteten Batches an POST /v1/events. Eigene native Clients senden native Umschläge an POST /api/telemetry/ingest. Beide Ingest-Routen verlangen ein Ingest-Bearer-Token für das Projekt. Lesevorgänge und Änderungen am Konto nutzen ein Konto-Bearer-Token. Verwenden Sie ein Konto-Bearer-Token oder eine Browsersitzung nie als SDK- oder Ingest-Konfiguration. Senden Sie ein Ingest-Bearer-Token nie an eine Leseroute.

Begrenzte Anfrage senden

Gehen Sie diese Prüfliste durch, bevor ein Client eine Anfrage sendet:
  1. Wählen Sie Route und HTTP-Methode aus der Endpunkt-Tabelle.
  2. Verwenden Sie das richtige Bearer-Token: ein Ingest-Bearer-Token für die Signalaufnahme, ein Konto-Bearer-Token für alles andere.
  3. Wählen Sie den Projektbereich, den die Route unterstützt. Erweitern Sie den Bereich nicht nach einer leeren Antwort.
  4. Fügen Sie nur Query-Schlüssel hinzu, die die Route annimmt. Siehe Abfragefilter der Telemetrie-API.
  5. Senden Sie Content-Type: application/json, wenn die Route einen JSON-Body hat.
  6. Lesen Sie den HTTP-Status und den Antwort-Body, bevor Sie wiederholen.
  7. Halten Sie Bearer-Tokens, Feed-Tickets und vollständige Antwort-Bodys aus Logs und Agenten-Prompts heraus.

Endpunkte

Signalaufnahme

Lassen Sie das SDK die Batches für /v1/events bauen. Erstellen Sie sie nicht von Hand. Den nativen Umschlag beschreibt SDK-Integration.

Telemetrie lesen

Bereitstellungen

Erfassen Sie eine Bereitstellung aus Ihrer Release-Automatisierung, nachdem sie gelungen oder fehlgeschlagen ist. Der PUT-Body hat project_id, release, environment, service_name, status (succeeded oder failed), started_at, finished_at und optional commit_sha. Verwenden Sie dieselben Werte für release, environment und service_name, die Ihr SDK sendet. Das Projekt muss dem Konto gehören. deployment_id ist Ihre eigene ID für die Bereitstellung. Eine Wiederholung mit derselben ID und demselben Body gibt die gespeicherte Bereitstellung zurück. Dieselbe ID mit einem anderen Body schlägt mit 409 und idempotency_conflict fehl. Verwenden Sie für eine andere Bereitstellung eine neue ID.

Untersuchungen

Jede Untersuchungsroute gibt ein begrenztes Paket an Belegen für ein Subjekt zurück. Der Befehl logbrew explain der CLI liest diese Routen und prüft die Antwort.

Produktanalysen

Die POST-Routen der Analysen nehmen einen JSON-Body an, keine Query-Schlüssel. Siehe Produktanalysen.

Live-Feed

Konto und Anmeldung

Die Routen für Nutzung, Kontingent, Abo und Abmeldung stehen in der Konto-API.

Statuscodes bei Erfolg

Eine Antwort 200 beweist nicht, dass die Belege vollständig sind. Lesen Sie die Felder für Abdeckung, Kürzung und Status in der Antwort.

Query-Filter und Paginierung

Jede Leseroute nimmt eigene Query-Schlüssel an. Kurze Aliasse wie project, trace und user sind keine Query-Schlüssel. Listenrouten geben standardmäßig ein einfaches Array zurück und mit pagination=cursor einen Cursor-Umschlag. Die Liste der Bereitstellungen gibt immer ein Seitenobjekt zurück. Siehe Abfragefilter der Telemetrie-API.

Antworten und Fehler

Lesen Sie code vor der Nachricht für Menschen. Nutzen Sie next_action für das Programmverhalten und next als Hinweis für Menschen. Parsen Sie nicht den Wortlaut von error oder next.

Issues ändern

Diese Anfragen nutzen ein Konto-Bearer-Token. Es unterscheidet sich absichtlich von LOGBREW_INGEST_BEARER. Das Konto braucht die Berechtigung, Issues im Projekt des Issues zu verwalten. Fehlt sie, schlägt die Anfrage mit 403 und forbidden fehl. Dieselbe Berechtigung gilt für Änderungen an Status, Priorität und Zuweisung sowie für Issue- und Log-Regeln. Jede Anfrage setzt mindestens eines dieser Felder: Eine Anfrage ohne eines dieser Felder schlägt mit 422 und validation_failed fehl. Ein Issue ist höchstens 1 Konto oder 1 Team zugewiesen. Ein Konto muss das Projekt lesen können, und ein Team muss zur Organisation des Projekts gehören. Sonst schlägt die Anfrage mit 422 und validation_failed fehl, und LogBrew ändert nichts. Die Konten, die Sie zuweisen können, liefert Zuweisbare Konten und Teams auflisten. Jeder andere Wert für assignee schlägt ebenfalls mit 422 und validation_failed fehl. Eine Priorität, die Sie setzen, bleibt fest. Ohne eine gesetzte Priorität folgt die Priorität dem Schweregrad des Issues: error und critical sind high, warning ist medium und info ist low. Ein Feld, das schon den angefragten Wert hat, ändert sich nicht. Nach einer Zeitüberschreitung können Sie dieselbe Anfrage erneut senden. Eine Zeitüberschreitung beweist nicht, dass die Änderung nicht stattgefunden hat. Lesen Sie das Issue erneut, bevor Sie eine andere Änderung senden.

Ein Issue ändern

Fügen Sie response_version=4 hinzu, um archived, die Priorität und die Zuweisung in der Antwort zu erhalten. In Version 4 ist assignee { "type": "user", "user_id", "name", "email" }, { "type": "team", "team_id", "slug", "name" } oder null. Version 3 zeigt ein zugewiesenes Team als null.
Die Antwort ist das geänderte Issue. Siehe Beispiele für Antworten zum Issue-Status.

Issues gesammelt ändern

Senden Sie project_id und 1 bis 100 verschiedene Issue-IDs aus diesem Projekt:
Die Anfrage wendet dieselbe Änderung auf jedes Issue an. Die Antwort hat project_id und results, mit 1 Ergebnis pro Issue-ID in der Reihenfolge der Anfrage. Jedes Ergebnis hat issue_id, outcome und issue. issue ist in Antwortversion 3 das aktuelle Issue oder null bei not_found. Fügen Sie dem Body "response_version": 2 hinzu, um jedes Issue in Antwortversion 4 zu erhalten. Eine leere Liste, mehr als 100 IDs oder eine doppelte ID schlagen mit 422 und validation_failed fehl. Teilen Sie eine größere Menge auf mehrere Anfragen auf. Wenn das Konto das Projekt nicht lesen kann, schlägt die Anfrage mit 404 und not_found fehl.

Zuweisbare Konten und Teams auflisten

Senden Sie die Projekt-ID, um jedes Konto zu erhalten, dem in diesem Projekt Issues zugewiesen werden können:
Die Liste enthält jedes Konto, das das Projekt lesen kann. Jeder Eintrag hat user_id, name und email. name ist null, wenn das Konto keinen Namen hat. Mit response_version=2 erhalten Sie zusätzlich teams: jedes Team der Organisation des Projekts, mit team_id, slug und name. Siehe die Antwort mit der Liste zuweisbarer Konten und Teams. Jedes Konto, das das Projekt lesen kann, kann diese Liste abrufen. Wenn das Konto das Projekt nicht lesen kann, schlägt die Anfrage mit 404 und not_found fehl. Wenn ein Mitglied den Zugriff auf das Projekt verliert, zeigen die ihm zugewiesenen Issues keine Zuweisung. Erhält das Mitglied wieder Zugriff, zeigen die Issues es wieder an, außer jemand hat die Zuweisung in der Zwischenzeit geändert oder entfernt.

Zuständigkeitsregeln und Zuständigkeitsvorschläge

GET /api/telemetry/issues/ownership?project_id=<project-uuid> liefert rules, codeowners, updated_at und unresolved_owners. Jedes Konto, das das Projekt lesen kann, kann diese Werte lesen. PUT mit project_id und rules, codeowners oder beidem ersetzt diesen Text und braucht die Berechtigung, Issues zu verwalten. Ein Feld, das Sie weglassen, behält seinen Text. Ein leerer String löscht ihn. Jeder Text hat höchstens 128 KiB. Ungültiger Text schlägt mit 422 fehl und nennt die Zeile. GET /api/telemetry/issues/{issue_id}/owners?response_version=2 liefert suggested_assignee, owners und inputs. Jeder Eintrag hat type (user oder team), source (ownership_rule, codeowners oder recent_activity), rule, line und matched. Version 1, der Standard, listet nur Konten auf.

Verlauf eines Issues

GET /api/telemetry/issues/{issue_id}/activity?response_version=2 liefert activity, die neuesten Einträge zuerst, und next_cursor. Jeder Eintrag hat type (status, priority, assigned, unassigned, severity_rule oder first_seen), value, actor_id, actor, assignee_id, assignee, team und at. limit liegt zwischen 1 und 200, der Standard ist 50. Senden Sie cursor_time und cursor_id aus next_cursor, um die nächste Seite zu lesen.

Benachrichtigungen

GET /api/telemetry/issues/notifications liefert notifications, unread, read_at und next_cursor. Jede Benachrichtigung ist eine Zuweisung eines Issues an Sie oder Ihr Team durch ein anderes Konto. POST /api/telemetry/issues/notifications/read mit einem leeren JSON-Objekt oder mit read_at setzt Ihre Lesemarke weiter. Die Marke geht nie zurück.

Regeln für Issues und Logs setzen

Eine Regel ändert, wie LogBrew passende Signale zeigt. Sie löscht keine Daten. Der erfasste Wert severity bleibt unverändert, und die Antwort zeigt die Regel in triage. severity ist info, warning, error, critical oder source. source entfernt die Überschreibung und zeigt wieder den erfassten Schweregrad. Bei einer Log-Regel blendet ignored: true passende Logs aus der Standard-Log-Liste aus. Lesen Sie sie mit status=ignored oder status=all. Die Regel gilt für gespeicherte und künftige passende Signale. Ein anderer Wert schlägt mit 422 und validation_failed fehl.
Senden Sie keine leeren Releases. LogBrew lehnt sie ab, damit die Release-Verfolgung verlässlich bleibt.