重要
カスタムメトリクスをNew Relicプラットフォームに送信するには、 Metric API を使用することをお勧めします。
カスタムメトリクス では、コードを通過するあらゆるメトリクスをレポートすることができます。たとえば、New Relic の Go モニタリング では、デフォルトでは取得できないようなアプリのコンポーネントを計測するためのカスタムメトリクスを作成することができます。カスタムメトリクスを捕捉すると、以下のことができます。
- メトリクスとイベント エクスプローラーを使用して、New Relic 内で監視を統合します。
- 当社の REST API を使用して、UIの外でプログラム的にカスタムメトリックデータを取得して使用することができます。
- カスタムメトリックのアラート条件を作成する カスタムメトリックが特定の値を超えたときに、自分やチームに通知します。
カスタムメトリックの作成
以下を実行して、アプリケーションのインスタンスを作成します。
app, err := newrelic.NewApplication(newrelic.ConfigAppName("Your Application Name"),newrelic.ConfigLicense("NEW_RELIC_LICENSE_KEY"),newrelic.ConfigDebugLogger(os.Stdout),)アプリをインスタンス化した後、以下のコードでカスタムメトリックを作成します。
app.RecordCustomMetric("CustomMetricName", //name of your metric132, //time in ms);RecordCustomMetric
の最初のパラメーターは、カスタム指標の名前を表す文字列です。RecordCustomMetric
メソッドは、文字列Custom/
をメトリック名の先頭に自動的に追加します。これは、上記のコードがCustom/CustomMetricName
という名前のメトリックを生成することを意味します。RecordCustomMetric
の 2 番目のパラメーターは、カスタム トランザクション用に記録するミリ秒単位の時間です。これは、上記のコードが .132 のメトリックを生成することを意味しますNew Relic のシステムでは数秒です。カスタム メトリックをカウンタとして使用するには、上記のように呼び出しを行うことでインクリメントできます。そのメトリックの
count
値は 1 ずつインクリメントされます。2 番目のパラメーターに使用する値 (ミリ秒単位の時間) は、メトリックをカウンターとしてのみ使用している場合は無関係であるため、0 や 1 などの静的な数値を使用できます。- カウンターを 1 より大きい数値でインクリメントするには、
app.RecordCustomMetric
を複数回呼び出します。2 番目のパラメーターの値に関係なく、各呼び出しはメトリックを 1 だけインクリメントします。
- カウンターを 1 より大きい数値でインクリメントするには、
カスタムメトリックの名称
カスタム・メトリクスの名前の付け方は慎重に検討してください。プログラムでユニークな名前のメトリクスを作りすぎると、 メトリクス・グルーピング問題(MGI) になってしまうかもしれません。
MGIは、メトリック名の粒度が細かすぎて、数百から数千の異なるメトリック名が生じる場合に発生します。MGIの一般的な原因の1つは、Webトランザクションのメトリック名をフルURL名に依存していることです。いくつかの主要なコードパスが、固有のドキュメント、記事、ページなどへの多くの異なるフルURLパスを生成することがあります。
URL パスの一意の要素がメトリック名に含まれている場合、これらの共通パスのそれぞれに一意のメトリック名が付けられます。メトリックグループ化の問題が発生した場合は、 トラブルシューティングの手順 に従ってください。