0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

図解で、Datadog APMにサーバー[Infrastructure]を表示する

Last updated at Posted at 2025-01-25

Datadog APM の Infrastructure が表示されないの何故

まずはDatadog APMダッシュボード(下図)を見て、APMダッシュボードのインフラ欄に[N/A]が表示されてサーバー・メトリックスを可視化できないのはちょっと寂しい。これは、DatadogエージェントとAPMのDatadogトレーサーのタグが一致していないことが原因。タグが一致していれば六角形のアイコンが表示される。インフラ側のタグ命名ルールとアプリ側のタグ命名ルールを決めておかないと、あとで困ることになる。
image.png

悩んだこと

Datadog APM の Infrastructure は3つの予約済みタグで関連付けすることができる。[service][env][version]の3つ。サーバー1台にアプリ1個の場合は3つのタグを全て一致させればサーバーのメトリックスが表示される。しかし、サーバー1台に2個以上のアプリを実行する場合はどうやってタグを一致させればよいのかわからなかった。いくつかのパターンを検証したので以下にコンフィグ例を記載する。

コンフィグ設定(1:1)

サーバー1台にアプリ1個のシンプルな構成の場合は図の通り。

image.png

▼ Datadogエージェントのコンフィグ例

/etc/datadog-agent/datadog.yaml
tags:
  - service:diary
  - env:prod
  - version:3.0

▼ Datadogトレーサーのコマンド例(node.js)

start.sh
#!/bin/bash
export DD_SERVICE=diary
export DD_ENV=prod
export DD_VERSION=3.0
node -r dd-trace/init app.js

コンフィグ設定(1:N)

サーバー1台に複数アプリN個の場合は図の通り。Datadogエージェントのコンフィグに、複数のタグ名を追加してもいいんだという知見ノウハウ。タグ名は1回しか使えないのかと思ってた。けれど公式ドキュメントが見つかりません。

image.png

▼ Datadogエージェントのコンフィグ例

/etc/datadog-agent/datadog.yaml
tags:
  - service:diary
  - service:requests
  - service:minecraft
  - env:prod
  - version:3.0

▼ Datadogトレーサー1のコマンド例(node.js)

start.sh
#!/bin/bash
export DD_SERVICE=diary
export DD_ENV=prod
export DD_VERSION=3.0
node -r dd-trace/init app.js

▼ Datadogトレーサー2のコマンド例(python)

start.sh
export DD_SERVICE=requests
export DD_ENV=prod
export DD_VERSION=3.0
ddtrace-run python3 heatrun.py

▼ Datadogトレーサー3のコマンド例(java)

start.sh
sudo java \
  -Ddd.service=minecraft \
  -Ddd.env=prod \
  -Ddd.version=3.0 \
  -javaagent:/home/kano/dd-java-agent.jar \
  -Xmx2G -Xms1G -jar /opt/minecraft-server/server.jar nogui &

アプリのバージョンを変更する時

アプリをアップデートするとき、アプリを起動するDatadogトレーサーのタグを変更するだろうけど、このときDatadogエージェントのコンフィグを変更しないとどうなるのか検証した。それぞれの組み合わせの図とタグだけ記載し、説明やコンフィグ例は割愛する。

diaryアプリ ver.3をメジャーバージョンアップして、diary2 ver.4をリリースするシナリオを想定

▼ まずは失敗例から。service, versionタグが一致しない。

image.png

▼ これも失敗例。serviceタグを追加したが、versionタグが一致しない。

image.png

▼ 成功例。公式ドキュメントに見つからないけれど、タグ名が重複しても機能しているようだ。

image.png

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?