New Relicのデプロイメント分析を使ってみた

# はじめに
アプリケーションのデプロイメントの際、パフォーマンスがどの程度変化したのか確認したり履歴を記録したい場合があるかと思います。New Relicにはデプロイメント前後の変化を簡単に確認できる便利な機能があったので使ってみました。


# 使い方

## 1. New Relicにログイン

デプロイメント分析は、New Relic APMで対象のアプリケーション選択後、
左メニューにある「EVENTS」-> [Deployments]を選択すると確認することができます。

選択すると、最初は素っ気無い説明が表示され、言語によって使用方法の記述が
異なっていたり一見ハードルが高そうに見えます。が、実際はこれからご紹介する、REST APIを用いた方法を使用すればWeb画面だけで簡単に使用できますのでご安心を。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/f08148e1-eac8-6dbd-7796-64b8d9f66529.png)

※注意点としては、このデプロイメント分析は有償のPRO機能なので、無償のLITEユーザはトライアル期間中に確認してみてください。

## 2. 確認したいアプリケーションIDの確認

まずデプロイメント分析したいアプリケーションIDを調べる必要があります。
アプリケーション名は、NewRelic APMの画面やAgetの設定ファイルから確認できますが、アプリケーションIDは、対象のアプリケーション名を選択した後に
> APMでアプリケーション名を選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/3d7337a6-f2ec-4543-ffc3-46de501ef0d7.png)

ブラウザーURLに表示される以下赤線で囲まれた８桁の数字て確認することができます。  
> URLでアプリケーションIDを確認
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/e6d30c54-0490-53e1-93b3-004dad381d8a.png)

``https://rpm.newrelic.com/accounts/xxxxxxx/applications/12345678``であれば、12345678が、アプリケーションIDになります。

## 3. API Exploreにログイン
デプロイメント分析するには、先ほど調べたアプリケーションIDをREST APIでPOSTする必要があります。いきなりハードルがあがりましたが安心してください。New RelicにはWebGUIでREST APIを実行できる[API Explore](https://api.newrelic.com/)が用意されています。

New Relicにログインしてなければログイン
> [New Relic API Explore](https://api.newrelic.com/)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/0c535b6a-cee1-f449-89f0-11530dc0cb31.png)

ログインいたら、自分のAPI Keyを選択してください。
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/93e95839-dc0e-b503-3b91-d63d30c23d3f.png)

## 4. REST APIでデプロイメント

アプリケーションデプロイメントを作成するため、左メニューから[Application Deployments] -> [POST Create]を選択してください
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/1198d954-20b3-60bf-f19d-5e2c1c7963ec.png)

後は必要に応じてパラメータ箇所を設定し、"Send Request"で完了です

>|Name |説明|
|:--------|:-----------------|
|API key  |API Exploreにログイン時に選択したAPI Keyが自動で入力されます|
|application_id|「2. 確認したいアプリケーションIDの確認」で調べたアプリケーションIDを入力します|
|deployment|JSON Paylodに含めるパラメータを設定します。Revesionのみ必需項目でその他はオプションになります|

> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/b27d7108-5cf4-4395-0dc7-9901e28b7de8.png)

## 5. デプロイメント分析の確認

先ほどまで殺風景だった「EVENTS」-> [Deployments]を見ると、REST APIでデプロイメントした数だけ記録されています。
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/4d023144-b31b-6811-db23-43264ad9e1ef.png)

各デプロイメント分析結果を見ると、各グラフ毎にデプロイした時間隊が灰色の縦棒で表示されるため、これでデプロイ前後の変化を簡単に確認することができました。
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/072b63ea-d3ff-5c51-bea7-e28107a50437.png)


このデプロイメント分析では、Overviewにて下記グラフの比較と

- Response time and throughput
- CPU utilization
- Apdex score
- Physical memory utilization
- Error rate
- Database

Change reportでの比較が可能となります。
> ![image.png](https://qiita-image-store.s3.amazonaws.com/0/150422/99e4af6f-8c2f-1965-d5b3-a0f784f6b92d.png)

## 6. その他
今回はREST APIでのデプロイメント分析を紹介しましたが、言語によっては、CLI,Script,Capistrano, PowerShellなを使用することができます。ご興味ある方は、[Record deployments](https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/recording-deployments)のドキュメントもご参考ください。

# 最後に


デプロイメント前後だけでなく、以前紹介した[StackStorm](http://qiita.com/KUROPON/items/b2a0f4238cef58338bbb)と組み合わせる事で、様々なイベントをトリガーにしてパフォーマンスの変化を確認することが出来そうですね。