最初に
今回はDatadogの タグとその操作 について基本的な操作を書いていこうと思います。
Datadog使ったことある方ならご存知かと思いますが、実はDatadog使用する上ではこのタグが めちゃくちゃ重要 になってきます。
本記事ではDatadogにおけるタグについて簡単に触れつつ、操作方法についても触れていこうと思います。
詳しく知りたいという方は記事の最後にリファレンスを載せているのでそちらを参考に。
参考までにhostマップでタグによるフィルターをかけるとこんな感じで動的に動いて楽しいですくれ、絞り混んだ結果をこのまま確認できたりするので、高稼働なインスタンスで何かが起きているかなど俯瞰的に確認できます。
目次
- 本編
- Datadogにおけるタグとは
- タグの編集方法
- UIから
- Datadog-Agentから
- APIから
- 権限をまとめた図
- 終わりに
- リファレンス
本編
Datadogにおけるタグとは
Cloudサービス上でホストやコンテナにタグを付与することはよくあると思いますが、Datadog-Agentを利用することでAgentを経由して得た情報に対してDatadog上からもタグを付与することが可能です。
例えば以下の図のように、AWS上で稼働しているインスタンスにDatadog-AgentをインストールするとDatadog上からもインスタンスを確認でき、それに対してDatadog管理のタグとしてタグを付与します。
ちなみに、Datadog上から操作できるタグはDatadogが管理するタグのみです!Cloudサービス上で付与したタグやhostの情報などはReadのみなので、APIなどの操作で誤ってCloudサービス上のも全部消してしまう!とかはないので安心ですね!
また、付与したタグはAgent経由で収集したメトリクスやログの情報でも保持されるので、それを使用してフィルターをかけたり検索をすることが可能です。
タグの編集方法
タグの編集方法は4つあります。
- datadog.yaml(Agentの構成ファイル)に記述する。
- DatadogのWebアプリ(以下Datadog UI)から直接編集する。
- Datadog APIからリクエストを送る。
- DogstatD経由でメトリクスを送信する際に行う。
※DogststD経由は時間の都合上割愛します(そのうち試したい)。
今回は以下の環境でさっくり試していきます。
- EC2(Amazon Linux2)
- Datadog agent - v7.32.1
まっさらなEC2にAgentをインストールするとこのようになります。
セクションは大きく3つに分かれています。
- Datadog Agent
- datadog.yamlで設定したタグとインスタンスIDが表示される
- AWS
- AWS側で手動で付与したタグとAZやregionなど付属情報もタグとして表示される
- User
- Datadog UIとAPIで設定したタグが表示される
UIから
User > Edit Tags でタグを追加できます。ここで追加できるのはUserセクションのタグのみだということに注意してください。
タグをコロン繋ぎで入力し、右側のプラスボタンを押して追加した後、Save Tagsでタグの保存が可能です。
削除は次の画像の状態で削除したいタグのXボタンをクリックしてSave Tagsで削除できます。
保存後に画面上で確認できるようになるまで約5分ほどかかります。体感的には1,2分で別画面行って戻ってきたら反映されてる気がします。
タグの確認の面ではセクションも分かれているので、直感的に見える点では優れています。
編集などの点では反映まで少し時間がかかるので注意ですね。
Datadog-Agentから
Agent側ではdatadog.yamlから設定可能です。
sudo vi /etc/datadog-agent/datadog.yaml
tagsとその下の行をコメントインして任意のタグに変更します。
## @param tags - list of key:value elements - optional
## @env DD_TAGS - space separated list of strings - optional
## List of host tags. Attached in-app to every metric, event, log, trace, and service check emitted by this Agent.
##
## Additional tags can be supplied using the `DD_EXTRA_TAGS` environment variable.
##
## Learn more about tagging: https://docs.datadoghq.com/tagging/
#
tags:
- service:datadog-yaml
# - <TAG_KEY>:<TAG_VALUE>
編集後はagentを再起動して完了です。
sudo systemctl restart datadog-agent
少し待つとDatadog Agentセクションに追加されました!
Datadog-agentはオープンソースなのでdatadog.yamlのテンプレートも確認できます!
https://github.com/DataDog/datadog-agent/blob/9203f205392abb9f64ee677b3479aae01dd65163/pkg/config/config_template.yaml#L105-L115
APIから
APIを叩くのに必要な情報については APIリファレンス を参照ください。
curlでAPIを叩く機会はあまり無いと思いますが、開発中に試すなどで参考になると幸いです。
試しに Get host tags を叩いてみるとこんな感じです。
セクション分けなどはされていませんが、先ほどUIやDatadog-Agentから追加したタグも確認できますね。
次に Update host tags を叩いてみます。
UpdateなのでUIから付与したタグを忘れると消えてしまうのでご注意ください!
UIから見るとこんな感じです、ちゃんとUserセクションに追加されてますね!
最後に Remove host tags でタグを削除してみます。
特にレスポンスbodyは無く、ステータスコード204が返却されていればOKです。
UIから見るとこんな感じです。Userセクションにあった service:datadog-ui
と service:datadog-api
の二つが削除されています。
Datadog AgentやAWSセクションのタグには影響が出ていないことがわかりますね。
権限をまとめた図
終わりに
Datadogのタグ周りに触れる機会があったので、簡単に整理してみました。操作方法によって権限が分かれているのでやりたい操作に適した方法を見つけるのに参考になれば良いかなと思います。
今回説明した内容はまだまだ触りの部分なので、詳細はドキュメントを確認してください!
最後にタグめちゃくちゃ便利なので是非どんどん活用していただけたらなと思います。
それでは
リファレンス
タグの概要
タグの付け方
Introduction to the Datadog Host Map