Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Datadogを活用した マイクロサービスの可観測性向上 ~モノタロウの導入効果と実践ノウハウ~

Avatar for MonotaRO MonotaRO PRO
October 23, 2025
17

Datadogを活用した マイクロサービスの可観測性向上 ~モノタロウの導入効果と実践ノウハウ~

Avatar for MonotaRO

MonotaRO PRO

October 23, 2025
Tweet

More Decks by MonotaRO

Transcript

  1. 好きなこと/趣味 漫画(特にキングダム)、 NBA、新日本プロレス 略歴 2022年4月  モノタロウに新卒入社(技術職) 2022年7月~ 現在 ECシステムエンジニアリング部門 所属

    仕事内容 モノタロウサイトの商品検索ページのフロントエンド開発および、検索アグリゲーションAPIの開発をメ インに担当。 有志で行っているDeveloper Experience向上プロジェクトでは、PR毎のプレビュー環境作成自動化など の開発基盤整備を推進。 現在はモノタロウサイトの耐障害性向上の一環で、Datadog APMを用いてサイトシステム全体への分散 トレーシング導入の推進を行っています 🚀 加藤 功一朗(かとう こういちろう)
  2. 好きなこと/趣味 嵐、アニメ・ドラマ鑑賞 テニス、ゴルフ 略歴 2022年4月  モノタロウに新卒入社(総合職) 2022年7月~ 現在 ECシステムエンジニアリング部門 EC開発-Bグループ

    所属 2023年12月~2025年3月 ECシステムエンジニアリング部門 開発生産性グループ 所属(兼任) 仕事内容 モノタロウサイトの利便性向上・継続利用のための機能追加・改修を担当。フロントエンド開発がメイン で、機能の内容によって一部バックエンド開発も実施。直近は新規開発のPMを担当。 開発生産性グループでは、Developer Experience向上プロジェクトで、技術職メンバーと一緒にPR毎の プレビュー環境作成自動化などの開発基盤整備を推進した。 現在はモノタロウサイトの耐障害性向上の一環で、Datadog APMを用いてサイトシステム全体への分散 トレーシング導入の推進を行っている。 木上 瑞美 (きがみ たまみ)
  3. 事業紹介 6 BtoB を対象に、 自ら間接資材の在庫を持ち、 自らオンラインで売るEC 企業 コールセンター、商 品 採

    用、物 流、 マーケティング、データサイエンス、 IT など多くの業務とシステムを 自社開発、自社運用している フルスタック EC カンパニー
  4. 目次 • モノタロウサイトの構成 • モノタロウサイトの課題 • 前提知識 ◦ どのようにDatadogにデータが取り込まれるのか? •

    Datadog活用状況 ◦ APM ◦ 統合サービスタグの整備 ◦ Monitors ◦ Logs ◦ Dashboards • 今後の展望 • まとめ 9
  5. モノリスからマイクロサービスへ 11 11 nginx BFF FEアプリA FEアプリB Product Search Customer

    Recommend Order Cart Product microservice FEアプリA FEアプリB nginx API① API② モノリス期(~2023) マイクロサービス化過渡期(2023~現在)
  6. 17 アプリからDatadogまでのデータの取り込みの流れ • ざっくりと以下の流れ ◦ アプリケーション > エージェント(Datadog Agent /

    Otel Collector) ▪ Datadog Tracer / OpenTelemetry SDKを使用して テレメトリデータを送信 ◦ エージェント(Datadog Agent / Otel Collector) > Datadog ▪ 受け取ったテレメトリデータの受信及び処理 ▪ Datadog Backendへのデータ転送 OpenTelemetry in Datadog
  7. 18 アプリからDatadogまでのデータの取り込みの流れ • ざっくりと以下の流れ ◦ アプリケーション > エージェント(Datadog Agent /

    Otel Collector) ▪ Datadog Tracer / OpenTelemetry SDKを使用して テレメトリデータを送信 ◦ エージェント(Datadog Agent / Otel Collector) > Datadog ▪ 受け取ったテレメトリデータの受信及び処理 ▪ Datadog Backendへのデータ転送 OpenTelemetry in Datadog モノタロウでは Datadog Agentを使用 モノタロウでは 両方を使用
  8. 19 補足:全てのトレースが取り込まれるわけではない👻 項目 Head Sampling Tail Sampling 説明 • リクエスト開始時にアプリのSDK側で事前定義

    されたルールでサンプリングを決定 • Agent側で実際のトレース内容 (エラー、レイテンシなど)を基に サンプリングルールを設定して決定 メリット • 実装が容易 • 予測可能なデータ量 • エラーやレイテンシが遅いといった 重要なトレースを確実に保存 デメリット • サンプリングに細かい条件をつけられない • エージェントの構成・運用が複雑 OpenTelemetry in Datadog
  9. 31 ② Datadogを使いこなせていない 取り組んだこと: • まずはタグのルールの整備を実施 ◦ 統合サービスタグ(DD_ENV / DD_SERVICE

    / DD_VERSION) の命名規則を整備し、全体で適用 ※ Datadog 公式のベストプラクティスにも書かれている通り、 env、service、version タグを正しく設定することが Datadog を使いこなす上で 非常に重要
  10. 32 統合サービスタグの整備:タグの設定内容の前後比較 タグ 整備前 整備後 DD_ENV 環境名にサイトの情報が 含まれていた 環境名のみに統一 siteX-dev,

    siteY-prod ↓ dev, prod DD_SERVICE サービス名に環境名が 含まれていた サービス名 のみに統一 search-app-dev ↓ search-app DD_VERSION 未設定、固定値など imageタグ名・日時など どのデプロイか識別 できるよ うなものに変更 v1 ↓ YYYYMMDDHHMMSS, commit hash, release tag
  11. Datadog Logsの活用:TraceとLogの紐づけ • ログにdd.trace_id / dd.span_idを追加することで、 TraceとLogが紐づくように😃 (参考:Correlate Logs and

    Traces) ◦ 注意:Otel SDKを使用している場合は、TraceId と SpanId をOpenTelemetry形式 からDatadog形式に変換する必要があります 40
  12. 44 Dashboardsの活用状況 • サービス単位などでダッシュボードが作成されている • 具体的な活用内容 ◦ トラブル発生時、トラブル対応したメンバーがエラーの収束状況を確認 ◦ トラブル発生時、影響が全体的/限定的かを判断する

    ◦ ダッシュボードで全体の指標を定常的に監視することで 異常発生を素早く検知 (該当サービスのDashboardsを見て) この件すでに収束済みですか? Datadogのダッシュボードを見ると 5xxエラーが継続していまして。 確認します
  13. 今後取り組みたいこと • 運用整備 ◦ 障害発生箇所が一目でわかるようにする →障害発生時の発生箇所特定時間・担当チームへの連携までの時間を 20%削減 ▪ インシデントの活用検討など ◦

    開発者がDatadogを活用できるようにする ▪ 勉強会の実施(本日Datadog Japan社と合同で実施しました!) ▪ 社内ドキュメントの整理など • Datadogの整備 ◦ OpenTelemetry Collectorを用いたTail Sampling ▪ n%の分散トレーシング+100%のエラートレース 46
  14. 48 まとめ • 分散トレーシングの実現 ◦ headerにtraceの情報 (x-datadog-trace-id/x-datadog-parent-id or traceparent/tracestate)を載せて伝播させる ◦

    Parent Based Samplingの設定を追加 • 統合サービスタグ(ENV, SERVICE, VERSION)の整備 ◦ コンポーネントの依存関係やリリースバージョン毎の 指標の可観測性UP🚀 • Monitorsを活用して異常を素早く検知できる体制が整った • LogとTraceが紐づき異常のあるリクエストの問題点が1画面で分かるように • Dashboardsを活用して朝会等でアプリの変化を俯瞰して確認できるように