問題
、 、 機能では、アカウントまたはアプリケーションが多数の個別のメトリックタイムスライス データ ポイントを送信している場合があり、それらをグループ化することでより適切に管理できます。この状況を説明するために、 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 Transactionsページにその関数の単一のエントリ (例: /article/view/*
) を表示します。
このグループ化により、記事の閲覧にどれだけの時間が費やされたかをより正確に把握することができ、記事の閲覧に関連するパフォーマンスの問題を容易に発見することができます。もしこれらの統計が何百、何千ものトランザクションにまたがっていたら、傾向、回帰、またはパフォーマンスの改善を検出するのは非常に難しいでしょう。
各APMエージェントは、コントローラーとフレームワークを検出する独自の方法を持っています。 ほとんどは自動ですが、いくつかの設定では、設定ファイルでオプションを有効または無効にする必要があります。メトリクスのグループ化の問題の発生を防ぐために、推奨事項に従うこともできます。