4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CircleCIのWebhookとNew Relicの連携

Last updated at Posted at 2022-10-26

こんにちは。CircleCIカスタマーサクセスチームの Chisato です。

最近個人的に幸せを感じた出来事は、新潟で「こしいぶき」という品種の美味しいご飯をいただいたことです。
タレカツ丼とへぎそばの味も忘れられません。
ほんとうは新潟の旅行ブログを書きたいのをぐっと堪えながら、CircleCIの機能紹介をします。

CircleCIのWebhook

Webhookは、お客様自身が作成したAPI、またはサードパーティのサービスと連携して、リアルタイムでCircleCIのデータを送信したり可視化したりすることを可能にします。

今回は New Relic のモニタリングスタックにデータを送信してみます。

New Relic の設定

New Relic のサービス紹介をドキュメンテーションから引用します。

New Relicは、よりよいソフトウェアの構築に役立つオブザーバビリティプラットフォームです。あらゆるデジタルソースからデータを取り込むことができるため、システム自体とシステムの改善方法を完全に理解できます。
New Relicを使用すると、以下ができます。
すべてのデータを集約: エージェント、インテグレーション、APIを使用して、すべてをインストゥルメントし、テクノロジースタック全体からデータをインポートし、単一UIからアクセスします。
データの分析: 簡単にすべてのデータを入手できるようにして、問題の根本原因を見つけ、システムを最適化します。ダッシュボードとチャートを構築するか、または強力なクエリ言語を使用します。
インシデントに素早く対応: 機械学習ソリューションが異常をプロアクティブに検知し、問題となる前に警告します。

New Relicを初めて使う方は、こちらのNew Relicを使い始めるをご参照ください。

設定のステップ

  1. こちら のページ上部にあるInstall nowをクリックします。

  2. New Relic にログインします。

  3. 下記画像のように、Begin Installation、そしてDone(またはSkip this step)と進みます。(CircleCIのアカウントを持っていない方は、こちらからご登録ください。)
    Screen Shot 2022-10-24 at 23.29.11.png
    Screen Shot 2022-10-24 at 23.30.35.png

  4. CircleCI の Webhook と連携するためには、 New Relic の License Key が必要です。自分のキーを確認するため、トップページ最下部のアカウントをクリックし、API Keys をクリックします。
    Screen Shot 2022-10-24 at 23.41.20.png

  5. API keys ページに License Key の表示があります。後ほど使うタイミングになったら、三点リーダーをクリックし、Copy key をクリックしてキーをコピーします。
    Screen Shot 2022-10-24 at 23.52.11.png


CircleCI の設定

  1. CircleCIのダッシュボードから、New Relicにデータを送信したいプロジェクトを選択し、プロジェクトのページに移動します。
  2. プロジェクトページ右上の Project Settings ページに移動して、左側のリスト最下部の Webhooks をクリックします。Screen Shot 2022-10-24 at 23.54.27.png
  3. 次に、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 CompletedJob Completed 、または両方にチェックを入れます。Screen Shot 2022-10-25 at 0.34.32.png
  4. Add Webhookをクリックして、Webhookが正しく保存されたことを確認します。動作を確認したい場合は、Test Ping Event をクリックします。プロジェクトでビルドを実行し、New Relic のダッシュボードに移動します。
    Screen Shot 2022-10-25 at 0.40.02.png

Webhook の連携の確認

New RelicのUIから、Dashboards をクリックしてCircleCIのページを開きます。ページ右上のマークをクリックして、Add a chartをクリックします。下記のようにクエリを使って、CircleCIからのログを確認できました。
Screen Shot 2022-10-25 at 1.23.17.png
このあと、CircleCIのダッシュボードにも自動的にデータが反映されていることを確認できました。
各チャートは、Jobレベルのデータなのか、Workflowレベルのデータなのか確認しながらご利用ください。
ご自身の用途に合わせてチャートをカスタマイズ作成することもできます。
Screen Shot 2022-10-25 at 1.33.00.png


Slackとの連携

どうしても毎回これをやらないと気が済みません。そうです、Slackへの通知です。
New RelicのUIから、Alerts & AI 、そして Workflows を選択します。
今回はSlackとの連携、そしてテスト通知を行いました。
Screen Shot 2022-10-25 at 1.42.56.png

ワークフローの設定についてはこちらのページを参照できます。
Screen Shot 2022-10-25 at 1.46.36.png

♪シュットトト♪(どうしてもこれが言いたい)
無事に通知できました。
Screen Shot 2022-10-25 at 1.49.09.png

このあと、New Relic からかっこよくデータを送信したかったのですが、これはまた次回にとっておきます。

CircleCIとSlackを直接連携したいという場合は、Slack orb をご利用ください。

まとめ

今回はNew Relicを使うのが初めてだったので、できることに限りがありました。
今後はNRQLなどを用いてCircleCIのデータをいい感じに表示し、それを最適化プロセスに活かす道を模索したいと思います。

CircleCI Webhook に関するフィードバックやリクエストがありましたら、ぜひお聞かせください。

機能リクエスト ページでは、リクエストを作成したり、他のユーザーの方々のリクエストに投票したりできます。

技術的なご質問がある場合は、サポートセンター から無料チケットを作成してお問い合わせください。

さらに、Product Roadmap ページで、CircleCIの最新機能や今後リリースされる機能の一覧を確認いただけます。

お読みいただきありがとうございました。
美味しい秋の味覚を楽しみつつ、一緒に最適化を進めましょう。

参考

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?