Open7

AWS CDK

counterintuitivecounterintuitive

以下は、AWS CDK v2で使用するcloudwatch.Metricのコンストラクタに指定できるすべてのプロパティについての表です。各プロパティの説明と、省略可能かどうか(省略した場合のデフォルト値を含む)をまとめています。

プロパティ 説明 省略可能かどうか / デフォルト値
namespace メトリクスが属する名前空間を指定します。 必須
metricName メトリクスの名前を指定します。 必須
dimensionsMap メトリクスに関連するディメンションを指定します。 省略可能 / undefined(ディメンションなし)
period メトリクスデータの収集期間を指定します。 必須
statistic メトリクスの統計情報の種類(例: Average, Sum, Maximum)を指定します。 必須
unit メトリクスの単位(例: PERCENT, SECONDS, BYTES)を指定します。 必須
label グラフやアラームで表示されるメトリクスのラベルを指定します。 省略可能 / metricName がラベルとして使用されます
region メトリクスのリージョンを指定します。異なるリージョンのメトリクスを参照する場合に使用します。 省略可能 / スタックのデプロイ先のリージョンが使用されます
account メトリクスのAWSアカウントを指定します。クロスアカウントでメトリクスを参照する場合に使用します。 省略可能 / スタックのアカウントが使用されます
color メトリクスを表示するグラフで使用される色を指定します。 省略可能 / 自動的に決定されます

備考

  • 必須プロパティ: namespacemetricNameperiodstatisticunitは必須で、省略できません。これらのプロパティは、メトリクスの基本的な情報を定義します。
  • 省略可能なプロパティ: dimensionsMaplabelregionaccountcolorは省略可能です。省略された場合には、それぞれのデフォルト値や動作に基づいて処理されます。
  • dimensionsMap: 省略可能なプロパティであり、メトリクスに関連する特定のリソースを指定するために使用します。指定しない場合、メトリクスはディメンションなしで記録されます。

この表は、AWS CDK v2を使用してCloudWatchメトリクスを定義する際の参考としてご利用ください。

counterintuitivecounterintuitive

以下は、AWS CDK v2で使用するcloudwatch.Alarmのコンストラクタに指定できるすべてのプロパティについての表です。各プロパティの説明と、省略可能かどうか(省略した場合のデフォルト値を含む)をまとめています。

プロパティ 説明 省略可能かどうか / デフォルト値
metric 監視するCloudWatchメトリクスを指定します。 必須
threshold アラームをトリガーするしきい値を指定します。 必須
evaluationPeriods しきい値を超える必要がある評価期間の数を指定します。 必須
comparisonOperator メトリクスの値をしきい値と比較する方法を指定します。例: GreaterThanOrEqualToThreshold 必須
alarmName アラームの名前を指定します。 省略可能 / 自動生成される名前
alarmDescription アラームの説明を指定します。 省略可能 / undefined
treatMissingData データが欠損している場合の処理方法を指定します。 省略可能 / TreatMissingData.MISSING
datapointsToAlarm アラームをトリガーするために必要なデータポイントの数を指定します。 省略可能 / evaluationPeriodsと同じ値
actionsEnabled アラームアクションが有効かどうかを指定します。 省略可能 / true
okActions アラームがOK状態に戻ったときに実行されるアクションのリストを指定します。 省略可能 / undefined
alarmActions アラーム状態になったときに実行されるアクションのリストを指定します。 省略可能 / undefined
insufficientDataActions データが不足している場合に実行されるアクションのリストを指定します。 省略可能 / undefined

備考

  • 必須プロパティ: metricthresholdevaluationPeriodscomparisonOperatorは必須で、省略できません。これらのプロパティは、アラームの基本的な動作を定義します。
  • 省略可能なプロパティ: alarmNamealarmDescriptiontreatMissingDatadatapointsToAlarmactionsEnabledokActionsalarmActionsinsufficientDataActionsは省略可能です。省略された場合には、それぞれのデフォルト値や動作に基づいて処理されます。
  • treatMissingData: このプロパティは、データが欠損している場合にどのように扱うかを指定します。デフォルトではTreatMissingData.MISSINGとして扱われ、欠損データは無視されます。
  • datapointsToAlarm: 省略した場合は、evaluationPeriodsの値が使用されます。これは、指定された評価期間中にしきい値を超えるデータポイントの数を指定します。

この表は、AWS CDK v2を使用してCloudWatchアラームを定義する際の参考としてご利用ください。

counterintuitivecounterintuitive
},
    unit: cloudwatch.Unit.PERCENT,  // 単位をパーセントに設定
    statistic: cloudwatch.Statistic.AVERAGE,  // 統計情報を平均に設定
  }),
  
  
  unit: cloudwatch.Unit.PERCENT

