New Relicオブザーバビリティは、エンティティ のコンセプトを中心に構築されています。このドキュメントでは、エンティティの定義方法、エンティティを使用して何ができるか、エンティティまたはエンティティのグループを作成する方法について説明します。
エンティティとは? New Relicでは、エンティティ を意図的に幅広いコンセプトとして捉えています。エンティティとは、a) データをNew Relicに報告するもの、または当社がアクセスできるデータを含むあらゆるもの、b) 一意のエンティティIDで識別されたものです。ほとんどのエンティティでは、IDは属性 entityGuid
で示されます。
エンティティは、アプリケーション、ホスト、データベースサービスなどの基本的なデータを報告するコンポーネントを指しますが、これらのコンポーネントのより大きなグループを指すこともあります。たとえば、データセンターを監視するには、このようなホストをNew Relicに集計し、ワークロード (エンティティのカスタムグループ)にすることができます。このワークロード自体もまたエンティティです。
また、エンティティ間の関係 も非常に重要です。当社の背後にある関係マッピングは、エンティティがどのように接続されているか、どのように相互に影響するかを理解するのに役立ちます。これにより、お持ちのデータが既存のエンティティとどのように関連しているか、または他のエンティティとどのように関連しているかを設定できます。
当社の目標は、お客様のビジネス上重要なエンティティに関する実用的な情報 を提供することであり、監視対象の膨大なリストから膨大な量のデータを提供するものではない ため、エンティティとその関係に焦点を当てることは重要です。エンティティレベルでより多くの洞察を得ることにより、複雑な最新のシステム監視とトラブルシューティングを改善できます。
エンティティとエンティティデータの検索と探索 エンティティデータの検索と理解に役立つヒント:
エンティティのentityGuid
、entityName
、およびその他のメタデータを検索するには:New Relic Explorer で監視対象のエンティティのリストから、エンティティの
アイコンをクリックし、See metadata and tags をクリックします。
ほとんどのエンティティでは、そのGUIDは属性entityGuid
としてレポートされます。ワークロードでは、workloadGuid
です。NRQLクエリ を実行して、そのGUIDでエンティティを検索できます。
エンティティ間の接続を表示するには、いくつかのオプションがあります。
エンティティをグループ化するには、エンティティのグループ化 を参照してください。
エンティティの定義と関係をカスタマイズします。
エンティティタイプに関する技術的な詳細については、GitHubレポ を参照してください。エンティティタイプのdefinition
ファイルには、次のような情報が表示されます。
domain
:たとえば、APM
、またはInfra
。type
:たとえば、Application
またはAWSECSCONTAINERINSTANCE
。デフォルトのタグ 。 entityExpirationTime
:そのエンティティからのデータがUIで存続する期間。これはデータベースのデータ保持期間 とは異なります。 エンティティをグループ化および整理する エンティティをグループ化して、組織でビジネス上重要な関係を反映させることができます。たとえば、特定のチームまたは部署、あるいは特定のサービスに関連したすべてのエンティティをグループ化できます。あるいは、複数のホストをまとめて、そのグループ化をデータセンターに反映させることもできます。
エンティティをグループ化するには、以下を参照してください。
エンティティ合成によるエンティティデータのカスタマイズ New Relicがサポートしていないソースからのテレメトリをすぐに利用できる場合は、そのマッピングを提案できます。承認されると、New Relicが受信するテレメトリのうち、定義ファイルと一致するものがエンティティに合成されます。
詳細について:
予約属性およびエンティティの関係の定義方法については、このドキュメントを参照してください。 既存のエンティティタイプの変更や新規エンティティタイプの作成方法については、エンティティ合成に関する当社のGitHubレポ を参照してください。 合成されたエンティティの予約済み属性 これらの属性は、受信するテレメトリから合成することを意図しています。これらは、影響や結果を把握していない限り、設定しないでください 。
属性
説明
entity.guid
通常、この属性フィールドをテレメトリデータに設定しないでください。New Relicでは、データポイントに関連付けられたエンティティの一意の識別子を格納するためにこのフィールドを取り込んだデータに追加する場合があります。すでに存在するentity.guid
属性がテレメトリーに付随している場合、New Relicでは値を変更しません。ただし、UIでエンティティが見つからない場合や、テレメトリが予期されるエンティティに関連付けられていない場合など、定義されていない動作が引き起こされる可能性があります。
この属性を渡す1つのユースケースは、取り込んだテレメトリを、New Relicによってすでに作成されたエンティティに関連付ける方法です。entity.guid
属性が送信されると、その値によってNew Relicのエンティティ識別システム(エンティティ合成定義など)が上書きされ、代わりにその属性がデータとして使用されます。
entity.name
この属性は、New Relicのエンティティ識別システムによって選択されたエンティティ名を上書きしようとしない限り、取り込んだテレメトリデータに配置しないでください。New Relicでは、すでにデータ上に存在する値は変更しませんが、データに属性を追加する場合があります。したがって、UIでエンティティが見つからない場合や、テレメトリが予期されるエンティティに関連付けられていない場合など、無効な値または予期しない値が原因で、定義されていない動作が引き起こされる可能性があります。
取り込んだテレメトリにこのフィールドが存在する場合、その値を使用して、データポイントに関連付けられたエンティティに名前が付けられます。この名前は、New Relicのエンティティ識別システムによって選択された名前の代わりに使用されます(エンティティ合成定義 など)。多くのエンティティは識別の一部として名前を使用しているため、このフィールドを変更すると、新しいエンティティが生成される可能性があります。
entity.type
この属性は、エンティティタイプを区別する必要がある特定のレガシーケースを除き、取り込んだテレメトリデータには配置しないでください。このフィールドを渡すと、特に、このフィールドに認識できない値が送信される場合、エンティティの検出と干渉する可能性があります。
New Relicでは、この値がデータにすでに存在している場合、この値を変更しませんが、クエリ時にこのフィールドがテレメトリの明確なフィルタリングを提供する保証はありません。既存のエンティティ定義にはすでに重複した値があるため、テレメトリークエリをフィルタリングするためにその他のフィールドを優先してentity.type
を避けることをお勧めします。
このフィールドはNew Relicによって使用されます。つまり、UIでエンティティが見つからない場合や、テレメトリが予期されるエンティティに関連付けられていない場合など、無効な値または予期しない値が原因で、定義されていない動作が引き起こされる可能性があります。
既存のエンティティタイプの変更や新規エンティティタイプの作成方法については、エンティティ合成に関する当社のGitHubレポ を参照してください。
インストゥルメントされていないエンティティ New Relicはテレメトリーを使用して、現在インストゥルメントされていないが、アプリケーションで使用されているエンティティを検出できます。たとえば、インストゥルメントされたエンティティの1つが、Amazon RDSデータベースを呼び出している可能性があります。これは現在New Relicでインストゥルメントされていないため、監視やアラートなどのツールを提供できません。
その場合、当社は、インストゥルメントされたエンティティとの関係とともに、いわゆる「インストゥルメントされていないエンティティ」を作成します。インストゥルメントされたエンティティのサービスマップ に表示されます。エンティティをクリックするだけで表示される、インストゥルメント化する明確な指示を提供します。
エンティティ間の接続は、テレメトリーから推測可能なものに基づき、New Relicが自動的に作成します。たとえば、HTTPを使用して通信する2つのサービスがNew Relicでインストゥルメントされる場合、それらの間で「呼び出し/呼び出され」関係を推定します。
New Relicエクスプローラー 、Navigator、Lookoutのいずれかで特定のエンティティを表示すると、右側のペインに各関連エンティティ を表示できます。現在のエンティティに直接接続しているさまざまなエンティティを表示するものです。スタックのすべての接続された部分を通じて、これらの関連エンティティの重要なメトリクスを迅速に表示し、1つのエンティティから別のエンティティに移動できます。
エンティティ関係のタイプ さまざまな方法でエンティティを相互に関連付けることができます。以下のコラプサーは、サポート対象のエンティティ関係を示しています。可能な関係を理解したら、自動作成された関係 のリストを参照するか、カスタムエンティティ関係を作成 するかどうかを検討します。
関係タイプ タイプ
説明
BUILT_FROM
ターゲットエンティティには、ソースエンティティのコードが含まれます。
CALLS
サービスまたはアプリケーションが別のサービスまたはアプリケーションを呼び出す間の関係。アップストリームおよびダウンストリームサービスを表示するために使用します。
CONNECTS_TO
ソースエンティティはターゲットエンティティと接続しています。
CONSUMES
ソースエンティティは、ターゲットのKafkaトピックまたは他のキューシステムからメッセージを消費します。
CONTAINS
最新のクラウドインフラストラクチャに共通する関係と階層的な使用事例。たとえば、これはHOST
にコンテナが含まれていることを示します。
HOSTS
アプリケーションまたはプロセスとその実行システム間の関係。
IS
別のテレメトリーデータソースによって別のエンティティとしてキャプチャされたエンティティと、現在表示しているエンティティとの関係。
MANAGES
ソースエンティティは、ソースのサブシステムを表すターゲットを管理します。
MEASURES
ソースエンティティを使用して、ターゲットエンティティを測定します。
PRODUCES
ソースエンティティは、ターゲットのKafkaトピックまたは他のキューシステムからメッセージを生成します。
SERVES
バックエンドアプリケーションと、応答で返されるブラウザアプリケーションとの関係。
どの関係が自動作成されますか? エンティティ間で自動作成される関係は次のとおりです。
ソース:New Relicエージェント 関係ソース
関係タイプ
関係ターゲット
関係が作成される理由
New Relicエージェントを使用してインストゥルメントされたアプリケーション
CALLS
New Relicエージェントを使用してインストゥルメントされたアプリケーション
New Relicエージェントによって監視されるアプリケーション間の関係は、DurationByCaller
メトリクスを使用してレポートされます。呼び出し先はメトリクスをレポートします。
たとえば、メトリクスDurationByCaller/Mobile/100/1234/HTTP/all
は、呼び出し元がアカウント100のAPPLICATION 1234
であることを示します。
New Relicエージェントを使用してインストゥルメントされたアプリケーション
CALLS
New Relicエージェントを使用してインストゥルメントされたサービス
New Relicによって監視されるサービス(呼び出し先)を呼び出すアプリケーション(呼び出し元)は、呼び出し元がExternalApp
メトリクスを使用してレポートする関係を作成します。
たとえば、メトリクスExternalApp/dirac.vips.net/100#1234/all
は、呼び出し先がアカウント100のAPPLICATION 1234
であることを示します。
呼び出し先が呼び出し元に正常に応答した場合、メトリクスがレポートされます。
New Relicエージェントを使用してインストゥルメントされたサービス
CALLS
New Relicエージェントを使用してインストゥルメントされたサービス
New Relicエージェントが、New Relicによってインストゥルメントされた別のサービス(呼び出し先)をサービス(呼び出し元)が呼び出していることを検出すると、呼び出し先はメトリクスClientApplication
をレポートします。
たとえば、メトリクスClientApplication/100#1234/all
は、呼び出し元がアカウント100のAPPLICATION 1234
であることを示します。
New Relicエージェントを使用してインストゥルメントされたサービス
CALLS
データストアインスタンス
アプリケーションがデータストアインスタンスを呼び出すと、DatastoreInstance
メトリクスを使用してレポートされる関係が作成されます。
たとえばメトリクスDatastore/instance/MySQL/172.16.16.3/3306
は、データストアインスタンスがベンダーMySQL、ホスト172.16.16.3、ポート3306であることを示しています。
このメトリクスは、レガシーデータストアインスタンス形式のDatastore/instance/MySQL/172.16.16.3:3306
もサポートします。
現時点では、データストアインスタンスがNew Relicによってインストゥルメントされ、エンティティが関連付けられているかどうかは判定できません。
エージェント
SERVES
Browserエージェント
この関係は、APMエージェントがBrowserエージェントをページに挿入する ときに作成されます。
ワークロードエンティティ
CONTAINS
任意のエンティティ
ワークロードが作成または更新されると、そのワークロードに属する各エンティティの関係が作成されます。
一部のワークロードは「動的」である(タグで定義される)ため、関係は5分ごとに再作成されます。こうすることで、エンティティはワークロードに参加したり、ワークロードから離れたりできます。
ソース:Infrastructure 関係ソース
関係タイプ
関係ターゲット
関係が作成される理由
Infrastructureホスト
HOSTS
アプリケーション
この関係は、アプリケーションが1つ以上のホストで実行され、Infrastructureエージェントがそれらのホストで実行されている場合に作成されます。
Infrastructureホスト
HOSTS
コンテナ
この関係は、コンテナが1つ以上のホストで実行され、ホストがInfrastructureエージェントにインストゥルメントされている場合に作成されます。
ソース:合成モニター 関係ソース
関係タイプ
関係ターゲット
関係が作成される理由
合成モニター
CALLS
Browserエージェント
この関係は、BrowserエージェントによってインストゥルメントされたページをSyntheticsモニターがチェックするときに作成されます。
合成モニター
CALLS
APMアプリケーション
属性nr.syntheticsMonitorId
を含むエージェントイベントは、APMアプリケーション(ターゲット)と相互作用するSyntheticsモニター(ソース)として説明されています。
ヘッダーが存在し、APMアプリケーションIDが存在する場合、モニターとアプリの間の関係が作成されます。
ソース:Kubernetes 関係ソース
関係タイプ
関係ターゲット
関係が作成される理由
クラスタ
CONTAINS
ポッド
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにポッドが作成されるときに作成されます。
クラスタ
CONTAINS
デプロイメント
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにデプロイメントが作成されるときに作成されます。
クラスタ
CONTAINS
DaemonSet
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにDaemonSetが作成されるときに作成されます。
クラスタ
CONTAINS
StatefulSet
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにStatefulSetが作成されるときに作成されます。
クラスタ
CONTAINS
ホスト
この関係は、クラスタの一部であるホストがNew Relic Kubernetesインテグレーションを使用してインストゥルメントされるときに作成されます。
デプロイメント
CONTAINS
ポッド
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにデプロイメントがポッドを作成するときに作成されます。
DaemonSet
CONTAINS
ポッド
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにDaemonSetがポッドを作成するときに作成されます。
StatefulSet
CONTAINS
ポッド
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにStatefulSetがポッドを作成するときに作成されます。
ポッド
CONTAINS
コンテナ
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされたクラスタにポッドがコンテナを作成するときに作成されます。
ホスト
HOSTS
ポッド
この関係は、New Relic Kubernetesインテグレーションを使用してインストゥルメントされるクラスタの一部であるホスト内でポッドが実行されているときに作成されます。
コンテナ
HOSTS
アプリケーション
この関係は、アプリケーションがdocker内で実行されており、dockerが実行されているホストがInfrastructureエージェントによってインストゥルメントされるときに作成されます。
外部サービス 関係ソース
関係タイプ
関係ターゲット
関係が作成される理由
外部サービス
CALLS
外部サービス
関係が作成されると、外部サービスにより、スパンが、service.name
属性上のその名前と、parent.service.name
属性内で呼び出しを開始するサービスの名前とともにレポートされます。
アプリケーション
IS
外部サービス
アプリケーションと外部サービス間の関係が作成されるため、ユーザーが、関連するエンティティコンポーネントを使用してそれらの関係間をナビゲートできるようになります。
New Relicエージェントを使用してインストゥルメントされたBrowserアプリケーション
CALLS
外部サービス
ブラウザアプリケーションは、外部サービス(URL)を呼び出すときにAjax/HostTransaction
メトリクスをレポートします。
サンプルメトリック: Ajax/HostTransaction/api.segment.io:443/CallbackTime'
クラスタ
CONTAINS
外部サービス
関係が作成されると、外部サービスにより、k8s.cluster.name
属性とともにスパンがレポートされます。
クラスタは、New Relic Kubernetesインテグレーションを使用してインストゥルメントする必要があり、インテグレーションに設定されているクラスタ名は、スパンでレポートされたクラスタ名と一致する必要があります。
ポッド
HOSTS
外部サービス
関係が作成されると、外部サービスにより、次の属性とともにスパンがレポートされます。
service.name
:サービスの名前。
k8s.cluster.name
:クラスタの名前。
k8s.pod.name
:サービスを実行しているポッドの名前。
k8s.namespace.name
:ポッドが作成されたネームスペース。
クラスタは、New Relic Kubernetesインテグレーションを使用してインストゥルメントする必要があり、インテグレーションに設定されているクラスタ名は、スパンでレポートされたクラスタ名と一致する必要があります。
カスタムエンティティ関係の作成 関係が自動的に検知されない場合、NerdGraph API を使用して手動で作成するか、New Relic UIで関連エンティティ の関連エンティティを追加/編集 リンクを使用して作成できます。
重要 現在、サービスエンティティ間の呼び出し/呼び出され関係のみ、手作業で作成できます。
ヒント 手作業で関係を管理するには、エンティティ関係で変更および削除機能がある必要があります。関係の編集ボタンが表示されない場合は、アカウント管理者に連絡してください。