Skip to content

ConnectのCloudWatchメトリクス

promotion image
  • おすすめ
  • 運用

📅 2020-04-16

Amazon ConnectはAWSマネージドなサービスであり、もちろんAmazon CloudWatchで各種メトリクス情報を取得することができます。通話という実際にかけてみないと動作がわからないものに対して、AWS側で情報を収集してくれるのはとても便利です。

CloudWatchアラームを設定することで監視・通知を行うこともできるので活用していきましょう。アラームの設定方法については以下の記事で紹介しています。

CloudWatchアラームでAmazon Connectを監視・通知する

メトリクスの前提

データの送信間隔と保存期間

Amazon ConnectからCloudWatchへは、1分毎にメトリクスデータを送信します。1分間に複数回のデータ送信を行うことはありません。

また、CloudWatchは直近2週間の送信されたデータを保持します。2週間を過ぎると破棄されるので、より長期間の保存を行いたい場合にはS3へのエクスポート等を行う必要があります。

メトリクスのディメンションについて

CloudWatchにはメトリクスを識別するためにディメンションという名前と値のペアを使用します。例えば、複数のAmazon Connectインスタンスがある場合や、複数の問い合わせフローがある場合に、どのインスタンス、どのフローのメトリクスなのかを判別することができます。

メトリクス紹介では以下のように記載します。日本語で書かれているものに関しては、対応する値を適用してください。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

Amazon Connectのメトリクス

「AWS/Connect」名前空間には次のメトリクスが含まれます。

メトリクス一覧

メトリクス名 概要
CallsBreachingConcurrencyQuota インスタンスの同時通話のクォータを超えた音声通話の総数
CallBackNotDialableNumber 顧客の電話番号が、このインスタンスに発信通話が許可されていない国であるため、キューに入れられた顧客へのコールバックができなかった回数
CallRecordingUploadError インスタンスに設定された、Amazon S3 バケットにアップロードできなかった通話録音数
CallsPerInterval インスタンスで 1 秒あたりの受信と発信両方の音声通話数
ConcurrentCalls ダッシュボードにデータが表示された時点でのインスタンス内の同時アクティブ音声通話数
ConcurrentCallsPercentage インスタンス内で使用された、同時アクティブ音声通話のサービスのクォータの割合 (%)
ContactFlowErrors 問い合わせフローに対するエラー分岐が実行された回数
ContactFlowFatalErrors システムエラーが原因で問い合わせフローが実行に失敗した回数
LongestQueueWaitTime 問い合わせがキューで待機した最長時間 (秒数)
MissedCalls 選択された更新間隔 (1 分または 5 分など) 中にエージェントが通話できなかった音声通話数
MisconfiguredPhoneNumbers 電話番号が問い合わせフローと関連付けられていないために失敗した通話数
PublicSigningKeyUsage 問い合わせフローのセキュリティキー (公開署名キー) が問い合わせフローの顧客入力を暗号化するため使用された回数
QueueCapacityExceededError キューがいっぱいなため、拒否された通話の数
QueueSize キュー内の問い合わせの数
ThrottledCalls 1 秒あたりの呼び出しレートが、サポートされるクォータを超えたためにために拒否された音声呼び出しの数
ToInstancePacketLossRate 10 秒ごとに報告される、インスタンス内の通話に対するパケット損失率

CallsBreachingConcurrencyQuota

インスタンスの同時通話のクォータを超えた音声通話の総数です。たとえば、同時通話数のクォータが100に設定されていて、110件の同時通話が発生した場合、メトリクスの値は10となります。

ディメンション名 ディメンション値
InstanceId インスタンスのID

同時通話数クォータを超えた通話はリオーダー音(高速の話し中の音)になります。カスタマーエクスペリエンスの低下につながるので、必ずアラーム設定を行いましょう。

CallBackNotDialableNumber

顧客の電話番号が、このインスタンスに発信通話が許可されていない国であるため、キューに入れられた顧客へのコールバックができなかった回数です。インスタンスに許可されている国は、サービスのクォータによって定義されます。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup ContactFlow
ContactFlowName 問い合わせフローの名前

日本国内のみでサービス展開を展開されている方にはあまり関係ない部分ですが、グローバルにサービス展開をされている方はアラーム通知したいメトリクスです。

CallRecordingUploadError

インスタンスに設定された、Amazon S3 バケットにアップロードできなかった通話録音数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup CallRecordings

AWSのマネージドな部分でのメトリクスです。ここでエラーが発生した場合には、サポートケースから問い合わせを行ったほうが良いでしょう。

CallsPerInterval

インスタンスで 1 秒あたりの受信と発信両方の音声通話数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

1秒あたりの呼び出し数の内部値が非公開なので参考程度に。。

ConcurrentCalls

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

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

同時通話数のクォータで設定している値より低くなければなりません。このメトリクスに関してもアラーム設定をしたほうがよいでしょう。

ConcurrentCallsPercentage