Unit.COUNT:

  1. cloudwatch.Unit
    Unit.SECONDS: 秒
    Unit.MICROSECONDS: マイクロ秒
    Unit.MILLISECONDS: ミリ秒
    Unit.BYTES: バイト
    Unit.KILOBYTES: キロバイト
    Unit.MEGABYTES: メガバイト
    Unit.GIGABYTES: ギガバイト
    Unit.TERABYTES: テラバイト
    Unit.BITS: ビット
    Unit.KILOBITS: キロビット
    Unit.MEGABITS: メガビット
    Unit.GIGABITS: ギガビット
    Unit.PERCENT: パーセント
    Unit.COUNT: カウント(個数)
    Unit.BYTES_PER_SECOND: 秒あたりのバイト数
    Unit.KILOBYTES_PER_SECOND: 秒あたりのキロバイト数
    Unit.MEGABYTES_PER_SECOND: 秒あたりのメガバイト数
    Unit.GIGABYTES_PER_SECOND: 秒あたりのギガバイト数
    Unit.TERABYTES_PER_SECOND: 秒あたりのテラバイト数
    Unit.BITS_PER_SECOND: 秒あたりのビット数
    Unit.KILOBITS_PER_SECOND: 秒あたりのキロビット数
    Unit.MEGABITS_PER_SECOND: 秒あたりのメガビット数
    Unit.GIGABITS_PER_SECOND: 秒あたりのギガビット数
    Unit.COUNT_PER_SECOND: 秒あたりのカウント数
    Unit.NONE: 単位なし

  2. cloudwatch.Statistic
    Statistic.SAMPLE_COUNT: サンプル数
    Statistic.AVERAGE: 平均
    Statistic.SUM: 合計
    Statistic.MINIMUM: 最小値
    Statistic.MAXIMUM: 最大値

counterintuitivecounterintuitive

以下の表に、数値とその cdk.Duration での書き換え前後の対応を示します。

秒数 書き換え前 書き換え後
300 cdk.Duration.seconds(300) cdk.Duration.minutes(5)
3600 cdk.Duration.seconds(3600) cdk.Duration.hours(1)
3900 cdk.Duration.seconds(3900) cdk.Duration.minutes(65)
43200 cdk.Duration.seconds(43200) cdk.Duration.hours(12)
60 cdk.Duration.seconds(60) cdk.Duration.minutes(1)

以下の表に、treatMissingDatastatistic の各プロパティで指定可能な全ての書き方を示します。

treatMissingData の書き方

cloudwatch.TreatMissingData で設定できる値:

プロパティ値 説明
cloudwatch.TreatMissingData.BREACHING データが欠落している場合にアラームが発報条件を満たしていると見なす。
cloudwatch.TreatMissingData.NOT_BREACHING データが欠落している場合にアラームが発報条件を満たしていないと見なす。
cloudwatch.TreatMissingData.IGNORE データが欠落している場合に無視する。
cloudwatch.TreatMissingData.MISSING データが欠落している場合に欠落を意味する。

statistic の書き方

cloudwatch.Statistic で設定できる値:

プロパティ値 説明
cloudwatch.Statistic.SAMPLE_COUNT メトリクスのサンプル数を計算。
cloudwatch.Statistic.AVERAGE メトリクスの平均値を計算。
cloudwatch.Statistic.SUM メトリクスの合計値を計算。
cloudwatch.Statistic.MINIMUM メトリクスの最小値を計算。
cloudwatch.Statistic.MAXIMUM メトリクスの最大値を計算。

まとめ

  • treatMissingData: データ不足時の処理方法を指定します。

    • BREACHING: アラーム条件を満たすと見なす。
    • NOT_BREACHING: アラーム条件を満たさないと見なす。
    • IGNORE: データ不足を無視する。
    • MISSING: データ不足を欠落と見なす。
  • statistic: メトリクスの統計情報を指定します。

    • SAMPLE_COUNT: サンプル数。
    • AVERAGE: 平均。
    • SUM: 合計。
    • MINIMUM: 最小値。
    • MAXIMUM: 最大値。

これらの設定を使用して、CloudWatch アラームの動作やメトリクスの計算方法を細かく制御できます。

counterintuitivecounterintuitive

log-output-evidence-1723960348097.log

OK,1,項番1(業務ログ),/test-imamura/test/test.log,test-imamura,test/
-,2,項番1(業務ログ),/test-imamura/test2/test.log,test-imamura,test2/
OK,3,項番1(業務ログ),/test-imamura/test3/test.log,test-imamura,test3/

test-log-1723960348096.log

