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
220
PHPこそ OpenTelemetry が嬉しい
sadnessOjisan
December 04, 2024
Tweet
Share
More Decks by sadnessOjisan
See All by sadnessOjisan
TypeScript、上達の瞬間
sadnessojisan
50
17k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
570
疎通2024
sadnessojisan
5
1.4k
BasicBasic認証
sadnessojisan
5
4.1k
ISUCON入門以前_ISUNARABE_LT#1
sadnessojisan
20
5.4k
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
36
14k
Node.js v12 を使い続けていたのはなぁぜなぁぜ?
sadnessojisan
11
27k
かにさんタワーバトル
sadnessojisan
1
24k
現実世界におけるスキーマ設計の妥協
sadnessojisan
22
30k
Other Decks in Programming
See All in Programming
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
53
18k
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
280
Better Code Design in PHP
afilina
0
160
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
Ruby on cygwin 2025-02
fd0
0
170
PRレビューのお供にDanger
stoticdev
1
220
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
410
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.1k
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
490
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
1
210
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
210
Featured
See All Featured
BBQ
matthewcrist
87
9.5k
Code Review Best Practice
trishagee
67
18k
YesSQL, Process and Tooling at Scale
rocio
172
14k
A Modern Web Designer's Workflow
chriscoyier
693
190k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
For a Future-Friendly Web
brad_frost
176
9.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
RailsConf 2023
tenderlove
29
1k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
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コードベースの品質改善も大事だけど、やらかしたときの回復力を身に つけるのも、システム開発に効く