インスタンス内で使用された、同時アクティブ音声通話のサービスのクォータの割合 (%) です。この値は、

ConcurrentCalls / ConfiguredConcurrentCallsLimit * 100 

で計算されます。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

この値が100%を超えると同時通話数のクォータを超えたことになるので、こちらも合わせてアラーム設定をしておくと良いでしょう。

ContactFlowErrors

問い合わせフローに対するエラー分岐が実行された回数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup ContactFlow
ContactFlowName 問い合わせフローの名前

問い合わせフローを設定している際に、成功分岐とエラー分岐があると思いますが、そのエラー分岐がされた際に発生するメトリクスです。今まで触っていてあまり見たことはありません、、が!アラーム設定推奨です。

ContactFlowFatalErrors

システムエラーが原因で問い合わせフローが実行に失敗した回数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup ContactFlow
ContactFlowName 問い合わせフローの名前

こちらに関してはどういった際に発生するメトリクスかわかりません。AWS内部の部分だと思います。こちらもアラーム設定をしておくと良いと思います。

LongestQueueWaitTime

問い合わせがキューで待機した最長時間 (秒数) です。これは、CloudWatch ダッシュボードで選択された更新間隔 (1 分または 5 分など) 中にキューでの待機した時間の長さです。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup Queue
QueueName キューの名前

リアルタイムレポート、ヒストリカルレポートでSL(サービスレベル)の項目を表示させることができますが、運用中によりリアルタイムでサービスレベル低下の通知を受け取りたい場合にはアラーム設定を行うと良いと思います。

MissedCalls

選択された更新間隔 (1 分または 5 分など) 中にエージェントが通話できなかった音声通話数です。不在着信とは、エージェントが 20 秒以内に応答しなかった通話です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

このメトリクスに1以上が記録されている時は注意が必要です。Amazon Connectはエージェントステータスをしっかりと切り替えることを前提になっているので、受付可なのに受話できないということはステータス管理に問題があります。

MisconfiguredPhoneNumbers

電話番号が問い合わせフローと関連付けられていないために失敗した通話数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

電話番号と問い合わせフローが紐付いていないときに発生します。逆にいうと、設定をしっかり行っていれば発生しないメトリクスです。

PublicSigningKeyUsage

問い合わせフローのセキュリティキー (公開署名キー) が問い合わせフローの顧客入力を暗号化するため使用された回数です。

ディメンション名 ディメンション値
InstanceId インスタンスのID
SigningKeyId 署名キーのID

こちらのドキュメントにあるように、お客さんの入力をセキュアに処理したい場合に発生します。クレジットカード番号など、情報を暗号化したい場合には導入を行うことを推奨します。

Amazon Connectで作るセキュアなIVRソリューション

QueueCapacityExceededError

キューがいっぱいなため、拒否された通話の数。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup Queue
QueueName キューの名前

キューのキャパシティを設定している場合にはこのメトリクスは参考になるでしょう。エージェントの数を増やしたり、運用改善の指標として使えると思います。

QueueSize

キュー内の問い合わせの数。この値は、ダッシュボードがアクセスされた時点でのキュー内のコンタクト値の数を反映し、報告間隔の期間に対するものではありません。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup Queue
QueueName キューの名前

エージェントの数に対してこのメトリクス値が大幅に上回っている場合はコールセンターのキャパシティが足りていません。こちらも定期的に参照すべき値です。

ThrottledCalls

1 秒あたりの呼び出しレートが、サポートされるクォータを超えたためにために拒否された音声呼び出しの数。呼び出しのレートを増やすには、インスタンスあたりの同時アクティブ呼び出しのサービスクォータの引き上げをリクエストします。

ディメンション名 ディメンション値
InstanceId インスタンスのID
MetricGroup VoiceCalls

1秒あたりの呼び出しレートは非公開の値です。ですが、このメトリクスが記録された場合にはキャパシティオーバーということになるので、同時呼び出し数のクォータの制限緩和を行いましょう。

ToInstancePacketLossRate

10 秒ごとに報告される、インスタンス内の通話に対するパケット損失率です。各データポイントは 0 と 1 の間で、インスタンスでのパケット損失率を表します。

ディメンション名 ディメンション値
Participant Agent
Type of Connection WebRTC
Instance ID インスタンスのID
Stream Type Voice

エージェントとAmazon Connectサーバー感における音声パケットの損失率を示します。完全に0となることはありませんが、正常値であればかなり低い値(0.01以下)となるはずです。音声に問題がある場合はまず参照しましょう。このパケットロスはだいたいがネットワークに起因するものです。

まとめ

Amazon ConnectのCloudWatchメトリクスをまとめました。各メトリクスにおけるコメントは私の個人的所感で、間違っている場合がありますのでご注意ください。

AWSのサービスを利用する場合、CloudWatchメトリクスは必ず利用するものになるので、Amazon Connectの場合も多分に漏れず積極的に活用したいです。

← PrevNext →
  • produced by GeekFeed
  • produced by GeekFeed