このページでは、Containerized Windows Applications Monitoring の既知の未解決の問題について説明します。

一般的な問題

Containerized Windows Applications Monitoring には、Datadog Agent 7.19+ が必要です。

対応する OS のバージョンは以下の通りです。

  • Windows Server 2019 (LTSC / 1809)
  • Windows Server 2019 1909 (Agent 7.39 まで、Microsoft がサポートしなくなったため)
  • Windows Server 2019 2004 または 20H1 (Agent 7.39 まで、Microsoft がサポートしなくなったため)
  • Windows Server 2019 20H2 (Agent 7.33〜7.39、Microsoft がサポートしなくなったため)
  • Windows Server 2022 LTSC (Agent >=7.34)

Hyper-V 分離モードはサポートされていません。

ディスク、IO、およびネットワークのホストメトリクスは無効になっています。これらは Windows Server ではサポートされていないため、Agent チェックはデフォルトで無効になっています。

Docker の問題

ライブプロセスはコンテナに表示されません (Datadog Agent を除く)。

Kubernetes の問題

ライブプロセスはコンテナに表示されません (Datadog Agent を除く)。

複合クラスター (Linux + Windows)

複合クラスターに Datadog Agent をデプロイするには、Helm チャートの 2 つのインストールを異なる targetSystem で実行することが推奨されます。

Datadog Agent は nodeSelector を使用して、targetSystem に基づき Linux または Windows ノードを自動的に選択します。

ただし、Kube State メトリクス (デフォルトでインストール済み) が Windows ノードにスケジュールできない状況につながるような場合は、この限りではありません。

この問題を回避するには、3 つのオプションがあります。

  • Windows ノードに taint を適用します。Windows では、Agent は常に node.kubernetes.io/os=windows:NoSchedule taint を許可します。
  • Datatog Helm チャート values.yaml を使用して、Kube State メトリクスノードセレクタを設定します。
kube-state-metrics:
  nodeSelector:
    beta.kubernetes.io/os: linux // Kubernetes < 1.14
    kubernetes.io/os: linux // Kubernetes >= 1.14
  • datadog.kubeStateMetricsEnabledfalse に設定し、Kube State メトリクスを別途デプロイします。

: 2 つの Datadog インストール (targetSystem: linuxtargetSystem: windows) を使用する場合、2 つ目のインストールで datadog.kubeStateMetricsEnabled を必ず false に設定してください。Kube State メトリクスのインスタンスを 2 つデプロイしないようにするためです。

Datadog Cluster Agent によるクラスターの混在

Cluster Agent v1.18+ では、Datadog Cluster Agent でクラスターが混在する構成がサポートされます。

Windows ノードにデプロイされた Agent と Cluster Agent 間の通信を構成するには、次の values.yaml ファイルを使用します。

targetSystem: windows
existingClusterAgent:
  join: true
  serviceName: "<EXISTING_DCA_SERVICE_NAME>" # Datadog Helm の最初のチャートから
  tokenSecretName: "<EXISTING_DCA_SECRET_NAME>" # Datadog Helm の最初のチャートから

# datadogMetrics は最初のチャートで既にデプロイされているはずなので、デプロイを無効にします。
datadog-crds:
  crds:
    datadogMetrics: false
# kube-state-metrics のデプロイメントを無効にします
datadog:
  kubeStateMetricsEnabled: false

Windows デプロイでは構成オプションが制限される

Windows では、一部の構成オプションが使用できません。以下は、サポートされていないオプションのリストです。

パラメーター理由
datadog.dogstatsd.useHostPIDWindows コンテナではホスト PID がサポートされていません
datadog.dogstatsd.useSocketVolumeWindows では Unix ソケットはサポートされていません
datadog.dogstatsd.socketPathWindows では Unix ソケットはサポートされていません
datadog.processAgent.processCollectionホスト/他のコンテナプロセスにアクセスできません
datadog.systemProbe.seccompシステムプローブは Windows では使用できません
datadog.systemProbe.seccompRootシステムプローブは Windows では使用できません
datadog.systemProbe.debugPortシステムプローブは Windows では使用できません
datadog.systemProbe.enableConntrackシステムプローブは Windows では使用できません
datadog.systemProbe.bpfDebugシステムプローブは Windows では使用できません
datadog.systemProbe.apparmorシステムプローブは Windows では使用できません
agents.useHostNetworkWindows コンテナではホストネットワークがサポートされていません

APM または DogStatsD の HostPort

HostPort は、基となる OS バージョンおよび CNI プラグインにより、Kubernetes で一部サポートされています。 HostPort が正常に動作するための要件は以下のとおりです。

  • Windows Server バージョン 1909 以降
  • CNI プラグインが portMappings 機能に対応

現在、少なくとも 2 つの CNI プラグインがこの機能に対応しています。

  • win-bridge 公式プラグイン (バージョン 0.8.6 以降) - GKE が使用
  • Azure CNI プラグイン - AKS が使用

セットアップがこの要件を満たさない場合、APM および DogStatsD はトレーサーと Agent の間にポッドツーポッドネットワーキングが構成されている場合にのみ機能します。

Kubelet チェック

ご使用の Kubernetes バージョンによっては、Kubelet メトリクスの一部をご利用いただけない (または Kubelet チェックがタイムアウトする) ことがあります。 最適にご利用いただくため、以下をご使用ください。

  • Kubelet 1.16.13 以降 (GKE では 1.16.11)
  • Kubelet 1.17.9 以降 (GKE では 1.17.6)
  • Kubelet 1.18.6 以降
  • Kubelet 1.19 以降

Agent バージョン 7.19.2 以降

Windows では、ご利用いただけない kubernetes.* があります。以下のリストでご利用可能なものをご確認ください。

  • kubernetes.cpu.usage.total
  • kubernetes.containers.restarts
  • kubernetes.containers.running
  • kubernetes.cpu.capacity
  • kubernetes.ephemeral_storage.usage
  • kubernetes.kubelet.container.log_filesystem.used_bytes
  • kubernetes.kubelet.network_plugin.latency.count
  • kubernetes.kubelet.network_plugin.latency.quantile
  • kubernetes.kubelet.network_plugin.latency.sum
  • kubernetes.kubelet.runtime.errors
  • kubernetes.kubelet.runtime.operations
  • kubernetes.memory.capacity
  • kubernetes.pods.running
  • kubernetes.rest.client.latency.count
  • kubernetes.rest.client.latency.sum
  • kubernetes.rest.client.requests
  • kubernetes.network.tx_bytes
  • kubernetes.network.rx_bytes
  • kubernetes.cpu.usage.total
  • kubernetes.memory.working_set
  • kubernetes.filesystem.usage
  • kubernetes.filesystem.usage_pct