Amazon Connect インスタンスの音声通話数を取得する方法

ConcurrentCalls の CloudWatch メトリクスから取得できます

困っていた内容

Amazon Connect のサービスクォータで「インスタンスあたりの同時通話数」はデフォルトで 10 本とのことですが、そのとき何本の回線を利用しているかを確認できるコマンドはございますか。
また、サービスクォータのうち何%を利用しているか確認できるコマンドはありますでしょうか。

どう対応すればいいの?

「インスタンスあたりの同時通話数」の確認には、ConcurrentCalls の CloudWatch メトリクスを利用して「get-metric-statistics」もしくは「get-metric-data」コマンドで取得してください。

ConcurrentCalls

ダッシュボードにデータが表示された時点でのインスタンス内の同時アクティブ音声通話数です。このメトリクスとして表示される値はダッシュボード表示時点での同時アクティブ通話数で、設定された更新間隔の間隔全体の合計値ではありません。エージェントへ接続されたアクティブな通話だけではなく、アクティブな音声通話すべてを含みます。

CloudWatch を使用したインスタンスのモニタリング - Amazon Connect

また、サービスクォータのうち何%を利用しているか確認するには、ConcurrentCallsPercentage の CloudWatch メトリクスを利用して、上述の CLI で実行して取得ください。

ConcurrentCallsPercentage

インスタンス内で使用された、同時アクティブ音声通話のサービスのクォータの割合 (%) です。この値は、次のように計算されます。
ConcurrentCalls 設定同時呼び出し呼び出し/同時呼び出し呼び出しメッセージミット

CloudWatch を使用したインスタンスのモニタリング - Amazon Connect

なお、Amazon Connect は CloudWatch メトリクスに上述のメトリクスに関するデータを、1 分毎にに送信されます。

Amazon Connect は CloudWatch メトリクスにインスタンスに関するデータを送信し、Amazon Connect 仮想コンタクトセンターの CloudWatch メトリクスを収集、表示、および分析を行ないます。主要な運用メトリクスを監視してアラームを設定するため、このデータを使用できます。サポートセンターに関するデータは、1 分毎に CloudWatch に送信されます。

CloudWatch を使用したインスタンスのモニタリング - Amazon Connect

やってみた

Amazon Connect に 1 件の通話があったします。
以下のコマンドで、任意の時間に発生した通話本数を取得できます。

aws cloudwatch get-metric-statistics \
--namespace "AWS/Connect" \
--dimensions Name=InstanceId,Value=xxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxx Name=MetricGroup,Value=VoiceCalls \
--metric-name ConcurrentCalls \
--statistics Maximum \
--start-time 2021-07-08T15:14:00+09:00 \
--end-time 2021-07-08T15:15:00+09:00 \
--period $((60 * 60))
{
    "Label": "ConcurrentCalls",
    "Datapoints": [
        {
            "Timestamp": "2021-07-08T06:14:00+00:00",
            "Maximum": 1.0,
            "Unit": "Count"
        }
    ]
}

次に、ConcurrentCallsPercentage を利用して、1 分間のインスタンスの同時通話数を取得してみます。
10 本中 1 本しか使っていないので、0.01%の結果が返ってきました。

$ aws cloudwatch get-metric-statistics \
--namespace "AWS/Connect" \
--dimensions Name=InstanceId,Value=xxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxxx Name=MetricGroup,Value=VoiceCalls \
--metric-name ConcurrentCallsPercentage \
--statistics Maximum \
--start-time 2021-07-08T15:14:00+09:00 \
--end-time 2021-07-08T15:15:00+09:00 \
--period $((60 * 60))
{
    "Label": "ConcurrentCallsPercentage",
    "Datapoints": [
        {
            "Timestamp": "2021-07-08T06:14:00+00:00",
            "Maximum": 0.01,
            "Unit": "Percent"
        }
    ]
}

また、CloudWatch メトリクスからも上記、「ConcurrentCalls」と「ConcurrentCallsPercentage」のメトリクスを確認できます。
そのため、2 つのメトリクスを利用して、通話数が閾値を超えた際に CloudWatch アラームを通知することも可能です。

参考資料