マクロを作成する前に、マクロの権限と以下の命名規則および式規則を確認してください。これらの規則に従わないマクロは、保存しようとしたときに検証に失敗します。
マクロのルールと制限事項
重要
マクロは、組織内のすべてのユーザーに表示されます。マクロを作成または更新する際は、機密情報やアカウント固有の情報を含めないでください。
アクセスマクロ
New Relicプラットフォームで、Administration > NRQL Macrosに移動します。このページから、マクロを表示、作成、編集、削除できます。
マクロの作成
NerdGraph APIを使用して、プログラムでマクロを作成、更新、クエリすることもできます。マクロを作成または更新する前に、命名規則、式規則、および制限事項を確認してください。
始めるには、NerdGraph APIエクスプローラーにアクセスしてください。NerdGraph APIエクスプローラーの使用についてサポートが必要な場合は、NerdGraph APIエクスプローラーのチュートリアルを参照してください。
entityManagementCreateNrqlMacroミューテーションを使用します:
mutation CreateMacro($name: String!, $expression: String!, $orgId: ID!) { entityManagementCreateNrqlMacro( nrqlMacroEntity: { expression: $expression name: $name scope: { type: ORGANIZATION, id: $orgId } } ) { entity { id name expression } }}変数の例:
{ "name": "prod_filter", "expression": "(appName = 'ProductionApp' AND environment = 'prod')", "orgId": "your-organization-id"}組織IDを確認するには、組織またはマクロIDの確認を参照してください。
クエリでマクロを使用する
NRQLクエリでマクロを使用するには、クエリビルダーで$に続けてマクロ名を入力します。たとえば、式がappName = 'ProductionApp' AND environment = 'prod'のprod_filterという名前のマクロがあるとします。次のようなクエリで使用できます:
SELECT count(*) FROM Transaction WHERE $prod_filter SINCE 1 hour agoクエリが実行されると、New Relicはマクロをその式に置き換えます:
SELECT count(*) FROM Transaction WHERE appName = 'ProductionApp' AND environment = 'prod' SINCE 1 hour agoヒント
クエリ実行時に、特殊文字を含むマクロ名をバッククォートで囲んでください。例:$`my#Macro`。
重要
マクロは実行前にインライン展開されるため、二項演算子の優先順位に影響を与えます。たとえば、1 + 4 として定義され、$five * 3 として使用される five という名前のマクロは、式が 1 + 4 * 3 になるため、15 ではなく 13 と評価されます。これを回避するには、(1 + 4) のようにマクロを定義する際に式を括弧で囲むか、($five) * 3 のようにマクロを使用する際にマクロを括弧で囲みます。どちらの方法でも、正しく 15 と評価されます。
次の例は、一般的なクエリの問題を解決するマクロを示しています:
マクロを管理する
マクロを編集する
NRQL Macrosページからマクロを選択し、式のルールに従って式を更新します。
NerdGraphを使用して、プログラムでマクロの式を更新することもできます。更新する前に、式のルールを確認してください。
entityManagementUpdateNrqlMacroミューテーションを使用します。
mutation UpdateMacro($expression: String!, $macroId: ID!) { entityManagementUpdateNrqlMacro( id: $macroId nrqlMacroEntity: { expression: $expression } ) { entity { id name expression } }}変数の例:
{ "expression": "(appName = 'ProductionApp' AND environment = 'prod' AND region = 'us-east-1')", "macroId": "your-macro-id"}マクロのIDを確認するには、組織またはマクロのIDを確認するを参照してください。
重要
マクロを編集すると、そのマクロを使用しているすべてのクエリに更新されたバージョンが自動的に適用されます。既存のクエリに問題が発生しないよう、変更内容を確認してください。キャッシュにより、更新が反映されるまでに少し時間がかかる場合があります。作成後にマクロ名を更新することはできません。名前を変更する必要がある場合は、マクロを削除して新しいマクロを作成してください。