Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPこそ OpenTelemetry が嬉しい
Search
sadnessOjisan
December 04, 2024
Programming
2
290
PHPこそ OpenTelemetry が嬉しい
sadnessOjisan
December 04, 2024
Tweet
Share
More Decks by sadnessOjisan
See All by sadnessOjisan
React のルーター事情
sadnessojisan
1
310
TypeScript、上達の瞬間
sadnessojisan
51
18k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
710
疎通2024
sadnessojisan
5
1.6k
BasicBasic認証
sadnessojisan
5
4.3k
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
20
5.7k
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
36
15k
Node.js v12 を使い続けていたのはなぁぜなぁぜ?
sadnessojisan
11
28k
かにさんタワーバトル
sadnessojisan
1
25k
Other Decks in Programming
See All in Programming
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
2k
Javaに鉄道指向プログラミング (Railway Oriented Pro gramming) のエッセンスを取り入れる/Bringing the Essence of Railway-Oriented Programming to Java
cocet33000
2
580
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
900
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
300
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
イベントストーミングから始めるドメイン駆動設計
jgeem
4
870
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
840
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
22
6.2k
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
単体テストの始め方/作り方
toms74209200
0
510
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
610
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
290
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
Writing Fast Ruby
sferik
628
61k
Designing Experiences People Love
moore
142
24k
GraphQLとの向き合い方2022年版
quramy
46
14k
Rails Girls Zürich Keynote
gr2m
94
14k
Designing for Performance
lara
609
69k
Facilitating Awesome Meetings
lara
54
6.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
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コードベースの品質改善も大事だけど、やらかしたときの回復力を身に つけるのも、システム開発に効く