Redisのメトリクス、特にElasticacheのメトリクスを見たいときにCloudwatchのメトリクスだけだと足りない場合があると思います。
redis-infoのメトリクスを取る場合、別のサーバにdatadog-agentを立ち上げてそのサーバからredisへmetricsを取りに行きます。
今回はdocker-composeでlocalからアクセスする場合です。
ディレクトリ構成
├── conf.d │ └── redisdb.d │ └── config.yaml ├── datadog.yaml └── docker-compose.yaml
以上のような構成にしています。
conf.d
以下はredisなどの各種メトリクス用のconfをディレクトリを切ります。
redisの場合は redisdb.d
など名前が決まっているので、注意しましょう。
rootにおいているdatadog.yamlはdatadog-agent自体の設定です。 dockerで動かしているので環境変数でも利用できますが、ゴチャゴチャするので切り出すときれいになるかと思います。
各種設定yaml
yamlもそれぞれ見ていきます。
docker-compose.yaml
version: "3" services: datadog: image: datadog/agent:7.21.1 environment: DD_API_KEY: xxxx DD_TAGS: "hostname:redis-monitor-test name:datadog-test" DD_PROCESS_AGENT_ENABLED: "false" DD_HOSTNAME: "redis-monitor-test" volumes: - "./conf.d:/conf.d" - "./datadog.yaml:/etc/datadog-agent/datadog.yaml"
DD_API_KEYだけは必須のパラメータになっているので、設定しましょう。
またprocess agentもいらないので、環境変数で設定します。
datadog-agent/config.go at master · DataDog/datadog-agent · GitHub
datadog.yaml
# enable_payloads: # series: false # events: false # service_checks: false # sketches: false
上記設定をすると、datadog-agentからメトリクスを送らなくなります。 他にもいろいろな設定がができます。 datadog.yamlに書いても反映されないパラメータもあるので、それらはdockerの環境変数に書きましょう。
今回redisのメトリクスを送るので、この設定は使わないのでコメントアウトしてあります。 logsだけ使う場合などはコメントアウト外します。 参考: How to set up only Logs
redisdb.d/config.yaml
init_config: instances: - host: hoge.cache.amazonaws.com port: 6379 tags: - enviroment:production - region:ap-northeast-1 - apps:redis
redisの設定はinstanceを並べるだけです。 tagは適当に好きなのをつけます。
実行
あとは実行するだけです。
$ docker-compose up