OpenTelemetry からのすべてのデータはリソースに関連付けられています。 リソースは、リソース属性としてテレメトリを生成するエンティティの表現です。 リソース属性は、リソースを New Relic のエンティティの概念に適合させるために使用されます。
受信されたデータは、エンティティ合成と呼ばれるプロセスを通じてエンティティに関連付けられます。このプロセスでは、存在するリソース属性が、データが関連付けられるエンティティのタイプを決定するルールと照合されます。 OpenTelemetry から取得されるデータの場合、エンティティ合成ルールは OpenTelemetryリソースのセマンティック規則を尊重するように設計されています。
リソース セマンティック規則は、さまざまな種類のエンティティを記述するためのさまざまな規則の集合を定義します。 たとえば、サービス規則とホスト規則は、それぞれサービスまたはホスト インスタンスを記述するリソース属性を定義します。
サポートされているエンティティタイプ
New Relicここでは、OpenTelemetry インストゥルメンテーションを使用するときにサポートされる オブジェクト タイプについて説明します。サポートされている各エンティティ タイプには次のものが含まれます。
- エンティティ合成に必要なリソース属性。
- New Relic UI の特定の側面を制御する推奨属性。
- 存在する場合、 エンティティ タグとなる属性。
サービス
サービス エンティティは、サービス インスタンスを記述する OpenTelemetry リソースのセマンティック規則に従って合成されます。
OpenTelemetry を使用してサービス エンティティを監視する方法については、ドキュメントと例を参照してください。
必要な属性
service.name
: UI に表示されるサービス名はこの値から取得されます。
推奨属性
service.instance.id
: 同じサービスの複数のインスタンス間のファセットを有効にします。telemetry.sdk.language
: この値が存在する場合、Java アプリケーションの JVM ランタイム ページなど、ランタイム固有の UI の表示が制御されます。
エンティティタグ
service.namespace
telemetry.sdk.language
(言語タグとして追加)telemetry.sdk.version
k8s.cluster.name
k8s.namespace.name
k8s.deployment.name
ホスト
ホスト エンティティは、ホストを記述する OpenTelemetry リソースのセマンティック規則に従って合成されます。
詳細については、インフラストラクチャ モニタリングのコレクターのホスト監視の例を参照してください。
必要な属性
エンティティタグ
cloud.provider
cloud.account.id
cloud.region
cloud.availability_zone
cloud.platform
host.id
host.name
host.type
host.arch
host.image.name
host.image.id
host.image.version
Redisインスタンス
Redisインスタンスは、コレクターRedisレシーバーから出力されたデータを使用して合成されます。 残念ながら、現時点では、 Redisインスタンスの意味規則、またはRedisレシーバーが発行するメトリクス内のプロパティを識別する規則はありません。 したがって、ユーザーは以下に説明する属性を手動で含める必要があります。
詳細についてはRedis 、インフラストラクチャモニタリングのコレクター の 例を参照してください。
必要な属性
server.address
: UI に表示される Redis インスタンス名はこの値から取得されます。server.port
エンティティタグ
redis.version
redis.role
host.type
cloud.provider
cloud.account.id
cloud.region
instrumenation.name
server.address
server.port
サポートされているエンティティ関係
New Relic OpenTelemetryインストゥルメンテーションからソースされたエンティティ間のリレーションシップをサポートします。 これらの関係は、適切な関係基準が満たされると自動的に合成されます。 以下は現在サポートされている関係とその必要な基準です。
OpenTelemetry Collector を使用したサービスとインフラストラクチャの関係
OpenTelemetry Collector使用してインフラストラクチャを監視できます。 OpenTelemetry関係は、 OpenTelemetry Collector間でサポートされています。
サービスに対する次の関係がサポートされています:
ホスト
サービスとホスト エンティティの関係では、サービスにhost.id
リソース属性が含まれ、それが実行されているホストのhost.id
と一致する必要があります。
コンテナ
サービスとコンテナ エンティティ間の関係では、サービスにcontainer.id
リソース属性が含まれ、それが実行されているコンテナのcontainer.id
一致する必要があります。
New Relic Infrastructureエージェントを使用したインフラストラクチャ関係へのサービス
New Relicインフラストラクチャ エージェントを使用してインフラストラクチャを監視できます。 エンティティ関係は、 OpenTelemetryインストゥルメント化されたサービスと、 New Relic Infrastructure エージェントから作成されたインフラストラクチャ エンティティの間でサポートされています。
これらの関係が機能するには、サービスから出力されるテレメトリーが、インフラストラクチャ エージェントによって出力されるテレメトリーと関連付けられるように構成されている必要があります。 これには、サービスのテレメトリーに、サービスが実行されているホスト、コンテナなどを識別するリソース プロパティを含める必要があります。 これは通常、OpenTelemetry SDK によって提供されるリソース検出器を言語用に構成するか、OpenTelemetry Collector のリソース検出プロセッサを使用するのと同じくらい簡単です。
サービスに対する次の関係がサポートされています:
New Relicインフラストラクチャ エージェントによるホストの監視
OpenTelemetryインストゥルメントで示されたサービスとNew Relicインフラストラクチャエージェントから生成されたホストエンティティ間のホスト関係には、次の2つのことが必要です。
host.id
リソース プロパティは、サービスからのテレメトリー上に存在する必要があります。host.id
は、インフラストラクチャ エージェントによって導出されたホストの IDと相関している必要があります。
ホストIDの導出
重要
New Relic Infrastructure エージェントによって導出されたホスト ID は、あらゆる状況においてOpenTelemetryの host.id
リソース プロパティのセマンティクスと正確に一致するわけではありません。 これにより、インフラストラクチャ エージェントを使用してサービスをホスト モニターに関連付けることが困難になる可能性があります。 潜在的な課題を理解するために、このセクションを注意深くお読みください。
New Relic Infrastructure エージェントによって導出されるホスト ID は、ホスティング環境とエージェント設定によって異なります。
New Relic Infrastructure エージェントによってサービスがホスト監視に適切に関連付けられるようにするには、サービスによって発行された host.id
リソース プロパティがエージェントによって計算されたホスト ID と一致する必要があります。 次のセクションでは、サービスのhost.id
適切に設定する方法を理解できるように、インフラストラクチャがホストの ID を計算する方法を優先順位に従って説明します。
で構成されたインフラストラクチャエージェント display_name
インフラストラクチャエージェントがdisplay_name
を使用するように構成されている場合、それをホストの ID として使用します。 OpenTelemetryインストゥルメントされたサービスは、display_name
と等しい host.id
を発行するように構成する必要があります。
cloud環境で実行されるホスト
ホストがcloud環境 ( AWSやAzureなど) で実行されている場合、エージェントはcloudプロバイダーによって割り当てられたインスタンス ID を使用します。 OpenTelemetryインストゥルメントされたサービスは、 cloud環境に適したリソース検出器を使用するように構成する必要があります。
非クラウド環境で実行されているホスト
非コンテナ化環境では、インフラストラクチャエージェントがホストの完全修飾ドメイン名 (FQDN) を計算します。 エージェントが FQDN を決定する方法は、OS などのさまざまな要因によって異なります。 リソース ディテクタは、インフラストラクチャ エージェントによって解決された FQDN と同じ値を計算することに依存できません。 インフラストラクチャエージェントのdisplay_name
とサービスのhost.id
が一致するように明示的に構成することをお勧めします。
New Relicインフラストラクチャエージェントを使用したサービスからコンテナへの監視
サービスとコンテナ エンティティ間の関係では、 container.id
リソース属性を含む適切なリソース検出器を使用してサービスを構成する必要があります。
Amazon CloudWatch Metric Streams
AWSでホストされているインフラストラクチャはNew RelicとAmazon CloudWatch Metric Streamsの統合によって監視できます。 これはインフラストラクチャを監視するための OpenTelemetry ソリューションではありません。 ただし、New Relic OpenTelemetry、Amazon を使用して、 インストゥルメントされたサービスとインフラストラクチャ モニターの間の多数の関係をサポートしています。CloudWatch Metric Streamsサポートされている関係を以下に示します。
重要
一部の関係は、インストゥルメンテーションによって自動的にサポートされます。 これらの関係は、OpenTelemetry セマンティック規約を利用して、 でインストゥルメントされたサービスからのテレメトリーを によって監視されるOpenTelemetry AWSリソースに関連付けます。CloudWatch Metric Streamsただし、これらの規則の多くはまだ安定しておらず、進化し続けていることに注意してください。 以下のフレームワーク用のテレメトリーを生成するインストゥルメンテーションは、成熟度および意味上の規則への準拠のレベルが異なります。 そのため、使用するインストゥルメンテーションは、これらの関係が機能するために必要なプロパティを生成しない可能性があります。 OpenTelemetryのセマンティック規約に関するインストゥルメンテーションの成熟度に関する質問がある場合は、使用しているインストゥルメンテーションのメンテナーにお問い合わせください。
関係がインストゥルメンテーションによって自動的にサポートされない場合、または既存のインストゥルメンテーションが標準規約に従っていない場合は、手動でテレメトリーをNew Relicに送信して関係を確立する必要があります。 これを行うには、リソースのARN を含む属性newrelic.aws_metric_streams.arn
を持つログまたはスパンを送信します。 スパンはサンプリングされる可能性があるため、スパンを越えてログを送信することが推奨されます。 これらの関係には 75 分の有効期間 (TTL) があるため、関係を維持するには定期的にテレメトリーを送信する必要があることに注意してください。
インストゥルメンテーションによるサポート | AWS製品 |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
エンティティにカスタムタグを追加する
タグを使用して、UI 内のエンティティを整理およびフィルターできます。タグは、監視対象のアプリやホストなどのさまざまなデータ セットに追加されるキーと値のペア (例: team: operations
です。アカウント ID など、特定の重要な属性はタグとして自動的に使用可能になります。独自のカスタム タグをUI に直接追加するか、以下のいずれかの方法を使用して追加することもできます。
tags
で始まるリソース属性を追加すると、New Relic のエンティティにタグが付けられます。 たとえば、属性tags.mytag=myvalue
を追加すると、エンティティ タグmytag=myvalue
が生成されます。