• ログイン

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

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

問題を作成する

PromQLのクエリをNRQLに変換

NRQL に変換したい PromQL クエリはありますか?このドキュメントでは、いくつかの一般的なPromQLクエリをNRQLクエリに変換する方法を示す例を提供しています。PromQL スタイルのクエリ言語を使用して、Prometheus OpenMetrics 統合データと New Relic に送信される他のデータを調査することができます。

ヒント

New Relic One で PromQL スタイルのクエリを実行するには、 クエリビルダーのアドバンスド PromQL スタイルモード にアクセスしてください。

PrometheusとNew Relicのメトリックタイプ

PrometheusとNew Relicがサポートする異なるメトリックタイプは、互いに関連しています。

ニューレリック

Prometheus

説明

Count

カウンター

Prometheusのカウンターは累積値であるのに対し、New Relicのカウンターはデルタ値である。

たとえば、第1報告期間に2件のリクエストがあり、第2報告期間に3件のリクエストがあったとします。Prometheus のカウンターでは 2 件、その後 5 件、New Relic のカウンターでは 2 件、その後 3 件と報告されます。

ゲージ

ゲージ

Prometheus のゲージは、New Relic のゲージに似ています。

複数のカウント

ヒストグラム

Prometheusでは、ヒストグラムを自動的にカウンターのセットにマッピングします。New Relicでは、これらのカウンターをデルタに変更し、カウントとして報告します。

ゲージとカウント

概要

Prometheusは、与えられた basename を持つSummaryを以下の時系列で表します。

  • a basename_sum

  • a basename_count

  • および basename{quantile=".xx"...} metrics の 0 以上。

    New Relicでは、 _sum をSummaryとして、 _count をCounterとして、各分位メトリクスをGaugeとしてマッピングしています。

概要

(プロメテウスには該当なし)。

New Relic には、Prometheus のサマリーとは異なる、サマリーと呼ばれるメトリックタイプがあります。これは、集計された個別のイベントを報告するために設計されており、カウント、サム、ミニ、マックス、アベレージの値を照会することができます。

PromQLクエリからNew Relicで使用できるNRQLアラート条件に変換する方法については、こちらのショートビデオ(約5分45秒)をご覧ください。

NRQLとPromQLスタイルのクエリのマッピング

ヒント

New Relic が PromQL スタイルのクエリを NRQL に変換する様子を見るには、 クエリビルダーの PromQL スタイルタブ でクエリを書き、 NRQL タブ に切り替えます。

この表は、データを探索する際のNRQLと当社のPromQLスタイルのクエリのマッピングを示しています。より詳細なコンテキスト情報については、 を参照してください。

説明

NRQLとPromQLスタイルのクエリのマッピング

属性を検索します。

container_memory_usage_bytes メトリックの属性を調べます。

  • プロムQL。

    container_memory_usage_bytes
  • NRQL。

    FROM Metric SELECT keyset() WHERE metricName = 'container_memory_usage_bytes'

属性の値を検索します。

container_memory_usage_bytes metric for unique id attributes の現在の値を調べる。

  • プロムQL。

    sum(container_memory_usage_bytes) by (id)
  • NRQL。

    FROM Metric SELECT latest(container_memory_usage_bytes) FACET id

属性の値を可視化する。

container_memory_usage_bytes メトリックの値を、与えられた id 属性値でグラフ化します。

  • プロムQL。

    container_memory_usage_bytes{id="/"}
  • NRQL。

    FROM Metric SELECT latest(container_memory_usage_bytes) WHERE id = '/' TIMESERIES

フィルターの例

PromQLスタイルのクエリ言語とNRQLは、ユニークなメトリック時系列の数を絞り込むための構文を提供します。

  • PromQL-styleでは、括弧を使ってフィルタリングを行います。
  • NRQLでは、 WHERE 句を使用します。

以下に、クエリの例を示します。

説明

PromQLスタイルとNRQLクエリ

特定の値を持つデータを選択する。

  • プロムQL。

    go_memstats_heap_alloc_bytes{job="apiserver", instance="1234"})
  • NRQL。

    NRQL で特定の値を持つデータのみを選択するには、 WHERE 句を = で使用します。この例では、すべてのデータが job および handler の選択された値を持つ必要があります。

    FROM Metric SELECT latest(go_memstats_heap_alloc_bytes) WHERE job = 'apiserver' AND instance = '1234' TIMESERIES

複数の値を持つデータを選択します。

  • プロムQL。

    go_memstats_heap_alloc_bytes{environment=~"staging|testing|development",method!="GET"}
  • NRQL。

    NRQL では、属性の複数の値を選択するために in 節を使用し、リストされたもの以外のすべての値を選択するために != 記号を使用します。この例では、環境は stagingtestingdevelopment 、メソッドは GET とすることはできません。

    FROM Metric SELECT latest(go_memstats_heap_alloc_bytes) WHERE environment IN ('staging', 'testing', 'development') AND method != 'GET' TIMESERIES

部分的な文字列の値を使ってデータを選択します。

  • プロムQL。

    go_memstats_heap_alloc_bytes{job=~"api.*"}
  • NRQL。

    NRQL では、 LIKE 句を使用して、文字列値の一部にマッチさせます。この例では、ジョブの属性が api で始まるすべてのデータが返されます。

    FROM Metric SELECT latest(go_memstats_heap_alloc_bytes) WHEREe job LIKE 'api%' TIMESERIES

PromQLスタイルからNRQLクエリの例

以下のPromQLスタイルのクエリを、NRQLクエリでシミュレートすることができます。

説明

PromQLスタイルとNRQLクエリ

http_request_total メトリックの直近1分間の1秒あたりの割合を測定します。

  • プロムQL。

    sum(rate(http_requests_total[1m]))
  • NRQL。

    FROM Metric SELECT rate(sum(http_request_total), 1 second) TIMESERIES 1 minute

2つの指標の差をグラフにして、1024で割ります。

  • プロムQL。

    (instance_memory_limit_bytes - instance_memory_usage_bytes) / 1024
  • NRQL。

    FROM Metric SELECT (latest(instance_memory_limit_bytes) - latest(instance_memory_usage_bytes)) / 1024 TIMESERIES

各ハンドラーの30秒毎の合計レートを記入してください。

  • プロムQL。

    sum(rate(http_requests_total[30s])) by (handler)
  • NRQL。

    FROM Metric SELECT rate(sum(http_requests_total), 30 seconds) FACET handler TIMESERIES

インスタンスの名前が foo で、 fstypeext4 または xfs の場合の2つのメトリクスの違いを示しています。

  • プロムQL。

    (node_filesystem_free_bytes{instance='foo',fstype=~"ext4|xfs"} / node_filesystem_size_bytes{instance='foo',fstype=~"ext4|xfs"})
  • NRQL。

    FROM Metric SELECT latest(node_filesystem_free_bytes) / latest(node_filesystem_size_bytes) WHERE instance = 'foo' AND fstype IN ('ext4', 'xfs')
Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.