メトリクスがメトリクス API  (その API を使用する統合からのものを含む) を介して New Relic に報告されると、データはMetricデータ型 として報告され、クエリに使用できます。
このドキュメントでは、次のことを説明しています。
APMメトリクスのタイムスライスデータの照会  APMでは、メトリックタイムスライスデータと呼ばれる特定のタイプのデータを報告しています。このデータを照会する方法については、 Query metric timeslice data  を参照してください。
重要 タイムスライスメトリックをディメンションメトリックまたはイベントデータと組み合わせてクエリすることはできません。 newrelic.timeslice.valueまたはapm.*メトリックを含むクエリは、APMメトリックのみを返すことができます。
他のタイプのメトリクスについては、 Metric data types  を参照してください。
メトリクスの表示と照会  NRQL を使用して、クエリビルダー またはNerdGraphAPI を使用してメトリックデータをクエリできます。
メトリックをクエリするには、次のクエリ形式を使用できます。
FROM  Metric  SELECT   function ( metric_name )   WHERE  attribute = value  FACET attribute TIMESERIES 
どのメトリック データ型に対してどの関数がサポートされているかについては、「メトリック データ構造 」を参照してください。
グラフ化するメトリックの名前を、適切な値関数を使用してSELECT句に追加します。 WHERE 句とFACET句は、属性値とともに使用できます。データをグラフ化する場合は、キーワードTIMESERIESを含めることを忘れないでください。
この例は、クラスターfooのCPU使用率を秒単位でグラフ化する方法を示しています。このクエリは、属性containerNameおよびclusterNameを持つcontainer_cpu_usage_seconds_totalという名前のcountメトリックが与えられた場合に、コンテナごとにCPU使用率を分類します。
FROM  Metric  SELECT   sum ( container_cpu_usage_seconds_total )   
WHERE  clusterName  =   'foo'   
1分ごとのCPU使用率(変化率)を知りたい場合は、上記のクエリにrate関数を追加します。
FROM  Metric  SELECT  rate ( sum ( container_cpu_usage_seconds_total ) ,   1   minute )   
WHERE  clusterName  =   'foo'   
メトリクスクエリの例を見る  前述の例では、メトリック・クエリの基本的な形式を示しましたが、NRQLはメトリック・データのチャート化、探索、分析にも使用できます。
複数の指標を表示 SELECT句にコンマで区切られたメトリックのリストを指定して、単一のクエリを使用して複数のメトリックをグラフ化します。たとえば、コンテナのメモリ使用量とメモリ制限メトリックをグラフ化するには、次のクエリを使用します。
SELECT  latest ( container_memory_usage_bytes ) ,  latest ( container_spec_memory_limit_bytes )   
WHERE  containerName  =   'inventory'   
以下に説明するように、 ワイルドカード  を使って行うこともできます。
メートル法のデータを使った数学的演算 1つまたは複数のメトリクスに対して数学的な演算を行い、新しい派生メトリクスを計算します。利用可能なメモリを監視するには、前述の例で使用した2つのメトリクスから利用可能なメモリの割合を計算します。
SELECT   ( latest ( container_spec_memory_limit_bytes )   -  latest ( container_memory_usage_bytes ) )   
   /  latest ( container_spec_memory_limit_bytes )   
WHERE  containerName  =   'inventory'   
以下に説明するように、 ワイルドカード  を使って行うこともできます。
フィルターを使って特定の時系列を選択 SELECTのすべてに適用されるWHERE句を使用することに加えて、NRQLは、グラフ化または操作する特定の時系列を選択するために使用できるfilterと呼ばれる別の集計関数を提供します。
次の例は、ポッド内の2つの特定のコンテナのメモリ使用量を合計することによって計算される"Total (k8s)"というラベルの付いたメモリ使用量メトリックを示しています。
  latest ( container_memory_usage_bytes ) ,   
   WHERE  containerName  =   'discovery' )   
  latest ( container_memory_usage_bytes ) ,   
   WHERE  containerName  =   'my-proxy' )   
