Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DatadogAPMでAPIレイテンシを90%削減した話
Search
glaciermelt00
March 30, 2025
Programming
210
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
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.7k
Are APIs Still Relevant in the AI Era?
soyuka
0
220
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
1k
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
560
Heart of Swift Concurrency
koher
0
730
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
470
XHTMLが残したもの
yosuke_furukawa
PRO
2
800
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
270
Building an Out-of-Order CPU
latte72
1
780
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
370
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
280
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
990
The SEO Collaboration Effect
kristinabergwall1
1
560
Designing for Timeless Needs
cassininazir
1
480
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
280
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The browser strikes back
jonoalderson
0
1.7k
Are puppies a ranking factor?
jonoalderson
2
3.9k
Visualization
eitanlees
152
17k
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 のさらなる活用方法 - 他プロダクトへの横展開 - バックエンドチームが自律的に改善アクションできる仕組みづくり - 自らパフォーマンス改善へチャレンジ
ご清聴ありがとうございました!