← Cloudflare Workers / workers / observability
Query Builder
Query Builder vám pomáhá psát strukturované dotazy pro zkoumání a vizualizaci telemetrických dat. Query Builder prohledává dataset Workers Observability, který v současné době zahrnuje všechny logy uložené Workers Logs.
Query Builder najdete v Observabilita stránky Cloudflare dashboardu:
Přejděte na Observabilita ↗Povolení Query Builderu
Query Builder je k dispozici všem vývojářům a nevyžaduje žádnou aktivaci. Dotazy prohledávají všechny Workers Logs uložené Cloudflare. Pokud jste Workers Logs ještě neaktivovali, můžete to udělat přidáním následujícího nastavení do Wrangler soubor Workeru a opětovným nasazením Workeru.
{
"observability": {
"enabled": true,
"logs": {
"invocation_logs": true,
"head_sampling_rate": 1 // optional. default = 1.
}
}
}[observability]
enabled = true
[observability.logs]
invocation_logs = true
head_sampling_rate = 1Napište dotaz v Cloudflare dashboardu
-
V dashboardu Cloudflare přejděte na Workers & Pages stránce.
Přejděte na Workers & Pages ↗ -
Vyberte svůj Worker.
-
Vyberte Observabilita v levém navigačním panelu a poté Přehled kartě.
-
Vyberte Vizualizace.
-
Volitelné: Přidejte pole do Filter, Group By, Order By a Limit. Další informace najdete v tom, co sestaví dotaz.
-
Volitelné: Vyberte příslušné časové rozmezí.
-
Vyberte Spustit. Dotaz se automaticky spustí při každé provedené změně.
Skládání dotazů
Vizualizace
Query Builder podporuje řadu vizualizačních operátorů, včetně:
| Funkce | Argumenty | Popis |
|---|---|---|
| Počet | n/a | Celkový počet řádků splňujících podmínky dotazu |
| Count Distinct | libovolné pole | Počet výskytů jedinečných hodnot v datové sadě |
| Min | číselné pole | Nejmenší hodnota pole v datové sadě |
| Max | číselné pole | Největší hodnota daného pole v datové sadě |
| Součet | číselné pole | Součet všech hodnot pole v datové sadě |
| Průměr | číselné pole | Průměr pole v datové sadě |
| Směrodatná odchylka | číselné pole | Směrodatná odchylka pole v datové sadě |
| Rozptyl | číselné pole | Rozptyl pole v datové sadě |
| P001 | číselné pole | Hodnota pole, pod kterou spadá 0.1 % dat |
| P01 | číselné pole | Hodnota pole, pod kterou spadá 1 % dat |
| P05 | číselné pole | Hodnota pole, pod kterou spadá 5 % dat |
| P10 | číselné pole | Hodnota pole, pod kterou spadá 10 % dat |
| P25 | číselné pole | Hodnota pole, pod kterou spadá 25 % dat |
| Medián (P50) | číselné pole | Hodnota pole, pod kterou spadá 50 % dat |
| P75 | číselné pole | Hodnota pole, pod kterou spadá 75 % dat |
| P90 | číselné pole | Hodnota pole, pod kterou spadá 90 % dat |
| P95 | číselné pole | Hodnota pole, pod kterou spadá 95 % dat |
| P99 | číselné pole | Hodnota pole, pod kterou spadá 99 % dat |
| P999 | číselné pole | Hodnota pole, pod kterou spadá 99.9 % dat |
V jednom dotazu můžete přidat více vizualizací. Každá vizualizace vykreslí graf. Vrací se také jedna souhrnná tabulka, která zobrazuje nezpracované výsledky dotazu.
Všechny metody jsou agregační funkce. Většina metod pracuje s konkrétním polem v log eventu. Count je výjimkou a je agregační funkcí, která vrací počet událostí protokolu odpovídajících podmínkám filtru.
Filtr
Filtry pomáhají vracet sloupce odpovídající zadaným podmínkám. Filtr má tři složky: klíč, operátor a hodnotu.
Klíčem může být jakékoli pole v události protokolu. Můžete si například zvolit $workers.cpuTimeMs nebo $metadata.message.
Operátor je logická podmínka, která se vyhodnotí jako true nebo false. Podporované podmínky najdete v tabulce níže:
| Typ dat | Platné podmínky (operátory) |
|---|---|
| Číselné | Rovná se, Nerovná se, Větší než, Větší nebo rovno, Menší než, Menší nebo rovno, Existuje, Neexistuje |
| Řetězec | Rovná se, Nerovná se, Obsahuje, Neobsahuje, Regex, Existuje, Neexistuje, Začíná na |
Hodnotou číselného pole je celé číslo. Hodnotou textového pole je libovolný řetězec.
Chcete-li přidat filtr:
- Vyberte + v Filtr sekce. 2. Vyberte Vyberte klíč... a
zadejte název klíče. Například
$workers.cpuTimeMs. 3. Vyberte operátor a změňte jej na nejvhodnější operátor. NapříkladGreater than. 4. Vyberte Vyberte hodnotu... a zadejte hodnotu. Například100.
Když spustíte dotaz s výše uvedeným filtrem, zobrazí se pouze protokolované události, u kterých $workers.cpuTimeMs > 100 bude vrácen.
Když přidáte více filtrů, zkombinují se pomocí operátoru AND, což znamená, že se vrátí jen události odpovídající všem filtrům.
Hledat
Search je textový filtr, který vrací pouze události obsahující zadaný text. Search se hodí jako rychlý způsob filtrování nebo pro vyhledávání jedinečných identifikovatelných hodnot ve vašich protokolech.
Group By
Group By spojuje řádky se stejnou hodnotou do souhrnných řádků. Pokud dotaz například přidá $workers.event.request.cf.country jako pole Group By, souhrnná tabulka pak seskupí podle země.
Order By
Order By ovlivňuje způsob řazení výsledků v souhrnné tabulce. Pokud asc je vybráno, výsledky se řadí vzestupně, od nejmenšího po největší. Pokud desc je vybráno, výsledky se řadí sestupně, od největšího po nejmenší.
Limit
Parametr limit omezuje počet vrácených výsledků. V kombinaci s Order By, lze jej použít k vrácení „nejvyšších“ nebo „prvních“ N výsledků.
Vyberte časové rozmezí
Výběrem časového rozsahu určíte časový interval, ve kterém chcete vyhledávat odpovídající události. Doba uchovávání závisí na vašem typ plánu.
Zobrazení výsledků dotazu
Pro dotazy existují tři zobrazení: Visualizations, Invocations a Events.
Karta Visualizations
Vizualizace karta zobrazuje grafy a souhrnnou tabulku pro daný dotaz.
Karta Invocations
Invocations karta zobrazuje všechny protokoly seskupené podle volání a seřazené podle časového razítka. Vracejí se pouze volání odpovídající kritériím dotazu.
Karta Events
Události karta zobrazuje všechny protokoly seřazené podle časového razítka. Vracejí se pouze události odpovídající kritériím dotazu. Kartu Events lze přizpůsobit a přidat do zobrazení další pole.
Ukládání dotazů
Doporučuje se ukládat dotazy, které lze znovu použít při budoucím zkoumání. Dotaz můžete uložit s názvem, popisem a vlastními štítky výběrem Save Query. Dotazy se ukládají na úrovni účtu a jsou přístupné všem uživatelům v daném účtu.
Uložené dotazy lze znovu spustit výběrem příslušného dotazu z Dotazy kartě. Dotaz můžete upravit a změny uložit.
Dotazy mohou uživatelé označit hvězdičkou. Označené dotazy patří konkrétnímu uživateli, ne celému účtu.
Odstranit dotazy
Uložené dotazy lze odstranit z Dotazy kartě. Pokud dotaz smažete, odstraní se pro všechny uživatele účtu.
-
V dashboardu Cloudflare přejděte na Observabilita stránce.
Přejděte na Observabilita ↗ -
Vyberte Dotazy kartě.
-
Na pravé straně vyberte tři tečky pro další akce.
-
Vyberte Odstranit dotaz a postupujte podle pokynů.
Sdílení dotazů
Uloženým dotazům je přiřazena jedinečná adresa URL, takže je lze sdílet s libovolným uživatelem v účtu.
Příklad: sestavení dotazu
V tomto příkladu sestavíme dotaz, který najde a pomůže odladit všechny cesty odpovídající chybami 5xx. Nejprve vytvoříme základní dotaz. V tomto základním dotazu chceme vizualizovat podle
počtu surových událostí. Můžeme přidat filtr pro $workers.event.response.status která je větší než 500.
Poté seskupíme podle $workers.event.request.path a $workers.event.response.status k zjištění počtu požadavků,
které toto chování ovlivnilo.
Výsledky ukazují, že /agents/chat/default cestě se vyskytují chyby 404 a 500. Nyní můžeme na tuto cestu použít filtr a prošetřit to.
Nyní to můžeme prozkoumat výběrem Invocations kartě. Vidíme, že tato chyba byla zaznamenána při dvou voláních.
Jedno vyvolání můžete rozbalit a zobrazit související protokoly a pokračovat v ladění.