ハンズオン(簡易版): CloudWatch基礎 カスタムメトリクス

2.2. CloudWatchメトリクスの確認 (カスタム: Invocations)

目的

カスタムメトリクス"Invocations"を確認します。

パラメータの指定

作業に必要なパラメータを変数に格納をします。

0. リージョンの指定

リージョンを指定します。

環境変数の設定

export AWS_DEFAULT_REGION='ap-northeast-1'

1. CloudWatch名前空間の指定

CloudWatch名前空間の指定します。

変数の設定:

CLOUDWATCH_NAMESPACE="handson-cli"

2. CloudWatchメトリクス名の指定

CloudWatchメトリクス名の指定します。

変数の設定:

CLOUDWATCH_METRIC_NAME="Invocations"

3. CloudWatchディメンション名の指定

CloudWatchディメンション名の指定します。

変数の設定:

CLOUDWATCH_DIMENSION_NAME="AppName"

4. CloudWatchディメンション値の指定

CloudWatchディメンション値の指定します。

変数の設定:

CLOUDWATCH_DIMENSION_VALUE="handson-cli-cloudwatch"

5. 統計周期の指定

統計周期の指定します。

統計周期を指定します。

変数の設定:

CLOUDWATCH_METRIC_PERIOD="300"

6. 統計の指定

統計の指定します。

変数の設定:

CLOUDWATCH_METRIC_STATISTICS="Sum"

7. 統計期間の終了時刻の指定

統計期間の終了時刻の指定します。

変数の設定:

TIME_CURRENT_ISO860_UTC=$( \
  date -u '+%FT%TZ' \
) \
  && echo ${TIME_CURRENT_ISO860_UTC}

結果(例):

YYYY-mm-ddTHH:MM:SSZ

変数の設定:

CLOUDWATCH_METRIC_TIME_END="${TIME_CURRENT_ISO860_UTC}" \
  && echo ${CLOUDWATCH_METRIC_TIME_END}

結果(例):

YYYY-mm-ddTHH:MM:SSZ

8. 統計期間の開始時刻の指定

統計期間の開始時刻の指定します。

今回は、終了時間から特定の時間(分)を遡って開始時間を決定します。

変数の設定:

TIME_OFFSET_PAST_MIN='30'

変数の設定:

TIME_PAST_ISO860_UTC=$( \
  date -u -d "${TIME_OFFSET_PAST_MIN} mins ago" '+%FT%TZ' \
) \
  && echo ${TIME_PAST_ISO860_UTC}

結果(例):

YYYY-mm-ddTHH:MM:SSZ

変数の設定:

CLOUDWATCH_METRIC_TIME_START="${TIME_PAST_ISO860_UTC}" \
  && echo ${CLOUDWATCH_METRIC_TIME_START}

結果(例):

YYYY-mm-ddTHH:MM:SSZ

各変数に正しいパラメータ値が格納されていることを確認します。

変数の確認:

cat << END

  # 0.  AWS_DEFAULT_REGION:"ap-northeast-1"
        AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}"

  # 1.  CLOUDWATCH_NAMESPACE:"handson-cli"
        CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}"
  # 2.  CLOUDWATCH_METRIC_NAME:"Invocations"
        CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}"
  # 3.  CLOUDWATCH_DIMENSION_NAME:"AppName"
        CLOUDWATCH_DIMENSION_NAME="${CLOUDWATCH_DIMENSION_NAME}"
  # 4.  CLOUDWATCH_DIMENSION_VALUE:"handson-cli-cloudwatch"
        CLOUDWATCH_DIMENSION_VALUE="${CLOUDWATCH_DIMENSION_VALUE}"
  # 5.  CLOUDWATCH_METRIC_PERIOD:"300"
        CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}"
  # 6.  CLOUDWATCH_METRIC_STATISTICS:"Sum"
        CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}"
  # 7.  CLOUDWATCH_METRIC_TIME_END:"YYYY-mm-ddTHH:MM:SSZ"
        CLOUDWATCH_METRIC_TIME_END="${CLOUDWATCH_METRIC_TIME_END}"
  # 8.  CLOUDWATCH_METRIC_TIME_START:"YYYY-mm-ddTHH:MM:SSZ"
        CLOUDWATCH_METRIC_TIME_START="${CLOUDWATCH_METRIC_TIME_START}"

END

手順

ディメンション文字列を生成します。

変数の設定:

STRING_CLOUDWATCH_DIMENSIONS="Name=${CLOUDWATCH_DIMENSION_NAME},Value=${CLOUDWATCH_DIMENSION_VALUE}" \
  && echo ${STRING_CLOUDWATCH_DIMENSIONS}

結果(例):

Name=AppName,Value=handson-cli-cloudwatch

CloudWatchメトリクスの取得します。

変数の確認:

cat << ETX

  # CLOUDWATCH_NAMESPACE:"handson-cli"
    CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}"
  # CLOUDWATCH_METRIC_NAME:"Invocations"
    CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}"
  # STRING_CLOUDWATCH_DIMENSIONS:"Name=AppName,Value=handson-cli-cloudwatch"
    STRING_CLOUDWATCH_DIMENSIONS="${STRING_CLOUDWATCH_DIMENSIONS}"
  # CLOUDWATCH_METRIC_TIME_START:"YYYY-mm-ddTHH:MM:SSZ"
    CLOUDWATCH_METRIC_TIME_START="${CLOUDWATCH_METRIC_TIME_START}"
  # CLOUDWATCH_METRIC_TIME_END:"YYYY-mm-ddTHH:MM:SSZ"
    CLOUDWATCH_METRIC_TIME_END="${CLOUDWATCH_METRIC_TIME_END}"
  # CLOUDWATCH_METRIC_PERIOD:"300"
    CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}"
  # CLOUDWATCH_METRIC_STATISTICS:"Sum"
    CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}"

ETX

コマンド:

aws cloudwatch get-metric-statistics \
  --namespace ${CLOUDWATCH_NAMESPACE} \
  --metric-name ${CLOUDWATCH_METRIC_NAME} \
  --dimensions ${STRING_CLOUDWATCH_DIMENSIONS} \
  --start-time ${CLOUDWATCH_METRIC_TIME_START} \
  --end-time ${CLOUDWATCH_METRIC_TIME_END} \
  --period ${CLOUDWATCH_METRIC_PERIOD} \
  --statistics ${CLOUDWATCH_METRIC_STATISTICS} \
  --query 'Datapoints' \
  --output text \
| sort -k2

結果(例):

10.0     2020-08-27T09:40:00Z    Count
10.0     2020-08-27T09:45:00Z    Count
10.0     2020-08-27T09:50:00Z    Count
10.0     2020-08-27T09:55:00Z    Count
10.0     2020-08-27T10:00:00Z    Count

完了確認

「カスタムメトリクス"Invocations"を確認できている。」ことを確認します。