MackerelでAmazon Connectを監視してみた

こんにちは、SCSK株式会社3年目の愛甲です。

前回、私たちの部署の嶋谷さんが、
MackerelでOracle Databaseを監視してみた という記事を掲載しました。
MackerelでOracle Databaseを監視してみた – TechHarmony

今回は、AWSの通話サービスであるAmazon Connectを
Mackerelで監視し可視化しましたので、ご紹介いたします。

MackerelでのAWSリソースの監視

Mackerelでは、AWSインテグレーションというものを使い、MackerelとAWSのサービスを接続し、とても簡単にAWS環境を監視することができます。
AWSインテグレーションについては、以下のMackerelの公式ドキュメントに詳細が記載されています。
AWSインテグレーション – Mackerel ヘルプ

AWS環境の監視については、以下の記事でもご紹介していますので、興味がある方は是非ご覧ください。
Mackerel で AWS のサーバーレスサービスを監視してみた – TechHarmony

監視対象について

はじめに、監視対象についての情報を軽く説明します。
今回の検証では、Amazon Connectで電話接続し、その電話の録音データをAmazon S3に保存されるサービスを構築しました。

システム構成は以下の図になります。

Amazon Connect  クラウド型コンタクトセンターサービス
AWS Lambda     時間帯での転送先判定
Amazon S3      録音データの保存先

構成しているサービスの中でAmazon Connectを監視対象として検証しました。

上記の環境の構築手順については、少し長くなってしまうため、この記事では説明を省かせていただきます。

Mackerelでの監視設定手順

では、ここからはMackerelでAmazon Connectを監視するための、設定手順について記載していきます。
設定手順に興味ない方は、このパートはスキップして、「監視データ」のパートに飛んでください。

インテグレーション用のIAMロールの作成

(1) Mackerelの管理画面で「オーガニゼーション名」>「AWSインテグレーション」をクリックする。

(2) 「新しいAWSインテグレーションを登録」というボタンが表示されるため、それをクリックする。

(3) 基本設定>AWSアカウント 外部IDをコピーする。

(4) AWSのコンソールにログインし、左上の検索バーで「IAM」と入力し、エンターを押す。
(5) 左側のタブからロールを選択し、「ロールを作成」をクリックする。
(6) 以下に沿って入力し、すべて入力後、「次へ」をクリックする。

信頼されたエンティティタイプ:AWSアカウント
AWSアカウント:別のAWSアカウント
・アカウントID:217452466226(共通)
オプション:外部IDを要求する

(7) Amazon Connectを監視したいため、それらに関するReadOnlyロールを選択し、「次へ」をクリックする。
(8) ロール名と説明を適宜入力し、「ロールを作成」をクリックする。

注意点:Amazon Connectを連携対象にする場合、連携に使用するIAMロールにはAmazonConnectReadOnlyAccessに加えて、CloudWatchReadOnlyAccessの権限が必要となります。
Amazon ConnectのようにCloudWatchReadOnlyAccessの権限が必要になるものがあります。詳細は冒頭にあるAWSインテグレーションヘルプをご確認ください。

⑨作成したロールの詳細画面で表示される、ARNをコピーする。

AWSインテグレーションの作成

(1) Mackerelの管理画面に戻り、先ほど開いた「新しいAWSインテグレーションを登録」画面を開く。
そこで、名前の入力とリージョンの選択を行い、ロールARNの欄に先ほどコピーしたARNを貼り付ける。

(2) メトリックを収集するサービスで、Amazon Connectを選択し、「作成」をクリックする。

(3) 「タグを指定して登録するホストを絞り込む」にて連携したいリソースのタグ、除外したいタグを入力する。

これで、インテグレーションが作成できました!

連携確認

以上で設定は完了です。

ここからは、監視設定を入れたサービスの状態を見てみましょう。

ここまでの手順が完了すると、Mackerelの管理画面の「ホスト」のところですぐに確認することができます。

このように、Amazon Connectのデータが取れていることがわかります。

監視データの確認

監視手順としては以上になります。
AWSインテグレーションを使うと、面倒なエージェントのインストールや、接続用のアカウントの作成などがないため、とても簡単に監視ができます。

私はAWSインテグレーションの設定はまだ2回目ですが、もうおちゃのこさいさいです!

では、ここからはAWSから連携された監視データがどのように見えているかを、
一部抜粋してお見せしたいと思います。

Amazon Connectの監視データ

Amazon Connectは基本的に以下のメトリックを取得できます。

グラフ名 メトリック 説明
Concurrent Calls Service Quota ConcurrentCallsPercentage 同時に処理可能な通話数のサービスクォータがどの程度使われているか(%)
To Instance Packet Loss Rate ToInstancePacketLossRate インスタンスに送信されるパケットの損失率
Voice Calls CallsBreachingConcurrencyQuota クォータ超過で処理できなかった通話数(合計値)
CallsPerInterval 一定間隔内での通話数(合計値)
ConcurrentCalls 同時に存在した通話数(最大値)
ThrottledCalls 制限でスロットリングされた通話数(合計値)
MissedCalls 取りこぼした通話数(合計値)
MisconfiguredPhoneNumbers 誤設定の電話番号への通話数(合計値)
Call Recording Upload CallRecordingUploadError 通話録音ファイルのアップロードエラー件数(合計値)
Contact Flows ContactFlowErrors コンタクトフローで発生したエラー(合計値)
ContactFlowFatalErrors 致命的エラー(合計値)
CallBackNotDialableNumber コールバックできなかった番号(合計値)
Queues QueueSize キュー内に滞留している件数(最大値)
QueueCapacityExceededError キュー容量超過によるエラー件数(合計値)
Queue Wait Time LongestQueueWaitTime 最長待機時間
Public Signing Key PublicSigningKeyUsage 公開署名鍵の利用回数(合計値)

今回は、この中のVoice Callsのグラフをお見せします。
グラフを表示させるにあたって、私はAmazon Connect上に登録した番号に繰り返し電話をかけました。
その結果、以下のようなグラフが表示されました。
こちらは、通話をした数や受電できなかった数を表したグラフになります。
(メトリックはConcurrentCallsとMissedCallsに絞って表示しています)

黄緑線  :繋がった通話の数
オレンジ線:受電したが、電話に出れなかった数

このように、CloudwtchでとれるメトリックをMackerelでも確認することができます!

このデータのほかにContact FlowsやQueuesを組み合わせて監視をすれば、Amazon Connectを使った番号への電話がつながらなくなった場合などに、何が原因で、どの時間帯につながらなくなったのかを即座に認識することができます。
興味がある方はぜひ調べて試してみてください。

おわりに

記事の内容は以上になります。いかがでしたでしょうか。

Amazon Connectを使っている方でしたら、1度は電話がつながらなくなって焦った人もいるかと思います。そんな時、Mackerelの監視をしておけば、すばやい原因特定も可能になります!
また、Mackerelを使って今まで見えていなかった情報を見える化することで、電話の多い時間帯や、電話の対応時間などを確認できるようになるため、人員最適化や業務の品質向上などの業務効率化に役立てることもできます!

ぜひ、活用してみてはいかがでしょうか。

もう少しMackerelを触ってAmazon Connectを監視してみようと思いますので、また何か気づきがありましたら記事を掲載します。
最後までお付き合いいただき、ありがとうございました。

タイトルとURLをコピーしました