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
2.2k
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
k6を活用した再現性・拡張性の高い負荷試験基盤の構築
biwashi
11
3.5k
feature flag と OpenTelemetry
biwashi
7
2k
OpenFeatureと自動生成を活用したフィーチャーフラグの宣言的集約管理
biwashi
19
4.8k
Unified Diff 形式の差分から Go AST を構築して feature flag を自動計装する
biwashi
11
1.2k
オブザーバビリティ研修実践編
biwashi
35
14k
自動生成を活用した、運用保守コストを抑える Error/Alert/Runbook の一元集約管理 / Centralized management of Error/Alert/Runbook to minimize operational costs using automated code generation
biwashi
17
3.9k
Feature Flag Deep Dive
biwashi
24
9.2k
GoのProtocプラグインを活用した効率的な負荷試験戦略 / Efficient Load Testing Strategies Utilizing the Go Protoc Plugin
biwashi
3
890
HTTP Retry の実装
biwashi
0
450
Other Decks in Technology
See All in Technology
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
650
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
TypeScript、上達の瞬間
sadnessojisan
46
13k
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
410
AGIについてChatGPTに聞いてみた
blueb
0
130
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
320
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
Git: the NoSQL Database
bkeepers
PRO
427
64k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
A better future with KSS
kneath
238
17k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
96
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