Kubernetes 上の Datadog Agent のさらなる構成

概要

Kubernetes 環境に Datadog Agent をインストールした後、追加の構成オプションを選択することができます。

Datadog による以下の収集を有効にします。

その他の機能

その他の構成

APM とトレースの有効化

datadog-agent.yaml を編集して、features.apm.enabledtrue に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>

  features:
    apm:
      enabled: true

After making your changes, apply the new configuration by using the following command:

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

Helm では、APM は UDS または Windows の名前付きパイプでデフォルトで有効になっています。

確認するには、values.yaml で、datadog.apm.socketEnabledtrue に設定されていることを確認してください。

datadog:
  apm:
    socketEnabled: true    

詳細については、Kubernetes トレース収集を参照してください。

Kubernetes イベント収集の有効化

Datadog Cluster Agent を使用して Kubernetes イベントを収集します。

Datadog Operator では、イベント収集がデフォルトで有効になっています。これは datadog-agent.yaml の構成 features.eventCollection.collectKubernetesEvents で管理することができます。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
    site: <DATADOG_SITE>

  features:
    eventCollection:
      collectKubernetesEvents: true

Datadog Cluster Agent で Kubernetes イベントを収集するには、datadog-values.yaml ファイルで clusterAgent.enableddatadog.collectEventsclusterAgent.rbac.create オプションが true に設定されていることを確認します。

datadog:
  collectEvents: true
clusterAgent:
  enabled: true
  rbac: 
    create: true

Cluster Agent を使用しない場合でも、datadog-values.yaml ファイルで datadog.leaderElectiondatadog.collectEventsagents.rbac.create オプションを true に設定すれば、Node Agent に Kubernetes イベントを収集させることができます。

datadog:
  leaderElection: true
  collectEvents: true
agents:
  rbac:
    create: true

DaemonSet の構成については、DaemonSet Cluster Agent のイベント収集を参照してください。

CNM 収集の有効化

ご使用の datadog-agent.yaml で、features.npm.enabledtrue に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>

  features:
    npm:
      enabled: true

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

以下の構成で datadog-values.yaml を更新します。

datadog:
  # (...)
  networkMonitoring:
    enabled: true

次に、Helm チャートをアップグレードします。

helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog

詳細については、Cloud Network Monitoring を参照してください。

ログ収集の有効化

ご使用の datadog-agent.yaml で、features.logCollection.enabled および features.logCollection.containerCollectAlltrue に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>

  features:
    logCollection:
      enabled: true
      containerCollectAll: true

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

以下の構成で datadog-values.yaml を更新します。

datadog:
  # (...)
  logs:
    enabled: true
    containerCollectAll: true

次に、Helm チャートをアップグレードします。

helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog

詳細については、Kubernetes ログ収集を参照してください。

プロセス収集の有効化

ご使用の datadog-agent.yaml で、features.liveProcessCollection.enabledtrue に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>

  features:
    liveProcessCollection:
      enabled: true

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

以下の構成で datadog-values.yaml を更新します。

datadog:
  # (...)
  processAgent:
    enabled: true
    processCollection: true

次に、Helm チャートをアップグレードします。

helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog

詳しくは、ライブプロセスをご覧ください。

Datadog Cluster Agent

Cluster Agent は、クラスターレベルのモニタリングデータを収集するための合理化された一元的なアプローチを提供します。Datadog は、Kubernetes のモニタリングに Cluster Agent を使用することを強く推奨します。

Datadog Operator v1.0.0+ と Helm チャート v2.7.0+ では、デフォルトで Cluster Agent が有効になります。それ以上の構成は必要ありません。

Datadog Operator v1.0.0+ は、デフォルトで Cluster Agent を有効にします。Operator は必要な RBAC を作成し、Cluster Agent をデプロイします。両方の Agent が同じ API キーを使用します。

Operator は、安全な通信のために Datadog Agent と Cluster Agent が共有する Kubernetes Secret にランダムなトークンを自動的に生成します。

このトークンは datadog-agent.yamlglobal.clusterAgentToken フィールドに手動で指定することができます。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
    clusterAgentToken: <DATADOG_CLUSTER_AGENT_TOKEN>

あるいは、既存の Secret の名前と、このトークンを含むデータキーを参照して、このトークンを指定することもできます。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
    clusterAgentTokenSecret: 
      secretName: <SECRET_NAME>
      keyName: <KEY_NAME>

: 手動で設定する場合、このトークンは 32 文字の英数字である必要があります。

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

Helm チャート v2.7.0+ はデフォルトで Cluster Agent を有効にします。

