New Relic APMでデプロイメントを記録できることは以前の記事でもご紹介しました。
https://blog.newrelic.co.jp/devops/deployment-tracking/
REST API形式ですのでスクリプトに埋め込むことも比較的容易です。一方、最近ではデプロイメントワークフローとして利用できるサービスも増えています。その中の一つであるGitHub Actionsで使えるデプロイメント記録アクションをNew Relicでは提供しています。
https://github.com/marketplace/actions/new-relic-application-deployment-marker
本日はこちらの使い方を紹介したいと思います。
まず、GitHub Actionsの定義ファイルを編集します。GitHub上で編集するとこのようにNew RelicがActionの一覧に表示されます。
選択するとテンプレートが表示されるので、コピー&ペーストします。ローカルで編集している場合はサンプルの定義ファイルを使います。
指定が必要なパラメーターは、パーソナルキー、アカウントID、アプリケーションIDの3つです。パーソナルキーは、REST API形式でデプロイメントを記録するときに必要なREST API キーとは異なるので注意してください。パーソナルキーは、New Relicの画面左上のAccount SettingsからUser and Rolesを開き、ユーザー一覧を表示します。
取得するユーザーをクリックして表示される画面でAPIキーを作成します。
アカウントIDとアプリケーションIDについては以前はURLに含まれていたのに、New Relic OneベースのUIではURLが複雑になったためすぐにわからないという方もいるかもしれません。そんな場合はAPMのアプリケーションの画面でアプリケーション名の横のiアイコンをクリックしてください。
すると画面の右側にこのような情報が表示され、必要な情報をコピーできます。
これらの情報はGitHub ActionsのSecretに格納し、コミット情報などを変数から取得すると、例えばこのような定義になります。
- name: New Relic Application Deployment Marker
uses: newrelic/deployment-marker-action@v1.0.0
with:
apiKey: ${{secrets.NewRelicPersonalAPIKey}}
accountId: ${{secrets.NewRelicAccountID}}
applicationId: ${{secrets.NewRelicApplicationID}}
revision: ${{github.sha}}
description: ${{github.event.head_commit.message}}
あとはこの定義を含んだGitHub Actionを実行するとデプロイメントをいままで通りに記録できます。
なお、このGitHub Actionはcontainer actionを利用しているためLinux OSでしか動きません。Windowsにも対応してほしい、ほかのCI/CDサービスにも同じものを提供してほしいなどありましたら、ぜひご意見をお寄せください。
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.