New RelicのData Plusオプションは、業界をリードするセキュリティ、スケーラビリティ、およびパフォーマンスを組み合わせることにより、成熟したエンジニアリングチームのニーズに応える機能を、シンプルな料金体系で提供します。このオプションには、データの長期保存、ログの難読化設定のカスタマイズ、 FedRAMP対応などの機能が含まれています。
また、通常のデータオプションで提供されているクエリ時間は1分ですが、Data Plusでは更に長い時間のクエリが実行できるようになります。Data Plusにおけるクエリの最大実行時間は以下の通りです。
- NerdGraph API経由で実行するNRQLクエリ:最大10分間
- NRQL Query Builderを使用した標準のNRQLクエリ:最大2分間
Data PlusでNRQLのメリットを最大化する
ビジネスの成長、システムの複雑化にあわせて、蓄積されるデータセットも増加していきます。NRQL (New Relic Query Language) を使用すると、技術スタック全体に渡る大規模なデータセットから、必要なデータを効果的に検索・収集することができます。また、カスタムダッシュボードやアラートの作成にNRQLを活用すると、ビジネスにおける重要な指標に、迅速かつリアルタイムにアクセスすることが可能です。
Data Plusでは、通常より長い時間のクエリ実行がサポートされるため、リクエストのタイムアウトを発生させることなく、より確実に大量のデータセットの検索結果を得ることが可能となります。また、クエリ実行時間の制約に伴う平均検出時間(MTTD)の増加や、クエリのタイムアウトによってデータの可視性が低下するといった問題を未然に回避することができます。
NerdGraphを使用して、より長時間のクエリを実行する方法については、次の動画でも解説しておりますので、是非ご覧ください。
NerdGraphにおけるクエリ時間の可視化
ここからは、NerdGraph APIを通じた操作について触れていきます。NerdGraph API Explorerのご利用にあたっては、New Relic APIキーとそのIDを取得する必要があります。これを実行するクエリは以下のようになります。初めての方は、チュートリアルも併せてご参照ください。
{
actor {
user {
name
id
}
}
}
同期型のクエリは、今回の例で実行したような小規模なクエリや、データポイントの探索範囲が限定された多くのクエリに適しています。しかし、大量かつ複雑なデータセットに対してクエリする場合には、1分というNRQLの実行時間では不十分なケースも考えられます。次の例では、NerdGraphでNRQLクエリを使用して、2か月前まで遡ってトランザクションの総数を調査する場合について説明します。
{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT count(*) FROM Transaction since 2 months ago") {
results
}
}
}
}
上のクエリでは2か月前のデータを引き出すことができなかったとします。これがタイムアウトに起因するものであった場合には、NRDB query duration exceeded the set timeout(NRDBクエリ時間が設定されたタイムアウトを超過しました)
というメッセージが表示されます。
Data Plusで実行時間の長いクエリを使用する方法
Data Plusオプションの利点を活かし、最大10分間に渡るクエリを実行するには、NerdGraphと呼んでいるNew RelicのGraphQL APIインターフェースを使用します。
{ actor { account(id: 1) { nrql(query: "SELECT count(*) FROM Transaction since 2 months ago, async: true) { results queryProgress { queryId resultExpiration retryAfter retryDeadline } } } }}
NRQLクエリ実行時のパラメータにasync: trueを追加することで、バックグラウンドで非同期的にクエリを実行することができます。クエリ実行時にレスポンスとして返されるqueryIdは、後からクエリ実行結果を参照するために必要となりますので、コピー&ペーストするなどして控えておいてください。
クエリ実行結果を取得するには、控えておいたqueryIdを使用して、以下のコマンドを使用します。
{ actor { nrqlQueryProgress(accounts: YOUR_ACCOUNT_ID, queryID: “YOUR_QUERY_ID” results } }}
このように、NerdGraphクエリを利用すれば、ブラウザのタイムアウトやHTTP接続エラーによってクエリが中断されてしまうリスクを軽減することができます。また、クエリの結果を後で取得したり、クエリが結果またはエラーを返すまで繰り返すことも可能です。
次のステップ
- Data Plusの価格モデルにアップグレードすることをご検討ください。
- NerdGraphのサンプルや、NRQLを使用したクエリの実行方法もご参照ください。
- New Relicをまだ使用していない方は、アカウントに無料で登録できます。毎月100GBの無料データ取込み、1名の無料フルアクセスユーザー、および無制限の無料ベーシックユーザー権限を使用できます。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。