検証のため、datadog-values.yaml で、clusterAgent.enabledtrue に設定されていることを確認してください。

clusterAgent:
  enabled: true

Helm は、安全な通信のために Datadog Agent と Cluster Agent が共有する Kubernetes Secret にランダムなトークンを自動的に生成します。

このトークンは datadog-agent.yamlclusterAgent.token フィールドに手動で指定することができます。

clusterAgent:
  enabled: true
  token: <DATADOG_CLUSTER_AGENT_TOKEN>

あるいは、既存の Secret の名前を参照してこのトークンを指定することもできます。ここで、トークンは token という名前のキーにあります。

clusterAgent:
  enabled: true
  tokenExistingSecret: <SECRET_NAME>

詳細については、Datadog Cluster Agent のドキュメントを参照してください。

カスタムメトリクスサーバー

Cluster Agent のカスタムメトリクスサーバー機能を使用するには、Datadog のアプリケーションキーを提供し、メトリクスプロバイダーを有効にする必要があります。

datadog-agent.yaml では、spec.global.credentials.appKey の下にアプリケーションキーを提供し、features.externalMetricsServer.enabledtrue に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>

  features:
    externalMetricsServer:
      enabled: true

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

datadog-values.yaml では、datadog.appKey の下にアプリケーションキーを提供し、clusterAgent.metricsProvider.enabledtrue に設定します。

datadog:
  apiKey: <DATADOG_API_KEY>
  appKey: <DATADOG_APP_KEY>

clusterAgent:
  enabled: true
  metricsProvider:
    enabled: true

次に、Helm チャートをアップグレードします。

helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog

Integrations

クラスター内で Agent が実行されたら、Datadog の Autodiscovery 機能を使用して、Pod からメトリクスとログを自動的に収集します。

コンテナビュー

Datadog のコンテナエクスプローラーを利用するには、Process Agent を有効にしてください。Datadog Operator と Helm チャートでは、デフォルトで Process Agent が有効になります。それ以上の構成は必要ありません。

Datadog Operator では、Process Agent がデフォルトで有効になります。

検証のため、datadog-agent.yaml で、features.liveContainerCollection.enabledtrue に設定されていることを確認してください。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
  features:
    liveContainerCollection:
      enabled: true

一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling。この場合、spec.global.clusterNamedatadog-agent.yaml でクラスター名に設定する必要があります。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    clusterName: <YOUR_CLUSTER_NAME>
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
  features:
    orchestratorExplorer:
      enabled: true

Helm チャートでは、デフォルトで Process Agent が有効になります。

検証のため、datadog-values.yaml で、processAgent.enabledtrue に設定されていることを確認してください。

datadog:
  # (...)
  processAgent:
    enabled: true

一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling.。この場合、datadog.clusterNamedatadog-values.yaml でクラスター名に設定する必要があります。

datadog:
  #(...)
  clusterName: <YOUR_CLUSTER_NAME>
  #(...)
  processAgent:
    enabled: true

有効なクラスター名の制限については、クラスター名を設定するを参照してください。

詳細については、コンテナビューのドキュメントを参照してください。

オーケストレーターエクスプローラー

Datadog Operator と Helm チャートでは、デフォルトで Datadog のオーケストレーターエクスプローラーが有効になります。それ以上の構成は必要ありません。

Datadog Operator では、オーケストレーターエクスプローラーがデフォルトで有効になります。

検証のため、datadog-agent.yaml で、features.orchestratorExplorer.enabled パラメーターが true に設定されていることを確認してください。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
  features:
    orchestratorExplorer:
      enabled: true

一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling。この場合、spec.global.clusterNamedatadog-agent.yaml でクラスター名に設定する必要があります。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    clusterName: <YOUR_CLUSTER_NAME>
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
  features:
    orchestratorExplorer:
      enabled: true

Helm チャートでは、デフォルトでオーケストレーターエクスプローラーが有効になります。

検証のため、datadog-values.yaml フィルターで、orchestratorExplorer.enabled パラメーターが true に設定されていることを確認してください。

datadog:
  # (...)
  processAgent:
    enabled: true
  orchestratorExplorer:
    enabled: true

一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling.。この場合、datadog.clusterNamevalues.yaml でクラスター名に設定する必要があります。

datadog:
  #(...)
  clusterName: <YOUR_CLUSTER_NAME>
  #(...)
  processAgent:
    enabled: true
  orchestratorExplorer:
    enabled: true

有効なクラスター名の制限については、クラスター名を設定するを参照してください。

詳細については、オーケストレーターエクスプローラーのドキュメントを参照してください。

基本構成

以下の構成フィールドを使用して、Datadog Agent を構成してください。

