Skip to main content
API telemetrii to JSON przez HTTP pod adresem https://api.logbrew.co. Publiczne SDK wysyłają zarządzane przez siebie paczki do POST /v1/events. Własne klienty natywne wysyłają natywne koperty do POST /api/telemetry/ingest. Obie trasy wysyłania wymagają tokena bearer wysyłania przypisanego do projektu. Odczyty i zmiany należące do konta używają tokena bearer konta. Nigdy nie używaj tokena bearer konta ani sesji przeglądarki jako konfiguracji SDK lub wysyłania. Nigdy nie wysyłaj tokena bearer wysyłania do trasy odczytu.

Wyślij żądanie o ograniczonym zakresie

Zanim klient wyśle żądanie, przejdź przez tę listę kontrolną:
  1. Wybierz trasę i metodę HTTP z tabeli endpointów.
  2. Użyj właściwego tokena bearer: tokena bearer wysyłania do przyjmowania danych, a tokena bearer konta do wszystkiego innego.
  3. Wybierz zakres projektu, który obsługuje trasa. Nie poszerzaj zakresu po pustej odpowiedzi.
  4. Dodawaj tylko parametry zapytania, które trasa przyjmuje. Zobacz Filtry zapytań.
  5. Wysyłaj Content-Type: application/json, gdy trasa ma treść JSON.
  6. Zanim ponowisz żądanie, odczytaj status HTTP i treść odpowiedzi.
  7. Nie umieszczaj tokenów bearer, biletów podglądu na żywo ani pełnych treści odpowiedzi w logach i promptach agentów.

Endpointy

Przyjmowanie danych

Paczki /v1/events niech buduje SDK. Nie twórz ich ręcznie. Natywną kopertę opisuje strona Integracja SDK.

Odczyty telemetrii

Wdrożenia

Zapisz wdrożenie z automatyzacji wydań po jego sukcesie lub niepowodzeniu. Treść PUT zawiera project_id, release, environment, service_name, status (succeeded lub failed), started_at, finished_at i opcjonalne commit_sha. Użyj tych samych wartości release, environment i service_name, które wysyła SDK. Konto musi być właścicielem projektu. deployment_id to twoje własne ID wdrożenia. Ponowienie z tym samym ID i tą samą treścią zwraca zapisane wdrożenie. To samo ID z inną treścią kończy się błędem 409 i idempotency_conflict. Dla innego wdrożenia użyj nowego ID.

Analizy

Każda trasa analizy zwraca ograniczony pakiet dowodów dla jednego obiektu analizy. Polecenie CLI logbrew explain odczytuje te trasy i weryfikuje odpowiedź.

Analityka produktowa

Trasy analityki POST przyjmują treść JSON, a nie parametry zapytania. Zobacz Analityka produktowa.

Podgląd na żywo

Konto i logowanie

Trasy wykorzystania, limitów, subskrypcji i wylogowania opisuje strona API konta.

Kody statusu sukcesu

Odpowiedź 200 nie dowodzi, że dowody są kompletne. Odczytaj w odpowiedzi pola pokrycia, obcięcia i statusu.

Filtry zapytań i paginacja

Każda trasa odczytu przyjmuje własne parametry zapytania. Przyjazne aliasy, takie jak project, trace i user, nie są parametrami zapytania. Trasy list domyślnie zwracają samą tablicę, a z pagination=cursor – kopertę z kursorem. Lista wdrożeń zawsze zwraca obiekt strony. Zobacz Filtry zapytań.

Odpowiedzi i błędy

Odczytaj code przed komunikatem dla człowieka. Używaj next_action do sterowania programem, a next jako wskazówki dla człowieka. Nie parsuj treści error ani next.

Zaktualizuj problemy

Te żądania używają tokena bearer konta. Celowo różni się on od LOGBREW_INGEST_BEARER. Konto musi mieć uprawnienie do zarządzania problemami w projekcie, do którego należy problem. Jeśli go nie ma, żądanie kończy się błędem 403 i forbidden. To samo uprawnienie obejmuje zmiany statusu, priorytetu i przypisania oraz reguły problemów i logów. Każde żądanie ustawia co najmniej 1 z tych pól: Żądanie bez żadnego z tych pól kończy się błędem 422 i validation_failed. Problem może być przypisany najwyżej do 1 konta albo 1 zespołu. Konto musi mieć dostęp do odczytu projektu, a zespół musi należeć do organizacji projektu. W przeciwnym razie żądanie kończy się błędem 422 i validation_failed, a LogBrew niczego nie zmienia. Konta, które możesz przypisać, pobierzesz zgodnie z sekcją Wyświetl konta i zespoły do przypisania. Każda inna wartość assignee też kończy się błędem 422 i validation_failed. Priorytet ustawiony ręcznie się nie zmienia. Bez ręcznie ustawionego priorytetu priorytet wynika z ważności problemu: error i critical dają high, warning daje medium, a info daje low. Pole, które ma już żądaną wartość, się nie zmienia. Po przekroczeniu limitu czasu możesz wysłać to samo żądanie ponownie. Przekroczenie limitu czasu nie dowodzi, że zmiana nie nastąpiła. Zanim wyślesz inną zmianę, odczytaj problem ponownie.

