こんにちは、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を監視してみようと思いますので、また何か気づきがありましたら記事を掲載します。
最後までお付き合いいただき、ありがとうございました。