SQSキュー"handson-cli-cloudwatch-1st-queue"のCloudWatchメトリクス"ApproximateNumberOfMessagesVisible"の統計を取得します。
手順に必要な設定値を変数に格納をします。
リージョンを指定します。
環境変数の設定: export AWS_DEFAULT_REGION='ap-northeast-1'
環境変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
CloudWatchメトリクスの統計期間の終了時刻を指定します。
変数の設定: 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
変数の設定:
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}
CloudWatchメトリクスの統計期間の開始時刻を指定します。
変数の設定: 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
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}
CLOUDWATCH_METRIC_TIME_START="${time_past_iso860_utc}" \ && echo ${CLOUDWATCH_METRIC_TIME_START}
CloudWatchメトリクスの統計周期を指定します。
統計周期を指定します。 変数の設定: CLOUDWATCH_METRIC_PERIOD="60"
統計周期を指定します。
CLOUDWATCH_METRIC_PERIOD="60"
CloudWatch名前空間を指定します。
変数の設定: CLOUDWATCH_NAMESPACE="AWS/SQS"
CLOUDWATCH_NAMESPACE="AWS/SQS"
CloudWatchメトリクス名を指定します。
変数の設定: CLOUDWATCH_METRIC_NAME="ApproximateNumberOfMessagesVisible"
CLOUDWATCH_METRIC_NAME="ApproximateNumberOfMessagesVisible"
CloudWatchディメンション名を指定します。
変数の設定: CLOUDWATCH_DIMENSION_NAME="QueueName"
CLOUDWATCH_DIMENSION_NAME="QueueName"
SQSキュー名を指定します。
変数の設定: SQS_QUEUE_NAME="handson-cli-cloudwatch-1st-queue"
SQS_QUEUE_NAME="handson-cli-cloudwatch-1st-queue"
ディメンション文字列を生成します。
変数の設定: STRING_CLOUDWATCH_DIMENSIONS="Name=${CLOUDWATCH_DIMENSION_NAME},Value=${SQS_QUEUE_NAME}" \ && echo ${STRING_CLOUDWATCH_DIMENSIONS} 結果(例): Name=QueueName,Value=handson-cli-cloudwatch-1st-queue
STRING_CLOUDWATCH_DIMENSIONS="Name=${CLOUDWATCH_DIMENSION_NAME},Value=${SQS_QUEUE_NAME}" \ && echo ${STRING_CLOUDWATCH_DIMENSIONS}
Name=QueueName,Value=handson-cli-cloudwatch-1st-queue
CloudWatchメトリクスの統計種別を指定します。
変数の設定: CLOUDWATCH_METRIC_STATISTICS="Sum"
CLOUDWATCH_METRIC_STATISTICS="Sum"
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. CLOUDWATCH_METRIC_TIME_END:"YYYY-mm-ddTHH:MM:SSZ" CLOUDWATCH_METRIC_TIME_END="${CLOUDWATCH_METRIC_TIME_END}" # 2. CLOUDWATCH_METRIC_TIME_START:"YYYY-mm-ddTHH:MM:SSZ" CLOUDWATCH_METRIC_TIME_START="${CLOUDWATCH_METRIC_TIME_START}" # 3. CLOUDWATCH_METRIC_PERIOD:"60" CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}" # 4. CLOUDWATCH_NAMESPACE:"AWS/SQS" CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}" # 5. CLOUDWATCH_METRIC_NAME:"ApproximateNumberOfMessagesVisible" CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}" # 6. STRING_CLOUDWATCH_DIMENSIONS:"Name=QueueName,Value=handson-cli-cloudwatch-1st-queue" STRING_CLOUDWATCH_DIMENSIONS="${STRING_CLOUDWATCH_DIMENSIONS}" # 7. CLOUDWATCH_METRIC_STATISTICS:"Sum" CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}" END
変数の確認:
cat << END # 0. AWS_DEFAULT_REGION:"ap-northeast-1" AWS_DEFAULT_REGION="${AWS_DEFAULT_REGION}" # 1. CLOUDWATCH_METRIC_TIME_END:"YYYY-mm-ddTHH:MM:SSZ" CLOUDWATCH_METRIC_TIME_END="${CLOUDWATCH_METRIC_TIME_END}" # 2. CLOUDWATCH_METRIC_TIME_START:"YYYY-mm-ddTHH:MM:SSZ" CLOUDWATCH_METRIC_TIME_START="${CLOUDWATCH_METRIC_TIME_START}" # 3. CLOUDWATCH_METRIC_PERIOD:"60" CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}" # 4. CLOUDWATCH_NAMESPACE:"AWS/SQS" CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}" # 5. CLOUDWATCH_METRIC_NAME:"ApproximateNumberOfMessagesVisible" CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}" # 6. STRING_CLOUDWATCH_DIMENSIONS:"Name=QueueName,Value=handson-cli-cloudwatch-1st-queue" STRING_CLOUDWATCH_DIMENSIONS="${STRING_CLOUDWATCH_DIMENSIONS}" # 7. CLOUDWATCH_METRIC_STATISTICS:"Sum" CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
CloudWatchメトリクスを取得します。
変数の確認: cat << END # 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:"60" CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}" # CLOUDWATCH_NAMESPACE:"AWS/SQS" CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}" # CLOUDWATCH_METRIC_NAME:"ApproximateNumberOfMessagesVisible" CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}" # STRING_CLOUDWATCH_DIMENSIONS:"Name=QueueName,Value=handson-cli-cloudwatch-1st-queue" STRING_CLOUDWATCH_DIMENSIONS="${STRING_CLOUDWATCH_DIMENSIONS}" # CLOUDWATCH_METRIC_STATISTICS:"Sum" CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}" END コマンド: aws cloudwatch get-metric-statistics \ --start-time ${CLOUDWATCH_METRIC_TIME_START} \ --end-time ${CLOUDWATCH_METRIC_TIME_END} \ --period ${CLOUDWATCH_METRIC_PERIOD} \ --namespace ${CLOUDWATCH_NAMESPACE} \ --metric-name ${CLOUDWATCH_METRIC_NAME} \ --dimensions ${STRING_CLOUDWATCH_DIMENSIONS} \ --statistics ${CLOUDWATCH_METRIC_STATISTICS} \ --query 'Datapoints' \ --output text \ | sort -k2 結果(例): 0.0 2023-03-27T10:40:00Z Count 0.0 2023-03-27T10:41:00Z Count 注釈 実行するタイミングによって、表示される行数や値は異なります。
cat << END # 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:"60" CLOUDWATCH_METRIC_PERIOD="${CLOUDWATCH_METRIC_PERIOD}" # CLOUDWATCH_NAMESPACE:"AWS/SQS" CLOUDWATCH_NAMESPACE="${CLOUDWATCH_NAMESPACE}" # CLOUDWATCH_METRIC_NAME:"ApproximateNumberOfMessagesVisible" CLOUDWATCH_METRIC_NAME="${CLOUDWATCH_METRIC_NAME}" # STRING_CLOUDWATCH_DIMENSIONS:"Name=QueueName,Value=handson-cli-cloudwatch-1st-queue" STRING_CLOUDWATCH_DIMENSIONS="${STRING_CLOUDWATCH_DIMENSIONS}" # CLOUDWATCH_METRIC_STATISTICS:"Sum" CLOUDWATCH_METRIC_STATISTICS="${CLOUDWATCH_METRIC_STATISTICS}" END
コマンド:
aws cloudwatch get-metric-statistics \ --start-time ${CLOUDWATCH_METRIC_TIME_START} \ --end-time ${CLOUDWATCH_METRIC_TIME_END} \ --period ${CLOUDWATCH_METRIC_PERIOD} \ --namespace ${CLOUDWATCH_NAMESPACE} \ --metric-name ${CLOUDWATCH_METRIC_NAME} \ --dimensions ${STRING_CLOUDWATCH_DIMENSIONS} \ --statistics ${CLOUDWATCH_METRIC_STATISTICS} \ --query 'Datapoints' \ --output text \ | sort -k2
0.0 2023-03-27T10:40:00Z Count 0.0 2023-03-27T10:41:00Z Count
注釈
実行するタイミングによって、表示される行数や値は異なります。
本手順の主処理は、以下の完了条件を満たしたときに成功したものとします。
完了条件1: SQSキューのCloudWatchメトリクス"ApproximateNumberOfMessagesVisible"を確認できている。
「SQSキューのCloudWatchメトリクス"ApproximateNumberOfMessagesVisible"を確認できている。」ことを確認します。
「主処理」が正常に完了していればOKです。