DOCS
インテグレーションガイド / Copperegg
本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。
Coppereggは、SaaSベースのサーバー監視サービスで、パフォーマンス統計、さまざまな形式のデータ視覚化、カスタマイズ可能な分析を提供します。 重要な情報を含めてリアルタイムな更新情報を提供することで、あなたのサービスの応答時間などをテストでき、必要に応じてカスタマイズもできます。いくつかのシンプルな画面で、サーバーの健全性を監視し、全体的および個別のサービスのパフォーマンスを調べ、望ましいレベルの細かさでメトリックを分析できます。CoppereggはPagerDutyにアラートを送信するように設定でき、各アラートがPagerDuty内で確認されたり解決されたりできるようにします。下記の手順に従って、PagerDutyとCoppereggを設定してください。ご質問やサポートが必要な場合は、 [email protected]までお問い合わせください。
PagerDutyでの設定
- Configuration メニューからServices を選択します。
- Servicesページで: インテグレーションのために新しいサービスを作成する場合は、 +Add New Service をクリックします。 既存のサービスにインテグレーションを追加する場合は、統合を追加するサービスの 名前をクリックします。 その後、Integrations タブをクリックし、 + New Integration ボタンをクリックします。
- Integration Type メニューから追加したいアプリを選択し、Integration Nameを入力してください。 インテグレーションのために新しいサービスを作成する場合は、General Settingsで新しいサービスのNameを入力します。 次に、Incident Settingsで、新しいサービスの Escalation Policy (エスカレーションポリシー)、Notification Urgency (通知の緊急度)、Incident Behavior(インシデントの動作)を指定します。
- Add Service またはAdd Integration ボタンをクリックして、新しいインテグレーションを保存します。 すると、サービスのIntegrationsページにリダイレクトされます。
- 新しいインテグレーションのIntegration Keyをコピーします。
Coppereggでの設定
テスト通知してみる
- CoppereggコンソールでAlertsタブをクリックします。
- サイドバーで、Notification Profilesをクリックします。
- 一番右側の、Add a Profileをクリックしてください。
- New Notification ProfileにあるDestinationsで、PagerDutyを選択します。
- <PagerDutyでの設定の中の最後のステップでコピーしたIntegration Keyをここに貼り付けます。
- Test NotificationsをクリックしてPagerDutyアカウントに戻り、アラートがトリガーされたことを確認します。
- Coppereggからログアウトし、PagerDutyアカウントのServicesタブに移動します。ここに新しくトリガーされたインシデントのエントリが表示されます。
Webサイト監視
このガイドでは、PostgreSQLと “rails new scaffold title:string body:text”コマンドを使って簡単なRailsサイトを作成し、Herokuに http://thawing-mesa-1620.herokuapp.com/でプッシュしてみました。
- CoppereggのProbesタブに移動して、サイトを監視するプローブを設定してください。このプローブはCoppereggのデフォルト設定のまま、毎分1回Webサイトをチェックするように設定されています。
- Alertsタブに移動し、Configure Alertsを選択します。ここから、通知するアラートを選択し、PagerDuty APIサービスを追加します。以前にNotification Profileの下でPagerTesterという名前で作ったPagerDuty APIサービスに、Error Status Code、Lost Connectivity、Site Downを追加しました。
- AlertsタブのConfigure AlertsビューのDestinations列の下にPagerDutyが表示されていることを確認します。
- さあPagerDutyとCoppereggの統合を使用して、あなたのWeサイトをテストする準備が全て整いました。私の場合、インスタンス変数@ posts = Post.allを未定義の@ posts = Post.ballに変更することで、Posts Controller中のインデックスアクション内にエラーを作成しました。私はこのエラーをgitにコミットし、エラーを伝播するコマンド
'git push heroku master'
を発行しました。タイムアウトを引き起こすためにsleep 5を使用したり、コマンドheroku ps:site web = 0
を使ってサイトをシャットダウンすることもできます。どの選択肢でも、望み通りアラートが作られてPagerDutyに通知される結果が確認できるはずです。 - サイトが停止したことを確認します。
- Coppereggにエラーが表示されるまで待ちます。表示されると、アラートがタブに赤で表示されます。サーバーの正常性表示も表示が変わります。
- Alertsタブにアクセスして、エラーの種類を判断します。
- PagerDutyにログインし、エラーがそこにも反映されていることを確認します。 おめでとう! CoppereggとPagerDutyを正常に統合しました。
よくある質問
PagerDuty内で複数のサービスをCopperegg内で個別のアラートを作成することはできますか?
はい、できます。 たとえば、別のサービスをGeneric APIシステムとして作成し、PagerDutyに追加することができます。 上記の手順を繰り返して、Coppereggに追加します。 Copperegg内から両方のサービスのテスト通知を選択すると、両方のサービスのアラートがPagerDutyでトリガされます。
CoppereggにPagerDutyサービスを追加するための要件は何ですか?
PagerDutyサービスには統合キーが必要です。 この統合キーをCoppereggの通知プロファイルに入力したら、Test Notificationsボタンを押してから、PagerDutyアカウントにログインして、アラートが正常に登録されたことを確認します。
サイトクラッシュの問題が解決され、Coppereggがそのサイトがバックアップされていることを認識した場合、PagerDutyのインシデントも解決されますか?
いいえ、Coppereggは自動的にインシデントを解決しません。PagerDuty内で問題を認識して解決する必要があります。 一度トリガされると、ユーザー入力は削除される前に必要となります。
まだ助けが必要ですか?
何か困難がある場合は私たちに連絡してください。