Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Datadogマニアック機能活用術
Search
Shota Iwami
August 26, 2024
Technology
7
3.4k
Datadogマニアック機能活用術
実践事例から学ぶ!あなたの知らないDatadogの世界 登壇資料
https://findy.connpass.com/event/326864/
Shota Iwami
August 26, 2024
Tweet
Share
More Decks by Shota Iwami
See All by Shota Iwami
モノレポにおけるエラー管理 ~Runbook自動生成とチームメンションの最適化
biwashi
1
740
OpenTelemetry の Log を使いこなそう
biwashi
5
1.5k
Monorepo Error Management: Automated Runbooks and Team-Targeted Alert Distribution
biwashi
2
300
スタートアップ創業期を支えるオブザーバビリティ基盤のこれまでとこれから
biwashi
9
1.5k
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
7
1.5k
k6を活用した再現性・拡張性の高い負荷試験基盤の構築
biwashi
12
4.1k
feature flag と OpenTelemetry
biwashi
7
2.2k
OpenFeatureと自動生成を活用したフィーチャーフラグの宣言的集約管理
biwashi
20
6.7k
Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する
biwashi
11
1.5k
Other Decks in Technology
See All in Technology
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
10
4.9k
技育祭2025【秋】 企業ピッチ/登壇資料(高橋 悟生)
hacobu
PRO
0
110
AWS Control Tower に学ぶ! IAM Identity Center 権限設計の第一歩 / IAM Identity Center with Control Tower
y___u
1
200
大規模サーバーレスAPIの堅牢性・信頼性設計 〜AWSのベストプラクティスから始まる現実的制約との向き合い方〜
maimyyym
10
5k
今この時代に技術とどう向き合うべきか
gree_tech
PRO
2
2k
Findy Team+ QAチーム これからのチャレンジ!
findy_eventslides
0
430
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
300
いまからでも遅くない!SSL/TLS証明書超入門(It's not too late to start! SSL/TLS Certificates: The Absolute Beginner's Guide)
norimuraz
0
270
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
1k
Click A, Buy B: Rethinking Conversion Attribution in ECommerce Recommendations
lycorptech_jp
PRO
0
100
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3k
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
130
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
GitHub's CSS Performance
jonrohan
1032
470k
What's in a price? How to price your products and services
michaelherold
246
12k
The Language of Interfaces
destraynor
162
25k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Side Projects
sachag
455
43k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
Datadogマニアック機能活 用 術 株式会社サイバーエージェント 岩 見 彰太 GitHub:@BIwashi X: @B_Sardine
実践事例から学ぶ!あなたの知らない Dataedog の世界
自己 紹介 岩 見 彰太 / Iwamin 株式会社サイバーエージェント ৽ଔೖࣾ "*ࣄۀຊ෦ڠۀϦςʔϧϝσΟΞ%JW
アプリ運 用 カンパニー @BIwashi @B_Sardine ࣗಈੜΛ׆༻ͨ͠ɺӡ༻อकίετΛ͑Δ&SSPS"MFSU 3VOCPPLͷҰݩूཧ ΦϒβʔόϏϦςΟݚम࣮ફฤ
Datadog 使ってる 人 🙋
Datadog 使いこなしてる 人 🙋
Datadog は機能が無限にある • 日 々増えていく New! の 文 字… •
DASH で発表される数々の機能 • (中の 人 でさえ全て把握できてないくらい…) どんな機能があるのか 我々は何をしたいのか Datadog の各種機能情報の Index を貼って 解決したい課題を明確化する Datadog を “使って” 課題を解決する
我々は何をしたいのか Datadog の各種機能情報の Index を貼って 解決したい課題を明確化する Datadog を “使って” 課題を解決する
どんな機能があるのか Datadog は機能が無限にある • 日 々増えていく New! の 文 字… • DASH で発表される数々の機能 • (中の 人 でさえ全て把握できてないくらい…) Datadog に使われるのではなく 使いこなそう!
はじめに
はじめに マニアック機能活 用 術というタイトルだが… そもそも Datadog にどんな機能があるか 網羅的に知りたいなぁ…
Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って
勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc …
Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って
勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc …
Learning Center • 2週間有効な Datadog アカウント付与される (期限を過ぎても再アクセスでまた使える) • instruqt というラーニングツールを使って
勝 手 に VM を 立 ててくれる そこに Agent 入 れたりログ吐かせたりできる • 自 前で試すと結構 大 変な機能もお試し可能 NPM、RUM、ファネル分析、Pro fi ler etc … 話題の OTel と Datadog のハンズオンとかも!
Learning Center いっぱいありすぎてどれから受ければ いいかわからない… Datadog の認定資格 【Datadog Fundamentals】 の勉強で推奨されているコースを 受けてみよう!
Learning Center 最近 Datadog Fundamentals の試験は 日 本語化したので受験も…!
マニアック機能活 用 術
• “マニアック” は独断と偏 見 なため「そんなのみんな当たり前に使ってる」と かもある可能性が 高 いです • お
手 柔らかにお願いします… おことわり
• 小 売企業と協業でアプリを開発している • 一 社だけで全ての機能をカバーできるようにできていない、全ての機能を実 装するのに複数のサービス(他社)をまたがる 会社を跨いだマイクロサービスみたいになってしまっている • dev
/ stg / prod の3環境あるが、Datadog のアカウントは 一 つで運 用 環境によってデータのアクセス制限をかけたい • 簡易的な分析などもできれば Datadog 内でやりたい エンジニアだけではなく PM なども簡易的に操作できるようにしたい 背景
Tag Base Downtime
• 複数社のサービスを組み合わせる必要がある Synthetics Monitoring で死活監視をしている インターナルなネットワーク限定の通信しかできないため Private Location を使 用
複数社マイクロサービス問題
• メンテナンスでそこそこの頻度でサービスが落ちる(事前通告あり) • そのタイミングで Synthetics Monitoring のダウンタイムを設定する必要 忘れたり漏れていると深夜などにオンコール通知が… 複数社マイクロサービス問題 毎回ここを設定しないといけない
• モニター名で毎度 Downtime を設定して いた • 一 つの Service に関連する
Monitor が複 数あって全部指定するのがめんどくさ い… Downtime
• モニター名で毎度 Downtime を設定して いた • 一 つの Service に関連する
Monitor が複 数あって全部指定するのがめんどくさ い… Downtime By Monitor Tags を使おう!
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" ] ... } 指定も簡単で 設定の抜け漏れも防 止
SAML Group Mappings Log RBAC
• dev / stg / prod の3環境の AWS が存在 •
一 つの Datadog アカウントに連携している • 色 々なレベルの 人 が Datadog を使 用 する 内定者バイト 業務委託 PM 社外 • 秘匿性が 非 常に 高 いデータは 入 ってこないが、ロールを適切に制御したい 複数環境と多様な使 用 者
• 社内では「PERMAN」という内製認証認可基盤がある • PERMEN で設定した Role に応じて Datadog の Role
にマッピングする • SAML 経由でログインすると勝 手 に Role が振り分けられる SAML Group Mappings 認証/認可基盤PERMANの紹介 | CyberAgent Developers Blog
• カスタムロールを作ると各機能の操作単位 で細かく制御が可能 • しかし「prodのデータは閲覧させたくな い」といった制御ができない • datadog のアカウントを分けるしか…? カスタムロール
Log の Data Access を使 用 して RBAC を設定しよう!
• Log の設定に Data Access という項 目 がある • そのロールのみアクセス可能にしたい
Tag と Role を指定 Data Access env:(dev OR stg) の tag がついてるログは Viewer Editor のロールを持っていないと クエリできない
• Log の設定に Data Access という項 目 がある • そのロールのみアクセス可能にしたい
Tag と Role を指定 Data Access env:(prod OR prd) の tag がついてるログは Prod Viewer Prod Editor のロールを持っていないと クエリできない
Data Access
Notebook Reference Table
• 小 売アプリなので、アクセスログやアプリケーションログにクーポンIDのよ うなものを attributes として埋め込む • 正式な分析などはDWHなどに 入 れて
行 うが、リアルタイムで簡易的な分析や エラー調査などは Datadog 上で 行 いたい • ログに 入 っている coupon_id= 4 d 94 8 c 5 d- 2 … みたいなものが実際になんと いう名前のクーポンなの分からない DBや管理画 面 を参照しにいく必要がある メタ情報の付与 Notebook ×Reference Tables を使おう!
• Datadog 版の Jupyter Notebook のようなもの • Dashboards などのようなグラフ表 示
とテキスト などを組み合わせて書くことができる • 「DS じゃなくてもちょっと 見 てみたい…」みたい な PM なども気軽に試せる • 複数 人 同時編集もできるので、障害時の調査など にも使える Notebook ϊʔτϒοΫc%BUBEPH
• ログに流れてくる id などのデータで名称などメタ情報を追加したくなってくる Reference Table を使 用 してマッピング情報を与える Notebook
• ログに流れてくる id などのデータで名称などメタ情報を追加したくなってくる Reference Table を使 用 してマッピング情報を与える Notebook
ここでクーポン名とか 見 れると嬉しそう…
• すでにある情報に対してメタデータを付与できる • id などに対応する付加したい情報などを csv 等でアップロードする • Lookup Processor
でアップロードしたテーブルを選択する Reference Tables ϦϑΝϨϯεςʔϒϧͰΧελϜϝλσʔλΛՃ͢Δc%BUBEPH
• csv をアップロードして PK(参照する key attribute)を選択 • 手 動アップロードはもちろんだが、S 3
/GCS/Azure Storage にも対応 パイプラインに組み込んで定期的な更新が可能 Reference Tables リファレンステーブルでカスタムメタデータを追加する | Datadog
Reference Tables id,name test-1,ςετ1
Reference Tables id,name test-1,ςετ1 Reference Tables を登録
id,name test-1,ςετ1 Reference Tables Log の Pipeline で Processor type
に Lookup Processor を選択
id,name test-1,ςετ1 Reference Tables 作成した Reference Tables を選択
id,name test-1,ςετ1 Reference Tables メタ情報を追加する際の key 名を設定 test_id という key
の 一 致を検証
id,name test-1,ςετ1 Reference Tables メタ情報を追加する際の key 名を設定 一 致した場合 mytest.name
という attribute が追加
• Mobile Application Test 一 年近く使って試しているが、予期せぬ落ち 方 をすることもまだ多いのでこれからに期待 (おそらく)仮想端末を動かしているところの IP
レンジも教えてもらえたので、IP制限のあ る API に対しての実際にアクセスしながらのテストもできている その他にも 色 々 Easily Test and Monitor Your Mobile Applications With Datadog Mobile Application Testing | Datadog
• Error Tracking ログに error.message / error.stack / error.kind の
attributes を追加するとエラーの種類を分離して くれる エラーログに関するエラーは全て Error Tracking ベースのものに統 一 している その他にも 色 々 ࣗಈੜΛ׆༻ͨ͠ɺӡ༻อकίετΛ͑Δ&SSPS"MFSU3VOCPPLͷҰݩूཧ
まとめ • 紹介した機能 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