• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Rubyのカスタムメトリクス

カスタムメトリクスでは、APIコールを介して任意のパフォーマンスデータを記録することができます(例えば、タイミングやコンピュータリソースのデータなど)。その後、 クエリビルダー を使用してチャートを作成し、そのメトリックを追跡することができます。カスタムメトリクスを使用することで、New Relic 内のモニタリングを統一することができます。

注意

あまりにも多くのメトリクスを収集すると、アプリケーションやNew Relicエージェントのパフォーマンスに影響を与える可能性があります。データの問題を避けるために、ユニークなカスタムメトリクスの総数は2000以下にしてください。

重要

これらの手順は、Railsバージョン7以降ではテストされていません。

ネーミング・メトリクス

メトリクス名は、New Relic が追跡する特定のデータ値を識別します。New Relic Ruby エージェントの API を使用してカスタムメトリクスを追跡する際には、メトリクスのネーミングと値の集計方法を考慮することが重要です。

カスタムメトリック名は、プレフィックスCustom/ 、クラスまたはカテゴリ名、およびラベルで構成され、それぞれスラッシュマーク/Custom/<class>/<method>またはCustom/<category>/<name> (たとえば、 Custom/MyClass/My_method )で区切られます。

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

メトリックデータを記録するためのパブリックAPIは、 NewRelic::Agentrecord_metric 、およびincrement_metricの2つのメソッドで構成されています。

ヒント

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(メトリック名, 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

データが時間とともにどのように集約されていくかについては、 Stat aggregation policy を参照してください。

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

これらのカスタムメトリクスを表示するには、 クエリビルダ を使用してメトリクスを検索し、カスタマイズ可能なチャートを作成し、そのチャートをダッシュボードに追加します。

Copyright © 2022 New Relic株式会社。