サポート対象のPromQL機能

New RelicはPromQLスタイルのクエリをサポートしています。また、クエリビルダーは、PromQL構文クエリを最も近似したNRQLクエリに変換するPromQLスタイルのクエリモードを備えています。Although the method of approximation means that a handful of edge cases are not fully supported, it provides coverage for an overwhelming majority of queries, supporting over 99.5% of queries across the 7.8 million top Grafana dashboard downloads.

PromQLクエリの使用方法、および標準の PromQL と PromQL に類似したクエリ言語の違いについて学習してください。

Prometheusのクエリと演算子についての一般的な情報に関しては、Prometheus.ioドキュメントをご覧ください。

サポートされている機能

当社は、次の集計/算術/数学/率様関数をサポートしています。PrometheusとPromQLのサポートを引き続き拡張する中で、リストは更新されます。

集計演算子と関数
算術バイナリー演算子
論理演算子
日付/時間関数
数学関数
率様関数
予測関数
時系列セレクター

当社は、次のものを含むPromQL時系列セレクターをサポートしています。

クエリのすべてのベクターのオフセット値が同じ場合、当社はオフセットクエリしかサポートしません。

PromQLのトラブルシューティング

このセクションでは、PromQLとPromQLスタイルクエリの動作の違いと、この違いにどのように対処するかについて説明します。This is particularly relevant if you want to use advanced queries and our PromQL-style mode in the query builder.

メトリックのタイプ

Prometheusの推奨では、ゲージではdelta()のような関数のみを、またカウンターではrate()やincrease()などその他の関数のみを使用するよう指摘していますが、Prometheusでのクエリは、この指示に従わなくても大半の場合に機能します。

ただし、NRDBはPromQLスタイルの集計カウンターをdeltaカウンターに変換するため、当社の実装では間違ったデータタイプでこうした関数を使用できず、異なる/正しくない答えが生じます。

このため、PromQLスタイルのクエリで作業を行う場合、Prometheusのこうした推奨に従わない場合でも、すべてのPrometheusの推奨に従うようにしてください。

制限

  • すべてのユーザーについてシステムの安定性とパフォーマンスを確保するため、当社はどのクエリを実行できるかについて制限を設けています。すべての場合で、範囲クエリで366段階の制限を施行します。また、デフォルトで、クエリから100の時系列のみを返すようになっています。
  • 数を増やす(または減らす)場合、クエリに明示的にtopk() を追加する必要があります。(PromQLスタイルのクエリでのtopk()実装は、Prometheusの実装とは異なることにご注意ください。)
  • 当社では、クエリが使用できる合計メモリを制限しています。つまり、多数の時間ステップや多数の時系列のリクエストは、特に、単純な算術集計より計算に非常に多くのメモリを必要とする一意のcountquantileのような集計と組み合わされる場合に、却下される場合があります。

Range vectorセレクター(スライディングウィンドウおよび平滑化動作)

We provide support for sliding window timeseries aggregations. For more information, see our NRQL syntax, clauses, and functions resource and our sliding windows deep dive.

For information on translating between NRQL and our PromQL-style language, see Translate PromQL queries to NRQL.

Query range and data scraping intervals

  • The range of your query in PromQL must be larger than the duration of the step size of the query to avoid the error "TIMESERIES bucket size is larger than the current time window".
  • We inspect data up to one minute old when servicing instant queries. If your scrape interval is greater than 1 minute, some queries may result in No data found. Avoid this by sending data at least once per minute.
  • If the timeseries unit for your NRQL query is less than the scrape interval for your application, some periods will lack data, and the resulting graph may be jagged or contain peaks and valleys. In general, set the step size to your scrape interval, or higher.

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください: