← Log Explorer / log-explorer
Примеры SQL-запросов
Следующие примеры показывают практические SQL-запросы, которые можно использовать с http_requests набора данных в Log Explorer. Полный список поддерживаемого синтаксиса SQL см. в разделе Поддерживаемые SQL-запросы.
Измените диапазоны дат в каждом примере в соответствии с нужным периодом запроса.
Сводка по использованию CDN
Получите общую сводку по количеству запросов и объёму переданных данных за определённый период времени. Результаты включают общее количество переданных байт и их преобразование в мегабайты и гигабайты.
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 }}Анализ распределения действий безопасности
Узнайте, как действия безопасности, такие как блокировки и проверки, распределяются по вашему трафику, и определите наиболее частые меры безопасности, применяемые к запросам.
SELECT
SecurityAction,
COUNT(*) AS ActionCount
FROM http_requests
WHERE SecurityAction != 'unknown'
AND SecurityAction IS NOT NULL
GROUP BY SecurityAction
ORDER BY ActionCount DESCПоиск IP-адресов, вызвавших проверки
Определите основные IP-адреса клиентов и URI запросов, вызвавшие управляемые, JavaScript- или интерактивные проверки, чтобы расследовать возможную активность ботов или целевые атаки.
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Определение URI с наибольшим потреблением трафика
Определите, какие URI запросов потребляют больше всего трафика, чтобы выявить крупные объекты или конечные точки, обеспечивающие наибольшую передачу данных.
SELECT
ClientRequestURI,
SUM(EdgeResponseBytes) / (1024 * 1024) AS MegabytesTransferred
FROM http_requests
WHERE {{ timeFilter }}
GROUP BY ClientRequestURI
ORDER BY MegabytesTransferred DESC
LIMIT 10Анализ времени приёма-передачи клиентов по странам
Анализируйте время приёма-передачи TCP (RTT) клиентов по разным странам, чтобы выявить регионы с высокой задержкой, которым может помочь дополнительная оптимизация.
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Сводка по трафику CDN в разрезе статуса кэша
Разбейте трафик по статусу кеша и измерьте среднее время до первого байта (TTFB) для каждого статуса, чтобы оценить эффективность кеша и найти способы повысить долю попаданий в кеш.
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Поиск самых медленных путей по времени до первого байта
Найдите пути запросов с наибольшим средним временем до первого байта (TTFB), а также количеством запросов и серверных ошибок, чтобы определить медленные конечные точки, которые могут нуждаться в оптимизации.
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