アプリケーションのトレースを収集するには、Kubernetes クラスターで Datadog Agent を実行する必要があります。
Agent でのトレース収集を有効にするには、以下の手順に従います。
トレースを受け取るように 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"
# (...)
datadog-agent.yaml
マニフェストを次のように更新します。
agent:
image:
name: "gcr.io/datadoghq/agent:latest"
apm:
enabled: true
hostPort: 8126
完全な例については、APM とメトリクス収集が有効になっているマニフェストの例を参照してください。
次に、新しいコンフィギュレーションを適用します。
$ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
Unable to detect the kubelet URL automatically
エラーを受け取る可能性があります。その場合は、DD_KUBELET_TLS_VERIFY=false
を設定してください。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
DD_AGENT_HOST
を使用して、アプリケーションレベルのトレーサーが Datadog Agent ホストの場所をポイントするようにします。その他の例については、言語ごとの APM インスツルメンテーションドキュメントを参照してください。注: Datadog では、タグを付ける際のベストプラクティスとして、統合サービスタグ付けを使用することをおすすめしています。統合サービスタグ付けは、env
、service
、version
の 3 つの標準タグを使用して Datadog テレメトリーと結合します。ご使用環境で統合タグ付けを構成する方法に関する詳細は、統合サービスタグ付けドキュメントをご参照ください。
Kubernetes で稼働する Agent 内のトレースに利用可能なすべての環境変数をリストします。
環境変数 | 説明 |
---|---|
DD_API_KEY | Datadog API キー |
DD_PROXY_HTTPS | 使用するプロキシの URL をセットアップします。 |
DD_APM_REPLACE_TAGS | スパンのタグから機密データをスクラブします。 |
DD_HOSTNAME | 自動検出が失敗した場合、または Datadog Cluster Agent を実行する場合に、メトリクスに使用するホスト名を手動で設定します。 |
DD_DOGSTATSD_PORT | DogStatsD ポートを設定します。 |
DD_APM_RECEIVER_SOCKET | 設定した場合、Unix Domain Sockets からトレースを収集し、ホスト名とポートコンフィギュレーションよりも優先します。デフォルトでは設定されていません。設定する場合は、有効な sock ファイルを指定する必要があります。 |
DD_BIND_HOST | StatsD とレシーバーのホスト名を設定します。 |
DD_LOG_LEVEL | ログレベルを設定します。(trace /debug /info /warn /error /critical /off ) |
DD_APM_ENABLED | true に設定すると、Datadog Agent はトレースメトリクスを受け取ります。デフォルト値は true です(Agent 7.18 以上)。 |
DD_APM_CONNECTION_LIMIT | 30 秒のタイムウィンドウに対する最大接続制限を設定します。 |
DD_APM_DD_URL | トレースが送信される Datadog API エンドポイントを設定します: https://trace.agent. 。デフォルトは https://trace.agent.datadoghq.com 。 |
DD_APM_RECEIVER_PORT | Datadog Agent のトレースレシーバーがリスニングするポート。デフォルト値は 8126 です。 |
DD_APM_NON_LOCAL_TRAFFIC | 他のコンテナからのトレース時に、非ローカルトラフィックを許可します。デフォルト値は true です(Agent 7.18 以上)。 |
DD_APM_IGNORE_RESOURCES | Agent が無視するリソースを構成します。書式はカンマ区切りの正規表現です。たとえば、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_ENV | Agent によって発行されたすべてのデータにグローバル env を設定します。トレースデータに env が存在しない場合、この変数が使用されます。詳細については、APM 環境設定を参照してください。 |
DD_APM_MAX_EPS | 1 秒あたりの最大 Indexed Span 数を設定します。デフォルトは 1 秒あたり 200 イベントです。 |
環境変数 | 説明 |
---|---|
agent.apm.enabled | これを有効にすると、ポート 8126 で APM とトレースが有効になります。Datadog Docker のドキュメントを参照してください。 |
agent.apm.env | Datadog Agent は、多くの環境変数をサポートしています。 |
agent.apm.hostPort | ホストで公開するポートの数。指定する場合、これは有効なポート番号 0 < x < 65536 である必要があります。HostNetwork を指定する場合、これは ContainerPort と一致する必要があります。ほとんどのコンテナはこれを必要としません。 |
agent.apm.resources.limits | 制限は、許可されるコンピューティングリソースの最大量を表します。詳細については、Kubernetes のドキュメントを参照してください。 |
agent.apm.resources.requests | リクエストには、必要なコンピューティングリソースの最小量を表します。コンテナの requests が省略されている場合、明示的に指定されている場合はデフォルトで limits になり、それ以外の場合は実装定義の値になります。詳細については、Kubernetes のドキュメントを参照してください。 |
このページ