Slide 1

Slide 1 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 1
 コロプラにおける
 Datadog APM 活用
 2022/01/13
 


Slide 2

Slide 2 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 2
 自己紹介
 ● おはぎ
 ● 株式会社コロプラ 2019/04 中途入社
 ● SREチーム


Slide 3

Slide 3 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 3
 内容
 ● 話すこと
 ○ GKE/PHP/Laravel 環境で運用されているタイトルで Datadog APM をどのよう に活用しているか
 ● 話さないこと
 ○ Datadog 導入経緯
 ○ Agent の設定や構成


Slide 4

Slide 4 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 4
 APM
 ● APM: Application Performance Monitoring
 ○ アプリケーションの性能を監視して問題の検知や原因特定を効率的に行うた めのツール
 ● 様々な監視サービスにより提供されている
 ○ e.g. Datadog, NewRelic, Cloud Operations(Google Cloud)
 ● 主な機能
 ○ メトリクス, トレース, プロファイリング, サービスマップなど
 ● 使う目的
 ○ 性能監視や問題が発生したときの調査を効率的に行いたい


Slide 5

Slide 5 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 5
 Datadog
 ● Datadog, Inc が提供する監視&分析 SaaS
 ● インテグレーションが豊富
 ● APM 以外にも様々な機能
 ○ ログ監視, ネットワーク監視, アラート, etc
 ● コロプラでは主に APM を活用


Slide 6

Slide 6 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 6
 コロプラのバックエンドシステム
 2021/12/03 Cloud Native Lounge #3 大規模ゲームインフラとしての Kubernetes とノーメンテナンス運用 
 https://speakerdeck.com/toversus/da-gui-mo-kemuinhuratositefalse-kubernetes-tofalsementenansuyun-yong?slide=21

Slide 7

Slide 7 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 7
 コロプラのモニタリング
 ● Prometheus/Grafana
 ○ リクエスト(RPS, エラー数, レイテンシなど)
 ○ GKE/K8s リソース
 ○ Spanner
 ○ VM コンポーネント(MySQL, RabbitMQ, Redis)
 ● Cloud Logging
 ○ ログ全般
 ● Datadog APM
 ○ API サーバ
 主に問題検知
 主に原因調査


Slide 8

Slide 8 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 8
 Datadog APM よく見る箇所
 ● Latecy
 ○ パス毎も確認可能
 ● Time Spent
 ○ 原因の切り分け
 ● Endpoint
 ○ 時間を食うパスが分かる


Slide 9

Slide 9 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 9
 Datadog APM よく見る箇所
 
 ● Span Summary
 ○ 特定のエンドポイントのサマリ
 ○ ボトルネックになっている箇所


Slide 10

Slide 10 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 10
 Datadog APM よく見る箇所
 
 ● Live Search
 ○ トレースの検索
 ○ 横串で指標の確認も可能


Slide 11

Slide 11 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 11
 Datadog APM よく見る箇所
 ● Frame Graph
 ○ さらに詳細に処理を確認するとき
 ○ 不審なロジックの発見


Slide 12

Slide 12 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 12
 Custom Instrumentation
 ● 一般的なフレームワークは ddtrace をインストールするだけで OK
 ● 実際にはアプリケーションコードもトレースしたい
 ○ ビジネスロジック部分
 ○ 外部との I/F 
 ● 明示的にコードで指定
 参考: https://docs.datadoghq.com/ja/tracing/setup_overview/custom_instrumentation/php/?tab=tracingfunctioncalls#trace-a-custom-function-or-method 


Slide 13

Slide 13 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 13
 ddtrace を使うときの注意点
 ● 1トレースに含めることができる Span 数の上限
 ○ DD_TRACE_SPANS_LIMIT
 ■ デフォルト: 1000
 ○ ドキュメントに見当たらなかったが下記 PR で言及あり
 ■ https://github.com/DataDog/dd-trace-php/pull/745 
 ● 内部関数をトレースする場合は環境変数の設定が必要
 参考: https://docs.datadoghq.com/ja/tracing/setup_overview/custom_instrumentation/php/?tab=tracingfunctioncalls#tracing-internal-functions-and-methods 


Slide 14

Slide 14 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 14
 Datadog 所感
 ● GUI が使いやすい
 ○ グラフの平滑化やトレンド表示をさくっとやってくれる便利機能もある
 ● APM 以外にも気になる機能がある
 ○ Notebook, SLO/Error Budget
 ● PHP に前向きな雰囲気
 ○ PHP8 + JIT 対応(*)
 ● 料金を抑える工夫も可能
 ○ Retention Filter, tracer を有効にする Pod の限定など
 ● dd-trace-php 破壊的変更に注意
 (*) https://www.datadoghq.com/ja/blog/engineering/php-8-observability-baked-right-in/

Slide 15

Slide 15 text

          COLOPL, Inc. All Rights Reserved|CONFIDENTIAL 15
 まとめ
 ● コロプラでは主に原因調査する目的で Datadog APM を活用している
 ● Datadog APM を使うことで運用中のパフォーマンス問題の原因調査を効 率的に行えている
 ● Custom Instrumentation で調査に有用な情報を簡単に追加可能