2024/08/18 14:52:28 処理開始
2024/08/18 14:52:28 ################ ログ出力テスト start ###################
2024/08/18 14:52:28 
2024/08/18 14:52:28 [    処理中のロググループ: /test-imamura/test/test.log    ]
2024/08/18 14:52:28 NUM=1, DESABLE_FLG=, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test/test.log, LOG_STREAM_NAME=test-stream-0-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test/, LOG_MESSAGE=, LOG_EVENT_TIME=
2024/08/18 14:52:28 create-log-streamの実行
2024/08/18 14:52:29 put-log-eventsの実行
2024/08/18 14:52:29 get-log-eventsの実行
2024/08/18 14:52:30 LogGroupName: /test-imamura/test/test.log
2024/08/18 14:52:30  LogStreamName: test-stream-0-20240818145228
2024/08/18 14:52:30   Expected: "テストログイベント - Sun Aug 18 14:52:28 JST 2024"
2024/08/18 14:52:30   Actual  : "テストログイベント - Sun Aug 18 14:52:28 JST 2024"
2024/08/18 14:52:30    OK
2024/08/18 14:52:30 
2024/08/18 14:52:30 [    処理中のロググループ: /test-imamura/test2/test.log    ]
2024/08/18 14:52:30 NUM=2, DESABLE_FLG=1, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test2/test.log, LOG_STREAM_NAME=test-stream-1-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test2/, LOG_MESSAGE=テストログイベント - Sun Aug 18 14:52:28 JST 2024, LOG_EVENT_TIME=2024-08-18T05:52:28Z
2024/08/18 14:52:30 試験対象外のためスキップします。(結果判定はなしの - を結果として出力)
2024/08/18 14:52:30 
2024/08/18 14:52:30 [    処理中のロググループ: /test-imamura/test3/test.log    ]
2024/08/18 14:52:30 NUM=3, DESABLE_FLG=, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test3/test.log, LOG_STREAM_NAME=test-stream-2-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test3/, LOG_MESSAGE=テストログイベント - Sun Aug 18 14:52:30 JST 2024, LOG_EVENT_TIME=2024-08-18T05:52:30Z
2024/08/18 14:52:30 create-log-streamの実行
2024/08/18 14:52:31 put-log-eventsの実行
2024/08/18 14:52:31 get-log-eventsの実行
2024/08/18 14:52:32 LogGroupName: /test-imamura/test3/test.log
2024/08/18 14:52:32  LogStreamName: test-stream-2-20240818145228
2024/08/18 14:52:32   Expected: "テストログイベント - Sun Aug 18 14:52:30 JST 2024"
2024/08/18 14:52:32   Actual  : "テストログイベント - Sun Aug 18 14:52:30 JST 2024"
2024/08/18 14:52:32    OK
2024/08/18 14:52:32 ################ ログ出力テスト end ###################
2024/08/18 14:52:32 
2024/08/18 14:52:32 ログイベントがS3に転送されるのを待っています…
2024/08/18 14:57:32 
2024/08/18 14:57:32 ################ S3格納テスト start ###################
2024/08/18 14:57:32 ************ element 0 is /test-imamura/test/test.log start *************
2024/08/18 14:57:32 NUM=1, DESABLE_FLG=, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test/test.log, LOG_STREAM_NAME=test-stream-0-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test/, LOG_MESSAGE=テストログイベント - Sun Aug 18 14:52:28 JST 2024, LOG_EVENT_TIME=2024-08-18T05:52:28Z
2024/08/18 14:57:32 S3バケット test-imamura の test/ から最新データをダウンロード中…
2024/08/18 14:57:33 FILES: None
2024/08/18 14:57:33 ------- FILE=None start ---------
2024/08/18 14:57:33 ダウンロード中のファイル: None
2024/08/18 14:57:33 S3からファイルのダウンロードに失敗しました。
2024/08/18 14:57:34 ************ element 0 is /test-imamura/test/test.log end *************
2024/08/18 14:57:34 ************ element 1 is /test-imamura/test2/test.log start *************
2024/08/18 14:57:34 NUM=2, DESABLE_FLG=1, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test2/test.log, LOG_STREAM_NAME=test-stream-1-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test2/, LOG_MESSAGE=テストログイベント - Sun Aug 18 14:52:30 JST 2024, LOG_EVENT_TIME=2024-08-18T05:52:30Z
2024/08/18 14:57:34 試験対象外のためスキップします。(結果判定はなしの - を結果として出力)
2024/08/18 14:57:34 ************ element 2 is /test-imamura/test3/test.log start *************
2024/08/18 14:57:34 NUM=3, DESABLE_FLG=, CATEGORY=項番1(業務ログ), LOG_GROUP_NAME=/test-imamura/test3/test.log, LOG_STREAM_NAME=test-stream-2-20240818145228, S3_BUCKET=test-imamura, S3_PREFIX=test3/, LOG_MESSAGE=テストログイベント - Sun Aug 18 14:52:30 JST 2024, LOG_EVENT_TIME=2024-08-18T05:52:30Z
2024/08/18 14:57:34 S3バケット test-imamura の test3/ から最新データをダウンロード中…
2024/08/18 14:57:35 FILES: None
2024/08/18 14:57:35 ------- FILE=None start ---------
2024/08/18 14:57:35 ダウンロード中のファイル: None
2024/08/18 14:57:35 S3からファイルのダウンロードに失敗しました。
2024/08/18 14:57:36 ************ element 2 is /test-imamura/test3/test.log end *************
2024/08/18 14:57:36 ################ S3格納テスト end ###################

s3-outputevidence-1723960348098.log

NG,1,項番1(業務ログ),/test-imamura/test/test.log,test-imamura,test/,S3からファイルのダウンロードに失敗しました。
-,2,項番1(業務ログ),/test-imamura/test2/test.log,test-imamura,test2/,試験対象外のためスキップしました。
NG,3,項番1(業務ログ),/test-imamura/test3/test.log,test-imamura,test3/,S3からファイルのダウンロードに失敗しました。