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
DatadogAPMでAPIレイテンシを90%削減した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
glaciermelt00
March 30, 2025
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DatadogAPMでAPIレイテンシを90%削減した話
glaciermelt00
March 30, 2025
Other Decks in Programming
See All in Programming
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
270
Performance Engineering for Everyone
elenatanasoiu
0
270
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
840
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
180
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.8k
act1-costs.pdf
sumedhbala
0
210
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.7k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
210
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
320
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
370
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Facilitating Awesome Meetings
lara
57
7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
How to build a perfect <img>
jonoalderson
1
5.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Unsuck your backbone
ammeep
672
58k
Git: the NoSQL Database
bkeepers
PRO
432
67k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
Transcript
Datadog APM で API レイテ ンシを 1/10 に改善した話 ぐらめる
今更 Datadog APM の話 … ? - 話そうと思ったきっかけ - 未導入の方に
APM の魅力を伝えたい - 数値で語れることの大事さ - 可視化の力
ある日の弊社 そろそろ APM 導入したいね。 原田さん、どう? やりましょう! 二つ返事で導入することに
Datadog は名前だけ聞いたことあるけど・・・ どんな サービス? 全くわからないところからスタート
よくよく社内のドキュメントを漁ると・・・ Datadog APM に トライしていた! が、本番環境でサー バーダウンするた め白紙に 再度チャレンジ!
早速営業の方にデモを見せてもらう めちゃくちゃ便利! 感動! 絶対に導入したい!
Who are you ? ぐらめる(原田 丈) ~‘21 生産技術・購買 @日産 ‘21~ SWE
‘23~ SRE main @スタイルポート
登壇のきっかけ - Datadog APM によるレイテンシ可視化がきっかけでプロダクトのパフォーマ ンスが劇的に改善 - 感動したので皆様にお裾分け - Datadog
導入に足踏みされている方の後押しとなれば - より深い気づき - こんなサービスあるよ!など、フィードバックいただけるとありがたいです
導入の背景 なぜ APM を導入しようと思ったの か? どのような課題があったのか?
導入のきっかけと背景 なぜ APM を導入しようと思ったのか? どのような課題があったのか? - API パフォーマンスがどの程度のレベルか把握できていない状態なので、現 状把握したい -
パフォーマンスに問題がある場合、ユーザーからのフィードバックを待たずに 改善したい
インフラ構成 ECS Fargate 上で動作する Ruby on Rails アプリケーションに Datadog APM
を 導入
ボトルネックの特定と改善 - どのような問題があったのか? - 特定の API でレイテンシが高い状態 - どの指標を見て、どう改善を進めたのか? -
p99 レイテンシが高い API の特定 - トレースのフレームグラフ で問題のある要素の特定 - コントローラ・シリアライザ・SQL クエリ・外部通信など
具体例 8秒近くかかっているリクエストの内訳を見ると、/histories APIのリスト取得の 時間がほとんどだった。
具体的な改善アプローチ - パフォーマンス悪化の原因 - historyUseCase.Listにて、はじめにGetByUseCase(企業 x UseCase) でDynamoDBから取得 し、それからメモリ上でフィルタリングしている。 -
GetByUseCaseではカーディナリティが低く、時間と共に取得件数が単調増加してしまう。 - stage環境にて試したところ、DynamoDBからの取得で15万件ヒット、7~10秒かかっていた。 - 対応方針 - 第一フィルタリングをGetByUseCaseではなく、優先度に応じて1度だけ行うようにした。 - Objectのカーディナリティは極めて高く、フィルタリング効果が大きいのでObjectが指定され ているクエリについてはパフォーマンスが大きく改善する。 - 既存のhistory APIのコールを一通り確認したが、概ねObjectが指定されていたので全体的に改 善するのではないかと期待。 - 結果 - Object指定のリクエストについては 7s → 54ms に改善した。
継続的な改善と今後の展望 - どのようにレイテンシをモニタリングし続けているか? - daily - Dashboards にレイテンシ用ダッシュボードを作成してモニタリング(目視) - 全体的に不安定なため、アラームは未設置
継続的な改善と今後の展望 - monthly - APM > Service > Endpoints でレイテンシの高い
API を特定 - 合計時間(ユーザーが消費した時間) > リクエスト数 > p99 レイテンシ を比較し、規 定以上の API を特定 - 例: 過去 1 ヶ月で 合計時間 30 min 以上、リクエスト数 100 以上、p99 レイテン シ 1s 以上の API
まだ残っている課題と今後の改善ポイント - toB サービスの API が目標を上回っている状態 - toC サービスでもまれにスパイクが発生し、目標を上回ることが懸念される -
月1 でバックエンドチームでレイテンシの状況確認 - 優先度をつけてパフォーマンス改善対象の API を特定 - PM チームに状況共有しチケット化・アサイン・リリース時期を調整
Datadog APM のさらなる活用方法 - 他プロダクトへの横展開 - バックエンドチームが自律的に改善アクションできる仕組みづくり - 自らパフォーマンス改善へチャレンジ
ご清聴ありがとうございました!