問題
私たちのために 、 、 そしてこれらの機能を使用すると、アカウントまたはアプリケーションが多数の個別のメトリクス タイムスライス データ ポイントを送信し、グループ化することでより適切に管理できる場合があります。この状況を説明するために、metric grouping issue [メトリック グループ化問題]またはMGI という用語を使用します。これが発生すると、エージェントは不必要に大量のデータを New Relic に送信することになり、New Relic のチャート、テーブル、レポートの効率が低下します。
メトリクスのグループ化の問題は、ウェブ・トランザクションで最も一般的に発生します(特に、名前がURLに基づいている場合)。また、アプリケーションが報告する他のメトリクスでも発生することがあります。例えば、以下のようになります。
- アプリケーションがインターネットをクロールしていて、外部からの呼び出しがそれぞれ異なるドメインに行く場合は
- リクエストを受けるたびに一時的なデータベーステーブルを動的に生成するソフトウェアの場合は
- UUID、アーティクル名、または同様のユニークなコンポーネントを含むカスタム・インストゥルメンテーション を使用している場合
メトリクスが効果的にグループ化されるのではなく、潜在的に無限のリストを作成できる状況(コントローラ、恒久的なデータベーステーブル、特定の外部サービスなど)は、メトリクスグループ化の問題になる可能性があります。
解決
メトリクスグルーピングとは何か、どのように問題が発生するのかを理解することで、New Relicがアプリケーションと連携してメトリクスを効果的にグルーピングする方法を理解することができ、メトリクスグルーピングの問題が発生するのを防ぐことができます。
これは、メトリックのグループ化がトランザクションの整理にどのように役立つかを示す「前」と「後」の例であり、パフォーマンスの問題があるパターンをより簡単に特定するのに役立ちます。
メトリックグループ化の問題がアプリ内で発生しないようにするためです。
- New Relic リリース ノートを参照して、New Relic エージェントの最新バージョンを実行していることを確認してください。
- 必要に応じて、 APM/モバイル/ブラウザ エージェントを最新バージョンに更新します。
- 数分待ってから、New RelicのUIで新しいデータを見てみましょう。
NrIntegrationError
で名前がMetricCardinalityNearLimit
のイベントを確認/クエリします。これらのイベントの作成は、アプリがカーディナリティの制限に近づくと発生します。
それでも問題が解決しない場合は、お使いの代理店の手順に従ってください。
エージェント | MGIの予防 |
---|---|
すべてのエージェント | |
ブラウザ | |
Go | Rename your Go transactions. |
Java | |
.NET | メトリックの名前を |
Node.js | Request API calls でトランザクションの名前を変更します。 |
PHP | |
Python | Pythonトランザクションの名前を |
Ruby |
UIでメトリック正規化ルールを編集および作成することもできます。詳細については、メトリックの正規化を参照してください。
原因
メトリクスグルーピングの問題は、メトリクス名(最も多いのはウェブトランザクション名)の粒度が細かすぎる場合に発生し、わずかなコードパスに対して何百、何千もの異なるウェブトランザクション名が発生してしまいます。いくつかの主要なコードパスが、固有の文書、記事、またはページなどへの多くの異なるフルURLパスを生成することがあり、URLパスのユニークな要素がトランザクション名に含まれている場合、これらの共通パスはそれぞれ固有の名前を持つことになります。
アプリケーションのパフォーマンスを監視および改善するには、個々の記事が表示される速度よりも、関数(たとえば、サイトでの記事の表示)の平均パフォーマンスを知る方がはるかに便利です。メトリックのグループ化の問題を防ぐために、New Relicは通常、 APMトランザクションページにその関数の単一のエントリ(たとえば、 /article/view/*
)を表示します。
このグループ化により、記事の閲覧にどれだけの時間が費やされたかをより正確に把握することができ、記事の閲覧に関連するパフォーマンスの問題を容易に発見することができます。もしこれらの統計が何百、何千ものトランザクションにまたがっていたら、傾向、回帰、またはパフォーマンスの改善を検出するのは非常に難しいでしょう。
各APMエージェントは、コントローラやフレームワークの検出方法が異なります。ほとんどの場合は自動的に行われますが、いくつかの場合は、 設定ファイル でオプションを有効または無効にする必要があります。また、 メトリックグルーピングの問題 が発生しないように、推奨事項に従うこともできます。