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 APMで測定するアプリケーションパフォーマンス
Search
Hiroyuki Shigeta
February 15, 2024
Technology
0
290
Datadog APMで測定するアプリケーションパフォーマンス
2024.02.15 第3木曜LT会 #2 発表資料です。
https://metaps.connpass.com/event/307900/
Hiroyuki Shigeta
February 15, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
660
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
310
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
170
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
200
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
400
Context Engineeringの取り組み
nutslove
0
380
AI駆動開発を事業のコアに置く
tasukuonizawa
1
360
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
330
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
3
320
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.2k
Automating Front-end Workflow
addyosmani
1371
200k
Marketing to machines
jonoalderson
1
4.6k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
Visualization
eitanlees
150
17k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
Building Flexible Design Systems
yeseniaperezcruz
330
40k
エンジニアに許された特別な時間の終わり
watany
106
230k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Transcript
Datadog APMで測定するアプリケー ションパフォーマンス 株式会社メタップスペイメント 茂田 裕行
自己紹介 名前 茂田 裕行 経歴 • 2018年に株式会社メタップスペイメント入社 • それ以前はSIerやスタートアップでサービスやアプリの開発、保守 普段使っている言語 Go,
Python
『給与即時払いサービスCRIA』のサービス構成 • バックエンドAPI ◦ Go ◦ AWS(ECS Fargate, Aurora, SQS,
S3, SNS, Lambda) • アプリ ◦ React Native • ブラウザ版、管理画面 ◦ React • マイクロサービス ◦ 送金 ◦ データの一括登録
運用で困っていること • インフラで発生するインシデント(メールが送られない、画面表示が遅いなど)が発生しても、即座の原因 特定が困難 • イベント(データ登録や更新)ごとの頻度や利用時間帯がつかめない • 時系列的に記録されたログでは、他に来るリクエストの情報が混じったりして、特定の関心のあるリクエス トを追うのが難しい •
処理が複数のサービスに分散されていると、関心のあるの処理を追いづらい
Datadog APMとは Datadog社が提供する、アプリケーションのパフォーマンスをリアルタイムで監視し、分析するためのツール (SaaS) • ユーザーのリクエストがシステムを通過するパスを追跡し、各モジュールでの処理時間を把握できる • アプリケーションのパフォーマンスを監視し、異常が発生した場合に検知 • 詳細なレポーティング
• 分散システムのサポート
実際に組み込んでみた // アプリケーション開始時 tracer.Start(tracer.WithServiceName(serviceName)) defer tracer.Stop() // データベース接続時 sqltrace.Register("mysql", &mysql.MySQLDriver{},
sqltrace.WithServiceName(serviceName)) db, err := sqltrace.Open("mysql", "datadog_sample:password@tcp(db:3306)/db_test", sqltrace.WithServiceName(serviceName)) if err != nil { logger.Error("failed to connect mysql", slog.Any("error", err)) return } defer db.Close() それ以外にも、datadog-agentの設定でAPM有効化を行う必要がある ソースコードでライブラリを組み込む必要がある( Goの場合)
適用後に見られる画面 リクエスト数、エラー数、レイテンシ、処理内訳が確認できた サマリ
適用後に見られる画面 トレース 適切に設定すれば、アプリケーションでかかった時間だけでなく、外部システム( DBやマイクロサービス) の呼び出し時間や処理内容もわかる。 メソッドごとの処理時間も、スパン(処理単位)を設定すればわかる。
適用後に見られる画面 ログ 適切に設定(span_idとtrace_idをログに出力しdatadogへ送信)すれば、リクエストごとに、紐づいたログ を参照できる
今後の課題 • 本番環境への全体的な適用(ソースコード修正が必要) ◦ Goだとcontext.Contextというパラメータに、 APM設定用の情報を設定し、リクエストを受け付ける処理から DB やAWS操作処理まで引き回す必要がある ◦ 各サービスで修正する必要がある
• 各イベントの時間帯ごとの発生頻度を出す方法は調査中