422 i validation_failed, chyba że macierz mówi inaczej.
Przyjazne aliasy, takie jak project, trace i user, nie są kluczami
zapytania. Nie przenoś filtra z jednej trasy na inną.
Zbuduj żądanie z filtrami
Umieść ciąg zapytania po ścieżce. Użyj--data-urlencode, aby znaki
zastrzeżone pozostały bezpieczne. To żądanie odczytuje krytyczne logi jednego
projektu z ostatnich 24 godzin:
- Wybierz projekt za pomocą
project_idlubproject_ids. - Dodaj zakres czasu za pomocą
sincei opcjonalnieuntil. - Dodaj filtry usługi, wydania, środowiska, statusu lub filtry właściwe dla danego sygnału.
- Ustaw
limit, aby dostać mniejszą stronę. - Dodaj pola kursora dopiero wtedy, gdy zwróci je odpowiedź z kursorem.
GET /api/logs używa status=active, gdy
pominiesz status.
Macierz filtrów
Klucze z kolumny „Wymagane” muszą znaleźć się w żądaniu. Wszystkie inne klucze są opcjonalne.
W analizie problemu
selection ma wartość first, latest lub
recommended. Wyślij selection albo occurrence_id, nie oba. Oba wymagają
response_version od 2 do 13. W wersji 2 lub nowszej bez selektora LogBrew
używa recommended. occurrence_id pobierzesz z
GET /api/telemetry/issues/{issue_id}/events.
Trasy analityki POST przyjmują treść JSON. Zobacz
Analityka produktowa.
Filtry wspólne i właściwe dla sygnałów
service_name, release i environment zawężają każdą listę telemetrii.
Używaj dokładnych wartości, które wysyła twoje SDK.
Niektóre filtry należą do jednego sygnału:
- Logi akceptują
search,trace_id,severityiattribute_filters. - Logi akceptują
status:active(domyślnie),ignoredluball.ignoredwybiera logi, które reguła logów ukrywa w aktywnym widoku. - Problemy akceptują
statusproblemu:unresolved,resolvedlubarchived.ignoredto starsza nazwaarchivedi wybiera te same problemy. - Problemy akceptują
severity:info,warning,errorlubcritical. - Problemy akceptują
priority:high,mediumlublow. - Problemy akceptują
assignee:medla problemów przypisanych do zalogowanego konta,nonedla problemów bez przypisania,my_teamsdla problemów twoich zespołów, ID użytkownika lubteam:<team_id>. - Akcje i metryki akceptują
name. - Akcje akceptują
distinct_id. - Ślady akceptują
statusśladu imin_duration_ms. - Wdrożenia akceptują
status:succeededlubfailed.
severity logów i problemów porównują efektywną ważność. Jeśli reguła
zmieniła ważność, filtr używa wartości z reguły. Zobacz
Wartości ważności.
Zakres czasu
since akceptuje dodatnią liczbę całkowitą godzin lub dni, na przykład 24h
lub 7d, albo znacznik czasu RFC3339. Krótki zapis czasu trwania jest liczony
względem czasu każdego żądania.
until akceptuje tylko znacznik czasu RFC3339. Ten koniec nie należy do
zakresu: wiersza z czasem równym dokładnie until nie ma w wyniku. Początek
since należy do zakresu. Na przykład since=2026-10-01T00:00:00Z i
until=2026-10-02T00:00:00Z wybierają 1 pełny dzień. LogBrew porównuje czasy
z dokładnością do milisekundy.
until musi być późniejsze niż since. W przeciwnym razie, a także gdy
until nie jest znacznikiem czasu RFC3339, żądanie kończy się błędem 422 i
validation_failed.
Przy odczycie wielu stron wybierz jeden czas początkowy RFC3339 i zachowaj go
na każdej stronie. Na każdej stronie zachowaj też to samo until.
To żądanie odczytuje logi błędów z 1 dnia:
Lista wdrożeń używa innych reguł czasu. Jej
since i until akceptują
tylko znaczniki czasu RFC3339 i oba należą do zakresu. Porównują czas
zakończenia wdrożenia.Wersja odpowiedzi problemu
Lista problemów i szczegóły problemu akceptująresponse_version=1,
response_version=2, response_version=3 lub response_version=4. Domyślna jest wersja 1. Inna
wartość kończy się błędem 422 i validation_failed.
- Wersja 1 pokazuje stan zarchiwizowany jako
ignored. Nie pokazuje priorytetu. - Wersja 2 pokazuje stan zarchiwizowany jako
archived. Dodajepriorityipriority_source. - Wersja 3 ma wszystkie pola wersji 2. Dodaje
assignee. - Wersja 4 ma wszystkie pola wersji 3.
assigneematype:userlubteam.
status=archived, priority i assignee. Zobacz
odpowiedź z problemem.
Filtr ważności
WGET /api/logs używaj severity=info|warning|error|critical. Starszy klucz
level to alias zgodności. Oba klucze akceptują wartości kanoniczne i aliasy
trace, debug, warn i fatal. Przed porównaniem LogBrew zamienia alias na
jego wartość kanoniczną.
Jeśli żądanie wysyła jednocześnie severity i level, LogBrew najpierw
normalizuje obie wartości. Sprzeczne wartości są odrzucane z komunikatem:
Filtry śladów
Przy wyszukiwaniu śladówstatus ma wartość error lub ok. Pomiń go, aby
uwzględnić oba. min_duration_ms musi być równe zero lub większe. Dotyczy
tylko wyszukiwania śladów.
To żądanie znajduje ślady z błędem, które trwały co najmniej 500 milisekund:
trace_id procentowo jako
segment ścieżki. Nie wysyłaj go jako klucza zapytania.
Zakres projektów
Użyjproject_id=<project-uuid>, aby odczytać jeden projekt. Na trasach, które
w macierzy mają project_ids, użyj project_ids=<uuid>,<uuid> dla dokładnego
zestawu od 2 do 50 projektów. Na tych trasach pomiń oba klucze, aby odczytać
każdy projekt, który konto może czytać. Trasa, która wymaga project_id,
akceptuje tylko 1 projekt.
422 i validation_failed:
- Żądanie, które ma jednocześnie
project_idiproject_ids. - Wartość
project_idsz mniej niż 2 lub więcej niż 50 ID. - Powtórzone ID lub ID, które nie jest UUID.
project_ids wskazuje projekt, którego konto nie może
czytać, żądanie kończy się błędem 404 i not_found. Nie usuwaj tego ID, aby
kontynuować. Poproś użytkownika o wybranie nowego zestawu.
Na każdej stronie kursora zachowaj ten sam zakres projektów. Nie usuwaj filtra
projektu po pustym wyniku, bo wtedy zadajesz inne pytanie.
Szeregi w przedziałach czasu
GET /api/telemetry/metrics/series zwraca jedną metrykę w przedziałach czasu.
GET /api/telemetry/summary/volume zwraca liczby sygnałów w przedziałach
czasu. Obie trasy stosują te reguły:
sincejest wymagane.untiljest opcjonalne i domyślnie ma wartość czasu żądania.- Zakres od
sincedountilobejmuje najwyżej 31 dni. intervalma wartośćauto,1m,5m,15m,1h,6hlub1d. Domyślnie jest toauto. Długość przedziału, która daje ponad 500 przedziałów, powoduje błąd.service_name,releaseienvironmentto dokładne filtry.
name to dokładna nazwa metryki z
GET /api/telemetry/metrics. group_by ma wartość none, service_name,
release lub environment. series_limit wynosi od 1 do 20.
W przypadku wolumenu sygnałów until nie może być w przyszłości, a
response_version może mieć tylko wartość 1.
Filtruj atrybuty logów
UżyjGET /api/logs/attributes, aby znaleźć ścieżki i typy atrybutów, które
możesz przeszukiwać. Potem wyślij attribute_filters do GET /api/logs. Oba
żądania wymagają since.
Odczytaj katalog atrybutów
To żądanie znajduje w jednym projekcie ścieżki liczbowe, które zawierająstatus:
type ma wartość string, number lub boolean. observed_count to liczba
logów w zakresie, które mają tę ścieżkę i typ. last_seen_at to czas
najnowszego z nich. Jeden log może mieć wiele ścieżek. Nie sumuj liczników,
aby uzyskać liczbę logów.
coverage pokazuje, które logi filtr atrybutów może przeszukać:
Te 3 grupy sumują się do
total_logs. type, search i kursor katalogu nie
zmieniają pokrycia. Pusta lista attributes nie oznacza, że total_logs
wynosi zero.
Katalog nie ma klucza status. Jego filtr ważności porównuje zarejestrowaną
ważność, a nie efektywną.
search to fragment ścieżki o długości od 1 do 128 bajtów bez znaków
sterujących. limit ustala liczbę atrybutów na stronie.
Kontynuuj odczyt katalogu
Katalog nie używapagination=cursor. Powtórz każdy filtr i skopiuj wszystkie
3 pola z next_cursor:
Zakończ, gdy
next_cursor ma wartość null.
Zastosuj typowany filtr
Skopiuj ścieżkę i typ z katalogu. Ścieżki używają składni JSON Pointer, a nie kluczy z kropkami. Każdą sekwencję~0 lub ~1 w ścieżce zachowaj bez zmian.
To żądanie odczytuje logi, w których liczbowy status odpowiedzi wynosi 500 lub
więcej:
attribute_filters to tablica JSON z 1 do 4 filtrów. Log musi pasować do
każdego filtra. Każdy filtr ma path, type, operator i value. Typ JSON
wartości value musi pasować do type: liczba 500 to nie ciąg "500".
ne pasuje tylko do logów, które mają daną ścieżkę. Log bez tej ścieżki nie
pasuje do ne. Dla string parametr case_sensitive jest opcjonalny i
domyślnie ma wartość false. LogBrew odrzuca "case_sensitive": true dla
number i boolean.
Obowiązują te limity:
- Tablica JSON ma najwyżej 4096 bajtów.
- Wartość tekstowa ma najwyżej 1024 bajty.
containsistarts_withwymagają niepustego ciągu.- Liczba musi być skończona i mieścić się w zakresie od -9 007 199 254 740 992 do 9 007 199 254 740 992.
attribute_filters. Format logu w odpowiedzi
opisuje sekcja
Odpowiedź z logiem.
Popraw błędy atrybutów
Każdy z poniższych błędów zwraca422 z validation_failed:
Popraw żądanie, zanim je ponowisz. Nie usuwaj filtra, bo to zmienia wynik.
Paginacja kursorowa
Tryb kursora trzeba włączyć. Bez niego trasy list zwracają zwykłą tablicę. Dla pierwszej strony wyślijpagination=cursor bez pól kursora. Dla każdej
następnej strony powtórz każdy filtr i wyślij pełny zestaw pól kursora:
Przenieś zwrócone pola
next_cursor do następnego żądania:
next_cursor.timetrafia docursor_time.next_cursor.idtrafia docursor_id.- W przypadku śladów
next_cursor.trace_idtrafia docursor_trace_id. - W przypadku wydań dodaj
cursor_przed nazwą każdego zwróconego pola, na przykładnext_cursor.releasetrafia docursor_release.
next_cursor ma wartość null. Nie wyliczaj kursora z ostatniego
wiersza. Kursor wydań nie zmienia wybranych projektów. Zachowaj oryginalne
project_id lub project_ids.
limit ustala rozmiar strony. Strona może zawierać mniej wierszy. Te trasy nie
akceptują page ani page_number.
Na większości tras LogBrew zmienia
limit powyżej maksimum na wartość
maksymalną. Lista wdrożeń odrzuca limit spoza zakresu od 1 do 100 z kodem
422. Lista wdrożeń zawsze zwraca obiekt strony z next_cursor, także bez
pagination=cursor.
LogBrew odrzuca takie żądania, zwracając 422 i validation_failed:
- Wartość
paginationinna niżcursor. - Pola kursora bez
pagination=cursor. - Niepełny zestaw pól kursora.
cursor_time, który nie jest znacznikiem czasu RFC3339.
Zdiagnozuj pusty wynik
Pusta lista oznacza, że żaden wiersz nie pasował do wszystkich filtrów. Nie mówi nic o innych sygnałach. Sprawdź żądanie w tej kolejności:- Potwierdź ID projektu.
- Usuwaj opcjonalne filtry pojedynczo.
- Poszerz
since, jeśli oczekiwane zdarzenie jest starsze. Usuńuntillub przesuń je później, jeśli oczekiwane zdarzenie jest nowsze. - Porównaj
service_name,releaseienvironmentz wartościami, które wysyła twoje SDK. - W przypadku logów dodaj
status=all, jeśli reguła logów może ukrywać oczekiwany log. - Potwierdź, że trasa akceptuje każdy filtr.
Napraw odrzucone zapytanie
Odrzucone zapytanie zwraca standardową kopertę błędu. Nieznany klucz lub wartość niewłaściwego typu zwraca422:
- Zastąp przyjazny alias kluczem z macierzy filtrów.
- Wyślij każde pole kursora do kontynuacji, którego wymaga trasa.
- Usuń pola kursora z żądania pierwszej strony.
- Używaj tylko jednego selektora projektu.
- Zastąp nieobsługiwaną ważność lub status śladu wartością kanoniczną.