パラメーター (v2alpha1)説明
global.credentials.apiKeyDatadog API キーを構成します。
global.credentials.apiSecret.secretNameglobal.credentials.apiKey の代わりに、Datadog API キーを含む Kubernetes Secret の名前を指定します。
global.credentials.apiSecret.keyNameglobal.credentials.apiKey の代わりに、global.credentials.apiSecret.secretName で指定した Kubernetes の Secret のキーを指定します。
global.credentials.appKeyDatadog アプリケーションキーを構成します。外部メトリクスサーバーを使用している場合は、メトリクスへの読み取りアクセス用に Datadog アプリケーションキーを設定する必要があります。
global.credentials.appSecret.secretNameglobal.credentials.apiKey の代わりに、Datadog アプリキーを含む Kubernetes Secret の名前を指定します。
global.credentials.appSecret.keyNameglobal.credentials.apiKey の代わりに、global.credentials.appSecret.secretName で指定した Kubernetes の Secret のキーを指定します。
global.logLevelロギングの冗長性を設定します。これはコンテナによってオーバーライドできます。有効なログレベルは、tracedebuginfowarnerrorcritical および off です。デフォルト: info
global.registryすべての Agent イメージに使用するイメージレジストリ。デフォルト: gcr.io/datadoghq
global.siteAgent データを送信する Datadog インテークサイトを設定します。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。
global.tags収集されるすべてのメトリクス、イベント、サービスチェックにアタッチされるタグのリスト。

Datadog Operator の構成フィールドの完全なリストについては、Operator v2alpha1 の仕様を参照してください。旧バージョンについては、DatadogAgent CRD を v2alpha1 へ移行するを参照してください。また、kubectl explain datadogagent --recursive を使用して構成フィールドをクエリすることもできます。

Helm説明
datadog.apiKeyDatadog API キーを構成します。
datadog.apiKeyExistingSecretdatadog.apiKey の代わりに、Datadog API キーを含む既存の Kubernetes Secret の名前を指定し、キー名 api-key で設定します。
datadog.appKeyDatadog アプリケーションキーを構成します。外部メトリクスサーバーを使用している場合は、メトリクスへの読み取りアクセス用に Datadog アプリケーションキーを設定する必要があります。
datadog.appKeyExistingSecretdatadog.appKey の代わりに、Datadog API キーを含む既存の Kubernetes Secret の名前を指定し、キー名 app-key で設定します。
datadog.logLevelロギングの冗長性を設定します。これはコンテナによってオーバーライドできます。有効なログレベルは、tracedebuginfowarnerrorcritical および off です。デフォルト: info
registryすべての Agent イメージに使用するイメージレジストリ。デフォルト: gcr.io/datadoghq
datadog.siteAgent データを送信する Datadog インテークサイトを設定します。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。
datadog.tags収集されるすべてのメトリクス、イベント、サービスチェックにアタッチされるタグのリスト。

Helm チャートの環境変数の完全なリストについては、datadog-values.yamlオプションの完全なリストを参照してください。

環境変数説明
DD_API_KEYご使用の Datadog API キー (必須)
DD_ENV出力されるすべてのデータにグローバルタグの env を設定します。
DD_HOSTNAMEメトリクスに使用するホスト名 (自動検出が失敗した場合)
DD_TAGSホストタグはスペースで区切ります。例: simple-tag-0 tag-key-1:tag-value-1
DD_SITEメトリクス、トレース、およびログの送信先サイト。ご使用の DD_SITEです。デフォルトは datadoghq.com です。
DD_DD_URLメトリクス送信用 URL を上書きするためのオプションの設定。
DD_URL (6.36+/7.36+)DD_DD_URL のエイリアス。DD_DD_URL がすでに設定されている場合は無視されます。
DD_CHECK_RUNNERSAgent はデフォルトですべてのチェックを同時に実行します (デフォルト値は 4 ランナーです)。チェックを順次実行する場合は、値を 1 に設定します。多数のチェック (または時間のかかるチェック) を実行する必要がある場合、collector-queue コンポーネントが遅延してヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。
DD_LEADER_ELECTIONクラスターで複数の Agent インスタンスが実行されている場合は、この変数を true に設定して、イベント収集の重複を回避します。

環境変数

コンテナ化された Datadog Agent は、環境変数を使用して構成できます。サポートされている環境変数の詳細については、Docker Agent ドキュメントの環境変数セクションを参照してください。

Datadog Operator を使用する場合、override でコンポーネントの環境変数を [key].env []object で、コンテナの環境変数を [key].containers.[key].env []object で追加設定できます。以下のキーがサポートされています。

  • nodeAgent
  • clusterAgent
  • clusterChecksRunner

