Slide 1

Slide 1 text

Datadogマニアック機能活 用 術 株式会社サイバーエージェント 岩 見 彰太 GitHub:@BIwashi X: @B_Sardine 実践事例から学ぶ!あなたの知らない Dataedog の世界

Slide 2

Slide 2 text

自己 紹介 岩 見 彰太 / Iwamin 株式会社サイバーエージェント ೥౓৽ଔೖࣾ "*ࣄۀຊ෦ڠۀϦςʔϧϝσΟΞ%JW アプリ運 用 カンパニー @BIwashi @B_Sardine ࣗಈੜ੒Λ׆༻ͨ͠ɺӡ༻อकίετΛ཈͑Δ&SSPS"MFSU 3VOCPPLͷҰݩू໿؅ཧ ΦϒβʔόϏϦςΟݚम࣮ફฤ

Slide 3

Slide 3 text

Datadog 使ってる 人 🙋

Slide 4

Slide 4 text

Datadog 使いこなしてる 人 🙋

Slide 5

Slide 5 text

Datadog は機能が無限にある • 日 々増えていく New! の 文 字… • DASH で発表される数々の機能 • (中の 人 でさえ全て把握できてないくらい…) どんな機能があるのか 我々は何をしたいのか Datadog の各種機能情報の Index を貼って 解決したい課題を明確化する Datadog を “使って” 課題を解決する

Slide 6

Slide 6 text

我々は何をしたいのか Datadog の各種機能情報の Index を貼って 解決したい課題を明確化する Datadog を “使って” 課題を解決する どんな機能があるのか Datadog は機能が無限にある • 日 々増えていく New! の 文 字… • DASH で発表される数々の機能 • (中の 人 でさえ全て把握できてないくらい…) Datadog に使われるのではなく 使いこなそう!

Slide 7

Slide 7 text

はじめに

Slide 8

Slide 8 text

はじめに マニアック機能活 用 術というタイトルだが… そもそも Datadog にどんな機能があるか 網羅的に知りたいなぁ…

Slide 9

Slide 9 text

Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って 勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc …

Slide 10

Slide 10 text

Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って 勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc …

Slide 11

Slide 11 text

Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って 勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc … 話題の OTel と Datadog のハンズオンとかも!

Slide 12

Slide 12 text

Learning Center いっぱいありすぎてどれから受ければ いいかわからない… Datadog の認定資格 【Datadog Fundamentals】 の勉強で推奨されているコースを 受けてみよう!

Slide 13

Slide 13 text

Learning Center 最近 Datadog Fundamentals の試験は 日 本語化したので受験も…!

Slide 14

Slide 14 text

マニアック機能活 用 術

Slide 15

Slide 15 text

• “マニアック” は独断と偏 見 なため「そんなのみんな当たり前に使ってる」と かもある可能性が 高 いです • お 手 柔らかにお願いします… おことわり

Slide 16

Slide 16 text

• 小 売企業と協業でアプリを開発している • 一 社だけで全ての機能をカバーできるようにできていない、全ての機能を実 装するのに複数のサービス(他社)をまたがる 会社を跨いだマイクロサービスみたいになってしまっている • dev / stg / prod の3環境あるが、Datadog のアカウントは 一 つで運 用 環境によってデータのアクセス制限をかけたい • 簡易的な分析などもできれば Datadog 内でやりたい エンジニアだけではなく PM なども簡易的に操作できるようにしたい 背景

Slide 17

Slide 17 text

Tag Base Downtime

Slide 18

Slide 18 text

• 複数社のサービスを組み合わせる必要がある Synthetics Monitoring で死活監視をしている インターナルなネットワーク限定の通信しかできないため Private Location を使 用 複数社マイクロサービス問題

Slide 19

Slide 19 text

• メンテナンスでそこそこの頻度でサービスが落ちる(事前通告あり) • そのタイミングで Synthetics Monitoring のダウンタイムを設定する必要 忘れたり漏れていると深夜などにオンコール通知が… 複数社マイクロサービス問題 毎回ここを設定しないといけない

Slide 20

Slide 20 text

• モニター名で毎度 Downtime を設定して いた • 一 つの Service に関連する Monitor が複 数あって全部指定するのがめんどくさ い… Downtime

Slide 21

Slide 21 text

• モニター名で毎度 Downtime を設定して いた • 一 つの Service に関連する Monitor が複 数あって全部指定するのがめんどくさ い… Downtime By Monitor Tags を使おう!

Slide 22

Slide 22 text

Tag Base Downtime • モニターは全て Terraform で管理 • tags にサービス名を指定 resource "datadog_synthetics_test" "test_alert" { count = var.test_alert.create ? 1 : 0 name = "test synthetics" type = "api" subtype = "http" status = var.test_alert.status locations = var.test_alert.locations tags = [ "env:${var.env}", "service:${var.test_alert.service}", "managed_by:terraform", "check_type:api", "depends_on:service_a" ] ... } 指定も簡単で 設定の抜け漏れも防 止

Slide 23

Slide 23 text

SAML Group Mappings Log RBAC

Slide 24

Slide 24 text

• dev / stg / prod の3環境の AWS が存在 • 一 つの Datadog アカウントに連携している • 色 々なレベルの 人 が Datadog を使 用 する 内定者バイト 業務委託 PM 社外 • 秘匿性が 非 常に 高 いデータは 入 ってこないが、ロールを適切に制御したい 複数環境と多様な使 用 者

Slide 25

