New Relicオブザーバビリティは、エンティティのコンセプトを中心に構築されています。このドキュメントでは、エンティティの定義方法、エンティティを使用して何ができるか、エンティティまたはエンティティのグループを作成する方法について説明します。
ヒント
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でエンティティを検索できます。エンティティ間の接続を表示するには、いくつかのオプションがあります。
- UIでエンティティを表示する場合は、関連エンティティUIを使用します。
- サービスマップ:
- ディストリビューティッド(分散)トレーシング:
- 当社のNerdGraph API:
エンティティをグループ化するには、エンティティのグループ化を参照してください。
エンティティタイプに関する技術的な詳細については、GitHubレポを参照してください。エンティティタイプの
definition
ファイルには、次のような情報が表示されます。domain
:たとえば、APM
、またはInfra
。type
:たとえば、Application
またはAWSECSCONTAINERINSTANCE
。- デフォルトのタグ。
entityExpirationTime
:そのエンティティからのデータがUIで存続する期間。これはデータベースのデータ保持期間とは異なります。
エンティティをグループ化および整理する
エンティティをグループ化して、組織でビジネス上重要な関係を反映させることができます。たとえば、特定のチームまたは部署、あるいは特定のサービスに関連したすべてのエンティティをグループ化できます。あるいは、複数のホストをまとめて、そのグループ化をデータセンターに反映させることもできます。
エンティティをグループ化するには、以下を参照してください。
- エンティティにタグを付けます。
- ワークロードを作成し、ビジネス上重要なエンティティのセットをグループ化できます。
- エンティティを作成し、エンティティデータをカスタマイズ
エンティティ合成によるエンティティデータのカスタマイズ
New Relicがサポートしていないソースからのテレメトリをすぐに利用できる場合は、そのマッピングを提案できます。承認されると、New Relicが受信するテレメトリのうち、定義ファイルと一致するものがエンティティに合成されます。
詳細について:
- 予約属性およびエンティティの関係の定義方法については、このドキュメントを参照してください。
- 既存のエンティティタイプの変更や新規エンティティタイプの作成方法については、エンティティ合成に関する当社のGitHubレポを参照してください。
合成されたエンティティの予約済み属性
これらの属性は、受信するテレメトリから合成することを意図しています。これらは、影響や結果を把握していない限り、設定しないでください。
属性 | 説明 |
---|---|
| 通常、この属性フィールドをテレメトリデータに設定しないでください。New Relicでは、データポイントに関連付けられたエンティティの一意の識別子を格納するためにこのフィールドを取り込んだデータに追加する場合があります。すでに存在する この属性を渡す1つのユースケースは、取り込んだテレメトリを、New Relicによってすでに作成されたエンティティに関連付ける方法です。 |
| この属性は、New Relicのエンティティ識別システムによって選択されたエンティティ名を上書きしようとしない限り、取り込んだテレメトリデータに配置しないでください。New Relicでは、すでにデータ上に存在する値は変更しませんが、データに属性を追加する場合があります。したがって、UIでエンティティが見つからない場合や、テレメトリが予期されるエンティティに関連付けられていない場合など、無効な値または予期しない値が原因で、定義されていない動作が引き起こされる可能性があります。 取り込んだテレメトリにこのフィールドが存在する場合、その値を使用して、データポイントに関連付けられたエンティティに名前が付けられます。この名前は、New Relicのエンティティ識別システムによって選択された名前の代わりに使用されます(エンティティ合成定義など)。多くのエンティティは識別の一部として名前を使用しているため、このフィールドを変更すると、新しいエンティティが生成される可能性があります。 |
| この属性は、エンティティタイプを区別する必要がある特定のレガシーケースを除き、取り込んだテレメトリデータには配置しないでください。このフィールドを渡すと、特に、このフィールドに認識できない値が送信される場合、エンティティの検出と干渉する可能性があります。 New Relicでは、この値がデータにすでに存在している場合、この値を変更しませんが、クエリ時にこのフィールドがテレメトリの明確なフィルタリングを提供する保証はありません。既存のエンティティ定義にはすでに重複した値があるため、テレメトリークエリをフィルタリングするためにその他のフィールドを優先して このフィールドはNew Relicによって使用されます。つまり、UIでエンティティが見つからない場合や、テレメトリが予期されるエンティティに関連付けられていない場合など、無効な値または予期しない値が原因で、定義されていない動作が引き起こされる可能性があります。 |
既存のエンティティタイプの変更や新規エンティティタイプの作成方法については、エンティティ合成に関する当社のGitHubレポを参照してください。
インストゥルメントされていないエンティティ
New Relicはテレメトリーを使用して、現在インストゥルメントされていないが、アプリケーションで使用されているエンティティを検出できます。たとえば、インストゥルメントされたエンティティの1つが、Amazon RDSデータベースを呼び出している可能性があります。これは現在New Relicでインストゥルメントされていないため、監視やアラートなどのツールを提供できません。
その場合、当社は、インストゥルメントされたエンティティとの関係とともに、いわゆる「インストゥルメントされていないエンティティ」を作成します。インストゥルメントされたエンティティのサービスマップに表示されます。エンティティをクリックするだけで表示される、インストゥルメント化する明確な指示を提供します。
エンティティ関係
エンティティ間の接続は、テレメトリーから推測可能なものに基づき、New Relicが自動的に作成します。たとえば、HTTPを使用して通信する2つのサービスがNew Relicでインストゥルメントされる場合、それらの間で「呼び出し/呼び出され」関係を推定します。
New Relicエクスプローラー、Navigator、Lookoutのいずれかで特定のエンティティを表示する場合は、エンティティの簡単な概要で関連エンティティを表示できます。現在のエンティティに直接接続しているさまざまなエンティティを表示するものです。スタックのすべての接続された部分を通じて、これらの関連エンティティの重要なメトリクスを迅速に表示し、1つのエンティティから別のエンティティに移動できます。
ヒント
NerdGraph APIを使用して、エンティティの関係の詳細を把握してください。
関係が自動的に検知されない場合、関連エンティティにある「関連エンティティを追加/編集」リンクを使用して、手作業で作成できます。
重要
現在、サービスエンティティ間の呼び出し/呼び出され関係のみ、手作業で作成できます。
ヒント
手作業で関係を管理するには、エンティティ関係で変更および削除機能がある必要があります。関係の編集ボタンが表示されない場合は、アカウント管理者に連絡してください。
作成される関係
エンティティ間で作成される関係は次のとおりです。
関係の手動作成
GraphQL APIであるNerdGraphを使用して、追加の関係を作成できます。
関係は、ミューテーションentityRelationshipUserDefinedCreateOrReplace
を使用して作成または置換できます。その名前が示すように、指定したタイプの2つのエンティティ間に関係を作成できます。2つのエンティティ間に関係がすでに存在する場合、更新された指定値(作成時刻と作成者ユーザーID)が再度追加されます。
mutation { entityRelationshipUserDefinedCreateOrReplace( sourceEntityGuid: "{SourceEntityGuid}" targetEntityGuid: "{TargetEntityGuid}" type: BUILT_FROM ) { errors { message type } }}
ミューテーションentityRelationshipUserDefinedDelete
を使用して関係を削除します。source
とtarget
は必須ですが、type
は必須ではありません。ミューテーションがtype
なしで実行される場合、2つのエンティティ間のすべての関係は削除されます。
mutation { entityRelationshipUserDefinedDelete( sourceEntityGuid: "{SourceEntityGuid}" targetEntityGuid: "{TargetEntityGuid}" type: BUILT_FROM ) { errors { message type } }}
関係の取得については、関係APIのチュートリアルを参照してください。
考慮事項
- 2つのエンティティは、関係タイプごとに1つずつ、複数の関係を持つことができます。
- 同じ信頼できるアカウントに属している場合、2つのエンティティは関係を保持できます。
- 各エンティティに対して、最大2000の関係を手動で定義できます。制限に達すると、APIは
LIMIT_EXCEEDED
エラーを返します。 - 2つのエンティティ(ソース/ターゲット)のいずれにもアクセスできない場合、各ミューテーションは失敗する可能性があります。
関係タイプは、2つのエンティティがどのように関係しているかについての追加情報を提供します。サポートされている関係タイプは次のとおりです。