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
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
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
390
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
360
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.8k
「人を評価する AI」の設計と実装
ryoyanara
0
240
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
2
200
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
490
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
720
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
110
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
My Marp Sample
sinoue0108
0
120
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
550
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
How to train your dragon (web standard)
notwaldorf
97
6.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
580
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
560
Everyday Curiosity
cassininazir
0
290
My Coaching Mixtape
mlcsv
0
280
Chasing Engaging Ingredients in Design
codingconduct
0
280
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
220
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
630
エンジニアに許された特別な時間の終わり
watany
108
250k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
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 のさらなる活用方法 - 他プロダクトへの横展開 - バックエンドチームが自律的に改善アクションできる仕組みづくり - 自らパフォーマンス改善へチャレンジ
ご清聴ありがとうございました!