利用目的
CloudFrontでは、アクセスログにキャッシュのヒット状況(Hit、Miss、Error)が記録されるので、その内容を元にキャッシュヒット率を計算した。
実際には、Athenaを利用して計算することになるが、使用したSQL文の解説をお願いした。
プロンプト
以下のSQLからどういったことがわかるか?
SELECT
date, -- 日付
SUM(CASE WHEN x_edge_response_result_type = 'Hit' THEN 1 ELSE 0 END) AS cache_hits, -- キャッシュヒット数
SUM(CASE WHEN x_edge_response_result_type IN ('Hit', 'Miss') THEN 1 ELSE 0 END) AS total_requests, -- トータルリクエスト数
(SUM(CASE WHEN x_edge_response_result_type = 'Hit' THEN 1 ELSE 0 END) * 100.0 /
SUM(CASE WHEN x_edge_response_result_type IN ('Hit', 'Miss') THEN 1 ELSE 0 END)) AS cache_hit_rate -- キャッシュヒット率
FROM
"cf_logs"."prod_standard_logs" -- データベース
WHERE
date BETWEEN DATE '2024-03-01' AND DATE '2024-03-31' -- 調査する範囲を指定
-- date BETWEEN DATE '2024-04-01' AND DATE '2024-04-30' -- 調査する範囲を指定
-- date BETWEEN DATE '2024-05-01' AND DATE '2024-05-31' -- 調査する範囲を指定
-- date BETWEEN DATE '2024-06-01' AND DATE '2024-06-30' -- 調査する範囲を指定
AND x_edge_response_result_type IN ('Hit', 'Miss') -- エラーページの遷移は除外
GROUP BY
date -- 日付毎にグループ化
ORDER BY
date asc -- 日付でソート
;
プロンプトのポイント
SQL文を直張りした。
達成された成果
SQL文の解説がなされた。
使用上のヒントやアドバイス
SQLを直接指定した。
追加のリソースまたは参考情報
https://chatgpt.com/share/e/8e7ef315-7209-4bce-943d-1f0a89c2f421