New Relic Ruby エージェントを使用すると、 REST APIまたは Ruby エージェントで配布される Capistrano レシピ (バージョン 2.x および 3.x) を使用して、アプリケーションのデプロイに関する情報を送信できます。その後、New Relic UI でデプロイメントを表示できます。デフォルトでは、すべてのデプロイメント情報が本番環境に記録されます。ステージングなど、他の環境用にrails_env
変数をカスタマイズすることもできます。
アプリケーション名の設定
アプリケーション名を割り当てるには
これにより、指定された環境のインスタンスに、New Relic ユーザー インターフェイスでデータを参照するときにapp_name
で指定されたラベルが割り当てられます。デプロイ アップロード スクリプトは、そのラベルを使用してアプリをデプロイに関連付けます。
ユーザーキーを追加する
オプションで、New Relic REST API v2 を介してデプロイメントを記録できます。これを行うには、 api_key
を使用してユーザー キーをエージェント構成に提供します。この構成が存在する場合、 newrelic deployments
コマンドは自動的に REST API v2 デプロイメント エンドポイントを使用します。
コマンドラインでの記録
Ruby エージェントを gem としてインストールした場合は、 newrelic
実行可能ファイルを使用してデプロイを直接記録できます。
$newrelic deployments
お使いの環境によっては、実行する必要があります。
$bundle exec newrelic deployment
newrelic
でいくつかのオプションの値を使用できます。description
は短いテキストです。
$deployments [OPTIONS] [description]$OPTIONS:$ -a, --appname=name Set the application name.$ -i, --appid=ID Set the application ID$ If not provided, will connect to the New Relic collector to get it$ Default is app_name setting in newrelic.yml$ -e, --environment=name Override the (RAILS|RUBY)_ENV setting$ -u, --user=USER Specify the user deploying.$ -r, --revision=REV Specify the revision being deployed$ -c, --changes Read in a change log from the standard input$ -h Print this help
-c
オプションを使用すると、変更ログをスクリプトにパイプできます。-c
オプションの使用時にパイプしない場合は、 control-D
を選択してファイルの終わり (EOF) を示します。
Capistrano 3.xでの記録
The New Relic Ruby agent contains a Capistrano recipe that can record app deployments. アプリ名を割り当てた後、エージェントと通信するために Capistrano ファイルを編集します。
Capfileの先頭に以下の行を追加します。
require 'new_relic/recipes'deploy.rb
ファイルに次を含めます。after "deploy:updated", "newrelic:notice_deployment"
Capistrano 2.xでの記録
Capistrano 2.x のデプロイメントを New Relic エージェントで記録することができます。
CapistranoにNew Relicのレシピを読み込むように指示します。
deploy.rb
ファイルに次のフックを追加します。# Notify New Relic of deployments.# This goes out even if the deploy fails, sadly.after "deploy", "newrelic:notice_deployment"after "deploy:migrations", "newrelic:notice_deployment"after "deploy:cold", "newrelic:notice_deployment"
次回cap deploy
を実行すると、エージェントは New Relic にデプロイを通知し、すべての時系列チャートにデプロイ イベントが表示されます。
Capistranoの構成をカスタマイズする
Capistrano がリモート ビルド マシンでデプロイメント通知レシピを実行している場合、ビルド マシンmustにがあります。 有効なnewrelic.yml
ファイルをビルド マシンにコピーするか (Capistrano Before Hookを使用することもできます)、Capistrano 設定でset :newrelic_license_key, 'YOUR_LICENSE_KEY'
を呼び出すことができます。
Capistranoの変数を使用して、いくつかのデプロイメント情報をカスタマイズできます。定義されている場合、これらはデフォルトを上書きします。これらは、Capistrano 2と3の両方に適用されます。
カピストラーノ2と3の変数 | 説明 |
---|---|
| デプロイが表示されるアプリ。デフォルトでは、これは指定された コマンド行からこの値を設定する場合、指定できるアプリケーション名は 1 つだけです。この値を |
| Capistrano コマンドが発行されたローカル作業ディレクトリから svn/git |
| デプロイメントと共に表示される説明テキスト。デフォルトは空です。 |
| 使用する New Relic 。 デフォルトでは、これは指定された |
| デプロイメント用に記録されたリビジョン。 推奨事項: Subversion を使用している場合は、リビジョンに加えてタグまたはブランチ名を含めることを検討してください。 |
| 配置に関連付けるユーザーです。 |
Capistranoの設定を上書きする
Capistrano のどのバージョンでも、 deploy.rb
の設定をオーバーライドできます。
set :newrelic_user, "username"
Capistrano 2.xで設定を上書きするには、以下の方法があります。コマンドラインから
$cap production deploy -Snewrelic_desc="Deploying beta Krakatau release"
この例では、配置の変更ログに表示される内容を入力します。
set(:newrelic_changelog) do Capistrano::CLI.ui.ask "Enter a summary of changes: "end
ステージングへのデプロイ
デフォルトでは、 newrelic_rpm
gem には Capistrano タスクが付属しており、本番環境でのすべてのデプロイメントを記録します。別のステージング アプリケーションがある場合は、 rails_env
変数の設定を変更して、ステージング デプロイメントが本番アプリではなくステージング アプリに記録されるようにすることができます。
ステージング環境へのデプロイメントを確認するには、Capistranoまたはコマンドラインを使用します。
ステージングへのデプロイ | コメントコメント |
---|---|
キャプストラノマルチステージ | Capistrano マルチステージを使用している場合は、次の行を
|
Capistrano 2.x | Capistrano 2.xを使用している場合は、コマンドラインからこの情報を追加してください。 bash
|