こんにちは。CircleCIカスタマーサクセスチームの Chisato です。
最近個人的に幸せを感じた出来事は、新潟で「こしいぶき」という品種の美味しいご飯をいただいたことです。
タレカツ丼とへぎそばの味も忘れられません。
ほんとうは新潟の旅行ブログを書きたいのをぐっと堪えながら、CircleCIの機能紹介をします。
CircleCIのWebhook
Webhookは、お客様自身が作成したAPI、またはサードパーティのサービスと連携して、リアルタイムでCircleCIのデータを送信したり可視化したりすることを可能にします。
今回は New Relic のモニタリングスタックにデータを送信してみます。
New Relic の設定
New Relic のサービス紹介をドキュメンテーションから引用します。
New Relicは、よりよいソフトウェアの構築に役立つオブザーバビリティプラットフォームです。あらゆるデジタルソースからデータを取り込むことができるため、システム自体とシステムの改善方法を完全に理解できます。
New Relicを使用すると、以下ができます。
すべてのデータを集約: エージェント、インテグレーション、APIを使用して、すべてをインストゥルメントし、テクノロジースタック全体からデータをインポートし、単一UIからアクセスします。
データの分析: 簡単にすべてのデータを入手できるようにして、問題の根本原因を見つけ、システムを最適化します。ダッシュボードとチャートを構築するか、または強力なクエリ言語を使用します。
インシデントに素早く対応: 機械学習ソリューションが異常をプロアクティブに検知し、問題となる前に警告します。
New Relicを初めて使う方は、こちらのNew Relicを使い始めるをご参照ください。
設定のステップ
-
こちら のページ上部にある
Install now
をクリックします。 -
New Relic にログインします。
-
下記画像のように、
Begin Installation
、そしてDone
(またはSkip this step
)と進みます。(CircleCIのアカウントを持っていない方は、こちらからご登録ください。)
-
CircleCI の Webhook と連携するためには、 New Relic の
License Key
が必要です。自分のキーを確認するため、トップページ最下部のアカウントをクリックし、API Keys
をクリックします。
-
API keys ページに
License Key
の表示があります。後ほど使うタイミングになったら、三点リーダーをクリックし、Copy key
をクリックしてキーをコピーします。
CircleCI の設定
- CircleCIのダッシュボードから、New Relicにデータを送信したいプロジェクトを選択し、プロジェクトのページに移動します。
- プロジェクトページ右上の
Project Settings
ページに移動して、左側のリスト最下部のWebhooks
をクリックします。 - 次に、
Add Webhook
をクリックして、下記項目(太字)を埋めます。
- Webhook name: 任意の Webhook 名
- Receiver URL: Logs endpoint をコピーし、YOUR_LICENSE_KEY
部分を自身のライセンスキー (New Relicでの設定の最終ステップで確認したキー)に書き換えたものです。
US:https://log-api.newrelic.com/log/v1?Api-Key=YOUR_LICENSE_KEY
EU:https://log-api.eu.newrelic.com/log/v1?Api-Key=YOUR_LICENSE_KEY
- Secret token: 受信データが CircleCI からのデータかどうかを検証したい場合は別途設定します。
- Certificate verification: チェックを入れると、受信ホストが有効な SSL 証明書を保持していることを確認します。(テストの際はチェックボックスからチェックを外します。)
- Events: データの送信のタイミングを選択するため、Workflow Completed
、Job Completed
、または両方にチェックを入れます。 -
Add Webhook
をクリックして、Webhookが正しく保存されたことを確認します。動作を確認したい場合は、Test Ping Event
をクリックします。プロジェクトでビルドを実行し、New Relic のダッシュボードに移動します。
Webhook の連携の確認
New RelicのUIから、Dashboards
をクリックしてCircleCIのページを開きます。ページ右上の+
マークをクリックして、Add a chart
をクリックします。下記のようにクエリを使って、CircleCIからのログを確認できました。
このあと、CircleCIのダッシュボードにも自動的にデータが反映されていることを確認できました。
各チャートは、Jobレベルのデータなのか、Workflowレベルのデータなのか確認しながらご利用ください。
ご自身の用途に合わせてチャートをカスタマイズ作成することもできます。
Slackとの連携
どうしても毎回これをやらないと気が済みません。そうです、Slackへの通知です。
New RelicのUIから、Alerts & AI
、そして Workflows
を選択します。
今回はSlackとの連携、そしてテスト通知を行いました。
ワークフローの設定についてはこちらのページを参照できます。
♪シュットトト♪(どうしてもこれが言いたい)
無事に通知できました。
このあと、New Relic からかっこよくデータを送信したかったのですが、これはまた次回にとっておきます。
CircleCIとSlackを直接連携したいという場合は、Slack orb をご利用ください。
まとめ
今回はNew Relicを使うのが初めてだったので、できることに限りがありました。
今後はNRQLなどを用いてCircleCIのデータをいい感じに表示し、それを最適化プロセスに活かす道を模索したいと思います。
CircleCI Webhook に関するフィードバックやリクエストがありましたら、ぜひお聞かせください。
機能リクエスト ページでは、リクエストを作成したり、他のユーザーの方々のリクエストに投票したりできます。
技術的なご質問がある場合は、サポートセンター から無料チケットを作成してお問い合わせください。
さらに、Product Roadmap ページで、CircleCIの最新機能や今後リリースされる機能の一覧を確認いただけます。
お読みいただきありがとうございました。
美味しい秋の味覚を楽しみつつ、一緒に最適化を進めましょう。
参考