• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

RubyエージェントとHeroku

Heroku は、Rubyをはじめとする様々なエージェント言語でWebアプリケーションをホスティングするためのPaaS(Platform as a Service)ソリューションです。New Relic を使用すると、 APMブラウザモニタリング メトリクスを使用して Heroku を拡張することができます。このページでは、New Relic の Ruby エージェントで Heroku をホスティングサービスとして使用する際の特別な考慮事項について説明します。

New Relicエージェント・アドオンのインストール

HerokuにRubyアプリをデプロイした後、New Relicのエージェントをインストールします。

アドオンをインストールすると、New Relicのプライベートアカウントが自動的に作成され、Herokuサーバーへのアクセスが設定されます。New Relic は、アドオンのインストール後に収集されたアプリケーションパフォーマンス、エンドユーザーエクスペリエンス、アプリサーバーのパフォーマンスのモニタリングを開始します。数分後には、データが APM サマリーページ に表示され始めます。

インストール時のトラブルシューティング

New Relic をインストールして設定してから数分以内に、アプリの APM サマリーページにデータが表示され始めるはずです 。データが表示されない場合は、 Ruby エージェントのトラブルシューティングの手順に従ってください

既存のNew Relicインストールからのアップグレード

New Relic がすでにインストールされている場合は、Heroku toolbelt コマンドを使用してアドオンを再インストールします。

heroku config:set NEW_RELIC_APP_NAME='Your Application Name'

HerokuでのRubyエージェントの設定

New Relic の設定は、 newrelic.yml ファイルで行うこともできますし、 環境変数 を使って、設定ファイルの値よりも優先させることもできます。 heroku config:set を使用して、Heroku アプケーションのエージェントの設定を変更します。

例えば、 analytics_events.max_samples_stored の設定を500にする場合。

heroku config:set NEW_RELIC_ANALYTICS_EVENTS_MAX_SAMPLES_STORED=500

Herokuのホストネーム

どのデータがどのホストから来たのかを知ることで、UIに表示されるメトリクスを特定のホストにフィルタリングすることができます。Herokuでは、dynos内のホスト名は動的に生成されるため、アプリケーション開発者にとっては一般的に意味を持ちません。

バージョン 3.9.5 以降、Ruby エージェントは、Heroku の dyno 名をホスト名として報告します (例: web.1)。これにより、特定のdyno名にスコープされたデータを表示することができます。この動作を無効にするには、 heroku.use_dyno_names の設定を false に設定します。この場合、エージェントは Dynamic Hostname という単一の集約されたプレースホルダー名を使用します。

Dynoのホストネームアグリゲーション

dynosの中には、動的に生成される名前を持つものがあり、これらは時間の経過とともに多くの固有の値を取ることがあります。例えば、 scheduler は、Scheduler アドオンによって作成された dynos であり、 run は、 heroku run をコマンドラインで起動して作成された dynos です。ユニークなホスト名の数を適度に保つために、Rubyエージェントは、 scheduler および run dynosからのデータを、 scheduler.* および run.* というホスト名に自動的に集約します。

動的に作成される他のdynoタイプがある場合は、 heroku.dyno_name_prefixes_to_shorten 設定を使用して、これらの他のdynoタイプに同じ集約を適用します。

Herokuのロギング

Herokuでは、Rubyエージェントは標準出力にログを出力し、エージェントのログと通常のアプリケーションのログが混在します。Rubyエージェントが生成するログエントリには、 [NewRelic] タグがプレフィックスとして含まれます。

Herokuのログを取得するには

  1. NEW_RELIC_LOG 環境変数が stdout に設定されていることを、このHeroku toolbeltコマンドで確認します。

    heroku config
  2. 必要に応じて環境変数をリセットするには、次のように実行します。

    heroku config:set NEW_RELIC_LOG="stdout"
  3. newrelic.yml ファイルをエディタで開きます。

  4. log_leveldebug に変更し、ファイルを保存します。インデントは変更しないようにしてください。

  5. Webアプリを再起動します。

  6. あなたのアプリにトラフィックを発生させ、5分ほど実行します。

  7. 以下のHeroku toolbeltコマンドを実行すると、New Relicエージェントからのログのみが表示されます。

    heroku logs -n 1500 | grep -i relic
  8. ログファイルをNew Relicサポートに送る場合は、 newrelic.ymlGemfileGemfile.lock と一緒に、サポートチケットに添付してください。

  9. newrelic.yml を再度編集し、 log_level を以前の設定に変更します。ファイルを保存します。

Copyright © 2022 New Relic株式会社。