Slide 1

Slide 1 text

まるすけ (@malsuke096) New Relicを使って PHPの監視、始めてみた 1 2024/11/14

Slide 2

Slide 2 text

(注意) New Relicの回し者じゃありません 2

Slide 3

Slide 3 text

New Relicとは 3

Slide 4

Slide 4 text

New Relicとは 4 (オールインワン)オブザーバビリティプラットフォーム

Slide 5

Slide 5 text

New Relicとは 5 類似製品・パーツ

Slide 6

Slide 6 text

オブザーバビリティって? 6 https://speakerdeck.com/atsushikoga/opentelemetry-phpteshi-meru-ohusahahiriteiru-men?slide=6

Slide 7

Slide 7 text

なぜNew Relicの話 7

Slide 8

Slide 8 text

なぜNew Relicの話? 8 バイト先の会社が使ってた どうやら個人なら全機能が無料で使えるらしい! (ログは毎月100GBまで無料) PHPだと導入が楽らしい!? 学生特典もある

Slide 9

Slide 9 text

New Relicを使ってみる 9

Slide 10

Slide 10 text

New Relicの設定 10

Slide 11

Slide 11 text

New Relicの設定方法 11 PHP拡張のインストール (Dockerfileへ追記) php拡張のインストール 設定ファイルのライセンスキー設定

Slide 12

Slide 12 text

New Relicの設定方法 12 php-daemonコンテナの設定 (compose.yamlへ追記) daemonのコンテナを追加

Slide 13

Slide 13 text

おしまい 13

Slide 14

Slide 14 text

設定めっちゃ楽 導入だけなら本体のコードに触れすらしない 14

Slide 15

Slide 15 text

設定後 ダッシュボード 15

Slide 16

Slide 16 text

設定が終わった後リクエストを流すと 16 (PHP自体の応答速度) 8.32ms エラー率 (24.3%) スループット (11.9req/min) 満足度?

Slide 17

Slide 17 text

設定が終わった後リクエストを流すと 17 (PHP自体の応答速度) 8.32ms エラー率 (24.3%) スループット (11.9req/min) 満足度?

Slide 18

Slide 18 text

PHPでの活用 18

Slide 19

Slide 19 text

PHPでの活用 - Error・Warningの発見 19

Slide 20

Slide 20 text

PHPでの活用 - Error・Warningの発見 20 一覧表示される!嬉しい!

Slide 21

Slide 21 text

PHPでの活用 - Error・Warningの発見 21 詳細もわかる!

Slide 22

Slide 22 text

PHPでの活用 - Error・Warningの発見 22 詳細もわかる! どこで問題が起きてるかわかりやすい!

Slide 23

Slide 23 text

PHPでの活用 - 処理の遅いエンドポイントの発見 23

Slide 24

Slide 24 text

PHPでの活用 - 処理の遅いエンドポイントの発見 24 勝手に処理のエンドポイント毎の統計が表示される。 (カスタマイズすればいろいろ表示できるよ)

Slide 25

Slide 25 text

まて! 25

Slide 26

Slide 26 text

ルーティングを行っていると 全部/index.phpになるではないか! 26

Slide 27

Slide 27 text

PHPでの活用 - 処理の遅いエンドポイントの発見 27 Laravel勢とか.htaccessでひん曲げる勢とか。

Slide 28

Slide 28 text

PHPでの活用 - 処理の遅いエンドポイントの発見 28 安心してください。 newrelic_name_transactionを使えばこっちからpathを教える ことが可能です! (VScodeが馬鹿なのは御愛嬌 PhpStormを使おう)

Slide 29

Slide 29 text

PHPでの活用 - PHPの応答速度確認 29

Slide 30

Slide 30 text

PHPでの活用 - PHPの応答速度確認 30 クライアントへのレスポンスではなく、PHP自体の応答速度が 計測される。 レスポンスが遅い場合にPHPの問題なのか判断しやすい。

Slide 31

Slide 31 text

PHPでの活用 - PHPの応答速度確認 31 AWS上でPHPを動かすシンプルな構成 この時、ALBやCloudFrontでも問題が発生する可能性がある (AWSの障害等) 原因の切り分けが重要

Slide 32

Slide 32 text

このご時世、なんでもPHPが悪者にされる 誰が悪いのかはっきりさせたほうが良い 32

Slide 33

Slide 33 text

PHPでの活用 - 不要なファイル・関数の発見 33

Slide 34

Slide 34 text

PHPでの活用 - 不要なファイル・関数の発見 34 エンドポイントになっていればアクセスログから利用されてる か発見可能だけど... どっかからInclude、requireされてそうな場合発見が難しい こういうのやめてほしい。

Slide 35

Slide 35 text

PHPでの活用 - 不要なファイル・関数の発見 35 どこで参照されているかわからない場合にわざとWarningや Exceptionを発生させることで発見が可能

Slide 36

Slide 36 text

PHPでの活用 - 不要なファイル・関数の発見 36 スタックトレースもついてくるので 「どっから呼び出されているか」がわかる! test.phpがunused.phpを呼び出している

Slide 37

Slide 37 text

New Relicなかなかええやん 37

Slide 38

Slide 38 text

わし、無料やけど会社で使うと料 金いくらなんやろか 38

Slide 39

Slide 39 text

せや!バイト先の請求書見てみよっと! 39

Slide 40

Slide 40 text

40

Slide 41

Slide 41 text

41

Slide 42

Slide 42 text

42

Slide 43

Slide 43 text

New Relicはユーザ数課金だが どうやらフルプラットフォームユーザーは 月額$300/人 !! 43

Slide 44

Slide 44 text

料金形態 44 機能、ログ容量、ホスト数 ユーザ数課金じゃないので全員が見れる! エクセル職人が誕生しない! ユーザ数、ログ容量 ホスト数課金じゃないのでステージング等 いろんな場所でも活用できる!

Slide 45

Slide 45 text

どっちを使うかはあなた次第 45

Slide 46

Slide 46 text

ありがとうございました(終) 46