

# CloudWatch に送信できるカスタムメトリクスと拡張メトリクス
<a name="CloudWatch-RUM-custom-and-extended-metrics"></a>

デフォルトでは、RUM アプリケーションモニタはメトリクスを CloudWatch に送信します。これらのデフォルトのメトリクスとディメンションは、「[CloudWatch RUM で収集できる CloudWatch メトリクス](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM-metrics.html)」に記載されています。

アプリモニターをセットアップして、メトリクスをエクスポートすることもできます。アプリモニターは、拡張メトリクス、カスタムメトリクス、またはその両方を送信できます。CloudWatch に送信できます。
+ **カスタムメトリクス** – カスタムメトリクスはユーザーが定義するメトリクスです。カスタムメトリクスでは、任意のメトリクス名と名前空間を使用できます。メトリクスを取得するには、任意のカスタムイベント、組み込みイベント、カスタム属性、デフォルト属性を使用します。

  カスタムメトリクスを CloudWatch に送信できます。
+ **拡張メトリクス** – 追加のディメンションを使用して、デフォルトの CloudWatch RUM メトリクスをどれでも CloudWatch に送信できます。これにより、これらのメトリクスはよりきめ細かいビューを提供します。

**Topics**
+ [カスタムメトリクス](#CloudWatch-RUM-custom-metrics)
+ [拡張メトリクス](#CloudWatch-RUM-vended-metrics)

## カスタムメトリクス
<a name="CloudWatch-RUM-custom-metrics"></a>

カスタムメトリクスを送信するには、コンソールではなく、AWS API または AWS CLI を使用する必要があります。AWS API を使用する方法については、「[PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html)」および「[BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html)」を参照してください。

1 つの送信先に含めることができる拡張メトリクスおよびカスタムメトリクス定義の最大数は、2,000 です。各送信先に送信するカスタムメトリクスまたは拡張メトリクスごとに、ディメンション名とディメンション値の各組み合わせが、この制限に対してカウントされます。CloudWatch RUM のあらゆる種類のイベントまたは属性から派生したカスタムメトリクスに対しては、料金が発生しません。

次の例は、カスタムイベントから派生したカスタムメトリクスの作成方法を示しています。使用されるカスタムイベントの例は次のとおりです。

```
cwr('recordEvent', {
    type: 'my_custom_event', 
    data: {
        location: 'IAD', 
        current_url: 'amazonaws.com', 
        user_interaction: {
            interaction_1 : "click",
            interaction_2 : "scroll"
        }, 
        visit_count:10
    }
})
```

このカスタムイベントがあれば、Chrome ブラウザから `amazonaws.com` URL への訪問数をカウントするカスタムメトリクスを作成できます。次の定義では、アカウントの `RUM/CustomMetrics/PageVisits` 名前空間に `AmazonVisitsCount` という名前のメトリクスを作成します。

```
{
    "AppMonitorName":"customer-appMonitor-name",
    "Destination":"CloudWatch",
    "MetricDefinitions":[
        {
            "Name":"AmazonVisitsCount",
            "Namespace":"PageVisit",
            "ValueKey":"event_details.visit_count",
            "UnitLabel":"Count",
            "DimensionKeys":{
                "event_details.current_url": "URL"
            },
            "EventPattern":"{\"metadata\":{\"browserName\":[\"Chrome\"]},\"event_type\":[\"my_custom_event\"],\"event_details\": {\"current_url\": [\"amazonaws.com\"]}}" 
        }
    ]
}
```

## 拡張メトリクス
<a name="CloudWatch-RUM-vended-metrics"></a>

拡張メトリクスを設定すると、デフォルトの CloudWatch RUM メトリクスをどれでも、追加のディメンションとともに CloudWatch に送信できます。これにより、メトリクスのビューがきめ細かくなります。

デフォルトの CloudWatch RUM メトリクスの詳細については、「[CloudWatch RUM で収集できる CloudWatch メトリクス](CloudWatch-RUM-metrics.md)」を参照してください。

1 つの送信先に含めることができる拡張メトリクスおよびカスタムメトリクス定義の最大数は、2,000 です。各送信先に送信する拡張メトリクスまたはカスタムメトリクスごとに、ディメンション名とディメンション値の各組み合わせが、この制限に対する拡張メトリクスとしてカウントされます。

CloudWatch に拡張メトリクスを送信すると、CloudWatch RUM コンソールを使用してそのメトリクスに CloudWatch アラームを作成できます。

CloudWatch RUM のデフォルトメトリクスに対して作成された拡張メトリクスには、料金が発生しません。

### ウェブアプリケーションの拡張メトリクス
<a name="CloudWatch-RUM-web-extended-metrics"></a>

ウェブアプリケーションの拡張メトリクスでは、次のディメンションがサポートされています。
+ `BrowserName`

  ディメンション値の例: `Chrome`、`Firefox`、`Chrome Headless`
+ `CountryCode` これには、2 文字のコードの ISO-3166 形式を使用します。

  ディメンション値の例: `US`、`JP`、`DE`
+ `DeviceType`

  ディメンション値の例: `desktop`、`mobile`、`tablet`、`embedded`
+ `FileType`

  ディメンション値の例: `Image`、`Stylesheet`
+ `OSName`

  ディメンション値の例: `Linux`、`Windows`、`iOS`、`Android`
+ `PageId`

### モバイルアプリケーションの拡張メトリクス
<a name="CloudWatch-RUM-mobile-extended-metrics"></a>

モバイルアプリケーションの拡張メトリクスでは、次のディメンションがサポートされています。
+ `ScreenName`
  + 画面名属性の値 - アプリケーションの `attributes.screen.name`
  + 値の例: HomeScreen、SettingsView、ProfilePage
+ `DeviceModel`
  + デバイスモデル属性の値 - `resource.attributes.device.model.name`
  + 値の例: iPhone14,3、SM-G998B
+ `OSVersion`
  + オペレーティングシステムのバージョン属性の値 - `resource.attributes.os.version`
  + 値の例: 16.0、13.0

**注記**  
現在サポートされているモバイルアプリケーションのデフォルトメトリクス: `ScreenLoadTime`、`ScreenLoadCount`、`NetworkLatency`、`Http4xxCount`、`Http5xxCount`、`CrashCount`、`ANRCount`、`AppHangCount`、`ColdLaunchTime`、`WarmLaunchTime`、`SessionCount`、`SpanPayloadSize`、および `LogPayloadSize`。

### コンソールを使用して拡張メトリクスをセットアップする
<a name="CloudWatch-RUM-extended-metrics-console"></a>

コンソールを使用して CloudWatch に拡張メトリクスを送信するには、次の手順に従います。

AWS API を使用して CloudWatch に拡張メトリクスを送信する方法については、「[PutRumMetricsDestination](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_PutRumMetricsDestination.html)」と「[BatchCreateRumMetricDefinitions](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_BatchCreateRumMetricDefinitions.html)」を参照してください。

**コンソールを使用してアプリケーションモニタをセットアップし、RUM 拡張メトリクスを CloudWatch に送信するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで、**[Application Signals]**、**[RUM]** の順に選択します。

1. メトリクスを送信するアプリケーションモニターの名前を選択します。

1. **[Configuration]** (設定) タブを選択し、**[RUM extended metrics]** (RUM 拡張メトリクス) を選択します。

1. **[Send metrics]** (メトリクスを送信) を選択します。

1. メトリクス名を 1 つまたは複数選択して、ディメンションを追加して送信します。

1. これらのメトリクスのディメンションとして使用するファクターを 1 つまたは複数選択します。選択すると、その選択によって作成される拡張メトリクスの数が **[Number of extended metrics]** (拡張メトリクスの数) に表示されます。

   この数は、選択したメトリクス名の数に、作成したさまざまなディメンションの数を掛けて計算されます。

   1. ページ ID をディメンションとして含むメトリクスを送信するには、**[ページ ID を参照]** を選択し、使用するページ ID を選択します。

   1. デバイスタイプをディメンションとして含むメトリクスを送信するには、**[Desktop devices]** (デスクトップデバイス) または **[Mobile and tablets]** (モバイルとタブレット) を選択します。

   1. オペレーティングシステムをディメンションとして含むメトリクスを送信するには、**[Operating system]** (オペレーティングシステム) で 1 つまたは複数のオペレーティングシステムを選択します。

   1. ブラウザタイプをディメンションとして含むメトリクスを送信するには、**[Browsers]** (ブラウザ) で 1 つまたは複数のブラウザを選択します。

   1. 地理的位置情報をディメンションとして含むメトリクスを送信するには、**[Locations]** (ロケーション) で 1 つまたは複数のロケーションを選択します。

      このアプリケーションモニターがメトリクスを報告したロケーションのみがリストに表示され、そこから選択できます。

1. 選択が終わったら、**[Send metrics]** (メトリクスを送信) を選択します。

1. (オプション) **[Extended metrics]** (拡張メトリクス) リストで、いずれかのメトリクスを監視するアラームを作成するには、そのメトリクスの行で **[Create alarm]** (アラームを作成) を選択します。

   CloudWatch アラーム全般については、「[Amazon CloudWatch でのアラームの使用](CloudWatch_Alarms.md)」を参照してください。CloudWatch RUM 拡張メトリクスにアラームを設定するチュートリアルについては、「[チュートリアル: 拡張メトリクスを作成してアラームを設定する](#CloudWatch-RUM-extended-metrics-alarmtutorial)」を参照してください。

**拡張メトリクスの送信を停止する**

**コンソールを使用して拡張メトリクスの送信を停止するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで、**[Application Signals]**、**[RUM]** の順に選択します。

1. メトリクスを送信するアプリケーションモニターの名前を選択します。

1. **[Configuration]** (設定) タブを選択し、**[RUM extended metrics]** (RUM 拡張メトリクス) を選択します。

1. 送信を停止するには、メトリクス名とディメンションの組み合わせを 1 つまたは複数選択します。次に、**[Actions]** (アクション)、**[Delete]** (削除) の順に選択します。

### チュートリアル: 拡張メトリクスを作成してアラームを設定する
<a name="CloudWatch-RUM-extended-metrics-alarmtutorial"></a>

このチュートリアルでは、CloudWatch に送信する拡張メトリクスを設定する方法と、そのメトリクスにアラームを設定する方法を示します。このチュートリアルでは、Chrome ブラウザの JavaScript エラーを追跡するメトリクスを作成します。

**この拡張メトリクスをセットアップしてアラームを設定するには**

1. CloudWatch コンソールの [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) を開いてください。

1. ナビゲーションペインで、**[Application Signals]**、**[RUM]** の順に選択します。

1. メトリクスを送信するアプリケーションモニターの名前を選択します。

1. **[Configuration]** (設定) タブを選択し、**[RUM extended metrics]** (RUM 拡張メトリクス) を選択します。

1. **[Send metrics]** (メトリクスを送信) を選択します。

1. **[JSErrorCount]** を選択します。

1. **[Browsers]** (ブラウザ) で **[Chrome]** を選択します。

   この **[JSErrorCount]** と **[Chrome]** の組み合わせにより、1 つの拡張メトリクスが CloudWatch に送信されます。このメトリクスでは、Chrome ブラウザを使用するユーザーセッションの JavaScript エラーのみがカウントされます。メトリクス名は **[JsErrorCount]** になり、ディメンション名は **[Browser]** (ブラウザ) になります。

1. **[Send metrics]** (メトリクスを送信) を選択します。

1. **[Extended metrics]** (拡張メトリクス) リストで、**[Name]** (名前) に **[JsErrorCount]** と表示され、**[BrowserName]** に **[Chrome]**」と表示されている行で **[Create alarm]** (アラームを作成) を選択します。

1. **[Specify metric and conditions]** (メトリクスと条件の指定) で、**[Metric name]** (メトリクス名) と **[BrowserName]** フィールドに正しい値が事前に入力されていることを確認します。

1. **[Statistic]** (統計) で、アラームに使用したい統計を選択します。このタイプのカウントメトリクスには、**[Average]** (平均) が適しています。

1. **[期間]** で、**[5 分]** を選択します。

1. **[条件]** で、次の操作を行います。
   + **[Static]** (静的) を選択します。
   + エラー数がこれから指定するしきい値を超えるとアラームが ALARM 状態になるように指定するには、**[Greater]** (より大きい) を選択します。
   + **[しきい値]** に、アラームしきい値となる数を入力します。5 分間のエラー数がこの数を超えると、アラームは ALARM 状態になります。

1. (オプション) デフォルトでは、エラー数が 5 分間に設定したしきい値を超えるとすぐに、アラームは ALARM 状態になります。必要に応じてこれを変更して、5 分間にこの数を超えることが複数回あった場合に、その回数によってアラームが ALARM 状態になるようにできます。

   そのためには、**[Additional configuration]** (その他の設定) を選択し、**[Datapoints to alarm]** (アラームを実行するデータポイント) で、5 分間にエラー数がしきい値を超えることが何回あるとアラームがトリガーされるかを指定します。例えば、2 回中 2 回を選択して 5 分の期間が 2 回連続してしきい値を超えている場合にのみアラームがトリガーされるようにしたり、3 回中 2 回を選択して連続する 3 回の 5 分の期間のうちいずれか 2 回しきい値を超えた場合にアラームがトリガーされるようにしたりできます。

   この種のアラーム評価の詳細については、「[アラーム評価](alarm-evaluation.md)」を参照してください。

1. [**次へ**] を選択します。

1. **[Configure actions]** (アクションの設定) で、アラームがアラーム状態になったときに実行する処理を指定します。Amazon SNS を使用して通知を受け取るには、以下を実行します。
   + **[通知を追加]** をクリックします。
   + **[アラーム状態]** を選択します。
   + 既存の SNS トピックを選択するか、新しく作成することができます。新しく作成する場合は、名前を指定し、メールアドレスを少なくとも 1 つ追加します。

1. [**次へ**] を選択します。

1. 名前を入力し、必要に応じてアラームの説明を入力して **[Next]** (次へ) を選択します。

1. 詳細を確認し、**[Create alarm]** (アラームを作成) を選択します。