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

php-profiler-extensionを使ったApplication Performance Monitoring

Takuya Arita
February 22, 2017

php-profiler-extensionを使ったApplication Performance Monitoring

PHP BLT #6 での発表資料です #phpplt

Takuya Arita

February 22, 2017
Tweet

More Decks by Takuya Arita

Other Decks in Programming

Transcript

  1. php-profiler-extensionを使った
    Application Performance Monitoring
    @ariarijp

    View Slide

  2. 自己紹介
    • @ariarijp(Takuya Arita)
    • 株式会社ココラブル ソフトウェアエンジニア
    • Facebook広告運用ツールの開発担当
    • 毎日CSVかJSONと戯れています

    View Slide

  3. php-profiler-extensionを使った
    Application Performance Monitoring

    View Slide

  4. php-profiler-extensionを使った
    Application Performance Monitoring
    Yak Shaving

    View Slide

  5. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化

    View Slide

  6. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化

    View Slide

  7. tideways/php-profiler-extension

    View Slide

  8. tideways/php-profiler-extension
    • PHPのプロファイリング、モニタリングなどをSaaSで提供
    しているTidewaysが中心となって開発
    • XHProfの代替として使える
    • PHP7をサポート!
    • 特定の区間(span)を計測できる
    • Tidewaysを使わなくてもよい
    • 適当にTCP/UDPポート開けておけばそこに投げ込んでく
    れる

    View Slide

  9. tideways/php-profiler-extension
    • PHPのプロファイリング、モニタリングなどをSaaSで提供
    しているTidewaysが中心となって開発
    • XHProfの代替として使える
    • PHP7をサポート!
    • 特定の区間(span)を計測できる
    • Tidewaysを使わなくてもよい
    • 適当にTCP/UDPポート開けておけばそこに投げ込んでく
    れる

    View Slide

  10. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化

    View Slide

  11. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化
    実は最初(php-apm)別の使ってたけどダメだった

    View Slide

  12. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化
    バッファーサイズ足りないっぽい?けど
    デモではごまかす
    実は最初(php-apm)別の使ってたけどダメだった

    View Slide

  13. 構成
    • php-profiler-extension
    • TCPソケットサーバー
    • php-profiler-extensionからJSONを受け取って
    Elasticsearchで扱いやすいように整形して
    • Fluentd
    • JSON形式の入力をElasticsearchに流す
    • Elasticsearch / Kibana
    • データの格納と可視化
    設定の仕方忘れててハマった
    バッファーサイズ足りないっぽい?けど
    デモではごまかす
    実は最初(php-apm)別の使ってたけどダメだった

    View Slide

  14. デモ環境
    • Vagrant(VirtualBox / Ubuntu 16.04 / PHP 7.0.13)
    • 前述のピタゴラスイッチ
    • WordPress(FakerPressでダミー記事作成済み)
    • WordPressをクロールするプログラム

    View Slide

  15. デモの雰囲気

    View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. まとめ
    • XHProfのデータをKibanaで見れるのは便利かもし
    れない
    • すでにElasticsearch/Kibana環境があれば導入ハー
    ドルは低そう
    • Elasticsearch/Kibanaの話だよね。とか言わない

    View Slide

  20. まとめ
    • XHProfのデータをKibanaで見れるのは便利かもし
    れない
    • すでにElasticsearch/Kibana環境があれば導入ハー
    ドルは低そう
    • Elasticsearch/Kibanaの話だよね。とか言わない

    View Slide

  21. Thank you!

    View Slide