> For the complete documentation index, see [llms.txt](https://docs.wantedly.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wantedly.dev/fields/infrastructure/troubleshooting/datadog.md).

# Datadog

[Datadog](https://www.datadoghq.com/ja/) は、主にインフラレイヤのミドルウェア (or 任意) のメトリクスを記録・観測するために使われています。また、メトリクスの変化を元に事前に決められたしきい値を超えたことを検出してアラートを発火させることも行っています。

「観測したい事象に対してどのツールを使えばよいか」については [トラブルシューティング](/fields/infrastructure/troubleshooting.md) を参照してください。

## 使い方の基本

どの画面でも選択したパラメータが URL に追加されていくようになっており、実質パーマリンクとして機能します。このため、障害対応時に何かしらのメトリクスを観測したとき **自分の考察・解釈とは別に観測した事実として Datadog のスクショと URL を Slack や GitHub の Issue に貼り付ける** ことを意識しています。

「メトリクス」は Datadog の基本的な観測単位で、それらを組み合わせて Dashboard や Notebook のような高度な観測が実現されています。以下は技術的な構成順に紹介しますが、エンジニアが日常的に見るのは Dashboard が中心です。

## Metrics Explore

Datadog が記録しているメトリクスを絞り込んで時系列で表示する一番基礎的な機能です。Dashboard になっていなかったり、新しく追加したメトリクスはここで確認します。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-b277885df1c87ea1de0a624f2200364c06340d2d%2Finfra-saas-usage-and-use-cases_9.webp?alt=media)

## Notebooks

Dashboard では表現しづらい複雑な分析 (Timeshift や Forecast などの関数を組み合わせたグラフなど) を作成・保存し、他人と共有するために使います。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-0f0bdfae9ca199be0132d563bf465644973c8d92%2Finfra-saas-usage-and-use-cases_10.webp?alt=media)

## Dashboards

グラフの配置が柔軟にでき、各グラフのパラメータの一括設定もできる、より高機能な Notebook のようなものです。すでに過去のインフラチームやエンジニアが、観測したいプロダクト・ミドルウェアごとに作成しています。おおよそ必要なものはすでに揃っているので、新しくプロダクトやミドルウェアを導入するなどしない限り、新規作成する機会は少ないです。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-73a2d1686c8f8a6ef176f69517b3f4b53973ac61%2Finfra-saas-usage-and-use-cases_11.webp?alt=media)

エンジニアは主に Dashboard 単位でメトリクスを観測します。よく見る Dashboard には以下があります。

### DB Metrics

AWS の RDS (PostgreSQL) の各種メトリクスが観測できます。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-44ef7d76cc313bdee0938375a5bee40a0db7aa13%2Finfra-saas-usage-and-use-cases_12.webp?alt=media)

### BigQuery

ウォンテッドリーでは BigQuery の定額プランを契約しているものの、同時に使えるリソース (Slot) は有限なので、それらのリソースを観測するために使います。BigQuery が重いと感じたら Slot を使い切っている可能性があるので確認してみるとよいでしょう。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-526354461ef6798b7d19a3bea426213baf37ea46%2Finfra-saas-usage-and-use-cases_13.webp?alt=media)

### Request Count (WAF)

WAF を通過した HTTP リクエスト数を可視化する Dashboard です。主に (D)DoS 攻撃を疑うときに、リクエスト数の急増や送信元 IP / Path / Host の偏りから攻撃の有無や規模を確認するために使います。

## Infrastructure: Processes

Kubernetes の Pod (Container) 内で実行されているプロセス名 (コマンド) ごとに、CPU やメモリといったリソースの消費量が可視化できます。最近 OOM killer で殺されることが多いと感じたら、これでどの時間帯にどのプロセスがリソースを大量に消費しているのか調査できます。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-0c4dbb9fc0aa2d6b59cc412a963800b898cd0e3a%2Finfra-saas-usage-and-use-cases_14.webp?alt=media)

## APM

APM の Service Catalog から観測したいアプリケーションを選択して、エンドポイントごとのパフォーマンスや、リクエストのどの部分でどのくらい時間がかかっているか、どのマイクロサービスへリクエストが行われているかなどを確認できます。

### 自分が fork したリクエストのみ確認する

APM の Traces から、すべてのアプリケーションに対する trace を確認できます。ここで画像のように `@fork-identifier` フィルターを指定すると、fork したリクエストのみに絞ることができます。

fork については [fork (internal)](https://dev-docs.wantedly.com/fork) を参照してください。

![](https://3209656259-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhW9_3-J_7nGahQv4LE%2Fuploads%2Fgit-blob-3e0bbfbb7ce66421dc812d7dc5cda84a1b85577a%2Fdatadog-apm-query.webp?alt=media)

## 話を聞きに行きたい

* Slack: [#infra (internal)](https://wantedly.slack.com/archives/C010V922570)
