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サービスにも同じものを提供してほしいなどありましたら、ぜひご意見をお寄せください。