Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPこそ OpenTelemetry が嬉しい
Search
sadnessOjisan
December 04, 2024
Programming
1
57
PHPこそ OpenTelemetry が嬉しい
sadnessOjisan
December 04, 2024
Tweet
Share
More Decks by sadnessOjisan
See All by sadnessOjisan
TypeScript、上達の瞬間
sadnessojisan
49
15k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
490
疎通2024
sadnessojisan
5
1.3k
BasicBasic認証
sadnessojisan
5
3.9k
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
19
5k
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
34
14k
Node.js v12 を使い続けていたのはなぁぜなぁぜ?
sadnessojisan
11
26k
かにさんタワーバトル
sadnessojisan
1
23k
現実世界におけるスキーマ設計の妥協
sadnessojisan
21
30k
Other Decks in Programming
See All in Programming
React CompilerとFine Grained Reactivityと宣言的UIのこれから / The next chapter of declarative UI
ssssota
7
3.4k
AWS認定資格を勉強した先に何があったか
satoshi256kbyte
2
190
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
3
400
flutterkaigi_2024.pdf
kyoheig3
0
470
5分ぐらいで分かる、トリミング機能の作り方
tsutsuitakumi
0
210
HTTP compression in PHP and Symfony apps
dunglas
2
1.5k
layerx_20241129.pdf
kyoheig3
2
260
.NET 9アプリをCGIとして レンタルサーバーで動かす
mayuki
1
760
Haze - Real time background blurring
chrisbanes
1
440
あれやってみてー駆動から成長を加速させる / areyattemite-driven
nashiusagi
1
160
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
130
Cursorでアプリケーションの追加開発や保守をどこまでできるか試したら得るものが多かった話
drumnistnakano
0
280
Featured
See All Featured
Bash Introduction
62gerente
608
210k
Done Done
chrislema
181
16k
Embracing the Ebb and Flow
colly
84
4.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Navigating Team Friction
lara
183
15k
Into the Great Unknown - MozCon
thekraken
33
1.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Writing Fast Ruby
sferik
627
61k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
A designer walks into a library…
pauljervisheath
204
24k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Transcript
PHPこそ OpenTelemetry が嬉しい つよナレ #1 PHPにまつわる話 @sadnessOjisan
自己紹介 • 2019年の立ち上げ時期からTechTrainメン ター • 2023年からTechBowlの技術アドバイザ リー • 元々フロントエンドメインでのアドバイザ リーだったが、サービス分割・認証基盤
・ETL整備などを通じ、全社を巻き込んだ設 計が必要となりPHPも始める • PHPerKaigi2024登壇 https://speakerdeck.com/sadnessojisan/s ahatohahe-kawoli-jie-site-kontena1tutes hi-xing-siyou-phperkaigi2024
PHP、辛さとセットになりがち • 言語機能(特に守りの部分)そのものが不足しがち • 古くからある言語なので、古いシステムとも出会いがち • FWとその周辺プラグインに頼ることが多く、ブラックボックスな開発をし がち そのコードベース、自信を持って改修できますか?
テストを書けば解決だが... • そもそもテスト書いていますか?書けますか? • DB接続や外部SaaSにアクセスするコードにテストを書けていますか? • テストが書きやすい設計ですか? • テストを書きやすくするための改善をCommitするためのテストはあります か?
後手でテストを追加するのは、簡単ではない
そんなあなたに OpenTelemetry • テストをせずに動作確認するには、動作しているシステムを目視で確認すれ ばよい • 呼ばれるはずのコードが呼ばれていなければバグが起きたとみなせる • 本番環境での動作確認の精度をあげていこう
OpenTelemetry • 可観測性を担保するためのフレームワーク • トレースという機能で、「あるエンドポイントが呼ばれ た時に、こういう関数と関数にこういう引数が渡って、 こういう結果を返した」ということを出力できる • ビジュアルで確認もできるし、引数もわかる
どうやって設定するの? • Laravel はライブラリを入れて SDK をエントリポイントで初期化するだけで勝手に計 測される • 詳しくは公式のガイドをチェック: https://github.com/open-telemetry/opentelemetry-php/blob/main/docs/laravel
-quickstart.md
全てを勝手に自動で計測してくれるのですか? • 答えはNO • 自動計装と手動計装があり、SDKで自動計装はセットされる • 自動計装ではあらかじめSDKが、有名ライブラリだけをフックして計装を挟 み込んでくれる(例: HTTP、SQL) •
関数単位で計測ログを入れたければ、自分で計測コードを入れる https://opentelemetry.io/docs/languages/php/instrumentation/#trace
まとめ • Opentelemetryを使えば、複雑なAPIの内部処理をトレースしてログとして 出力できる • 複雑なAPIに後手でテストを書くのは難しいが、トレースを出せれば内部を 観察しながら動作確認ができ、コード編集時の動作確認に役に立てられる • OpenTelemetryは内部実装をあまり変えることなく、トレースを出せる •
PHPコードベースの品質改善も大事だけど、やらかしたときの回復力を身に つけるのも、システム開発に効く