--- name: conoha-storage-health-check description: ConoHa Object Storage(Swift)の使用量とクォータを点検し、容量の逼迫を診断する。逼迫時はクォータ引き上げや不要データ削除を提案する。「ストレージ健康診断」「使用量」「容量」「クォータ」「quota」「逼迫」「空き容量」「容量不足」「どのコンテナが大きい」などのキーワードで発動する。 --- # ConoHa Object Storage ヘルスチェック アカウントの使用量とクォータを実測し、容量の逼迫度を診断する。コンテナ単位の内訳で「どこが容量を食っているか」を示し、逼迫時はクォータ引き上げまたは不要データ削除を提案する。 ## 前提条件 - MCP クライアントが ConoHa Object Storage MCP(`/vps/swift-mcp`)に接続済みで、OAuth 認可が完了していること(`vps:read` 以上) - テナントID(`{tenantId}`)はリテラルのまま指定してよい(サーバーが自動置換) - 使用量・クォータの取得は `conoha_storage_stat`、コンテナ内訳は `conoha_storage_list` を使う。逼迫時の対処は [conoha-storage-operations](../conoha-storage-operations/SKILL.md) の `conoha_storage_set_metadata` / `conoha_storage_delete` に委譲する ## 使用ツール | 用途 | ツール | path | | ------------------------------------ | --------------------- | --------------------------------- | | アカウント使用量・クォータ | `conoha_storage_stat` | `/v1/AUTH_{tenantId}` | | コンテナ別使用量(一覧本体の bytes) | `conoha_storage_list` | `/v1/AUTH_{tenantId}` | | コンテナ別使用量(フォールバック) | `conoha_storage_stat` | `/v1/AUTH_{tenantId}/{container}` | ## 診断フロー ```text 1. conoha_storage_stat path="/v1/AUTH_{tenantId}" → x-account-bytes-used(使用量・バイト), x-account-meta-quota-bytes(クォータ・バイト)または x-account-meta-quota-giga-bytes(クォータ・GB)。設定は GB 単位だが、返却は環境により `-bytes`/`-giga-bytes` のいずれかになるため両方を確認する, x-account-container-count, x-account-object-count を取得 2. クォータ有無を判定: - quota 系ヘッダーが両方とも無い → 「クォータ未設定」として報告(使用量の絶対値のみ提示) - あり → クォータをバイトに正規化(giga-bytes は ×1024^3)し、 使用率 = 使用量 ÷ クォータ を算出、判定基準で逼迫度を分類 3. 逼迫(WARNING 以上)またはユーザーが内訳を求める場合: a. conoha_storage_list path="/v1/AUTH_{tenantId}" → 本体は Swift JSON 一覧(各コンテナに name / count / bytes)。 この bytes をそのまま使い、コンテナ毎の stat は原則不要 b. (bytes が欠落している場合のみフォールバック) 各コンテナに conoha_storage_stat path="/v1/AUTH_{tenantId}/<コンテナ名>" → x-container-bytes-used を取得 c. 使用量降順に並べ、上位コンテナを「容量の主因」として提示 4. 判定に応じて対処を提案(下記「対処の提案」) ``` ## 判定基準 使用率 = `x-account-bytes-used` ÷ クォータ(`x-account-meta-quota-bytes`、無ければ `x-account-meta-quota-giga-bytes` × 1024³) | 使用率 | 判定 | 対応 | | -------------- | ----------- | ------------------------------------------ | | 〜70% 未満 | ✅ HEALTHY | 対処不要 | | 70% 〜 90% | ⚠️ WARNING | 内訳を確認し、増設 or 整理の検討を促す | | 90% 以上 | 🔴 CRITICAL | 即時対応を推奨(クォータ引き上げ or 削除) | | クォータ未設定 | ℹ️ NO QUOTA | 使用量の絶対値を提示し、上限設定を提案 | - 閾値はデフォルト値。ユーザーが独自閾値を指定した場合はそれに従う - バイト値は人間可読(GiB 等)に変換して提示する(`x-account-*` はバイト単位) ## 対処の提案 - **クォータ引き上げ**: `conoha_storage_set_metadata`(アカウント, `X-Account-Meta-Quota-Giga-Bytes`, 100GB 単位)。現使用量を上回る値を提案する - **不要データ削除**: 内訳上位コンテナ/古いオブジェクトを `conoha_storage_delete`(`confirm: true`)で削除 - いずれも実操作は [conoha-storage-operations](../conoha-storage-operations/SKILL.md) の手順・制約に従う(削除は明示確認必須) ## レポート例 ```text 【Object Storage 容量診断】 使用量: 172.4 GiB / クォータ 200 GiB(使用率 86.2%)… ⚠️ WARNING コンテナ数: 5 / オブジェクト数: 12,430 容量内訳(上位): 1. backups 120.1 GiB 2. media 38.7 GiB 3. logs 10.9 GiB 提案: - クォータを 300GB へ引き上げる(set_metadata: "300") - もしくは backups の古い世代を削除して空き容量を確保 ``` ## エラー対応ガイド | エラー | 原因 | 対処 | | ---------------- | ---------------------------- | --------------------------------------------------------------------------- | | 401 Unauthorized | OAuth 認可切れ / scope 不足 | 再認可し `vps:read` を確認 | | クォータ値が無い | アカウントに容量上限が未設定 | 「クォータ未設定」として使用量のみ提示し上限設定を提案 | | コンテナ数が多い | 内訳のコンテナ数が多数 | 一覧本体(`conoha_storage_list`)の bytes で一括把握し、stat の多発を避ける |