コンテナレベルの設定はコンポーネントレベルの設定よりも優先されます。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  override:
    nodeAgent:
      env:
        - name: <ENV_VAR_NAME>
          value: <ENV_VAR_VALUE>
    clusterAgent:
      containers:
        cluster-agent:
          env:
            - name: <ENV_VAR_NAME>
              value: <ENV_VAR_VALUE>
datadog:
  env:
  - name: <ENV_VAR_NAME>
    value: <ENV_VAR_VALUE>
clusterAgent:
  env:
  - name: <ENV_VAR_NAME>
    value: <ENV_VAR_VALUE>

DaemonSet または Deployment (Datadog Cluster Agent 用) に環境変数を追加します。

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: datadog
spec:
  template:
    spec:
      containers:
        - name: agent
          ...
          env:
            - name: <ENV_VAR_NAME>
              value: <ENV_VAR_VALUE>

DogStatsD の構成

DogStatsD は、StatsD プロトコルで UDP 経由でカスタムメトリクスを送信できます。DogStatsD は Datadog Operator と Helm でデフォルトで有効になっています。詳細は DogStatsD ドキュメントを参照してください。

以下の環境変数を使用して、DaemonSet で DogStatsD を構成できます。

環境変数説明
DD_DOGSTATSD_NON_LOCAL_TRAFFICほかのコンテナからの DogStatsD パケットをリスニングします (Custom Metrics の送信に必要)。
DD_HISTOGRAM_PERCENTILES計算するヒストグラムのパーセンタイル (スペース区切り)。デフォルトは 0.95 です。
DD_HISTOGRAM_AGGREGATES計算するヒストグラムの集計 (スペース区切り)。デフォルトは "max median avg count" です。
DD_DOGSTATSD_SOCKETリスニングする UNIX ソケットのパス。rw でマウントされたボリューム内にある必要があります。
DD_DOGSTATSD_ORIGIN_DETECTIONUnix ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。
DD_DOGSTATSD_TAGSこの DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。たとえば "env:golden group:retrievers" のように追加します。

タグマッピングの構成

Datadog は Kubernetes から共通のタグを自動的に収集します。

さらに、Kubernetes ノードラベル、ポッドラベル、アノテーションを Datadog タグにマッピングすることができます。このマッピングを構成するには、以下の環境変数を使用します。

パラメーター (v2alpha1)説明
global.namespaceLabelsAsTagsKubernetes ネームスペースラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
global.nodeLabelsAsTagsKubernetes ノードラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
global.podAnnotationsAsTagsKubernetes アノテーションと Datadog タグのマッピングを提供します。<KUBERNETES_ANNOTATION>: <DATADOG_TAG_KEY>
global.podLabelsAsTagsKubernetes ラベルと Datadog タグのマッピングを提供します。<KUBERNETES_LABEL>: <DATADOG_TAG_KEY>

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
    namespaceLabelsAsTags:
      env: environment
      # <KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
    nodeLabelsAsTags:
      beta.kubernetes.io/instance-type: aws-instance-type
      kubernetes.io/role: kube_role
      # <KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
    podLabelsAsTags:
      app: kube_app
      release: helm_release
      # <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
    podAnnotationsAsTags:
      iam.amazonaws.com/role: kube_iamrole
       # <KUBERNETES_ANNOTATIONS>: <DATADOG_TAG_KEY>
Helm説明
datadog.namespaceLabelsAsTagsKubernetes ネームスペースラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
datadog.nodeLabelsAsTagsKubernetes ノードラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
datadog.podAnnotationsAsTagsKubernetes アノテーションと Datadog タグのマッピングを提供します。<KUBERNETES_ANNOTATION>: <DATADOG_TAG_KEY>
datadog.podLabelsAsTagsKubernetes ラベルと Datadog タグのマッピングを提供します。<KUBERNETES_LABEL>: <DATADOG_TAG_KEY>

datadog:
  # (...)
  namespaceLabelsAsTags:
    env: environment
    # <KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
  nodeLabelsAsTags:
    beta.kubernetes.io/instance-type: aws-instance-type
    kubernetes.io/role: kube_role
    # <KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
  podLabelsAsTags:
    app: kube_app
    release: helm_release
    # <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
  podAnnotationsAsTags:
    iam.amazonaws.com/role: kube_iamrole
     # <KUBERNETES_ANNOTATIONS>: <DATADOG_TAG_KEY>

シークレットファイルの使用

