CloudWatch
https://gyazo.com/236fcbd89a0aa320c1e09cd3785971f3
Metrics: データポイントを送るための空間。MetricStatisticsというので、時系列やNameSpaceやMetricNameやDimensionを指定することで特定の空間内のデータポイントを集約して平均を出したり合計を出したりできる(特定のLambdaの直近60秒間のエラー回数とか、特定のCloudWatch Logsのログストリームの直近60秒間のエラーログ数とか)
適当なAWSサービスのコンソールを開いてメトリクスという項目があれば大体CloudWatchのメトリクスを表示している
https://gyazo.com/65d2c9773ed29df063ba86a110bfb978
自分でメトリクスを作ることもできる
↓SDKから使うときはこんな感じ
code: cloudwatch.ts
const client = new CloudWatch({ region: 'us-east-1' });
/* MetricStatisticsを取ってくる */
const result = await client.getMetricStatistics({
Namespace: 'LogMetrics',
MetricName: 'errorTypeErrorMetrics',
StartTime: new Date(Date.now() - 7200000),
EndTime: new Date(Date.now()),
Period: 300,
}).promise();
console.log(result);
Alarms: OK/ALARM/INSUFFICIENT_DATA の3つの状態を持つ。Metricsが指定した条件(直近5分のデータポイントの合計値が閾値0より大きいとか)のときALARM状態になる。ALARMになったときのActionとしてメトリクスがALARMになったことをSNSに通知したり、EC2のAutoScalingをトリガーしたりといった設定ができる。 https://gyazo.com/08ca9a0e1033fd3402464596177379d9
CloudWatch Events
Schedule(以外にもあるけど)を設定(クーロン表記)しておくと
LambdaのInvoke
SNS TopicへのPublish
Kinesis Streamへの、
EC2の、、、などが出来る
dailyでなんかやるやつとか作るのに使える