NRQLはNewrRelicで収集しているデータの分析やアラートの設定に用いるデータ参照に使われるもので、

クエリ言語なので初見ではちょっと理解が難しいところもあると思います。

NRQLの初歩的な理解を深めてみようと思います。

 

まずは触れてみる

NRQLを試す際に便利なのがこの「クエリビルダー」の画面です。

試しに

SELECT * FROM SystemSample

と入力してRunしてみます。

 

 

たくさん情報が取れてきました。

取得したのはSystemSampleのデータで、

元データはサーバにインストールしたNewRelicエージェントからNewRelicへ送られてきたものです。

そのデータをNewRelicのDBから取得してきた形です。

今のNRQLでは2つの句「SELECT句」と「FROM句」を使ってクエリを実行しました。

雑に簡単に説明するとSELECT句は「取ってくるデータの項目」で、FROM句は「どこのデータから取ってくるか」を指定しています。

 

実はSELECT句は単体でも使えるので、FROM句で必ず「どこからデータを取ってくるか」を指定する必要はなくてこんなこともできます。

難しい計算をしないといけないけど手元にNRQLしか無いときにも使えますね(?)

 

これらを組み合わせると

単純にデータを取ってくる以外にも使えることがわかりましたがこれらを組み合わせることで取ってくるデータの加工ができます。

round()は一番近い整数に丸める関数です。試したクエリは「Cpu」列が生のCPU使用率、「Uso Cpu」列がCPU使用率に80(特に意味はない)を足したものです。

これではただCPU使用率をかさ増ししてるだけでなんの使い道もありませんが、

実際には2つのメトリクスの値を合算して表示したり、%で取得できない実測値のデータを%に加工したりすることができます。

 

これ以外にも通常計算式で使われるような計算は可能ですし、まだまだNRQLで使える関数(上で使っているconcat()やround()などのデータの加工や集計ができるもの)はたくさんあるので

その辺りは公式のリファレンスを見てみてください。

https://docs.newrelic.com/jp/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-syntax-clauses-functions/

 

NRQLはNewRelicに収集されているデータを様々な形で取得してくるだけなので実データに影響を与えません。

ぜひクエリビルダーを使って色々とどういったデータが取れるのか、どんな取り方ができるのか試してみてください。