• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

NerdGraphチュートリアル。エンティティデータを見る

NerdGraph を使用すると、監視しているエンティティの詳細を照会することができます。

重要

エンティティのゴールデン・メトリクスとタグを操作するには、ゴールデン・メトリクス API tutorial を参照してください。

エンティティ定義

エンティティ は、New Relic の重要なコンセプトです。私たちは、監視するあらゆるものをエンティティと定義しています。これには以下が含まれます(ただし、これらに限定されません)。

UIでエンティティの詳細を表示するには、 Explorer を使用します。

NerdGraphでエンティティを扱う際には、以下の点に留意する必要があります。

  • ユニークなエンティティGUIDは、エンティティを識別します。
  • 実体は、たとえ短期間であっても、あるスパンで存在します。
  • エンティティは、特定のメトリクスやイベントに関するデータを調査したり、他のエンティティに関連するデータのコンテクストを確認したりするのに便利なエントリーポイントとなります。

エンティティの検索

New Relic は、エンティティの属性(主に名前)を中心に、エンティティの種類やその他の値で検索します。検索では、検索条件に一致するエンティティの基本データが返されます。そして、基本的な検索結果から、特定のエンティティをGUIDで照会することができます。

domainTypeの他に、他の一般的なエンティティ属性は次のとおりです。

  • id
  • accountId
  • name
  • domainId
  • alertSeverity
  • reporting

上記の属性のいずれかでフィルタリングすることができます。さらに、 タグ もフィルタリングに使用できます。

注意

カスタム、ルートレベルのエンティティプロパティではフィルタリングできません。カスタムプロパティは、実際の検索レスポンスにおいて、エンティティのメタデータの一部としてのみ取得されます。カスタムフィールドでフィルタリングするには、そのフィールドをエンティティタグに変換します。

クエリを作成するには、2つの方法があります。

  1. queryBuilder引数を使用して、クエリを作成します。
  2. 自由形式のquery引数を使用して、独自の検索を作成します。

NerdGraphを使って1つまたは複数のエンティティを照会するには、属性またはGUIDで検索することができます。

ヒント

NerdGraphでは、1つのクエリで返すことのできるエンティティの総数を200に設定しています。1つのクエリですべてのエンティティを取得する必要がある場合は、例で説明しているようにカーソルページネーションを使用してください。

以下の例 に加えて、 NerdGraph GraphiQL explorer を使って API を探索し、そのインライン・ドキュメントを活用することを強くお勧めします。

で検索 queryBuilder

queryBuilder引数は、単純なクエリを作成するのに役立ちます。これにより、事前定義された属性のリストとその一般的な値からクエリにフィルターを追加できます。より高度なクエリの場合は、代わりにquery引数を使用してください。

  1. NerdGraphにアクセスする GraphiQL explorer.
  2. 基本的なクエリを実行して、検索条件に一致するエンティティを見つけます。例えば、以下のようになります。
{
      actor {
        entitySearch(queryBuilder: {domain: APM, type: APPLICATION}) {
          query
          results {
            entities {
              name
              entityType
              guid
            }
          }
        }
      }
    }

自由形式で検索 query

これは、より複雑なクエリを作成するのに便利です。

  1. NerdGraphにアクセスする GraphiQL explorer.
  2. 基本的なクエリを実行して、検索条件に一致するエンティティを見つけます。例えば、以下のようになります。
query($query: String!) {
      actor {
        entitySearch(query: $query) {
          count
          results {
            entities {
              name
              entityType
              guid
            }
          }
        }
      }
    }
  1. 以下の 変数 を NerdGraph の Query variables セクションに追加します。

    {"query": "name LIKE 'nerd-graph' AND domainType IN ('APM-APPLICATION')"}

GUIDによるエンティティの取得

フェッチするエンティティのGUIDがわかっている場合は、 entity属性を使用できます。

{
actor {
entity(guid: "MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3") {
name
entityType
}
}
}

これは、検索クエリとしても書くことができます。

{
actor {
entitySearch(query: "id = 'MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3'") {
query
results {
entities {
name
entityType
}
}
}
}
}

または、複数のエンティティを同時にフェッチするには、 entities属性を使用できます。

{
actor {
entities(guids: ["MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3", "MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0MTM3"]) {
name
entityType
}
}
}

それ以外の場合は、検索クエリを使用します。

{
actor {
entitySearch(query: "id in ('MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3', 'MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0MTM3')") {
query
results {
entities {
name
entityType
}
}
}
}
}

クエリの例

クエリとは、データを取得することだけを目的とした(他の効果を持たない)リクエストのことである。NerdGraphのクエリは固定されていないため、必要に応じてデータを増やしたり減らしたりすることができます。各クエリでは、スキーマでサポートされている限り、取得したいデータを正確に指定することができます。

NerdGraph のエンティティは、 GraphQL インターフェースに依存しています。 は、オブジェクトが共通のフィールドを共有することを可能にするコンセプトです。インターフェイスは、NerdGraphのクエリ例の多くに見られるように、特定のエンティティタイプのデータを提供するために使用されます。

エンティティの削除

NerdGraph API を使用して、アカウント内のエンティティを手動で削除することができます。そのためには、 NerdGraph GraphiQL explorer で、エンティティのGUIDを使ってこのクエリを実行してください。

mutation {
entityDelete(guids: ["EntityGuid"]) {
deletedEntities
failures
}
}

重要

現在、Nerdgraph APIを使用して削除できるのは、 APM-APPLICATIONEXT-SERVICE 、およびREF-REPOSITORYエンティティタイプのみです。

削除されたエンティティがNew Relicエージェントによって再びインデックスされると、UIに表示されることがあります。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.