CloudWatchの詳しい設定など色々調べてみた

##CloudWatch Alarm##

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/53707c4d-59d3-bd3c-83de-93aede4cf692.png)

###期間###

上記の図のような設定の場合、
5 分間隔で **5 回のうち 2 回**、
CPUUtilization が 20％を超えたときにCloudWatch アラームが通知されるようになる。

[Amazon CloudWatch アラームで､ある期間に N 個のメトリクスのうち M 個のメトリクスデータポイントがしきい値を上回った場合にアラートが表示される](https://aws.amazon.com/jp/about-aws/whats-new/2017/12/amazon-cloudwatch-alarms-now-alerts-you-when-any-m-out-of-n-metric-datapoints-in-an-interval-are-above-your-threshold/)

###欠落データの処理方法###

EC2インスタンスに対する CPUUtilization や StatusCheckFailed であれば、インスタンス起動中は連続して通知されるため、任意の閾値でアラームの発生・復旧をコントロールできます。
しかし、ELBの HTTPCode_ELB_5XX のような、事象発生時のみ通知される不連続なメトリックスでは、通知発生時にはアラームとすることが可能ですが、何も通知がない状態では「不明」のステータスとなってしまいました。

- missing(見つかりません)—このアラームは、状態を変更するかどうかを評価する際に、欠落データポイントを考慮に入れません。
- notBreaching(適正)—欠落データポイントはしきい値内として扱われます。
- breaching(不正)—欠落データポイントはしきい値超過として扱われます。
- ignore(無視)—現在のアラーム状態が維持される

[CloudWatch アラームの欠落データの処理の設定]
(https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data)


<br>
<br>


##CloudWatch Events##

###イベントパターン###
イベントパターンとスケジュールの2つから設定できる。
イベントタイプは↓から確認できる。
[サポートされている各サービスからの CloudWatch イベント イベントの例](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/EventTypes.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/b2f7a36f-9e77-1603-a622-8e36a7d0394f.png)


###スケジュール###
例えば、指定の時間にEC2を停止し、指定の時間にEC2を起動するように設定し、コストを抑えたいときなどに便利。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/9d38ed64-78e0-f21d-cebf-a2c042fa31b3.png)
Cron 式は↓の形式で記述する。↑の設定、`0 13 * * ? *`　タイムゾーンに注意。
グリニッジ標準時(GMT)で解釈されます。日本時間(JST)の設定をGMTに変換して入力する必要があります。(日本時間の22時は、GMTだと13時)
[ルールのスケジュール式](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html)

###ターゲット###
ターゲットとして設定できるのは↓。
[Amazon CloudWatch Events とは](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/11b04eb8-2c14-3b50-f954-cdda81702ec1.png)

<br>
<br>


##CloudWatch Logs##

詳しい設定は省きますが、EC2にawslogsをインストールし、EC2のlogsをCloudWatchへ送ると↓な感じになる。

```
sudo yum install -y awslogs

vim　/etc/awslogs/awscli.conf
[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1

vim　/etc/awslogs/awslogs.conf
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages

sudo service awslogs start
sudo chkconfig awslogs on
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/82bd6bc4-b8e3-3c23-c6fd-13de7e6df021.png)


###メトリックスフィルタの設定###
フィルタパターンの書き方は↓を参照。
[フィルターとパターンの構文](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/9fc92cf6-60aa-1ce1-276b-b068f6bae5de.png)

###メトリクス値とデフォルト値###
例えば↓の例だと「Error」を含む各ログイベントのカウントは 1 ずつ増分されるということになる。
デフォルト値については、[一致が見つかった場合のメトリクス値の変更方法の設定](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)のページを見た方がいいかも。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/d9b583a0-5d91-948c-a39d-ae46a611abf4.png)

###カスタムメトリクスの削除###
メトリックスフィルタからは削除した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/fba86f58-87f9-0dfe-236a-3e85e143cac7.png)
でもなぜか、消えない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6c6e36c8-9a5d-5345-8bd9-e268844692ea.png)
カスタムメトリックスを明示的に削除する手段は、マネージメントコンソールにもAPIにも存在しない。
2週間待って、CloudWatchのから自然消滅するのを待て、ということらしい。
[カスタムメトリックスを削除](https://siguniang.wordpress.com/2014/12/19/publish-custom-metrics-to-cloudwatch-with-awscli/)

###データをS3にエクスポート###
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/fe20572c-ac60-ada0-6192-0fb7341995ee.png)
もちろんS3でアクセス許可しないけねい。
[ステップ 3: Amazon S3 バケットにアクセス許可を設定する](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/S3ExportTasks.html#S3Permissions)

##CloudWatch Logs Insights##

- CloudWatch Logsのロググループに対してSQLを用いたクエリーを投げ、ログを集計することができるサービス。

## CloudWatch RUM

###CloudWatch RUMとは

- CloudWatch RUM はウェブアプリケーションのパフォーマンス、特にクライアント目線でのパフォーマンス問題の解析や解決に役立つモニタリングして、可視化するサービスです。

###Apdexスコア###

- Apdexスコアというウェブアプリケーションのレスポンスタイムについてのユーザー満足度を計測する標準的な指標がある。

###設定###

- 設定は、CloudWatch RUMをセットアップ、→ CloudWatch RUMから取得したJavaScript コードスニペットをアプリケーションのヘッダーに貼り付けて → 後はモニタリングするだけである。

![スクリーンショット 2022-02-18 18.33.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/d33769c2-2ba3-deab-e73e-cea12a410fb9.png)

https://dev.classmethod.jp/articles/cloudwatch-rum-workshop/

##CloudWatch Evidently##

###CloudWatch Evidentlyとは###

- CloudWatch Evidentlyを使用することで、本番リリース前の検証で機能フラグの制御を利用しコードをデプロイせずに機能を有効または無効にすることでのA/Bテストやversionごとの良し悪しを判断できる。

https://qiita.com/yoshii0110/items/2a1caae289587b461992