Admission Controller を有効にして Datadog Cluster Agent をデプロイした場合、Admission Controller はポッドマニフェストを変更し、(構成された変更条件に基づいて) 必要なすべての環境変数を注入します。その場合、ポッドマニフェスト内の DD_
環境変数の手動設定は不要になります。詳細は Admission Controller のドキュメント を参照してください。
完全な構成
Kubernetes の使用時に全範囲の統合サービスタグ付けを取得するには、デプロイオブジェクトレベルとポッドテンプレート仕様レベルの両方に環境変数を追加します。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
...
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
containers:
- ...
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
また、OpenTelemetry Resource Attributes の環境変数を使用して、env
、service
、version
タグを設定することもできます。
containers:
- ...
env:
- name: OTEL_RESOURCE_ATTRIBUTES
value: "service.name=<SERVICE>,service.version=<VERSION>,deployment.environment=<ENV>"
- name: OTEL_SERVICE_NAME
value: "<SERVICE>"
注: OTEL_SERVICE_NAME
環境変数は、OTEL_RESOURCE_ATTRIBUTES
環境変数内の service.name
属性より優先されます。
部分構成
ポッドレベルのメトリクス
ポッドレベルのメトリクスを構成するには、次の標準ラベル (tags.datadoghq.com
) を Deployment、StatefulSet、または Job のポッド仕様に追加します。
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
これらのラベルは、ポッドレベルの Kubernetes CPU、メモリ、ネットワーク、ディスクメトリクスをカバーし、Kubernetes の Downward API を介してサービスのコンテナに DD_ENV
、DD_SERVICE
、DD_VERSION
を注入するために使用できます。
ポッドごとに複数のコンテナがある場合は、コンテナごとに標準ラベルを指定できます。
tags.datadoghq.com/<container-name>.env
tags.datadoghq.com/<container-name>.service
tags.datadoghq.com/<container-name>.version
ステートメトリクス
Kubernetes ステートメトリクスを構成するには:
コンフィギュレーションファイルで、join_standard_tags
を true
に設定します。設定場所については、こちらのコンフィギュレーションファイルの例を参照してください。
同じ標準ラベルを親リソース (Deployment
など) のラベルのコレクションに追加します。
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
spec:
template:
metadata:
labels:
tags.datadoghq.com/env: "<ENV>"
tags.datadoghq.com/service: "<SERVICE>"
tags.datadoghq.com/version: "<VERSION>"
APM トレーサー / StatsD クライアント
APM トレーサーおよび StatsD クライアントの環境変数を構成するには、Kubernetes の Downward API を以下の形式で使用します。
containers:
- ...
env:
- name: DD_ENV
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/env']
- name: DD_SERVICE
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/service']
- name: DD_VERSION
valueFrom:
fieldRef:
fieldPath: metadata.labels['tags.datadoghq.com/version']
コンテナ化された環境での APM データに対する自動バージョンタグ付け
APM で version
タグを使用してデプロイを監視したり、自動障害デプロイ検出を通じて不良なコードデプロイを特定したりできます。
APM データに対して、Datadog は以下の優先順位で version
タグを設定します。もし手動で version
を設定している場合、Datadog はその version
値をオーバーライドしません。
優先度 | バージョン値 |
---|
1 | {your version value} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) |
要件:
- Datadog Agent バージョン 7.52.0 以上
- サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには
image_tag
で十分な場合、これ以上の構成は不要です - サービスがコンテナ化された環境で実行されていない場合、または git SHA も含めたい場合は、ビルド成果物に Git 情報を埋め込んでください
完全な構成
コンテナの DD_ENV
、DD_SERVICE
、DD_VERSION
環境変数と対応する Docker ラベルを設定して、統合サービスタグ付けの全範囲を取得します。
service
と version
の値は Dockerfile で指定できます。
ENV DD_SERVICE <SERVICE>
ENV DD_VERSION <VERSION>
LABEL com.datadoghq.tags.service="<SERVICE>"
LABEL com.datadoghq.tags.version="<VERSION>"
env
はデプロイ時に決定される可能性が高いため、後で環境変数を注入してラベルを付けることができます。
docker run -e DD_ENV=<ENV> -l com.datadoghq.tags.env=<ENV> ...
デプロイ時にすべてを設定することもできます。
docker run -e DD_ENV="<ENV>" \
-e DD_SERVICE="<SERVICE>" \
-e DD_VERSION="<VERSION>" \
-l com.datadoghq.tags.env="<ENV>" \
-l com.datadoghq.tags.service="<SERVICE>" \
-l com.datadoghq.tags.version="<VERSION>" \
...
部分構成
サービスが Datadog 環境変数を必要としない場合 (例えば、Redis、PostgreSQL、NGINX などのサードパーティソフトウェアや、APM によってトレースされないアプリケーション)、Docker ラベルを使用できます。
com.datadoghq.tags.env
com.datadoghq.tags.service
com.datadoghq.tags.version
完全な構成で説明したように、これらのラベルは Dockerfile で設定するか、コンテナを起動するための引数として設定できます。
コンテナ化された環境での APM データに対する自動バージョンタグ付け
APM で version
タグを使用してデプロイを監視したり、自動障害デプロイ検出を通じて不良なコードデプロイを特定したりできます。
APM データに対して、Datadog は以下の優先順位で version
タグを設定します。もし手動で version
を設定している場合、Datadog はその version
値をオーバーライドしません。
優先度 | バージョン値 |
---|
1 | {your version value} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) |
要件:
- Datadog Agent バージョン 7.52.0 以上
- サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには
image_tag
で十分な場合、これ以上の構成は不要です - サービスがコンテナ化された環境で実行されていない場合、または git SHA を含めたい場合は、ビルド成果物に Git 情報を埋め込んでください
ECS Fargate 上で Fluent Bit や FireLens を使用する場合、統合サービスタグ付けはメトリクスとトレースに対してのみ利用可能で、ログ収集には対応していません。
完全な構成
各サービスのコンテナのランタイム環境で、DD_ENV
、DD_SERVICE
、DD_VERSION
(自動バージョンタグ付けでオプション) 環境変数と対応する Docker ラベルを設定して、統合サービスタグ付けの全範囲を取得します。たとえば、ECS タスク定義を通じて、この構成をすべて 1 か所で設定できます。
"environment": [
{
"name": "DD_ENV",
"value": "<ENV>"
},
{
"name": "DD_SERVICE",
"value": "<SERVICE>"
},
{
"name": "DD_VERSION",
"value": "<VERSION>"
}
],
"dockerLabels": {
"com.datadoghq.tags.env": "<ENV>",
"com.datadoghq.tags.service": "<SERVICE>",
"com.datadoghq.tags.version": "<VERSION>"
}
部分構成
サービスが Datadog 環境変数を必要としない場合 (たとえば、Redis、PostgreSQL、NGINX などのサードパーティソフトウェアや、APM によってトレースされないアプリケーション)、ECS タスク定義で Docker ラベルを使用できます。
"dockerLabels": {
"com.datadoghq.tags.env": "<ENV>",
"com.datadoghq.tags.service": "<SERVICE>",
"com.datadoghq.tags.version": "<VERSION>"
}
コンテナ化された環境での APM データに対する自動バージョンタグ付け
APM で version
タグを使用してデプロイを監視したり、自動障害デプロイ検出を通じて不良なコードデプロイを特定したりできます。
APM データに対して、Datadog は以下の優先順位で version
タグを設定します。もし手動で version
を設定している場合、Datadog はその version
値をオーバーライドしません。
優先度 | バージョン値 |
---|
1 | {your version value} |
2 | {image_tag}_{first_7_digits_of_git_commit_sha} |
3 | {image_tag} または {first_7_digits_of_git_commit_sha} (どちらか一方のみ利用可能な場合) |
要件:
- Datadog Agent バージョン 7.52.0 以上
- サービスがコンテナ化された環境で動作しており、新しいバージョンのデプロイを追跡するには
image_tag
で十分な場合、これ以上の構成は不要です - サービスがコンテナ化された環境で実行されていない場合、または git SHA を含めたい場合は、ビルド成果物に Git 情報を埋め込んでください