概要
推奨される OpenTelemetry Collector の構成では、ホストメトリクスレシーバーとリソース検出プロセッサを使用してホストメタデータを収集し、Datadog Extension を介して Collector をレポートします。これらのホストは インフラストラクチャーリスト で表示できます。各ホストで Collector を agent として実行するようなほとんどのデプロイメントでは、ホスト情報は自動的に入力されるため、このページの手動構成に従う必要はありません。
このページで説明されている手動構成は、主に
ゲートウェイデプロイメントを対象としています。これは、Datadog にエクスポートする Collector が、レポート対象のホストとは別に実行される構成です。このようなセットアップでは、正しいホストメタデータが Datadog に届くように、リソースに明示的にタグ付けします。各ホストで Collector を agent として実行している場合、ホストメタデータはデフォルトで収集されるため、この構成をスキップできます。
Resource フィールド を通じて、あらゆるシグナルの一部としてホストに関するシステム情報を OTLP で送信します。Datadog は、ゲートウェイデプロイメントを含むあらゆる デプロイメントパターン でこの情報をサポートしています。
Datadog は、OpenTelemetry セマンティック規約 を使用してホストに関するシステム情報を認識します。ホストメトリクスの設定 の手順に従って、必要なメトリクスとリソース属性を Datadog に送信します。あるいは、インフラストラクチャーに最適な方法でこの情報を手動で送信することもできます。
機能へのオプトイン
ゲートウェイデプロイメントの場合、またはホストメタデータに使用するリソースを手動で制御する場合は、ホストに関する情報を含むすべての OTLP ペイロードで datadog.host.use_as_metadata リソース属性を true に設定します。
リソースは、ホスト識別属性と datadog.host.use_as_metadata 属性が true に設定されている場合、インフラストラクチャーリスト情報に一覧表示されます。
メタデータに使用するリソースを明示的に宣言するには、関連するホスト情報を持つすべてのリソースにブール値リソース属性 datadog.host.use_as_metadata を追加します。
例えば、メトリクス、トレース、ログのすべてのリソースに対してこれを設定するには、以下の構成で変換プロセッサを使用します。
processors:
transform:
metric_statements:
- context: resource
statements:
- set(attributes["datadog.host.use_as_metadata"], true)
trace_statements:
- context: resource
statements:
- set(attributes["datadog.host.use_as_metadata"], true)
log_statements:
- context: resource
statements:
- set(attributes["datadog.host.use_as_metadata"], true)
このプロセッサをすべてのパイプラインの processors リストに追加します。
すべてのリソースにホスト識別属性を明示的にタグ付けする必要があります。これは、ホストメトリクスの推奨セットアップによってデフォルトで行われます。
サポートされる規約
Datadog は、リソース属性レベルのセマンティック規約とシステムメトリクスレベルのセマンティック規約の両方をサポートしています。サポートされているリソース属性のセマンティック規約は、主に host. 名前空間 および os. 名前空間 の下にあります。サポートされているすべてのシステムメトリクスレベルのセマンティック規約は、system. 名前空間 の下にあります。
一般的なシステム規約
| セマンティック規約 | タイプ | アプリ内フィールド |
|---|
| さまざまなホスト識別属性 | リソース属性 | ホスト名 |
os.description | リソース属性 | OS |
CPU 規約
| セマンティック規約 | タイプ | アプリ内フィールド |
|---|
host.cpu.vendor.id | リソース属性 | ベンダー ID |
host.cpu.model.name | リソース属性 | モデル名 |
host.cpu.cache.l2.size | リソース属性 | キャッシュサイズ |
host.cpu.family | リソース属性 | ファミリー |
host.cpu.model.id | リソース属性 | モデル |
host.cpu.stepping | リソース属性 | ステッピング |
system.cpu.logical.count | システムメトリクス | 論理プロセッサ |
system.cpu.physical.count | システムメトリクス | コア |
system.cpu.frequency | システムメトリクス | MHz |
ネットワーク規約
| セマンティック規約 | タイプ | アプリ内フィールド |
|---|
host.ip | リソース属性 | IP アドレスおよび IPv6 アドレス |
host.mac | リソース属性 | MAC アドレス |
OpenTelemetry Collector でこれらの規約を収集する
OpenTelemetry Collector でこれらの規約を収集するには、ホストメトリクスの推奨設定をセットアップしてください。ホストメトリクスレシーバーは関連するすべてのメトリクスを収集し、リソース検出プロセッサは関連するすべてのリソース属性を収集します。
注: 監視対象のホストで実行されている Collector に、これらのプロセッサとレシーバーを追加する必要があります。ゲートウェイ ホストは、リモート ホストからこの情報を収集しません。
正規クラウド リソース ID
正規クラウド リソース ID (CCRID) は、クラウド リソースを一意に識別するためにクラウド プロバイダーが割り当てるリソース ID です。さまざまなオブザーバビリティ タイプ全体に CCRID を追加すると、それらを使用して、特定のクラウド リソースの異なるタイプのデータを一貫してリンクできます。すべてのクラウド リソース タイプで同じ形式の CCRID を追加できます。CCRID の広範な追加と採用により、顧客や社内チーム全体でさまざまなユース ケースを利用できるようになります。
CCRID を有効にすると、すべてのリソース タイプについて、リソースとその関連メトリクス、トレース、ログの間を移動できるようになり、コンテキストの切り替えが不要になり、同じワークフロー内でリソースのエンドツーエンドのビューが得られます。
この機能を使用するには、すべての OTLP ペイロードで datadog.ccrid リソース属性を CCRID の値に設定します。
クラウドごとの識別子形式のリストについては、以下を参照してください。
| クラウド | 識別子のタイプ | 例 |
|---|
| AWS | ARN | arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi |
| Azure | リソース ID | /subscriptions/12345678-1234-5678-1234-567891234567/resourcegroups/exampleResourceGroup/Microsoft.Compute/virtualMachines/exampleVM |
| GCP | CAI リソース名 | //compute.googleapis.com/projects/example-project/locations/us-central1/instances/my-instance |
| OCI | OCID | ocid1.instance.oc1.eu-frankfurt-1.exampleuniqueid |
CCRIDの構成方法:
- AWS (EC2 Instance):
arn:aws:ec2:{region}:{accountId}:instance/{instanceId}。
instanceIdを取得するには、このコマンドを使用します:ec2metadata --instance-id
- Azure:
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - GCP:
//compute.googleapis.com/projects/{projectID}/zones/{zoneName}/instances/{instanceName}" - OCI/Oracle: CCRIDは、リクエストを送信することで取得できます:
http://169.254.169.254/opc/v2/instance/id
例えば、メトリクス、トレース、ログのすべてのリソースに対してAWS CCRIDを設定するには、以下の構成でtransform processorを使用します。
processors:
transform:
metric_statements:
- context: resource
statements:
- set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")
trace_statements:
- context: resource
statements:
- set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")
log_statements:
- context: resource
statements:
- set(attributes["datadog.ccrid"], "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefghi")
OpenTelemetryのセマンティック規約ではcloud.resource_id属性も定義されており、これは属性プロセッサを使用して構成内でマッピングできます。
例:
processors:
attributes/example:
actions:
- key: datadog.ccrid
from_attribute: cloud.resource_id
action: upsert
参考資料