Kubernetes トレース収集
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Kubernetes トレース収集

アプリケーションのトレースを収集するには、Kubernetes クラスターで Datadog Agent を実行する必要があります。

セットアップ

Agent でのトレース収集を有効にするには、以下の手順に従います。

  1. トレースを受け取るように Datadog Agent を構成する:

    • Helm チャートをまだインストールしていない場合は、インストールしてください。
    • 以下の APM コンフィギュレーションを使用して、values.yaml ファイルを更新します。

      datadog:
        ## @param apm - object - required
        ## Enable apm agent and provide custom configs
        #
        apm:
          ## @param enabled - boolean - optional - default: false
          ## Enable this to enable APM and tracing, on port 8126
          #
          enabled: true
      • オペレーティングシステムを設定します。values.yaml の 最上部に targetSystem: linux または targetSystem: windows を追加します。

      • 続いて、次のコマンド helm upgrade -f values.yaml <RELEASE NAME> datadog/datadog を使用して Datadog Helm チャートをアップグレードします。忘れずに YAML ファイルに API キーを設定します。values.yaml にオペレーディングシステムを設定していない場合は、このコマンドに --set targetSystem=linux または --set targetSystem=windows を追加します。

    APM トレースの収集を有効にするには、DaemonSet コンフィギュレーションファイルを開いて以下を編集します。

    • ポート 8126 からの受信データを許可します(ホストから Agent へトラフィックを転送する):

       # (...)
            ports:
              # (...)
              - containerPort: 8126
                hostPort: 8126
                name: traceport
                protocol: TCP
       # (...)
    • 古いバージョンの Agent(7.17 以前)を使用している場合は、上記の手順に加えて、datadog.yaml トレース Agent マニフェストの env セクションで DD_APM_NON_LOCAL_TRAFFIC 変数と DD_APM_ENABLED 変数を true に設定してください。

       # (...)
            env:
              # (...)
              - name: DD_APM_ENABLED
                value: 'true'
              - name: DD_APM_NON_LOCAL_TRAFFIC
                value: "true"
       # (...)
    : minikube では、Unable to detect the kubelet URL automatically エラーを受け取る可能性があります。その場合は、DD_KUBELET_TLS_VERIFY=false を設定してください。

  2. Datadog Agent と通信するためにホスト IP をプルするようにアプリケーションポッドを構成します:

    • Datadog Admission Controller を使用して自動的に、または
    • 手動で Downward API を使用して、ホスト IP を取得します。アプリケーションコンテナには、status.hostIP をポイントする DD_AGENT_HOST 環境変数を定義してください。

      apiVersion: apps/v1
      kind: Deployment
       # ...
          spec:
            containers:
            - name: "<CONTAINER_NAME>"
              image: "<CONTAINER_IMAGE>"/"<TAG>"
              env:
                - name: DD_AGENT_HOST
                  valueFrom:
                    fieldRef:
                      fieldPath: status.hostIP
  3. トレースを送信するようにアプリケーショントレーサーを構成する: 環境変数 DD_AGENT_HOST を使用して、アプリケーションレベルのトレーサーが Datadog Agent ホストの場所をポイントするようにします。その他の例については、言語ごとの APM インスツルメンテーションドキュメントを参照してください。

Agent 環境変数

: Datadog では、タグを付ける際のベストプラクティスとして、統合サービスタグ付けを使用することをおすすめしています。統合サービスタグ付けは、envserviceversion の 3 つの標準タグを使用して Datadog テレメトリーと結合します。ご使用環境で統合タグ付けを構成する方法に関する詳細は、統合サービスタグ付けドキュメントをご参照ください。

Kubernetes で稼働する Agent 内のトレースに利用可能なすべての環境変数をリストします。

環境変数説明
DD_API_KEYDatadog API キー
DD_PROXY_HTTPS使用するプロキシの URL をセットアップします。
DD_APM_REPLACE_TAGSスパンのタグから機密データをスクラブします
DD_HOSTNAME自動検出が失敗した場合、または Datadog Cluster Agent を実行する場合に、メトリクスに使用するホスト名を手動で設定します。
DD_DOGSTATSD_PORTDogStatsD ポートを設定します。
DD_APM_RECEIVER_SOCKET設定した場合、Unix Domain Sockets からトレースを収集し、ホスト名とポートコンフィギュレーションよりも優先します。デフォルトでは設定されていません。設定する場合は、有効な sock ファイルを指定する必要があります。
DD_BIND_HOSTStatsD とレシーバーのホスト名を設定します。
DD_LOG_LEVELログレベルを設定します。(trace/debug/info/warn/error/critical/off)
DD_APM_ENABLEDtrue に設定すると、Datadog Agent はトレースメトリクスを受け取ります。デフォルト値は true です(Agent 7.18 以上)。
DD_APM_CONNECTION_LIMIT30 秒のタイムウィンドウに対する最大接続制限を設定します。
DD_APM_DD_URLトレースが送信される Datadog API エンドポイント。Datadog EU サイトの場合は、DD_APM_DD_URLhttps://trace.agent.datadoghq.eu に設定します
DD_APM_RECEIVER_PORTDatadog Agent のトレースレシーバーがリスニングするポート。デフォルト値は 8126 です。
DD_APM_NON_LOCAL_TRAFFIC他のコンテナからのトレース時に、非ローカルトラフィックを許可します。デフォルト値は true です(Agent 7.18 以上)。
DD_APM_IGNORE_RESOURCESAgent が無視するリソースを構成します。書式はカンマ区切りの正規表現です。たとえば、GET /ignore-me,(GET|POST) /and-also-me となります。
DD_APM_ANALYZED_SPANSトランザクションを分析するスパンを構成します。書式はカンマ区切りのインスタンス <サービス名>|;<オペレーション名>=1、たとえば、my-express-app|;express.request=1,my-dotnet-app|;aspnet_core_mvc.request=1 となります。トレーシングクライアントでコンフィギュレーションパラメーターを使用して自動的に有効化することもできます。
DD_ENVAgent によって発行されたすべてのデータにグローバル env を設定します。トレースデータに env が存在しない場合、この変数が使用されます。詳細については、APM 環境設定を参照してください。
DD_APM_MAX_EPS1 秒あたりの最大 Analyzed Span 数を設定します。デフォルトは 1 秒あたり 200 イベントです。
DD_APM_MAX_TPS1 秒あたりの最大トレース数を設定します。デフォルトは 1 秒あたり 10 トレースです。

その他の参考資料