• /
  • ログイン
  • 無料アカウント

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

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

問題を作成する

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

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

重要

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

エンティティ定義

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

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

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

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

要件

エンティティを使用するには、 ユーザーキー が必要です。

エンティティの検索

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

domainType の他に、共通のエンティティ属性があります。

  • id
  • accountId
  • name
  • domainId
  • アラートセバリティ
  • 報告

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

注意

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

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

  1. queryBuilder 引数を使用して、クエリを作成することができます。
  2. 自由形式の クエリ 引数を使って、独自の検索を構築してください。

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
            }
          }
        }
      }
    }

自由形式による検索 クエリ

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

  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がわかっている場合は、 エンティティ 属性を使用すればよい。

{
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-APPLICATION, EXT-SERVICE, REF-REPOSITORY

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

問題を作成する
Copyright © 2022 New Relic Inc.