Ruby カスタムメトリクス

カスタムメトリクスを利用することで、API 経由で、任意のメトリクスを記録できるようになります。例えば、チェックアウトトランザクションの一部として、各ショッピングカートの値をレポートできるようになります。
そして、カスタムダッシュボードにて、ショッピングカートの値の変動を確認できます。New Relic 内の監視を統一するためのカスタムメトリクスを使用することができます。

警告: あまりにも多いメトリクスの収集は、アプリケーションと New Relic のパフォーマンスに影響を与えます。データの問題を回避するには、カスタム計測によって収集されるユニークなメトリクスの合計数を 2000 以下に保ってください。

メトリクスの名前付け

メトリック名は、パスです。「/」 [スラッシュ] で区切られています。カスタム計測では以下のようになります。

<category>/<class>/<method>

注: カスタムメトリック名には、Custom/<class>/<method> もしくは Custom/<category>/<name> (例: Custom/MyClass/My_method)を使います。

メトリクスの名前付けやメトリックの表示方法を詳しくしたい場合は、Ruby カスタムメトリックの名前付けをご覧ください。

カスタムメトリクスの記録

メトリックデータの記録用の公開 API は、NewRelic::Agent に2つのメソッドがあります。record_metricincrement_metricです。

注: record_metricincrement_metric は両方ともスレッドセーフとなっています。

record_metric(metric_name, value)

record_metric は、イベントベースのメトリックを記録する際に使います。通常、特定の期間に関連で付けられています。metric_name は、標準のメトリックの命名規則に則った文字列である必要があります。value は、通常、数値ですが、ハッシュ でも問題ありません。

value が数値の場合、その値はイベントに関連する測定値の大きさを表している必要があります。例えば、特定のメソッド呼び出しの実行時間。

value がハッシュの場合は、:count:total:min:max:sum_of_squares キーが含まれており、その値はすべて数値である必要があります。(例えば、バックグラウンドスレッドから)自身のメトリックを集計し、定期的に報告したい場合に、ハッシュを使うと便利です。送信された統計データは、以前に収集された同じメトリックの値に集約されます。ハッシュキーの名前は、プラットフォーム API で使用するキー名と一致するように選ばれています。

increment_metric(metric_name, amount=1)

increment_metric は、メトリックのカウンターの値を更新する際に使います。選択されたメトリックの数は、指定した量だけ加算されます。

カスタムメトリックの例

以下は、サイトに流れるお金を追跡するメトリックを使用する方法の例です。

class Cart

  def checkout()
    amount = compute_cart_total    # computes the amount to charge the customer

    ::NewRelic::Agent.record_metric('Custom/Cart/charge_amount', amount)

    charge_customer(amount)
    ...
  end
end

データを集計する方法の詳細については、統計集約ポリシーをご覧ください。

カスタムメトリクスの表示

カスタムメトリクスを表示する場合は、カスタムダッシュボードを使います。(カスタムダッシュボードは、Standard を除くすべて有料アカウントで使用可能です)
必要とします。詳しくは、カスタムダッシュボードのメトリクスの選択をご覧ください。

さらに詳しい情報

追加のドキュメントリソースは次のとおりです。