New Relic Now Start training on Intelligent Observability February 25th.
Save your seat.

NewRelicのAPIとして、NerdGraph APIがあります。こちらをGUIから簡単に利用していただくためのツールとしてNerdGraph API Explorerというツールがあります。本ブログではこのツールをより活用していただくためのTipsをいくつか紹介します。

なお、基本的な使い方に関しては、こちらをご参照ください。

文字列のエスケープ

例えば設定したい文字列にダブルクォーテーション(")が含まれていて、そういった文字はどうエスケープすればよいのか?とわからない場合があります。

基本的には、左側の入力欄に直接対象の文字列を入れて頂ければ、真ん中のコマンドが記載されているエスケープされた状態で反映されます。なので、値を左側に直接入れて頂ければ、気にする必要はありません。
 

タブに名前をつける

NerdGraph API Explorerを開くと、コマンド欄上部に<untitled>と表示され、変更できないのか?と気になっている人もいると思われます。こちらは、queryやmutationの右側にある「queryName」や「mutationName」に任意の名前をつけることで反映されるようになります。なお、こちらに関しては、英数のみしか利用できないようです。

各パラメータの意味を調べる(辞書を使う)

左側に表示される各パラメータに関して、皆さん、名前からだいたいを想像して利用されているかと思います。こちらの定義を調べたい場合、辞書が利用いただけます。対象の名前にマウスオーバーしていただくと右側に虫眼鏡アイコンが現れます。

こちらの虫眼鏡をクリックしていただくと、以下のように説明や値のタイプについての説明を確認していただくことができます。

なお、元の表示に戻りたい場合は、左側の虫眼鏡アイコンをクリックするともとに戻ります。

Tools

画面上部のToolsのメニューを開くとCopy as CURLCopy as New Relic CLIが表示されます。CURLやCLIを使う場合のコマンドをコピーしていただけます。スクリプト化する際などに、Explorerでコマンドを組み立てて、上記メニューからコピーしたコマンドを流用していただくと記載ミスの可能性が減るかと思われます。

履歴/お気に入り

左メニューの虫眼鏡のすぐ上の時計のようなアイコンをクリックしていただくと履歴が表示されます。名前をつけたり、お気に入りに登録(☆をクリック)していただけるようになっていますので、頻繁に利用されるコマンドは名前をつけてお気に入りに登録されるのがおすすめです。

変数

こちらのユーザ作成のNerdGraphAPIをベースに作成します。

※本日時点で以下のようなコマンドが記載されています。

 

mutation {
  userManagementCreateUser(
    createUserOptions: {
      authenticationDomainId: "YOUR_AUTH_DOMAIN_ID"
      email: "EMAIL_OF_YOUR_USER"
      name: "NAME_OF_YOUR_USER"
      userType: BASIC_USER_TIER
    }
  ) {
    createdUser {
      authenticationDomainId
      email
      id
      name
      type {
        displayName
        id
      }
    }
  }
}

変数として抽出するのは、ユーザ名メールアドレスユーザタイプの3つにします。変数とする対象が決まったら、まず、調べる必要があるのが、型の定義になります。例えば、emailの場合、前述の辞書を使って調べることができます。辞書を使って調べると、String!であることがわかります。なお、この場合、最後に「!」がついていることにご注意ください。

変数の定義では厳密にこちらと同じ型を指定しないとエラーになります。同様に全て調べると、以下であることがわかると思います。

変数名型定義
変数名email型定義String!
変数名name型定義String!
変数名userType型定義UserManagementRequestedTierName

また、UserManagementRequestedTierNameに関しては、辞書でさらにクリックしていただくと、Enumで以下の3種類の値が利用可能であることがわかります。

  • BASIC_USER_TIER
  • CORE_USER_TIER
  • FULL_USER_TIER
     

各型の定義がわかったので、実際に変更していきます。変数を利用する場合、以下の3箇所が必要となります。

  • クエリーでの変数の定義
  • クエリーでの変数の利用
  • 変数の値の定義

変数の定義

先に記載したコマンドの先頭の3行を確認すると、以下のようになっています。
 

mutation {
  userManagementCreateUser(
    createUserOptions: {

このmutation{の間に()を入れて変数を定義します。具体的には、以下のようになります。

mutation ($name: String!, $email: String!, $userType: UserManagementRequestedTierName) {
  userManagementCreateUser(
    createUserOptions: {

比較していただくとすぐに分かると思いますが、「$変数名: 型名」という形式でカンマ(,)区切りで追加されています。

変数の利用

また、利用箇所に関しては、以下のように$で始まる変数名を設定するのみとなります。

    createUserOptions: {
      authenticationDomainId: "YOUR_AUTH_DOMAIN_ID"
      email: $email
      name: $name
      userType: $userType
    }

最後に変数の値の定義です。Variablesの箇所にJSONフォーマットで以下のように記載してください。

{
  "name": "test-user",
  "email": "mail@domain.com",
  "userType": "BASIC_USER_TIER"
}

そうすると、variablesで指定した値が変数に設定され、利用されます。全体像のスクリーンショットは、以下のようになります。

また、変数にデフォルト値を設定することもできます。以下のように対象の変数の型定義の後ろに = を使ってデフォルト値を設定することで、variablesでの値の定義を省略していただくこともできます。

mutation ($name: String!, $email: String!, $userType: UserManagementRequestedTierName = BASIC_USER_TIER) {

ぜひ、これらのTipsを活用して業務の効率化などの役に立ててください。