2

ヘルプ!最近、Ruby アプリでSidekiq ( https://github.com/mperham/sidekiq ) の実装を開始しました。特定のパフォーマンスの低下に気づいていません。ただし、New Relic の監視ページでは、概要グラフに追加の影響があり、DB 時間がアプリの応答時間レイヤーのスタック全体を追い越しているように見えます。

明確化: 前回のデプロイ後、突然概要グラフに Ruby 時間が表示されず、データベース時間が大量に表示されるようになりましたが、データベースの使用状況は変わっておらず、アプリケーションが Web リクエストを処理していることは確かです。何が原因でしょうか?

4

2 に答える 2

3

この問題の最も一般的な原因は、Web リクエストを直接処理しないバックグラウンド ジョブ (例: Resque、Sidekiq、DelayedJob、または rake タスクなどの手動でインストルメント化されたスクリプト) が、New Relic エージェントによって、同じアプリケーション名でインストルメント化されていることです。ウェブアプリケーション。これが発生すると、バックグラウンド タスクによって使用されるデータベース時間は、Web アプリケーションからのメトリックと結合されます。

通常、最も簡単な解決策は、バックグラウンド タスクをメイン アプリケーションから切り離して、別のアプリケーション名でレポートするようにすることです。これを行うにはNEW_RELIC_APP_NAME、バックグラウンド ワーカーを開始するときに、環境変数をカスタム アプリケーション名に設定します。

Heroku ではNEW_RELIC_APP_NAME='<your name> (background)'、Procfile でバックグラウンド ワーカーを開始するために使用するコマンドの先頭に追加することで、これを行うことができます。他の環境では、バックグラウンド ワーカーの起動に使用するコマンドを同様に編集できます。

于 2013-05-07T22:01:02.720 に答える
0

New Relic は SideKiq では動作しないと思います。

于 2013-05-07T22:14:57.123 に答える