【New Relic】自然言語でNRQLが生成できるようになったので試してみた

記事タイトルとURLをコピーする

こんにちはマネージドサービス部 大城です

先日、Xを眺めていたら New Relic Japanさんのポストをみつけました。面白そうなのでNew Relicの個人アカウントでやってみました。

NRQLとは

New Relic Query Language の略です。通用「ぬるくる」と呼ばれています。SQLライクにNew Relicのデータを可視化するときに使います。詳しくは公式ドキュメントをご参照ください。

docs.newrelic.com

準備

AIの利用をスタートするため、画面右上の「Ask AI」->「Get started」をクリックします

準備1

ついでに「Query Your Data」->「Try it out」をクリックして新しいクエリ画面にしておきます

準備2

使い方

シンプルな使い方で下のとおりです。試してみたところ日本語もOKでした。

  • 自然言語を書く
  • NRQLが表示される
  • Runをクリックする
  • 結果を確認する

Query Your Data

やってみた

PHPのサンプルアプリケーションにAPMを入れて、負荷をかけた後、いくつか自然言語を入れて試してみました。

1ヶ月間で発生したアラートをコンディションごとに集計してください。

生成されたNRQL

SELECT count(*) FROM NrAiIncident WHERE event = 'open' SINCE 1 month ago FACET conditionName

Low Application Throughput、High CPU、High Application Response Time のアラートが数件発生していることが分かります

コンディションごとに集計

1ヶ月間で発生したアラートをコンディションごとに集計してください。発生した時間も知りたいです

生成されたNRQL

SELECT count(*) FROM NrAiIncident WHERE event = 'open' FACET conditionName TIMESERIES SINCE 1 month ago

時系列でアラートの推移を確認することができます

アラートを時系列で表示

リクエストが多いトランザクションのtop10を出してください

生成されたNRQL

SELECT count(*) FROM Transaction FACET name SINCE 1 hour ago LIMIT 10

*.js *.png などの静的ファイルがほとんどであることが分かります。生成されたNRQLを修正して静的ファイルを除外して確認することもできます。

リクエストが多いトランザクションtop10

エラーが出ているトランザクションを時系列で名前毎に集計してください

生成されたNRQL

SELECT count(*) FROM TransactionError WHERE `error.message` IS NOT NULL FACET `transactionName` TIMESERIES SINCE 1 hour ago

WebTransaction/Action/product_add_cart が1分に1回程度エラーになっていることが分かります。

エラーが発生しているトランザクションを集計

遅いトランザクションのtop10を集計してください

生成されたNRQL

SELECT average(duration) FROM Transaction SINCE 1 hour ago FACET name LIMIT 10

WebTransaction/Action/admin_homepage の平均処理時間が0.97秒かかっており、遅いことが分かります。

遅いトランザクションtop10

最後に

ここまで読んでいただきありがとうございます。この記事が誰かの役に立ったら幸いです。

「Query Your Data」の画面は以前から補完機能がついていて便利だなーと思っていましたが、今回の機能でさらに便利になりましたね。ぜひ試してみてください。

大城 慶明 (記事一覧)

マネージドサービス部

2022年10月サーバーワークスに入社、沖縄からリモート勤務。AWSを勉強中。沖縄では大城が多いので「よっさん」と呼ばれています。AWS12冠。NRUG沖縄支部運営。X @yo_ohshiro