Zaktualizuj jeden problem

Dodaj response_version=4, aby dostać w odpowiedzi archived, priorytet i przypisanie. W wersji 4 assignee ma postać { "type": "user", "user_id", "name", "email" }, { "type": "team", "team_id", "slug", "name" } albo null. Wersja 3 pokazuje przypisanie do zespołu jako null.
Odpowiedź to zaktualizowany problem. Zobacz przykłady odpowiedzi ze statusem problemu.

Zaktualizuj wiele problemów naraz

Wyślij project_id i od 1 do 100 różnych ID problemów z tego projektu:
Żądanie stosuje tę samą zmianę do każdego problemu. Odpowiedź ma project_id i results, z 1 wynikiem dla każdego ID problemu, w kolejności z żądania. Każdy wynik ma issue_id, outcome i issue. issue to bieżący problem w wersji odpowiedzi 3 albo null dla not_found. Dodaj "response_version": 2 do treści żądania, aby dostać każdy problem w wersji odpowiedzi 4. Pusta lista, więcej niż 100 ID lub powtórzone ID kończą się błędem 422 i validation_failed. Większy zbiór podziel na kilka żądań. Jeśli konto nie może odczytać projektu, żądanie kończy się błędem 404 i not_found.

Wyświetl konta i zespoły do przypisania

Wyślij ID projektu, aby dostać każde konto, któremu można przypisywać problemy w tym projekcie:
Lista zawiera każde konto, które może odczytywać projekt. Każdy wpis ma user_id, name i email. name ma wartość null, gdy konto nie ma nazwy. Dodaj response_version=2, aby dostać też teams: każdy zespół organizacji projektu, z polami team_id, slug i name. Zobacz odpowiedź z listą kont i zespołów do przypisania. Tę listę może pobrać każde konto, które może odczytywać projekt. Jeśli konto nie może odczytać projektu, żądanie kończy się błędem 404 i not_found. Gdy członek traci dostęp do projektu, przypisane do niego problemy nie pokazują przypisania. Jeśli członek odzyska dostęp, problemy znowu go pokazują, chyba że ktoś w międzyczasie zmienił lub usunął przypisanie.

Własność i proponowani właściciele

GET /api/telemetry/issues/ownership?project_id=<project-uuid> zwraca rules, codeowners, updated_at i unresolved_owners. Może je odczytać każde konto, które może odczytywać projekt. PUT z project_id oraz rules, codeowners lub obydwoma polami zastępuje ten tekst i wymaga uprawnienia do zarządzania problemami. Pole, które pominiesz, zachowuje swój tekst, a pusty ciąg znaków go czyści. Każdy tekst może mieć najwyżej 128 KiB. Nieprawidłowy tekst kończy się błędem 422 ze wskazaniem wiersza. GET /api/telemetry/issues/{issue_id}/owners?response_version=2 zwraca suggested_assignee, owners i inputs. Każdy właściciel ma type (user lub team), source (ownership_rule, codeowners lub recent_activity), rule, line i matched. Wersja 1, domyślna, wyświetla tylko konta.

Historia problemu

GET /api/telemetry/issues/{issue_id}/activity?response_version=2 zwraca activity, od najnowszych wpisów, oraz next_cursor. Każdy wpis ma type (status, priority, assigned, unassigned, severity_rule lub first_seen), value, actor_id, actor, assignee_id, assignee, team i at. limit przyjmuje wartości od 1 do 200, domyślnie 50. Aby pobrać następną stronę, wyślij cursor_time i cursor_id z next_cursor.

Powiadomienia

GET /api/telemetry/issues/notifications zwraca notifications, unread, read_at i next_cursor. Każde powiadomienie to przypisanie problemu tobie lub twojemu zespołowi przez inne konto. POST /api/telemetry/issues/notifications/read z pustym obiektem JSON lub z read_at przesuwa twój znacznik odczytu. Znacznik nigdy nie cofa się.

Ustaw reguły problemów i logów

Reguła zmienia sposób, w jaki LogBrew pokazuje pasujące sygnały. Nie usuwa danych. Zarejestrowane severity pozostaje bez zmian, a odpowiedź pokazuje regułę w triage. severity ma wartość info, warning, error, critical lub source. source usuwa nadpisanie i znowu pokazuje zarejestrowaną ważność. W regule logów ignored: true ukrywa pasujące logi na domyślnej liście logów. Odczytasz je przez status=ignored lub status=all. Reguła dotyczy przechowywanych i przyszłych pasujących sygnałów. Inna wartość kończy się błędem 422 i validation_failed.
Nie wysyłaj pustych wydań. LogBrew je odrzuca, aby śledzenie wydań pozostało wiarygodne.