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
720
OpenTelemetry の Log を使いこなそう
biwashi
5
1.4k
Monorepo Error Management: Automated Runbooks and Team-Targeted Alert Distribution
biwashi
2
300
スタートアップ創業期を支えるオブザーバビリティ基盤のこれまでとこれから
biwashi
9
1.5k
モノレポ開発のエラー、誰が見る?Datadog で実現する適切なトリアージとエスカレーション
biwashi
7
1.4k
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
VCC 2025 Write-up
bata_24
0
180
Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則
morihirok
17
7.3k
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
extension 現場で使えるXcodeショートカット一覧
ktombow
0
210
実装で解き明かす並行処理の歴史
zozotech
PRO
1
310
Railsアプリケーション開発者のためのブックガイド
takahashim
14
6.1k
生成AI_その前_に_マルチクラウド時代の信頼できるデータを支えるSnowflakeメタデータ活用術.pdf
cm_mikami
0
110
ユニットテストに対する考え方の変遷 / Everyone should watch his live coding
mdstoy
0
120
How to achieve interoperable digital identity across Asian countries
fujie
0
110
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
260
AI時代だからこそ考える、僕らが本当につくりたいスクラムチーム / A Scrum Team we really want to create in this AI era
takaking22
6
3.3k
自作LLM Native GORM Pluginで実現する AI Agentバックテスト基盤構築
po3rin
2
240
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Designing for humans not robots
tammielis
254
25k
Unsuck your backbone
ammeep
671
58k
Scaling GitHub
holman
463
140k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Embracing the Ebb and Flow
colly
88
4.8k
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