WHERE  clusterName  =   'my-cluster'   AND  podName  LIKE   'my-pilot-%'   
メトリックの生データポイントを表示 FROM Metricを使用してメトリックデータをクエリする場合、New Relicは、クエリウィンドウの長さとTIMESERIESキーワードの引数として指定されたバケットサイズに応じて、クエリで使用する特定の集計を自動的に選択します。これにより、効率的なクエリとチャートの解決が保証されます。この動作をオーバーライドして生のメトリックデータポイントを表示または操作する場合は、クエリでオプションのRAWキーワードを使用します。
これらの生のメトリックデータポイントにクエリを実行する場合、クエリのタイムウィンドウは48時間に制限されています。48時間を超える生のメトリックデータにアクセスしようとするクエリは、クエリエラーになります。
この例では、特定のメトリックについて受信した直近の20個のデータポイントをリストアップする方法を示します。
FROM  Metric  SELECT   *   WHERE  metricName  =   'container_fs_usage_bytes'   LIMIT   20  RAW 
ワイルドカードを使って複数のメトリクスを検索  ワイルドカードは、NRQLでは%文字で表されます。標準の命名規則を使用する複数のメトリックをクエリする場合は、ワイルドカード機能を使用して、各メトリック名を個別に指定しなくても、すべてのメトリックの結果を返すことができます。
ワイルドカードがあなたをサポートします。
指標を集約し、結果をグラフ化する FACET グラフのメトリック名による結果指定された命名規則に合致するすべてのメトリクスを検索し、チャート化する。 ワイルドカードは、既存の命名規則に一致する新しいメトリックを後で追加する場合に特に役立ちます。クエリで各メトリック名を書き出す代わりに%を使用することで、新しいメトリックを追加するときにクエリを書き直す必要がなくなります。
同様のタスクを実行する複数のアルゴリズムがあるとします。次のようなメトリクスを定義して、異なるアルゴリズムの持続時間を表示することができます。
myNeatProcess.algorithm1.durationmyNeatProcess.algorithm2.durationmyNeatProcess.algorithm3.durationクエリで使用する場合、 myNeatProcess.%.durationは上記の3つのアルゴリズムすべての結果を返します。後でalgorithm4 、 algorithm5 、およびalgorithm6という名前の新しいアルゴリズムを作成すると、同じクエリで6つのアルゴリズムすべての結果が返されます。
ワイルドカードで複数の指標を表示 SELECT句でワイルドカード( % )を使用すると、1つのクエリを使用して複数の指標をグラフ化できます。たとえば、上記の例のすべてのアルゴリズムをクエリし、各アルゴリズムの平均期間についてグラフに線をプロットするには、次のクエリを使用します。
SELECT  average ( myNeatProcess . % . duration )   
FACET metricName TIMESERIES 
ワイルドカードを使用したメートル法データの算術演算 また、ワイルドカードを使って、複数のメトリクスに対して演算を行い、新しいメトリクスを計算することもできます。上の例で挙げたすべてのアルゴリズムの平均継続時間を計算することができます。
SELECT  average ( myNeatProcess . % . duration )   
一つのアルゴリズムが全体のランタイムに占める割合を計算することができます。
SELECT  myNeatProcess . algorithm1 . duration  /   sum ( myNeatProcess . % . duration )   
を使用して個々のフィールドの結果を返します。 getField()  Metricデータには複数のタイプ ( gaugeやcountなど) があり、各タイプには複数の関連するfields があります。 使用可能なフィールドの種類の詳細については、 getField() を参照してください。
これらのフィールドを抽出するには、 getField()を使用できます。 たとえば、 WHERE句で比較を行うために Metrics 内の単一の値を使用する場合は、 getField(metricName, field)または短縮構文metricName[field]を使用できます。
特定のホストに対するすべてのメトリック名をリストアップ メトリックの平均値はcountに対してtotalとして計算されるため、次のクエリはaverage()値関数の結果が2より大きいメトリックデータを返します。
SELECT  average ( apm . service . transaction . duration )   
AND  getField ( apm . service . transaction . duration ,  total )   /  getField ( apm . service . transaction . duration ,  count )   >   2 
または、次の省略形を使用することもできます。
SELECT  average ( apm . service . transaction . duration )   
AND  apm . service . transaction . duration [ total ]   /  apm . service . transaction . duration [ count ]   >   2 
ゲージメトリクスの一覧 この例のクエリは、ゲージメトリクスのリストを返します。
SELECT  uniques ( metricName )   
WHERE  getField ( % ,   type )   =   'gauge' 
または、次の省略形を使用することもできます。
SELECT  uniques ( metricName )   
一致するmetricNameをターゲットにするには、 %ワイルドカードを使用することに注意してください。
メトリクスデータを見る  NRQL keysetおよびuniques関数をmetricName属性(すべてのメトリックで使用可能)と一緒に使用して、アカウントで使用可能なすべてのメトリックを一覧表示したり、特定のメトリックで使用可能な属性を検出したりすることができます。
アカウント内のすべてのメトリック名を一覧表示 FROM  Metric  SELECT  uniques ( metricName ) 
特定のホストに対するすべてのメトリック名をリストアップ FROM  Metric  SELECT  uniques ( metricName )   WHERE  hostname  =   'host1.mycompany.com' 
特定のメトリックの属性キーを表示する FROM  Metric  SELECT  keyset ( )   WHERE  metricName  =  METRIC_NAME