LoginSignup
13
13

More than 5 years have passed since last update.

New Relic Deployment API を使ってレコーディング・デプロイメント

Posted at

New Relic

パフォーマンスモニタリングに New Relic を使っています。

Python Agent と、newrelic_sysmond を入れるだけでアプリケーションとサーバ両方のモニタリングをしてくれて、性能問題やトラブルが手早く解決できるようになりました。

iOS App もあり、いつでもサーバの状態がチェックできて心理的な安心感も得られます。

そんな使いだすと離れられない New Relic ですが、サーバへのデプロイ時刻を記録する機能があります。メリットは大きく分けて二点。

  1. ダッシュボードにデプロイした時刻がプロットされる(チームメンバーへの自然な共有)
  2. デプロイ前後のパフォーマンスを比較できる(デプロイの影響を測定)

導入も簡単なのでオススメです。

New Relic Deployment API

デプロイの記録は New Relic Deployment API を叩くだけです。
標準的な REST API なのでここではお手軽な curl を使います。

curl -H "x-api-key:REPLACE_WITH_YOUR_API_KEY" -d "deployment[app_name]=REPLACE_WITH_YOUR_APP_NAME" https://api.newrelic.com/deployments.xml

上記だけでも単純な記録は可能ですが、デプロイした人以外が確認したときに何をしたのかわかるように設定値を工夫してみました。

POST パラメータ 概要
deployment[description] デプロイにかかった時間とデプロイ前後のコミットの GitHub Compare View の URL
deployment[revision] git rev-parse --short HEAD で取得した commit-ish
deployment[changelog] git --no-pager log --format=%s -1 HEAD で取得した commitlog
deployment[user] デプロイユーザー名

デプロイユーザー名の取得は (trap 'osascript -e "long user name of (system info)"' EXIT; getent passwd $USER | cut -d: -f5 | cut -d, -f1) || whoami みたいな豪快ワンライナーで Linux, OSX 両対応しつつチームメンバーのフルネームを取得しています。

また、デプロイ時にほぼ同等の情報を HipChat にも通知してカジュアルな共有も行っています。

参考

13
13
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
13
13