Datadog APM (Application Performance Management) の機能だけを使いたい時も Datadog Agent は動かしておく必要がある。
Datadog Agent を動かすと自動的に Datadog Infrastructure へのメトリクス送信が走って課金されるのでそれを止めたい場合はどうするか。そもそもできるのかという話。
Datadog Agent での Infrastructure 無効化
How to setup only Logs というドキュメントに記載されている。Datadog Agent v6.4+ で可能とのこと。
ソースコードでいうとこの辺 https://github.com/DataDog/datadog-agent/blob/d64e4532289c599a47ef091ceab15e4aefa3a660/pkg/config/config.go#L192-L195
設定ファイルで設定する場合
enable_payloads:
series: false
events: false
service_checks: false
sketches: false
環境変数で設定する場合
DD_ENABLE_PAYLOADS_EVENTS=false
DD_ENABLE_PAYLOADS_SERIES=false
DD_ENABLE_PAYLOADS_SERVICE_CHECKS=false
DD_ENABLE_PAYLOADS_SKETCHES=false
Datadog Agent での Process Agent 無効化
Datadog の Infrastructure ページを見ていると Process Monitoring もされているので、念のためそれも止めてしまう。
設定ファイルで設定する場合
process_config:
enabled: 'false'
環境変数で設定する場合
DD_PROCESS_AGENT_ENABLED=false
GCP Integration からの除外
GCP Integration を有効化していると標準で Infrastructure Metrics を取り込んでしまうのでそれも無効化する必要がある。
terrafrom で設定を表現すると、以下のように host_filters
に存在しないタグを指定すれば収集対象から外れる。
resource "datadog_integration_gcp" "integration_gcp" {
project_id = var.gcp_project_id
private_key_id = var.gcp_private_key_id
private_key = var.gcp_private_key
client_email = var.gcp_client_email
client_id = var.gcp_client_id
host_filters = "something_does_not_exist"
}
確認
しばらく(数日)待って、https://app.datadoghq.com/infrastructure を見ると Status UP のゴミのようなホストが残ったままではあるが(消えない)、
https://app.datadoghq.com/account/usage を見るとしっかり数が減っていたので課金対象から外れたことがわかる。
追記: RUNTIME_METRICS について
Datadog APM の画面で下部に表示される JVM Metrics などの RUNTIME_METRICS の機能 はどうやら payloads 機能を使っているらしく、
DD_ENABLE_PAYLOADS_EVENTS=false
DD_ENABLE_PAYLOADS_SERIES=false
DD_ENABLE_PAYLOADS_SERVICE_CHECKS=false
DD_ENABLE_PAYLOADS_SKETCHES=false
この設定をしてしまうと使えなくなってしまうようだ、、、、