• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

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

New Relic のエンティティ とは、テレメトリを生成または含む、当社が監視するあらゆるものを指します。エンティティは、New Relic で追跡したいデータを見つけるのに役立ちます。エンティティと他のエンティティとの関係を理解すれば、データについてさらに多くの洞察を得ることができます。エンティティの例をいくつか示します。

UI で直接エンティティを操作するか ( 「New Relic エンティティについて学ぶ」を参照)、NerdGraph API を介してエンティティを操作する方法について、こちらの手順に従うことができます。NerdGraph の使用を開始する際にサポートが必要な場合は、 New Relic NerdGraph の紹介 を参照してください。

重要

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

始める前に

エンティティを操作する前に、 「エンティティについて学ぶ」を読むことをお勧めします。

エンティティを操作するときは、次の重要な点に留意してください。

  • 一意の GUID はエンティティ (entity.guid または entityGuid) を識別します。
  • エンティティは、 特定の期間New Relic に存在します。
  • エンティティは、特定のメトリックやイベントに関するデータを探索したり、他のエンティティに関連するデータを文脈化するための便利なエントリ ポイントを提供します。

エンティティの検索

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

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

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

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

注意

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

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

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

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

ヒント

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

以下の例に加えて、 NerdGraph エクスプローラーを使用して 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
    }
    }
    }
    }
    }
  3. 次の変数をNerdGraph のQuery variablesセクションに追加します。

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

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

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

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

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

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

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

{
actor {
entities(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) {
name
entityType
}
}
}

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

{
actor {
entitySearch(query: "id IN ('ENTITY_GUID_1', 'ENTITY_GUID_2')") {
query
results {
entities {
name
entityType
}
}
}
}
}

クエリの例

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

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

エンティティ関係の作成または削除

エンティティは、別のエンティティと関係を持つ場合があります。一部のリレーションシップは New Relic によって自動的に作成されますが、ミューテーションを使用してカスタム リレーションシップを作成または削除することもできます。これを行う方法については以下に説明がありますが、New Relic でのさまざまな関係タイプを理解するのに助けが必要な場合は、 エンティティ関係をご覧ください。

追加の関係を手動で作成または削除する前に、次の点に注意してください。

  • 2つのエンティティは、関係タイプごとに1つずつ、複数の関係を持つことができます。
  • 同じ信頼できるアカウントに属している場合、2つのエンティティは関係を保持できます。
  • 各エンティティに対して、最大2000の関係を手動で定義できます。制限に達すると、APIはLIMIT_EXCEEDEDエラーを返します。
  • 2つのエンティティ(ソース/ターゲット)のいずれにもアクセスできない場合、各ミューテーションは失敗する可能性があります。

エンティティの関係を一覧表示する

relatedEntities フィールドを使用して、エンティティのペアがどのように相互作用し、どのように関連しているかを確認できます。これは、 サービス マップの 使用方法と同様に、アップストリーム サービスとダウンストリーム サービスのトラブルシューティングを行い、小さな問題が大きな影響を与える可能性があることを理解するのに役立ちます。

次の例は、特定の GUID でエンティティをクエリする方法を示しています。

query {
actor {
entity(guid: "ENTITY_GUID") {
name
relatedEntities {
results {
source {
entity {
guid
name
}
}
target {
entity {
guid
name
}
}
type
}
}
}
}
}

リレーションシップの作成または置換

ミューテーション entityRelationshipUserDefinedCreateOrReplaceを使用してエンティティ関係を作成または置換します。その名前が示すように、特定のタイプの 2 つのエンティティ間の関係を作成できます。2 つのエンティティ間に関係が既に存在する場合は、更新された特定の値 (作成時間と作成者のユーザー ID) で再度追加されます。

mutation {
entityRelationshipUserDefinedCreateOrReplace(
sourceEntityGuid: "SOURCE_ENTITY_GUID"
targetEntityGuid: "TARGET_ENTITY_GUID"
type: BUILT_FROM
) {
errors {
message
type
}
}
}

関係を削除する

ミューテーション entityRelationshipUserDefinedDeleteを使用してエンティティ関係を削除します。ソースとターゲットは必須ですが、タイプは必須ではありません。タイプなしでミューテーションを実行すると、2 つのエンティティ間のすべての関係が削除されます。

mutation {
entityRelationshipUserDefinedDelete(
sourceEntityGuid: "SOURCE_ENTITY_GUID"
targetEntityGuid: "TARGET_ENTITY_GUID"
type: BUILT_FROM
) {
errors {
message
type
}
}
}

エンティティの削除

NerdGraph GraphiQL エクスプローラーの NerdGraph API を使用して、アカウント内のエンティティを手動で削除できます。

EXT-SERVICEおよびREF-REPOSITORYエンティティを削除するには、エンティティの GUID を使用してこのミューテーションを実行します。

mutation {
entityDelete(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) {
deletedEntities
failures {
guid
message
}
}
}

重要

entityDeleteミューテーションを実行した後、New Relic エージェントが再度インデックスを再作成すると、削除されたエンティティが UI に表示されることがあります。

APMBROWSERおよびMOBILEエンティティを削除するには、エンティティの GUID を使用してこのミューテーションを実行します。

mutation {
agentApplicationDelete(guid: "ENTITY_GUID") {
success
}
}

重要

  • agentApplicationDelete変異では、New Relic エージェントが削除前に 12 時間レポート データを保持していないことが必要です。
  • 現在、Nerdgraph APIを使用して削除できるのは、 APM-APPLICATIONEXT-SERVICE 、およびREF-REPOSITORYエンティティタイプのみです。
  • 削除されたエンティティがNew Relicエージェントによって再びインデックスされると、UIに表示されることがあります。
Copyright © 2024 New Relic株式会社。

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