INTEGRITY Dokumentace

Příklady SQL dotazů

Následující příklady ukazují praktické dotazy SQL, které můžete použít s http_requests datové sady v Log Exploreru. Úplný seznam podporované syntaxe SQL najdete v Podporované dotazy SQL.

V každém příkladu upravte časové rozsahy tak, aby odpovídaly období, na které se chcete dotazovat.

Shrňte využití CDN

Získejte souhrnný přehled celkového počtu požadavků a přenosu dat za konkrétní časové období. Výsledky zahrnují celkový počet přenesených bajtů a jejich převod na megabajty a gigabajty.

SELECT
  COUNT(*) AS total_requests,
  SUM(EdgeResponseBytes) AS total_data_transfer,
  SUM(EdgeResponseBytes) / (1024.0 * 1024.0 * 1024.0) AS total_data_transfer_gb,
  SUM(EdgeResponseBytes) / (1024.0 * 1024.0) AS total_data_transfer_mb
FROM
  http_requests
WHERE {{ timeFilter }}

Zkontrolujte rozložení bezpečnostních akcí

Zjistěte, jak jsou bezpečnostní akce, jako je blokování a challenge, rozloženy napříč vaším provozem, a identifikujte nejčastější bezpečnostní odpovědi uplatňované na požadavky.

SELECT
  SecurityAction,
  COUNT(*) AS ActionCount
FROM http_requests
WHERE SecurityAction != 'unknown'
  AND SecurityAction IS NOT NULL
GROUP BY SecurityAction
ORDER BY ActionCount DESC

Vyhledání IP adres, které spustily challenge

Identifikujte klientské IP adresy a URI požadavků, které nejčastěji spustily managed, JavaScript nebo interactive challenge, a prošetřete tak případnou aktivitu botů nebo cílené útoky.

SELECT
  ClientIP,
  ClientRequestURI,
  SecurityActions,
  COUNT(*) AS Count
FROM http_requests
WHERE {{ timeFilter }}
  AND (
    ARRAY_CONTAINS(SecurityActions, 'challenge')
    OR ARRAY_CONTAINS(SecurityActions, 'managedChallenge')
    OR ARRAY_CONTAINS(SecurityActions, 'jsChallenge')
    OR ARRAY_CONTAINS(SecurityActions, 'challengeSolved')
  )
GROUP BY
  ClientIP,
  ClientRequestURI,
  SecurityActions
ORDER BY Count DESC
LIMIT 20

Vyhledání URI s nejvyšší spotřebou šířky pásma

Zjistěte, které URI požadavků spotřebovávají nejvíce šířky pásma, a určete tak velké soubory nebo endpointy s největším přenosem dat.

SELECT
  ClientRequestURI,
  SUM(EdgeResponseBytes) / (1024 * 1024) AS MegabytesTransferred
FROM http_requests
WHERE  {{ timeFilter }}
GROUP BY ClientRequestURI
ORDER BY MegabytesTransferred DESC
LIMIT 10

Analýza doby obousměrného přenosu klienta podle zemí

Analyzujte dobu obousměrného přenosu TCP (RTT) klienta v jednotlivých zemích. Zjistíte tak oblasti s vysokou latencí, které by mohly těžit z další optimalizace.

SELECT
  ClientCountry,
  COUNT(*) AS requests,
  AVG(ClientTCPRttMs) AS avg_rtt,
  MIN(ClientTCPRttMs) AS min_rtt,
  MAX(ClientTCPRttMs) AS max_rtt
FROM http_requests
WHERE {{ timeFilter }}
GROUP BY ClientCountry
ORDER BY avg_rtt DESC
LIMIT 20

Shrňte provoz CDN podle stavu cache

Rozdělte provoz podle stavu mezipaměti a změřte průměrnou dobu do prvního bajtu (TTFB) pro každý stav. Vyhodnotíte tak účinnost mezipaměti a zjistíte možnosti pro zlepšení poměru zásahů do mezipaměti.

SELECT
  CacheCacheStatus,
  COUNT(*) AS requests,
  SUM(EdgeResponseBytes) AS total_bytes,
  AVG(EdgeTimeToFirstByteMs) AS avg_ttfb
FROM http_requests
WHERE {{ timeFilter }}
GROUP BY CacheCacheStatus
ORDER BY requests DESC

Vyhledání nejpomalejších cest podle doby do prvního bajtu

Vyhledejte cesty požadavků s nejvyšší průměrnou dobou do prvního bajtu (TTFB) spolu s počtem požadavků a počtem chyb serveru, abyste identifikovali pomalé endpointy, které mohou vyžadovat optimalizaci.

SELECT
  ClientRequestPath,
  AVG(EdgeTimeToFirstByteMs) AS avg_ttfb,
  COUNT(*) AS requests,
  SUM(CASE WHEN EdgeResponseStatus >= 500 THEN 1 ELSE 0 END) AS errors
FROM http_requests
WHERE {{ timeFilter }}
GROUP BY ClientRequestPath
ORDER BY avg_ttfb DESC
LIMIT 10