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

コロプラにおける Datadog APM 活用/ColoplTech-01-02

COLOPL Inc.
January 27, 2022

コロプラにおける Datadog APM 活用/ColoplTech-01-02

※資料内の参照リンクを選択し閲覧する場合は、ダウンロードをお願いいたします

\積極的に技術発信を行なっております/
▽ Twitter/COLOPL_Tech
https://twitter.com/colopl_tech

▽ connpassページ
http://colopl.connpass.com

▽ COLOPL Tech Blog
http://blog.colopl.dev

COLOPL Inc.

January 27, 2022
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

  1.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    1

    コロプラにおける

    Datadog APM 活用

    2022/01/13


    View Slide

  2.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    2

    自己紹介

    ● おはぎ

    ● 株式会社コロプラ 2019/04 中途入社

    ● SREチーム


    View Slide

  3.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    3

    内容

    ● 話すこと

    ○ GKE/PHP/Laravel 環境で運用されているタイトルで Datadog APM をどのよう
    に活用しているか

    ● 話さないこと

    ○ Datadog 導入経緯

    ○ Agent の設定や構成


    View Slide

  4.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    4

    APM

    ● APM: Application Performance Monitoring

    ○ アプリケーションの性能を監視して問題の検知や原因特定を効率的に行うた
    めのツール

    ● 様々な監視サービスにより提供されている

    ○ e.g. Datadog, NewRelic, Cloud Operations(Google Cloud)

    ● 主な機能

    ○ メトリクス, トレース, プロファイリング, サービスマップなど

    ● 使う目的

    ○ 性能監視や問題が発生したときの調査を効率的に行いたい


    View Slide

  5.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    5

    Datadog

    ● Datadog, Inc が提供する監視&分析 SaaS

    ● インテグレーションが豊富

    ● APM 以外にも様々な機能

    ○ ログ監視, ネットワーク監視, アラート, etc

    ● コロプラでは主に APM を活用


    View Slide

  6.          
    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

    View Slide

  7.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    7

    コロプラのモニタリング

    ● Prometheus/Grafana

    ○ リクエスト(RPS, エラー数, レイテンシなど)

    ○ GKE/K8s リソース

    ○ Spanner

    ○ VM コンポーネント(MySQL, RabbitMQ, Redis)

    ● Cloud Logging

    ○ ログ全般

    ● Datadog APM

    ○ API サーバ

    主に問題検知

    主に原因調査


    View Slide

  8.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    8

    Datadog APM よく見る箇所

    ● Latecy

    ○ パス毎も確認可能

    ● Time Spent

    ○ 原因の切り分け

    ● Endpoint

    ○ 時間を食うパスが分かる


    View Slide

  9.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    9

    Datadog APM よく見る箇所


    ● Span Summary

    ○ 特定のエンドポイントのサマリ

    ○ ボトルネックになっている箇所


    View Slide

  10.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    10

    Datadog APM よく見る箇所


    ● Live Search

    ○ トレースの検索

    ○ 横串で指標の確認も可能


    View Slide

  11.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    11

    Datadog APM よく見る箇所

    ● Frame Graph

    ○ さらに詳細に処理を確認するとき

    ○ 不審なロジックの発見


    View Slide

  12.          
    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 


    View Slide

  13.          
    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 


    View Slide

  14.          
    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/

    View Slide

  15.          
    COLOPL, Inc. All Rights Reserved|CONFIDENTIAL
    15

    まとめ

    ● コロプラでは主に原因調査する目的で Datadog APM を活用している

    ● Datadog APM を使うことで運用中のパフォーマンス問題の原因調査を効
    率的に行えている

    ● Custom Instrumentation で調査に有用な情報を簡単に追加可能


    View Slide