Agent v6 を使用している場合、Datadog は Agent v7 へのアップグレードを推奨しています。Agent v7 は、Python 3 のみのサポートとなります。
ただし、Python 3 にアップデートしても Agent v6 を使い続けたい場合があります。Datadog Agent v6.14.0 以降、Agent v6 は Python 2 および Python 3 ランタイムと互換性を持ちます。つまり、Agent のコンフィギュレーションにより、Python 2 または Python 3 のいずれでも Agent チェックを実行できます。
Datadog Agent v6 で Python 3 を使用する
デフォルトでは、Agent v6 は Python 2 ランタイムを使用します。以下は、Python 3 ランタイムを使用するように Agent v6 を構成する方法です。
この構成は、Azure VM Extensionではサポートされていません。
ホスト Agent
- datadog.yamlコンフィギュレーションファイルで- python_versionコンフィギュレーションオプションを設定します。
 
- Agent を再起動します。 
または、環境変数 DD_PYTHON_VERSION に 2 または 3 を設定して、どの Python ランタイムを使用するかを指定します。環境変数は datadog.yaml 内の構成オプションよりも優先されます。例えば、環境変数 DD_PYTHON_VERSION を設定すると、 datadog.yaml にある python_version オプションは無視されます。
これは、Agent 全体のコンフィギュレーションオプションです。Agent により起動されたすべての Python チェックは、同じ Python ランタイムを使用します。
コンテナ Agent
Datadog は、Python 2 および Python 3 用の Agent コンテナイメージを提供しています。
- 6.34.0や- 6.34.0-jmxのような- 6.で始まるイメージタグは、Python 2 ランタイムを含むイメージです。
- 7.34.0や- 7.34.0-jmxのような- 7.で始まるイメージタグは、Python 3 ランタイムを含むイメージです。
Python 2 から Python 3 に変更するには、Agent のデプロイに使用するイメージタグを更新します。
デフォルトでは、Datadog Helm チャートは、Python 3 ランタイムを埋め込んだ Agent 7 イメージを使用します。
Datadog Agent を更新し続けるには、datadog-values.yaml を編集して agent.image と clusterChecksRunner.image セクション以下の情報を削除してください。
特定のコンテナレジストリを使用する場合は、agent.image.repository と clusterChecksRunner.image.repository で設定します。agents.image.tag と clusterChecksRunner.image.tag が未定義であることを確認してください。
デフォルトのレジストリは、gcr.io/datadoghq/agent です。
agent:
  image:
    repository: public.ecr.aws/datadog/agent
clusterChecksRunner:
  image:
    repository: public.ecr.aws/datadog/agent
Agent を特定のバージョンに設定するには、agents.image.tag と clusterChecksRunner.image.tag を設定します。7.* で始まるすべてのイメージタグは Python 3 ランタイムを埋め込みます。
agent:
  image:
    tag: 7.34.0
clusterChecksRunner:
  image:
    tag: 7.34.0
両方のオプションを同時に使用することができます。
agent:
  image:
    repository: public.ecr.aws/datadog/agent
    tag: 7.34.0
clusterChecksRunner:
  image:
    repository: public.ecr.aws/datadog/agent
    tag: 7.34.0
デフォルトでは、Datadog Operator は、Python 3 ランタイムを埋め込んだ agent:7.*.* イメージを使用します。
イメージ情報が DatadogAgent リソースに指定されていない場合、Operator は Python 3 Datadog Agent イメージをデプロイします。
以前にイメージバージョンを固定したことがある場合
apiVersion: datadoghq.com/v2alpha1
metadata:
  name: datadog
spec:
  override:
    clusterChecksRunner:
      image:
        tag: 6.33.0
    nodeAgent:
      image:
        tag: 6.33.0
または image.name を使用している場合
apiVersion: datadoghq.com/v2alpha1
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
  override:
    # ...
    nodeAgent:
      image:
        name: gcr.io/datadoghq/agent:6.33.0
    # ...
    clusterChecksRunner:
      image:
        name: gcr.io/datadoghq/agent:6.33.0
デフォルトのレジストリを変更する必要がある場合は、spec.global.registry を使用します。デフォルトは gcr.io/datadoghq/agent です。
次に、Agent 7 のイメージタグを spec.override.nodeAgent.image.tag で固定します。
クラスターチェックランナーのデプロイメントを有効にした場合、Agent 7 のイメージタグも spec.override.clusterChecksRunner.image.tag で固定します。
apiVersion: datadoghq.com/v2alpha1
metadata:
  name: datadog
spec:
  # ...
  global:
    registry: public.ecr.aws/datadog
  override:
    # ...
    nodeAgent:
      image:
        tag: 7.33.0
    # ...
    clusterChecksRunner:
      image:
        tag: 7.33.0
注: Datadog では、*.image.tag を設定しないことを推奨しています。代わりに、Datadog Operator に Agent 7 のイメージタグを最新に保つようにさせます。
Agent JMX イメージを使用する必要がある場合、Agent *.image.tag を指定せずに設定することができます。
apiVersion: datadoghq.com/v2alpha1
metadata:
  name: datadog
spec:
  # ...
  global:
    registry: public.ecr.aws/datadog
  override:
    # ...
    nodeAgent:
      image:
        jmxEnabled: true
    clusterChecksRunner:
      image:
        jmxEnabled: true
DaemonSet マニフェストで、各コンテナ定義のイメージタグを更新します。
- 各 spec.template.spec.containers[*].imageの値
- 各 spec.template.spec.initContainers[*].imageの値
例えば、以前のイメージ値が gcr.io/datadoghq/agent:6.33.0 だった場合、gcr.io/datadoghq/agent:7.33.0 に更新します。
前:
apiVersion: apps/v1
spec:
  template:
    spec:
      containers:
      - name: agent
        image: gcr.io/datadoghq/agent:6.33.0
        # ...
後:
apiVersion: apps/v1
spec:
  template:
    spec:
      containers:
      - name: agent
        image: gcr.io/datadoghq/agent:7.33.0
        # ...
デプロイメントツール
extra_config フィールドを使用して、 python_version フィールドを 3 に設定します。
default_attributes(
   'datadog' => {
     'extra_config' => {
       'python_version' => '3'
     }
   }
 )
agent_extra_config フィールドを使用して、python_version フィールドを 3 に設定します。
class { "datadog_agent":
    agent_extra_options => {
        python_version => 3,
    },
}
datadog_config 内で、python_version を 3 に設定します。
datadog_config:
  python_version: 3
その他の参考資料