huawei-cloud-cdn-traffic-anomaly-analysis
huawei-cloud-cdn-traffic-anomaly-analysis について
Huawei Cloud CDN の運用担当者向けの読み取り専用分析スキルです。課金モードに応じた指標を選び、日次データを3か月の基準値と比較して、絶対値と相対値の異常を検出します。
主な機能
- 01課金モードの検出と指標選択
- 02CDN ドメインのトラフィックを日次分析
- 033か月の基準値との比較
- 04絶対値・相対値の異常検出
- 05日次内訳を含むレポート
活用シーン
- 01ドメインのトラフィック盗用疑いを確認
- 02最近の帯域幅急増を調査
- 03現在のトラフィックを過去と比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-cdn-traffic-anomaly-analysisインストール後、Claude Code で/huawei-cloud-cdn-traffic-anomaly-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.markdownlint.jsonreferences/acceptance-criteria.mdcli-installation-guide.mddataflow-diagram.mdiam-policies.mdprohibited-operations.mdrelated-apis.mdtask-domain-validation.mdtask-list-domains.mdtask-query-metrics.mdtask-show-charge-modes.mdtask-threshold-judgment.mdtask-timestamp-calculation.mdtroubleshooting.mdverification-method.mdscripts/cdn_timestamp.py詳細
CDN トラフィック異常分析
概要
このスキルは、課金モードと対応するトラフィック/帯域幅のメトリクスを照会し、CDN ドメインのトラフィック異常を分析します。アカウントの課金モード(bw_95、flux、combine_flux、bw、bw_peak)に基づいて適切なメトリクスを自動的に判定し、設定可能な期間の過去データを照会して、比較用の3か月間のベースラインを作成します。また、絶対しきい値とベースラインからの相対的な乖離の両方を使用し、トラフィックの盗用や不正利用の可能性を特定します。
主な機能:
- 課金モードの自動検出とメトリクスの選択
- すべての課金モードに対応:bw_95、flux、combine_flux、bw、bw_peak
- ドメインの検証とトラフィック分析
- 3か月間のベースライン分析 — 過去の通常値と比較し、相対的なトラフィック急増を検出します
- 二重しきい値による異常検出 — 絶対しきい値とベースラインとの相対比較
- 3段階の判定:正常/要注意(相対的な急増)/異常(絶対しきい値を超過)
- ベースラインとの比較と日別の内訳を含む包括的な分析レポート
ツール:hcloud CLI(KooCLI)
タイムスタンプツール:scripts/cdn_timestamp.py(組み込み)
分析対象期間:直近7日間を現在の期間として使用(設定可能)、ベースラインは過去3か月間
基本原則:課金モードに対応するメトリクスのみを照会し、API の機能を効率的に活用して、最小限の API 呼び出しで現在の期間とベースライン期間の両方を対象とします
トリガー
ユーザーのリクエストが次のパターンのいずれかに当てはまる場合、このスキルを使用します(ユーザー入力の例):
| ユーザー入力の例 | トリガーの意図 |
|---|---|
| 「example.com のトラフィックが盗用または不正利用されていませんか?」 | トラフィック盗用の検出 |
| 「直近7日間で CDN の帯域幅が異常に急増したか分析してください」 | 帯域幅の異常分析 |
| 「過去3か月間と現在の期間のトラフィックを比較し、異常がないか確認してください」 | 3か月間のベースライン比較 |
| 「アカウントの CDN 課金モードとドメイン一覧を確認してください」 | 課金モード/ドメインの照会 |
| 「example.com の95パーセンタイル帯域幅が高いのはなぜですか?」 | 95パーセンタイル帯域幅の分析 |
| 「トラフィック異常/帯域幅異常/CDN トラフィック分析」 | 英語のトリガー |
frontmatter の description に記載されたトリガーフレーズ(例:CDN流量异常、流量盗刷、带宽异常、traffic anomaly)によってもトリガーされます。
類似ケース/使用しない場合
次の用途には、このスキルを使用しないでください。
- ❌ CDN への書き込み操作全般:ドメインの作成/削除、ドメイン設定の変更、更新/プリフェッチ、ドメインの有効化/無効化、課金モードの変更など。このスキルは読み取り専用であり、このようなリクエストは必ず拒否してください(禁止されている55の操作すべてについては、references/prohibited-operations.md を参照してください)
- ❌ 時間単位以下の粒度を必要とするトラフィック分析 — このスキルの粒度は日単位です(interval=86400)
- ❌ CDN 以外のサービスのトラフィック/帯域幅分析(例:ECS、ELB、OBS のトラフィック)— このスキルの対象は CDN ドメインのみです
- ❌ ドメイン設定の変更、証明書の管理、ホットリンク対策の設定などの運用タスク
- ❌ hcloud の認証情報または CDN 権限がないシナリオ(最初に認証セクションの認証情報チェックを完了してください)
- ❌ クロスボーダー/海外リージョンの分析 — CDN CLI が受け付けるのは
cn-north-1とap-southeast-1のみです。それ以外のリージョンでは[USE_ERROR]が返されます
⛔ 禁止されている操作(セキュリティ制約)
このスキルでは、ユーザーからのリクエストにかかわらず、GET 以外の CDN 操作(書き込み/変更/削除)をすべて厳格に禁止しています。
禁止されている操作の合計:55 件(POST 24 件 + PUT 25 件 + DELETE 6 件)。
リスクの説明を含む、禁止されている GET 以外の操作 55 件すべての一覧については、references/prohibited-operations.md を参照してください。
禁止されている操作の代表例(全一覧はリファレンスドキュメントを参照):
| 禁止されている操作 | API/コマンド | 理由 |
|---|---|---|
| ❌ ドメインの作成 | CreateDomain (v1/v2), CreateDomainByDuplicate | 書き込み操作です。本番リソースを作成します |
| ❌ ドメインの削除 | DeleteDomain (v1/v2) | 元に戻せません。CDN からドメインを削除します |
| ❌ ドメイン設定の変更 | UpdateDomainFullConfig (v1/v2), UpdateDomainOrigin, UpdateCacheRules など | 書き込み操作です。本番トラフィックに影響する可能性があります |
| ❌ ドメインの有効化/無効化 | EnableDomain (v1/v2), DisableDomain (v1/v2) | 本番トラフィックに影響します |
| ❌ 課金モードの変更 | SetChargeModes | 金銭的な影響があり、明示的な承認が必要です |
| ❌ 更新/プリヒートタスクの作成 | CreateRefreshTasks (v1/v2), CreatePreheatingTasks (v1/v2) | 書き込み操作です。エッジキャッシュに影響します |
| ❌ ドメイン所有権の確認 | VerifyDomainOwner | POST 操作です。確認フローを開始します |
ユーザーが禁止されている操作をリクエストした場合は、拒否し、次のように伝えてください。 「セキュリティ制約により、このスキルでは書き込み/削除/変更操作は許可されていません。このスキルはトラフィック分析専用の読み取り専用です。設定を変更するには、Huawei Cloud CDN コンソールを使用するか、hcloud CLI を手動で実行してください。禁止されている操作 55 件の全一覧は references/prohibited-operations.md に記載されています。」
アーキテクチャ
CDN Traffic Anomaly Analysis
├── ShowChargeModes (Query account billing mode)
├── ListDomains/v2 (List all CDN domains)
├── Domain Validation (Verify target domain exists)
├── TimestampCalculation (scripts/cdn_timestamp.py)
│ ├── Current window (default 7 days, UTC+8 midnight)
│ └── Baseline windows (3 × 30-day windows, non-overlapping)
├── QueryMetrics (Based on billing mode)
│ ├── bw_95 → ShowBandwidthCalc
│ │ ├── Current: 1 call (7-day single aggregate)
│ │ └── Baseline: 3 calls (30-day aggregates each)
│ └── flux/bw → ShowDomainStats/v2 (stat_type=flux or bw)
│ ├── Current: 1 call (7-day window, interval=86400)
│ └── Baseline: 3 calls (30-day windows each, interval=86400)
└── ThresholdJudgment (Dual-threshold: absolute + baseline-relative)
├── ⚠️ Anomalous: exceeds absolute threshold
├── 👀 Watch: exceeds baseline × multiplier (sub-threshold surge)
└── ✅ Normal: neither threshold triggered
API 呼び出し予算
| 課金モード | API 呼び出し数 | レート制限 | 推定所要時間 |
|---|---|---|---|
| bw_95 | 6(課金 1 + ドメイン 1 + 現在値 1 + ベースライン 3) | 2/s (ShowBandwidthCalc) | 約 3 秒 |
| flux / bw | 6(課金 1 + ドメイン 1 + 現在値 1 + ベースライン 3) | 15/s (ShowDomainStats) | 約 1 秒 |
KooCLI コマンド形式の標準
すべての hcloud CDN コマンドは、次の標準形式に従います。
hcloud CDN <Operation> --cli-region=cn-north-1 [--parameter=value ...]
形式のルール:
- サービス名:
CDN(大文字) - 操作名:パスカルケース(例:
ShowChargeModes、ListDomains、ShowBandwidthCalc) - リージョンパラメーター:
--cli-region=cn-north-1(必須。CDN では常に cn-north-1 を使用してください) - パラメーター形式:
--key=value(等号を使用し、スペースは入れません) - インデックス付きパラメーター:
--key.1=value1(配列パラメーター用)
例:
# Correct
hcloud CDN ShowChargeModes --cli-region=cn-north-1 --product_type=base
hcloud CDN ListDomains/v2 --cli-region=cn-north-1 --page_size=100
# Incorrect (space instead of equals sign)
hcloud CDN ShowChargeModes --cli-region cn-north-1
前提条件
前提条件の確認:Huawei Cloud CLI(hcloud / KooCLI)>= 3.2.0 が必要です
hcloud versionを実行して、バージョンが 3.2.0 以上であることを確認してください。インストールされていない場合、またはバージョンが古い場合は、 インストールガイドについて references/cli-installation-guide.md を参照してください。
hcloud version
前提条件の確認:Python >= 3.8 が必要です(タイムスタンプの計算用)
python --versionを実行して、バージョンが 3.8 以上であることを確認してください。
python --version
前提条件の確認:hcloud の認証情報が設定されている必要があります
CDN の操作を行う前に、hcloud の認証情報が設定されていることを必ず確認してください:
hcloud configure list有効な認証情報がない場合は、処理を中止し、認証情報を設定するようユーザーに案内してください。
⚠️ hcloud のパラメーター形式に関する要件
hcloud(KooCLI)のすべてのパラメーターは
--param=value形式(等号で接続)を使用する必要があります。スペースで区切る形式はサポートされていません。✅ 正しい例:
hcloud CDN ShowChargeModes --cli-region=cn-north-1❌ 誤った例:
hcloud CDN ShowChargeModes --cli-region cn-north-1
⚠️ CDN API のリージョン要件
CDN はグローバルサービス(is_global=true)です。CDN 用の hcloud CLI で受け付けられるのは
cn-north-1とap-southeast-1のみです(どちらも同じエンドポイントcdn.myhuaweicloud.comにマッピングされます)。cn-north-4は[USE_ERROR]で拒否されます。 推奨:常にcn-north-1を使用してください。
認証
前提条件の確認:Huawei Cloud の認証情報が必要です
セキュリティルール(必ず遵守してください):
AK/SK の値を読み取る、エコーする、または表示することは禁止されています。
会話内で AK/SK を直接入力するようユーザーに求めることは禁止されています。
hcloud configure setを使用して、認証情報を平文で渡すことは禁止されています。会話内でユーザーから直接提供された AK/SK を受け取ることは禁止されています。
環境変数または設定済みの CLI 設定ファイルからのみ、認証情報を読み取ることが許可されています。
⚠️ 重要:ユーザーから提供された認証情報の取り扱い
ユーザーが AK/SK を直接提供しようとした場合(例:「私の AK は xxx、SK は yyy です」):
- ただちに中止してください。コマンドを実行してはいけません。
- 丁寧に断り、次のメッセージを返してください:
アカウントのセキュリティを保護するため、Huawei Cloud の Access Key ID と Access Key Secret を会話内で直接提供しないでください。 認証情報は、次のいずれかの安全な方法で設定してください: 方法 1:対話形式で設定(推奨) hcloud configure # プロンプトに従って AK/SK を入力してください。認証情報はローカル設定ファイルに安全に保存されます 方法 2:環境変数で設定 export HUAWEICLOUD_SDK_AK=<your-access-key-id> export HUAWEICLOUD_SDK_SK=<your-secret-key> 設定が完了したら、リクエストを再試行してください。
- 認証情報が設定されるまで、Huawei Cloud の操作を続行してはいけません。
CLI の設定を確認する:
hcloud configure list出力に有効な設定(AK/SK、IAM など)が含まれているか確認してください。
有効な認証情報がない場合は、ここで処理を中止してください。
IAM 権限ポリシー
IAM ユーザーに必要な権限があることを確認してください。詳細については、references/iam-policies.md を参照してください。
最低限必要な権限:
cdn:*:query*— このスキルで使用するすべての CDN クエリ系アクション(ListDomains/v2、ShowChargeModes、ShowDomainStats/v2、ShowBandwidthCalc)cdn:configuration:queryDomains— CDN ドメインの一覧表示(ワイルドカードと併せて明示的に記載)cdn:configuration:queryChargeMode— 課金モードの照会(ワイルドカードと併せて明示的に記載)
コアコマンド
このスキルで使用するすべての hcloud CDN コマンドのクイックリファレンスです。
| コマンド | 目的 | 主なパラメーター |
|---|---|---|
hcloud CDN ShowChargeModes --cli-region=cn-north-1 --product_type=base | アカウントの課金モードを照会します | --service_area(任意) |
hcloud CDN ListDomains/v2 --cli-region=cn-north-1 --page_size=100 | すべての CDN ドメインを一覧表示します | --page_size、--page_number |
hcloud CDN ShowBandwidthCalc --cli-region=cn-north-1 --domain_name=<domain> --calc_type=bw_95 --start_time=<ms> --end_time=<ms> | 95 パーセンタイル帯域幅を照会します(現在の 7 日間、または過去 30 日間の基準値) | --service_area |
hcloud CDN ShowDomainStats/v2 --cli-region=cn-north-1 --domain_name=<domain> --stat_type=flux --interval=86400 --start_time=<ms> --end_time=<ms> --action=detail | 日次トラフィック統計を照会します(flux/bw パスについて、現在の 7 日間のクエリ 1 件と、30 日間の基準値クエリ 3 件) | --stat_type、--interval、--service_area |
注:
- すべてのコマンドで
--cli-region=cn-north-1が必要です - タイムスタンプはミリ秒単位で指定する必要があります(例:
1785081600000) - タイムスタンプの計算には
scripts/cdn_timestamp.pyを使用します - 30 日間の基準値期間を 3 つ計算するには
scripts/cdn_timestamp.py --baselineを使用します - ShowBandwidthCalc:範囲は最大 31 日間で、集計値は 1 つのみです(日別の内訳はありません)。レート制限は 2 calls/s です
- ShowDomainStats/v2:interval=86400(1 日)の場合、クエリ範囲は最大 31~32 日間です。97 日間を 1 回でクエリすると
CDN.0202で失敗します。データポイントは 1 日につき 1 つです。レート制限は 15 calls/s です。基準値は 30 日間のクエリ 3 件に分割する必要があります
パラメーターの確認
分析を実行する前に、次のパラメーターをユーザーに確認してください。
| パラメーター | 必須 | 説明 | デフォルト | 例 |
|---|---|---|---|---|
domain_name | はい | 分析対象の CDN ドメイン | なし | example.com |
--days | いいえ | 現在の期間分析の日数 | 7 | 14 |
--cli-region | はい | Huawei Cloud のリージョン | cn-north-1 | cn-north-1 |
ユーザー確認チェックリスト:
- 対象ドメイン名が指定されている、またはドメイン一覧から選択されている
- 分析期間が確認されている(デフォルト:現在の期間について過去 7 日間)
- これは読み取り専用の分析操作であることをユーザーが理解している
- 基準値との比較対象が過去 3 か月間にわたることをユーザーが理解している
コアワークフロー
分析を開始する前に、対象ドメインの指定が必要です。
- ユーザーが対象ドメインを指定していない場合は、ドメイン名を尋ね、返信があるまで開始しないでください。
- ユーザーがドメインを知らない場合、またはドメインの検索を依頼した場合に限り、
hcloud CDN ListDomains/v2(ステップ 2)でアカウントのドメインを一覧表示し、ユーザーに選択を求めてください。- ユーザーが明示的に指定したドメインがない状態で分析を開始しないでください。ドメインを推測したり、例やデフォルトのドメインを使用したり、一覧から独自にドメインを選んだりしないでください。
ステップ 1:アカウントの課金モードを照会する
hcloud CLI を使用して課金モードを照会し、分析するメトリックを特定します。
📄 詳細な手順 → references/task-show-charge-modes.md
ステップ 2:すべての CDN ドメインを一覧表示する(ユーザーがドメインの検索を依頼した場合のみ)
現在のアカウントに属するオンラインの CDN ドメインをすべて一覧表示し、対象ドメインを一覧から選択するようユーザーに求めます。
📄 詳細な手順 → references/task-list-domains.md
ステップ 3:ドメインを検証する
ユーザーが指定したドメインがドメイン一覧に存在することを確認します。
📄 詳細な手順 → references/task-domain-validation.md
ステップ 4:タイムスタンプを計算する
現在の期間(デフォルトは 7 日間)と 3 つの基準値期間(各 30 日間、重複なし)について、UTC+8 の午前 0 時に合わせて期間を計算します。
📄 詳細な手順 → references/task-timestamp-calculation.md
ステップ 5:現在のウィンドウのメトリクスを照会
課金モードに基づいて、現在のウィンドウ(7 日間)に対応するメトリクスを照会します。
📄 詳細な手順 → references/task-query-metrics.md
ステップ 6:ベースラインのメトリクスを照会
課金モードに基づいて、ベースラインのウィンドウ(過去 3 か月)に対応するメトリクスを照会します。
- bw_95:
ShowBandwidthCalcを 3 回に分けて呼び出し、それぞれ重複しない 30 日間のウィンドウを対象にします(API の最大範囲は 31 日間です)。2 回/秒のレート制限を遵守するため、呼び出しの間に 0.6s 待機します。 - flux / bw:
ShowDomainStats/v2を 4 回に分けて呼び出します。Step 5 の現在の 7 日間のウィンドウを対象とする呼び出しが 1 回、3×30 日間のベースラインウィンドウを対象とする呼び出しが 3 回です(interval=86400、UTC+8 の午前 0 時に合わせます)。 interval=86400 の API 最大範囲は 31~32 日間のため、97 日間を対象にした単一のクエリは失敗します(CDN.0202)。bw_95 の場合と同様に、集計された 3 つの 30 日間のウィンドウからベースライン統計(平均 / P95 / 最大)を計算します。
📄 詳細な手順 → references/task-query-metrics.md
ステップ 7:しきい値の判定
絶対しきい値(ハードリミット)と相対的なベースラインとの比較(急増の検出)を組み合わせたロジックを適用します。3 段階の分析レポートを生成します。
📄 詳細な手順 → references/task-threshold-judgment.md
しきい値ルールの概要
| 課金モード | メトリクス | 絶対しきい値 | 相対ベースライン |
|---|---|---|---|
bw_95 | 7 日間の P95 帯域幅(bit/s) | ≥ 8 Gbps → ⚠️ 異常 | 現在値 > ベースライン最大値 × 1.5 → 👀 要注意 |
flux / combine_flux | 日次トラフィック(Byte) | いずれかの日 > 5 TB → ⚠️ 異常 | いずれかの日 > ベースライン P95 × 1.5 → 👀 要注意 |
bw / bw_peak | 日次ピーク帯域幅(bit/s) | いずれかの日 ≥ 3 Gbps → ⚠️ 異常 | いずれかの日 > ベースライン P95 × 1.5 → 👀 要注意 |
3 段階の結論:
- ⚠️ 異常 — 絶対しきい値を超過しており、トラフィックの盗用を強く示唆します
- 👀 要注意 — 絶対しきい値は超過していませんが、ベースライン × 1.5 を超過しています。相対的な急増の可能性があり、調査が必要です
- ✅ 正常 — 絶対しきい値と相対しきい値の両方の範囲内です
データのないドメイン(result: {} または value: 0)は、常に正常として扱います。
出力形式
すべての分析で、CDN トラフィック異常分析レポートを統一形式で生成します。3 段階(⚠️ 異常 / 👀 要注意 / ✅ 正常)すべての完全なテンプレートは references/task-threshold-judgment.md にあります。テンプレートに厳密に従ってください。
レポート構造の要件(必須フィールド):
| フィールド | 必須 | 説明 |
|---|---|---|
| 分析時刻 | ✅ | 分析のタイムスタンプ |
| 対象ドメイン | ✅ | 分析対象のドメイン |
| 課金モード | ✅ | bw_95 / flux / combine_flux / bw / bw_peak |
| メトリクス | ✅ | 7 日間の P95 帯域幅 / 日次トラフィック / 日次ピーク帯域幅 |
| 現在のウィンドウ | ✅ | 分析期間(デフォルトは 7 日間) |
| ベースライン統計 | ✅ | 過去 3 か月の平均 / P95 / 最大値 / 相対しきい値 |
| 現在値 | ✅ | ベースラインに対する偏差(%)を含む日次値(または単一の集計値) |
| ステータス | ✅ | 3 段階の結論を表す列挙値のいずれか |
| 結論 | ✅ | 判定と推奨事項 |
ステータスの列挙値(次のいずれかを必ず 1 つだけ使用):
| ステータス | 意味 |
|---|---|
⚠️ Anomalous | 絶対しきい値を超過。トラフィックの盗用を強く示唆します |
👀 Watch | 絶対しきい値未満ですが、ベースライン × 1.5 を超過。相対的な急増です |
✅ Normal | 両方のしきい値の範囲内です |
出力で禁止される内容(絶対に含めないでください):
- ❌ AK/SK、トークン、またはあらゆる認証情報(認証ルールを参照)
- ❌ 生の API レスポンス。解析・要約した値のみを記載してください
- ❌ 分析対象ドメインと無関係なドメインやデータ
- ❌ 照会したデータに裏付けられていない推測(例:「攻撃者の身元」)
障害モード
| 障害モード | 発生条件 | 対応 |
|---|---|---|
| 有効な認証情報がない | hcloud configure list の結果が空、または無効な設定である | 直ちに停止し、「認証」セクションに沿ってユーザーを案内します |
| ドメインが見つからない | 対象ドメインが ListDomains/v2 のオンラインリストにない | 停止し、ユーザーに知らせて利用可能なドメインを一覧表示します(task-domain-validation.md を参照) |
| 権限が拒否された | API が権限エラーを返す | IAM ポリシーを確認し(iam-policies.md を参照)、失敗をユーザーに報告します |
| レート制限を超過した | ShowBandwidthCalc の上限は 2 回/秒 | 呼び出しの間に sleep 0.6 を追加し、再試行します(troubleshooting.md を参照) |
| クエリ範囲が大きすぎる | 1 回のクエリが 31 日を超える(ShowBandwidthCalc)、または 31~32 日を超える(ShowDomainStats interval=86400、CDN.0202) | 基準期間を 30 日ずつの 3 つのウィンドウに分割します。97 日間のクエリを 1 回で実行してはいけません |
| トラフィックデータがない | API が result: {} または value: 0 を返す | 正常として扱い、レポートにデータが空である状況を記載します |
| タイムスタンプがずれている | interval=86400 のクエリが UTC+8 の午前 0 時に揃っていない | 必ず scripts/cdn_timestamp.py を使用します。手動でタイムスタンプを設定すると誤りが起きやすくなります |
| hcloud CLI のパラメーターエラー | [USE_ERROR](例:パラメーターをスペース区切りで指定、リージョンが誤っている) | --key=value 形式と --cli-region=cn-north-1 を確認します |
障害モードごとの復旧ポリシー: 再試行(レート制限/一時的なエラーの場合、バックオフを行い最大 2 回)→ 縮退(クエリ範囲を分割し、利用可能なデータを使用)→ 失敗を報告(停止してユーザーに説明)。データを捏造したり、無効な結果を使って処理を続けたりしてはいけません。
出力前のセルフチェック: (1)課金モードがクエリ対象のメトリックと一致していること、(2)基準期間の 3 つのウィンドウが現在のウィンドウと重複していないこと、(3)しきい値の比較で正しい単位(bit/s 対 Byte)と演算子(≥ 対 >)を使用していることを確認します。
FAQ
| 質問 | 回答 |
|---|---|
| ShowBandwidthCalc が単一の値しか返さないのはなぜですか? | これは想定された動作です。API はクエリ期間の P95 集計値を 1 つだけ返し、日ごとの内訳は返しません。また、クエリ範囲の上限は 31 日です。日ごとのデータを取得するには ShowDomainStats/v2 を使用してください。 |
| 97 日間を 1 回の呼び出しでクエリできないのはなぜですか? | ShowDomainStats/v2 の interval=86400 では、クエリ範囲の上限が 31~32 日です。97 日間を 1 回でクエリすると CDN.0202 で失敗します。基準期間は重複しない 30 日間のウィンドウ 3 つに分割する必要があります。 |
トラフィックデータがないドメイン(result: {} / value: 0)は異常と見なされますか? | いいえ。データがないドメインは常に正常として扱います(「しきい値ルールの概要」を参照)。クエリ期間中にそのドメインのトラフィックがなかったことをレポートに記載してもかまいません。 |
--cli-region=cn-north-1 が常に推奨されるのはなぜですか? | CDN はグローバルサービスです。CLI が受け付けるのは cn-north-1 と ap-southeast-1 のみで、どちらも同じエンドポイントに割り当てられます。cn-north-4 は拒否されます([USE_ERROR])。 |
| レート制限エラーが発生した場合はどうすればよいですか? | ShowBandwidthCalc の上限は 2 回/秒です。コマンドの間に sleep 0.6 を追加してください。ShowDomainStats の上限は 15 回/秒なので、通常は対処不要です。 |
| ドメインがアカウントのオンラインドメインリストにありません。 | 分析を停止し、ドメインの表記、ステータス、アカウントを確認するようユーザーに依頼してください(troubleshooting.md の「ドメインが見つからない」セクションを参照)。 |
| ユーザーが書き込み操作(例:キャッシュの更新、設定の変更)を依頼した場合はどうすればよいですか? | このスキルは読み取り専用であることを説明して依頼を断り(prohibited-operations.md を参照)、CDN コンソールを利用するか、hcloud CLI を手動で実行するようユーザーに案内してください。 |
その他の質問やトラブルシューティングについては、references/troubleshooting.md を参照してください。
変更履歴/バージョン履歴
| バージョン | 日付 | 変更内容 |
|---|---|---|
| 1.0.0 | 2026-08-09 | 初期バージョン:課金モードの照会+トラフィック/帯域幅の統計+過去3か月のベースライン比較+2段階しきい値による異常検知 |
担当:cdn-ops
メンテナンス:大きな変更を行う場合は、この表を更新し、バージョン番号を引き上げてください(SemVer)。非推奨化や廃止には cdn-ops チームによるレビューが必要です。また、この表に記録してください。
参考資料
| ドキュメント | 説明 |
|---|---|
| task-show-charge-modes.md | ステップ1:課金モードの照会 |
| task-list-domains.md | ステップ2:すべてのドメインの一覧表示 |
| task-domain-validation.md | ステップ3:ドメインの検証 |
| task-timestamp-calculation.md | ステップ4:タイムスタンプの計算 |
| task-query-metrics.md | ステップ5~6:現在のメトリクスとベースラインメトリクスの照会 |
| task-threshold-judgment.md | ステップ7:2段階しきい値の判定とレポート |
| prohibited-operations.md | 禁止されている55件すべての非GET操作(POST/PUT/DELETE) |
| dataflow-diagram.md | Mermaid データフロー図 |
| related-apis.md | API と CLI コマンドのリファレンス |
| iam-policies.md | IAM 権限ポリシー |
| verification-method.md | 出力形式と検証 |
| cli-installation-guide.md | CLI インストールガイド |
| troubleshooting.md | トラブルシューティングとベストプラクティス |
| acceptance-criteria.md | 受け入れ基準チェックリスト |