with one click
rubytee-monitor
Rubytee の CloudWatch ログを取得し、不適切な利用パターンやコスト異常を検出する。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Rubytee の CloudWatch ログを取得し、不適切な利用パターンやコスト異常を検出する。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | rubytee-monitor |
| description | Rubytee の CloudWatch ログを取得し、不適切な利用パターンやコスト異常を検出する。 |
| argument-hint | [期間: 1h, 6h, 24h, 7d など(デフォルト: 24h)] [ステージ: prod, stg(デフォルト: prod)] |
Rubytee relay の CloudWatch ログを取得・分析し、不適切な利用パターン、コスト異常、システムエラーを検出する。
$ARGUMENTS から以下を解析する(すべてオプション):
1h, 6h, 24h, 7d など(デフォルト: 24h)prod, stg, stg2(デフォルト: prod)例:
/rubytee-monitor → prod の直近 24 時間/rubytee-monitor 6h stg → stg の直近 6 時間/rubytee-monitor 7d → prod の直近 7 日間CloudWatch Logs Insights を使用してログを取得する。docker compose run の infra サービスで AWS CLI を実行する。
ログ取得用の AWS CLI コマンド:
# 全 rubytee_response イベント
docker compose run --rm -w /app/infra/smalruby-rubytee-relay infra \
aws logs filter-log-events \
--log-group-name "/aws/lambda/RubyteeRelayHandler<suffix>" \
--start-time <epoch_ms> \
--filter-pattern '"rubytee_response"' \
--query 'events[].message' \
--output text
# レートリミット(ブロック)イベント
docker compose run --rm -w /app/infra/smalruby-rubytee-relay infra \
aws logs filter-log-events \
--log-group-name "/aws/lambda/RubyteeRelayHandler<suffix>" \
--start-time <epoch_ms> \
--filter-pattern '"[RateLimit] Blocked"' \
--query 'events[].message' \
--output text
# Claude API エラー
docker compose run --rm -w /app/infra/smalruby-rubytee-relay infra \
aws logs filter-log-events \
--log-group-name "/aws/lambda/RubyteeRelayHandler<suffix>" \
--start-time <epoch_ms> \
--filter-pattern '"[Claude] API error"' \
--query 'events[].message' \
--output text
ロググループ名のサフィックス:
| ステージ | サフィックス |
|---|---|
| prod | (なし) → /aws/lambda/RubyteeRelayHandler |
| stg | -stg → /aws/lambda/RubyteeRelayHandler-stg |
| stg2 | -stg2 → /aws/lambda/RubyteeRelayHandler-stg2 |
epoch_ms の計算:
# macOS
date -v-24H +%s000 # 24時間前
date -v-7d +%s000 # 7日前
date -v-1H +%s000 # 1時間前
取得したログを以下の観点で分析する。
## 利用統計(<期間>、<ステージ>)
- 総リクエスト数: N
- ユニーク IP 数: N(stg のみ、prod は sourceIp なし)
- レートリミット発動回数: N
- Claude API エラー数: N
- 平均出力トークン: N
- 平均入力トークン: N
## キャッシュ効率
- キャッシュヒット率: N%(cacheReadTokens > 0 のリクエスト / 総リクエスト)
- キャッシュ作成回数: N(cacheCreationTokens > 0)
- キャッシュヒット回数: N(cacheReadTokens > 0)
- キャッシュミス回数: N(両方 0)
⚠️ キャッシュミスが多い場合: システムプロンプトのトークン数が 4,096 を下回っている可能性
Claude Haiku 4.5 の料金で概算する:
| 項目 | 単価(1M トークン) |
|---|---|
| Input tokens | $1.00 |
| Output tokens | $5.00 |
| Cache write | $1.25 |
| Cache read | $0.10 |
## コスト推定
- Input: $X.XX(N tokens × $1.00/1M)
- Output: $X.XX(N tokens × $5.00/1M)
- Cache write: $X.XX(N tokens × $1.25/1M)
- Cache read: $X.XX(N tokens × $0.10/1M)
- **合計: $X.XX**
- 1リクエストあたり平均: $X.XXXX
以下のパターンを検出し、フラグを立てる:
userMessageLength が 200 を超えるリクエストoutputTokens が 1000 を超えるリクエスト分析結果をまとめてユーザーに報告する。
# Rubytee モニタリングレポート
**期間**: YYYY-MM-DD HH:MM 〜 YYYY-MM-DD HH:MM(JST)
**ステージ**: prod / stg
## 利用統計
(Phase 2a の内容)
## キャッシュ効率
(Phase 2b の内容)
## コスト推定
(Phase 2c の内容)
## 検出されたアラート
(Phase 2d で検出されたもの、なければ「アラートなし」)
## 推奨アクション
(検出内容に基づく対応案)
レポートを /tmp/rubytee-monitor-report-YYYY-MM-DD.md に書き出し、Secret Gist として作成する:
gh gist create /tmp/rubytee-monitor-report-YYYY-MM-DD.md \
-d "Rubytee monitoring report - <stage> - YYYY-MM-DD"
rm /tmp/rubytee-monitor-report-YYYY-MM-DD.md
reference_rubytee_monitoring.md メモリの「レポート一覧」テーブルに新しい行を追加し、「前回チェック」セクションを更新する。
これにより次回 /rubytee-monitor 実行時に前回チェック日とレポート URL を参照できる。
Claude メモリ reference_rubytee_monitoring から前回チェック情報を読み取り、前回からの変化をハイライトする:
AWS_PROFILE や AWS_ACCESS_KEY_ID が設定されているか確認を促すautopilot の総合サポート。初期設定(必要情報のインタビュー → 起動スクリプト tmp/autopilot_up.sh の生成 → 起動コマンド提示)、Issue の enroll ショートカット(本文や末尾に「enroll autopilot」)、トラブル診断(check-autopilot へ委譲)、運用中の操作支援。「init autopilot」「autopilot開始」「go autopilot」「play autopilot」「enroll autopilot」など、autopilot と一緒にやろうと汲み取れるひとことで起動する。
autopilot daemon の状態確認と異常(Blocked / 認証失効 / stuck)の診断・復旧支援。「check autopilot」「check autopilot
/upstream:merge - Interactive Upstream Merge Workflow. upstream scratch-editor の変更を Smalruby に取り込む半自動ワークフロー。
smalruby3-editor の devcontainer 設定 (.devcontainer/devcontainer.json) を対話的に作成する。テンプレート (.example) を基に、利用者の環境に合わせて mounts セクションを ON/OFF する。devpod / VS Code Dev Containers で開発したい人が初回に使う。
プログラム不具合報告 (smalruby-bug-report) を DynamoDB から取得し、添付作品を S3 からダウンロードして GitHub Issue 化し、対応後に状態・返信を報告者へ書き戻す。管理者の追加/削除も行う。
Google Form のフィードバック(Google Spreadsheet からコピー)を GitHub Discussions の Feedback カテゴリに転記する。