インテグレーションの資格情報を Docker や Kubernetes のシークレットに格納し、Autodiscovery テンプレートで使用できます。詳細については、シークレット管理を参照してください。

コンテナの無視

ログの収集、メトリクスの収集、Autodiscovery からコンテナを除外します。Datadog はデフォルトで Kubernetes と OpenShift の pause コンテナを除外します。これらの許可リストとブロックリストは Autodiscovery にのみ適用され、トレースと DogStatsD には影響しません。これらの環境変数の値には、正規表現を使用できます。

例については、コンテナのディスカバリー管理ページを参照してください。

: kubernetes.containers.runningkubernetes.pods.runningdocker.containers.running.stopped.running.total、および .stopped.total メトリクスはこれらの設定の影響を受けません。すべてのコンテナを対象とします。

Kubernetes API サーバーのタイムアウト

デフォルトでは、Kubernetes ステートメトリクスコアチェックは、Kubernetes API サーバーからの応答を 10 秒間待ちます。大規模なクラスターでは、リクエストがタイムアウトし、メトリクスが欠落する可能性があります。

環境変数 DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT をデフォルトの 10 秒よりも大きな値に設定することで、これを避けることができます。

以下の構成で datadog-agent.yaml を更新します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  override:
    clusterAgent:
      env:
        - name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT
          value: <value_greater_than_10>

次に、新しい構成を適用します。

kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml

以下の構成で datadog-values.yaml を更新します。

clusterAgent:
  env:
    - name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT
      value: <value_greater_than_10>

次に、Helm チャートをアップグレードします。

helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog

プロキシ設定

Agent v6.4.0 (トレース Agent の場合は v6.5.0) より、以下の環境変数を使用して Agent のプロキシ設定を上書きできるようになりました。

環境変数説明
DD_PROXY_HTTPhttp リクエスト用のプロキシとして使用する HTTP URL です。
DD_PROXY_HTTPShttps リクエスト用のプロキシとして使用する HTTPS URL です。
DD_PROXY_NO_PROXYプロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。
DD_SKIP_SSL_VALIDATIONAgent と Datadog との接続時に問題が発生した場合にテストを実施するオプションです。

クラスター名の設定

一部の機能は Kubernetes クラスター名を設定する必要があります。有効なクラスター名は一意でドットで区切られている必要があり、次の制限があります。

  • アルファベットの小文字、数字、ハイフンのみを含めることができる
  • 文字で始まる必要がある
  • 全体の長さは 80 文字以内である必要がある

datadog-agent.yaml のクラスター名を spec.global.clusterName に設定します。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    clusterName: <YOUR_CLUSTER_NAME>

datadog-values.yaml のクラスター名を datadog.clusterName に設定します。

datadog:
  #(...)
  clusterName: <YOUR_CLUSTER_NAME>

Autodiscovery

環境変数説明
DD_LISTENERS実行する Autodiscovery リスナー。
DD_EXTRA_LISTENERS実行する追加の Autodiscovery リスナー。これは datadog.yaml 構成ファイルの listeners セクションで定義された変数に加えて追加されます。
DD_CONFIG_PROVIDERSAgent がチェック構成を収集するために呼び出す必要があるプロバイダー。利用可能なプロバイダーは次のとおりです。
kubelet - Pod アノテーションに埋め込まれたテンプレートを処理します。
docker - コンテナラベルに埋め込まれたテンプレートを処理します。
clusterchecks - Cluster Agent からクラスターレベルのチェック構成を取得します。
kube_services - クラスターのチェックのために Kubernetes サービスをモニタリングします。
DD_EXTRA_CONFIG_PROVIDERS使用する追加の Autodiscovery 構成プロバイダー。これは datadog.yaml 構成ファイルの config_providers セクションで定義された変数に加えて追加されます。

その他

環境変数説明
DD_PROCESS_AGENT_CONTAINER_SOURCEコンテナソースの自動検出を上書きして、1 つのソースに制限します。たとえば、"docker""ecs_fargate""kubelet" です。Agent v7.35.0 以降では不要になりました。
DD_HEALTH_PORTこれを 5555 に設定すると、Agent のヘルスチェックをポート 5555 で公開します。
DD_CLUSTER_NAMEカスタム Kubernetes クラスター識別子を設定して、ホストエイリアスの衝突を回避します。クラスター名は最大 40 文字で、小文字、数字、およびハイフンのみという制限があります。文字で始める必要があります。数字または文字で終わる必要があります。
DD_COLLECT_KUBERNETES_EVENTSAgent でのイベント収集を有効にします。クラスターで複数の Agent インスタンスを実行している場合は、DD_LEADER_ELECTIONtrue に設定します。