Slide 25 text

• 社内では「PERMAN」という内製認証認可基盤がある • PERMEN で設定した Role に応じて Datadog の Role にマッピングする • SAML 経由でログインすると勝 手 に Role が振り分けられる SAML Group Mappings 認証/認可基盤PERMANの紹介 | CyberAgent Developers Blog

Slide 26

Slide 26 text

• カスタムロールを作ると各機能の操作単位 で細かく制御が可能 • しかし「prodのデータは閲覧させたくな い」といった制御ができない • datadog のアカウントを分けるしか…? カスタムロール Log の Data Access を使 用 して RBAC を設定しよう!

Slide 27

Slide 27 text

• Log の設定に Data Access という項 目 がある • そのロールのみアクセス可能にしたい Tag と Role を指定 Data Access env:(dev OR stg) の tag がついてるログは Viewer Editor のロールを持っていないと クエリできない

Slide 28

Slide 28 text

• Log の設定に Data Access という項 目 がある • そのロールのみアクセス可能にしたい Tag と Role を指定 Data Access env:(prod OR prd) の tag がついてるログは Prod Viewer Prod Editor のロールを持っていないと クエリできない

Slide 29

Slide 29 text

Data Access

Slide 30

Slide 30 text

Notebook Reference Table

Slide 31

Slide 31 text

• 小 売アプリなので、アクセスログやアプリケーションログにクーポンIDのよ うなものを attributes として埋め込む • 正式な分析などはDWHなどに 入 れて 行 うが、リアルタイムで簡易的な分析や エラー調査などは Datadog 上で 行 いたい • ログに 入 っている coupon_id= 4 d 94 8 c 5 d- 2 … みたいなものが実際になんと いう名前のクーポンなの分からない DBや管理画 面 を参照しにいく必要がある メタ情報の付与 Notebook ×Reference Tables を使おう!

Slide 32

Slide 32 text

• Datadog 版の Jupyter Notebook のようなもの • Dashboards などのようなグラフ表 示 とテキスト などを組み合わせて書くことができる • 「DS じゃなくてもちょっと 見 てみたい…」みたい な PM なども気軽に試せる • 複数 人 同時編集もできるので、障害時の調査など にも使える Notebook ϊʔτϒοΫc%BUBEPH

Slide 33

Slide 33 text

• ログに流れてくる id などのデータで名称などメタ情報を追加したくなってくる Reference Table を使 用 してマッピング情報を与える Notebook

Slide 34

Slide 34 text

• ログに流れてくる id などのデータで名称などメタ情報を追加したくなってくる Reference Table を使 用 してマッピング情報を与える Notebook ここでクーポン名とか 見 れると嬉しそう…

Slide 35

Slide 35 text

• すでにある情報に対してメタデータを付与できる • id などに対応する付加したい情報などを csv 等でアップロードする • Lookup Processor でアップロードしたテーブルを選択する Reference Tables ϦϑΝϨϯεςʔϒϧͰΧελϜϝλσʔλΛ௥Ճ͢Δc%BUBEPH

Slide 36

Slide 36 text

• csv をアップロードして PK(参照する key attribute)を選択 • 手 動アップロードはもちろんだが、S 3 /GCS/Azure Storage にも対応 パイプラインに組み込んで定期的な更新が可能 Reference Tables リファレンステーブルでカスタムメタデータを追加する | Datadog

Slide 37

Slide 37 text

Reference Tables id,name test-1,ςετ1

Slide 38

Slide 38 text

Reference Tables id,name test-1,ςετ1 Reference Tables を登録

Slide 39

Slide 39 text

id,name test-1,ςετ1 Reference Tables Log の Pipeline で Processor type に Lookup Processor を選択

Slide 40

Slide 40 text

id,name test-1,ςετ1 Reference Tables 作成した Reference Tables を選択

Slide 41

Slide 41 text

id,name test-1,ςετ1 Reference Tables メタ情報を追加する際の key 名を設定 test_id という key の 一 致を検証

Slide 42

Slide 42 text

id,name test-1,ςετ1 Reference Tables メタ情報を追加する際の key 名を設定 一 致した場合 mytest.name という attribute が追加

Slide 43

Slide 43 text

• Mobile Application Test 一 年近く使って試しているが、予期せぬ落ち 方 をすることもまだ多いのでこれからに期待 (おそらく)仮想端末を動かしているところの IP レンジも教えてもらえたので、IP制限のあ る API に対しての実際にアクセスしながらのテストもできている その他にも 色 々 Easily Test and Monitor Your Mobile Applications With Datadog Mobile Application Testing | Datadog

Slide 44

Slide 44 text

• Error Tracking ログに error.message / error.stack / error.kind の attributes を追加するとエラーの種類を分離して くれる エラーログに関するエラーは全て Error Tracking ベースのものに統 一 している その他にも 色 々 ࣗಈੜ੒Λ׆༻ͨ͠ɺӡ༻อकίετΛ཈͑Δ&SSPS"MFSU3VOCPPLͷҰݩू໿؅ཧ

Slide 45

Slide 45 text

まとめ • 紹介した機能 Tag Base Downtime SAML Group Mappings Data Access Notebook Reference Tables Mobile Application Test Error Tracking • DASH や Private Beta Program、New! の表 示 などをみて Index を張る • 解決したい課題を明確化して Datadog を使いこなす! +PJOUIF%BUBEPH1SJWBUF#FUB1SPHSBNc%BUBEPH