aws cloudformation describe-stacks \
  --stack-name <あなたのDLTスタック名> \
  --query "Stacks[0].Description" --output text
# CLAUDE.md

## CloudWatch カスタムメトリクス設計ルール

### 名前空間の命名規則
Custom/{システム名}/{サービス名}
例:Custom/EcSite/ApiService

### 必須メトリクス(全サービス共通)
- ResponseTime(Milliseconds)
- ErrorRate(Percent)
- RequestCount(Count)

### ディメンション設計
- Environment: dev/stg/prod
- Service: サービス名
- Region: ap-northeast-1

### アラーム設定基準
- ResponseTime p99 > 3000ms → Warning
- ResponseTime p99 > 5000ms → Critical
- ErrorRate > 1% → Warning
- ErrorRate > 5% → Critical

### Terraform 管理
- アラームは modules/cloudwatch/ に配置
- ダッシュボードは environments/{env}/ に配置
Claude Code が生成するもの
① メトリクス送信コード(Python + boto3)
② Terraform(アラーム + ダッシュボード)
「以下の要件でCloudWatchカスタムメトリクスを設計・実装してください。

対象:ECS Fargate上のAPIサービス
取得したいメトリクス:
- APIレスポンスタイム(p50/p95/p99)
- エラーレート(5xx/4xx)
- アクティブセッション数

実装:
- Lambda で定期的にメトリクスを送信
- Terraform でアラームとダッシュボードも作成
- 名前空間は Custom/ApiService」
JMeterログは標準出力ではなく、ログファイル(/tmp/artifacts/)に
出力されているようです。(cloudwatchでは見つからない)
テスト終了後、以下のファイルがS3に自動アップロードされています

S3バケット
└── results/
    └── <TEST_ID>/
        ├── xxx.xml           ← テスト結果サマリー
        ├── bzt-xxx.log       ← Taurusログ
        ├── jmeter-xxx.log    ← JMeterログ
        ├── jmeter-xxx.out    ← 標準出力
        ├── jmeter-xxx.err    ← エラー出力
        └── xxx.jtl           ← リクエスト単位の詳細ログ
DLTがS3に出力するエラー情報にリクエスト/レスポンスボディを
追加して、Claude(MCP)+S3 MCPサーバーでエラー解析させることは
可能です。


<ご参考>

================================================================
DLT エラー原因分析
Claude + MCP連携 + S3 MCPサーバーを使用した負荷テストエラー調査
================================================================

【課題】

DLTがS3に出力するJMeter結果ファイルには、
エラー率・レスポンスタイムは含まれるが、
リクエスト/レスポンスボディが含まれないため
エラー原因の特定が困難。

----------------------------------------------------------------
【解決方針】

JMeter実行時のエラー詳細(リクエスト/レスポンスボディ)を
コンテナ内に記録し、DLT標準機能でS3に自動アップロードされた
ファイルをClaude(MCP)が取得・分析する。

JMeter実行(ECS Fargate)
    ↓
/tmp/results-detail.jtl に記録
    ↓
load-test.shの既存処理がS3に自動アップロード  ← 追加実装不要
    ↓
Claude(MCP)がS3 MCPサーバー経由でS3から取得して分析

----------------------------------------------------------------
【事前作業1】JMXファイルへのリスナー追加

リクエスト/レスポンスボディを記録するため、JMXファイルにリスナーを追加する。
filenameタグの記載により、load-test.shが自動でS3にアップロードする。

追加するXML(JMXファイルの </jmeterTestPlan> 直前に挿入):

<!-- JMXファイルに追加するリスナー設定 -->
<ResultCollector guiclass="SimpleDataWriter"
                 testclass="ResultCollector"
                 testname="結果ファイル出力">
  <boolProp name="ResultCollector.error_logging">true</boolProp>  <!-- エラーのみ -->
  <objProp>
    <name>saveConfig</name>
    <value class="SampleSaveConfiguration">
      <!-- リクエスト/レスポンスボディを記録する設定 -->
      <requestHeaders>true</requestHeaders>
      <responseData>true</responseData>      <!-- レスポンスボディ -->
      <requestData>true</requestData>        <!-- リクエストボディ -->
      <responseHeaders>true</responseHeaders>
      <url>true</url>
      <time>true</time>
      <latency>true</latency>
      <responseCode>true</responseCode>
      <responseMessage>true</responseMessage>
      <encoding>false</encoding>
    </value>
  </objProp>
  <stringProp name="filename">/tmp/results-detail.jtl</stringProp>   <!-- S3アップロード -->
</ResultCollector>

----------------------------------------------------------------
【事前作業2】S3 MCPサーバーのセットアップ(ローカルPC)

(1) uvx のインストール(未インストールの場合)
    pip install uv

(2) MCPクライアント設定ファイルに以下を追記する

    {
      "mcpServers": {
        "awslabs.aws-api-mcp-server": {
          "command": "uvx",
          "args": ["awslabs.aws-api-mcp-server@latest"],
          "env": {
            "AWS_REGION": "ap-northeast-1",
            "AWS_PROFILE": "your-profile"
          }
        }
      }
    }

(3) AWS認証情報の確認
    ・aws configure またはプロファイル設定済みであること
    ・実行ユーザーに s3:GetObject 権限があること

----------------------------------------------------------------
【Claudeでの分析手順】

(1) Claude(claude.ai)を開く
(2) S3 MCPサーバーが接続されていることを確認する
(3) 以下のように指示する

    「s3://[バケット名]/[test-id]/results-detail.jtl を取得して
      エラー原因を分析してください」

Claudeが自動で実行する内容:
    ① S3 MCPサーバー経由でresults-detail.jtlを取得
    ② JTLファイルの内容を解析
    ③ エラー原因・傾向をレポート生成

----------------------------------------------------------------
【注記】

・コンテナイメージ(Dockerfile)の改修は不要
・S3 MCPサーバーはローカルPCで起動している必要がある
・Claude Codeは不要

================================================================