ノートブック変数を使用すると、クエリブロック全体で複数のクエリにカスケードする動的パラメーターを設定できます。静的なビューをフィルタリングするダッシュボードテンプレート変数とは異なり、ノートブック変数は、ドキュメント全体の基盤となるロジックを駆動する挿入されたパラメーターとして機能します。
one.newrelic.com > All capabilities > Notebooksに移動します。
ノートブックで変数を使用する理由
ノートブックの変数を使用すると、次のようなインタラクティブなエクスペリエンスを構築できます:
- エンジニアが特定の
hostNameまたはtransactionIdを入力して、ターゲットのシステムヘルスレポートを即座に生成するパラメータ化されたランブック。 - インシデントを分析するために特定のタイムスタンプ、リージョン、またはアプリケーション名で更新できるポストモーテムテンプレート。
- ユーザーが
errorThresholdやlatencyTargetなどの変数を微調整して、さまざまなパラメーターが視覚化されたデータにどのように影響するかを確認できるインタラクティブな閾値。
主な利点は次のとおりです。
- 実行可能なランブックの作成: 変数を使用すると、ノートブックは静的なページからインタラクティブなツールに変わります。集計イベントの調査、パフォーマンス分析、およびチームのコラボレーションのための、適応性の高いワークフローを構築できます。
- ナレッジ共有の標準化: 保存されたドキュメントとして、分析ワークフローを同僚と共有できます。ユーザーは複雑なNRQLクエリを書き直す必要はありません — 事前定義された変数から新しい変数値に変更して、ワークフローを実行するだけです。
ノートブック変数を定義する
データ取得と視覚化をパラメーター化するために、NRQLクエリブロックに挿入する変数を定義します。
変数を定義するには:
- 開いているノートブックで、インターフェイスの上部にある変数バーを見つけます。
- + Add variableをクリックします。
- 変数のタイプ(テキスト入力、ドロップダウン、数値など)を設定し、デフォルト値を指定します。
変数の命名規則
変数の名前を付けるときは、次の点に注意してください:
- 名前は、ノートブックブロックで使用する、
{{...}}で囲まれた正確な文字列です。たとえば、変数の名前をtargetAppにした場合、クエリブロックでは{{targetApp}}として参照します。 - 変数名は大文字と小文字が区別され、ノートブック内で一意である必要があります。
- 他のユーザーにとってランブックが一目でわかるように、分かりやすい名前を選択してください(たとえば、
var1ではなくfailingHost)。
クエリブロックで変数を使用する
定義したら、{{variableName}}構文を使用して、NRQLクエリ内の任意の場所で変数を参照します:
SELECT average(cpuPercent) FROM SystemSample WHERE hostname = {{failingHost}} TIMESERIESSELECT latest(cpuPercent) FROM ProcessSample WHERE hostname = {{failingHost}} FACET processDisplayNameクエリを実行すると、変数バーで設定した変数値が実行時にクエリに代入されます。変数の値を変更してクエリを再実行すると、その変数を参照するすべてのブロックが即座に更新されます。
ランブックでインシデント対応を自動化する
ノートブック変数の最も強力なアプリケーションは、インシデント対応のための実行可能なランブックを作成することです。ノートブック変数をNew Relicワークフローと組み合わせることで、集計のトリガーから調査開始までの引き継ぎを自動化できます。
ランブックを構造化する
適切に構造化されたパラメータ化されたランブックは、通常、次のパターンに従います:
ブロック | タイプ | 目的 |
|---|---|---|
1 | マークダウン | ランブックの使用方法とサービスのアーキテクチャコンテキストに関する手順 |
2 | NRQL | 挿入された変数を使用した高レベルのシステムチェック — 例:
|
3 | マークダウン | 条件付きガイダンス — 例:「上のチャートでCPU>90%が示されている場合は、次のクエリを実行して上位のプロセスを特定します。」 |
4 | NRQL | より詳細な調査クエリ — たとえば:
|
次は何ですか?
- ノートブック機能の概要については、ノートブックの使用を開始するを参照してください。
- クエリブロックとテキストブロックの詳細については、ノートブックのブロックを参照してください
- ノートブックをプログラムで管理するためのノートブック向けBlob Storage API
- 同等のダッシュボード機能については、テンプレート変数:ダッシュボードを動的にフィルタリングするを参照してください。