Newrelicとは?
そもそもNewrelicとはどういうものなのか?
New Relic は、デジタルビジネスのあらゆる重要指標を観測可能にする「オブザーバビリティ(可観測性)プラットフォーム」を提供しています。デジタルビジネスを構成するアプリケーションやインフラストラクチャだけでなく、ユーザー側の顧客体験状況までをも観測可能にするため、企業はデジタルサービスの障害検知、顧客体験の低下検知、潜在的な問題やボトルネックを早期特定し解決する DevOps チームを生み出します。
全世界で15,400社以上、ならびにFortune 100企業の過半数で導入されています。日本でもすでに数百社を超えるお客様のデジタル変革を支援しています。
コードをプッシュしたタイミングをマーカー表示する
今回やりたかったことは、新しいコードをPushしたタイミングで、Newrelicの管理画面にマーカーを表示し、
修正後のコードでどのぐらいサイトの改善ができたかを明確にしたかった。
マーカーを表示するメリットとして、修正の前後のパフォーマンスを比較することができるので、修正によってどのぐらいサイトが改善されたかを明確にすることができます。
実装方法
今回は以下の工程で実装を進めてい行きました。
- コードの修正
- GitへPush
- Github ActionsでHook処理を行う
- Newrelic Rest APIを使用
- Newrelicに連携
- Newrelic管理画面でマーカーを確認する
Newrelic REST APIに必要な情報
- 必須項目
- アプリケーションID
- Git SHA, リビジョン
- オプション
- チェンジログ
- 説明
- デプロイメントを投稿したユーザー
- デプロイメントのタイムスタンプ
リクエストのサンプル
以下のような形式でPush時にcrulでPOSTをします。
curl -X POST 'https://api.newrelic.com/v2/applications/{application_id}/deployments.json' \
-H 'X-Api-Key: { api-key }' -i \
-H 'Content-Type: application/json' \
-d \
'{
"deployment": {
"revision": "string",
"changelog": "string",
"description": "string",
"user": "string"
}
}'
Github Actions
プッシュを行った際に、Curlコマンドを叩く処理をGithub Actionsに記述することでマーカーを自動で生成することができます。
name: newrelic_deployment
on:
push:
branches:
- '**'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Newleric Deployment
if: always()
run: |
if [ '${{ job.status }}' = 'success' ]; then
COLOR="good"
else
COLOR="danger"
fi
curl -X POST 'https://api.newrelic.com/v2/applications/{application_id}/deployments.json' \
-H 'X-Api-Key: { api-key }' -i \
-H 'Content-Type: application/json' \
-d \
'{
"deployment": {
"revision": "string",
"changelog": "string",
"description": "string",
"user": "string"
}
}'
まとめ
今回はNewrelicのREST APIを使ってプッシュ時にCurlでPOSTする方法について紹介をしてきました。
マーカーを付けることで修正前と修正後でどのような変化があったかを明確にすることができます。