※資料内の参照リンクを選択し閲覧する場合は、ダウンロードをお願いいたします
\積極的に技術発信を行なっております/ ▽ Twitter/COLOPL_Tech https://twitter.com/colopl_tech
▽ connpassページ http://colopl.connpass.com
▽ COLOPL Tech Blog http://blog.colopl.dev
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL1 コロプラにおける Datadog APM 活用 2022/01/13
View Slide
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL2 自己紹介 ● おはぎ ● 株式会社コロプラ 2019/04 中途入社 ● SREチーム
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL3 内容 ● 話すこと ○ GKE/PHP/Laravel 環境で運用されているタイトルで Datadog APM をどのように活用しているか ● 話さないこと ○ Datadog 導入経緯 ○ Agent の設定や構成
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL4 APM ● APM: Application Performance Monitoring ○ アプリケーションの性能を監視して問題の検知や原因特定を効率的に行うためのツール ● 様々な監視サービスにより提供されている ○ e.g. Datadog, NewRelic, Cloud Operations(Google Cloud) ● 主な機能 ○ メトリクス, トレース, プロファイリング, サービスマップなど ● 使う目的 ○ 性能監視や問題が発生したときの調査を効率的に行いたい
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL5 Datadog ● Datadog, Inc が提供する監視&分析 SaaS ● インテグレーションが豊富 ● APM 以外にも様々な機能 ○ ログ監視, ネットワーク監視, アラート, etc ● コロプラでは主に APM を活用
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL6 コロプラのバックエンドシステム 2021/12/03 Cloud Native Lounge #3 大規模ゲームインフラとしての Kubernetes とノーメンテナンス運用 https://speakerdeck.com/toversus/da-gui-mo-kemuinhuratositefalse-kubernetes-tofalsementenansuyun-yong?slide=21
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL7 コロプラのモニタリング ● Prometheus/Grafana ○ リクエスト(RPS, エラー数, レイテンシなど) ○ GKE/K8s リソース ○ Spanner ○ VM コンポーネント(MySQL, RabbitMQ, Redis) ● Cloud Logging ○ ログ全般 ● Datadog APM ○ API サーバ 主に問題検知 主に原因調査
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL8 Datadog APM よく見る箇所 ● Latecy ○ パス毎も確認可能 ● Time Spent ○ 原因の切り分け ● Endpoint ○ 時間を食うパスが分かる
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL9 Datadog APM よく見る箇所 ● Span Summary ○ 特定のエンドポイントのサマリ ○ ボトルネックになっている箇所
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL10 Datadog APM よく見る箇所 ● Live Search ○ トレースの検索 ○ 横串で指標の確認も可能
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL11 Datadog APM よく見る箇所 ● Frame Graph ○ さらに詳細に処理を確認するとき ○ 不審なロジックの発見
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL12 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
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL13 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
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL14 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/
COLOPL, Inc. All Rights Reserved|CONFIDENTIAL15 まとめ ● コロプラでは主に原因調査する目的で Datadog APM を活用している ● Datadog APM を使うことで運用中のパフォーマンス問題の原因調査を効率的に行えている ● Custom Instrumentation で調査に有用な情報を簡単に追加可能