Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
PHPこそ OpenTelemetry が嬉しい
Search
sadnessOjisan
December 04, 2024
Programming
520
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPこそ OpenTelemetry が嬉しい
sadnessOjisan
December 04, 2024
More Decks by sadnessOjisan
See All by sadnessOjisan
Cloudflare Workers で Rust 選ぶ理由 is 何?
sadnessojisan
1
340
AIエージェントが動かないときの原因とその対処
sadnessojisan
2
170
React のルーター事情
sadnessojisan
1
670
TypeScript、上達の瞬間
sadnessojisan
54
19k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
1.1k
疎通2024
sadnessojisan
5
1.7k
BasicBasic認証
sadnessojisan
5
5k
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
21
6.8k
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
38
16k
Other Decks in Programming
See All in Programming
Performance Optimization With LLMs
xleitix
0
230
Seven New Principles of Software Engineering
yegor256
0
380
LLM 101
dalinaum
0
270
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
390
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
170
気持ちぃ〜角丸 Squircle
ryu1013
0
370
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
270
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
AmebaブログはKMPから卒業します
kmars0605
0
300
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
140
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
130
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2k
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
570
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
460
A Soul's Torment
seathinner
8
3.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
420
Deep Space Network (abreviated)
tonyrice
0
390
Design in an AI World
tapps
1
370
For a Future-Friendly Web
brad_frost
184
11k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
730
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
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コードベースの品質改善も大事だけど、やらかしたときの回復力を身に つけるのも、システム開発に効く