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 入門 / phpcon2024-opent...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shin1x1
December 22, 2024
Technology
3
2.3k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
2024-12-22 PHP カンファレンス 2024
shin1x1
December 22, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
抽象化という思考のツール - 開発現場での活用 - / Abstraction-as-a-Tool-for-Thinking-in-dev
shin1x1
0
140
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
1.3k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
6
3.9k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
2
3.1k
制約の力 - 状態を限定する -
shin1x1
6
5.7k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.8k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
540
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
320
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.5k
Other Decks in Technology
See All in Technology
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
22k
AWS DevOps Agent vs SRE俺 / AWS DevOps Agent vs me, the SRE
sms_tech
3
880
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
180
OCI技術資料 : コンピュート・サービス 概要
ocise
4
54k
Sansanでの認証基盤内製化と移行
sansantech
PRO
0
520
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
12
8.5k
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
140
脳内メモリ、思ったより揮発性だった
koutorino
0
370
20260311 技術SWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
360
Postman v12 で変わる API開発ワークフロー (Postman v12 アップデート) / New API development workflow with Postman v12
yokawasa
0
130
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
GCASアップデート(202601-202603)
techniczna
0
200
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Site-Speed That Sticks
csswizardry
13
1.1k
Mind Mapping
helmedeiros
PRO
1
120
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
HDC tutorial
michielstock
1
550
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
52k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
150
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Transcript
1)1ΧϯϑΝϨϯε !TIJOY 1)1ϢʔβͷͨΊͷ0QFO5FMFNFUSZೖ
D .BTBTIJ4IJOCBSB!TIJOY ࣗݾհ ৽ݪʢ͠ΜΒʣխ࢘ େࡕͰ8FCγεςϜ։ൃ։ൃνʔϜͷٕज़ࢧԉΛߦ͍ͬͯ·͢ɻ w CMPHIUUQTCMPHTIJOYDPN w 9NJYJ(JU)VC!TIJOY
D .BTBTIJ4IJOCBSB!TIJOY ͡Ίʹ 👉͜ͷࢿྉެ։͠·͢ 👉1)1ΞϓϦέʔγϣϯΛ0QFO5FMFNFUSZͰܭ͢ΔୈҰา આ໌Λ؆ུԽ͍ͯͨ͠Γলུ͍ͯ͠ΔՕॴ͕͋Γ·͢ 👉ײɺϑΟʔυόοΫ͓͍ͪͯ͠·͢ʂ QIQDPOPSGPSUFFϑΟʔυόοΫϖʔδ
D .BTBTIJ4IJOCBSB!TIJOY "HFOEB w 0QFO5FMFNFUSZͱ w 1)1ΞϓϦέʔγϣϯͷτϨʔεܭ w 0QFO5FMFNFUSZ$PMMFDUPS
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZͱ
D .BTBTIJ4IJOCBSB!TIJOY PHP アプリケーション ɺ෦ঢ়ଶΛݟΔ͜ͱ͍͠ ͍ Τϥʔ͕ൃੜ γεςϜͷ෦ঢ়ଶ͕Γ͍ͨ
D .BTBTIJ4IJOCBSB!TIJOY PHP アプリケーション ログサービス ϩάΛੜ ϩάΛग़ྗ ϩάΛݟͯ෦ঢ়ଶΛΔ
෦ঢ়ଶΛ؍ଌͯ͠Δ
D .BTBTIJ4IJOCBSB!TIJOY ΦϒβʔόϏϦςΟ w Մ؍ଌੑγεςϜͷ෦ঢ়ଶΛ֎෦͔Β؍Ͱ͖Δೳྗ γεςϜͷݟ͑ΔԽ w ςϨϝτϦσʔλΛݩʹ؍͢Δ γεςϜͷ෦ঢ়ଶΛܭଌ͠ɺ֎෦ʹૹ৴ͨ͠σʔλʢFYϩάʣ w
ςϨϝτϦσʔλΛऔಘͰ͖ΔΑ͏ʹܭ͢Δ ܭଌ͢ΔΈΛ࣮͢Δ͜ͱʢFYϩάΛग़ྗ͢ΔίʔυΛ࣮ʣ
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZ 05FM ͱ w ςϨϝτϦσʔλΛੜɺऩूɺૹ৴͢ΔπʔϧΩοτ ༷ͱ࣮ w ϕϯμʔχϡʔτϥϧͳΦʔϓϯιʔε
$/$'QSPKFDUҎ্ͷπʔϧαʔϏε͕αϙʔτ w ΦϒβʔόϏϦςΟόοΫΤϯυؚ·ͳ͍ ςϨϝτϦσʔλͷอଘɺੳɺࢹ֮ԽผͷπʔϧαʔϏεΛར༻
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZओͳ༷ w 0QFO5FMFNFUSZ༷ "1*σʔλϞσϧͳͲ w 0QFO5FMFNFUSZϓϩτίϧʢ05-1ʣ ςϨϝτϦσʔλͷ௨৴ϓϩτίϧʢΤϯίʔσΟϯάɺૹ৴ͷΈͳͲʣ H31$)551
1SPUPCVGPS+40/
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZओͳ࣮ w 0QFO5FMFNFUSZ༷Λ࣮ͨ͠4%, ֤ϓϩάϥϛϯάݴޠ͚࣮1)1൛$PNQPTFSύοέʔδ w ܭύοέʔδ $PNQPTFSύοέʔδɺ1)1֦ு w
0QFO5FMFNFUSZ$PMMFDUPSʢޙड़ʣ
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZެࣜυΩϡϝϯτ w ༰͕ॆ࣮ ֓೦ɺ༷ɺ࣮ྫɺ༻ޠू w Ұ෦ɺ༁͋Γ w ຊηογϣϯ͜ΕΛಡΉͨΊʹԼ
IUUQTPQFOUFMFNFUSZJPEPDT
D .BTBTIJ4IJOCBSB!TIJOY 1)1ΞϓϦέʔγϣϯͷτϨʔεܭ
D .BTBTIJ4IJOCBSB!TIJOY τϨʔε w ϦΫΤετͰ࣮ߦ͞ΕͨॲཧΠϕϯτͷύε w εύϯʢॲཧΠϕϯτʣͰߏ͞ΕΔ w ϦΫΤετͷॲཧॱংɺ࣮ߦ࣌ؒɺॲཧ༰ͳͲ͕͔Δ εύϯ
ʢϧʔτεύϯʣ εύϯ
D .BTBTIJ4IJOCBSB!TIJOY ࣮Πϝʔδ PHP アプリケーション Jaeger OTLP ςϨϝτϦσʔλΛੜ
D .BTBTIJ4IJOCBSB!TIJOY खಈܭͱࣗಈܭ w खಈܭNBOVBMJOTUSVNFOUBUJPO ςϨϝτϦσʔλͷੜૹ৴͢ΔίʔυΛΞϓϦέʔγϣϯʹೖΕΔ w ࣗಈܭ[FSP BVUP JOTUSVNFOUBUJPO
ࣗಈܭύοέʔδͳͲΛར༻ͯ͠ΞϓϦέʔγϣϯमਖ਼͠ͳ͍ w Έ߹ΘͤՄ ࣗಈܭͭͭ͠ɺඞཁͳՕॴ͚ͩखಈܭ͢Δ
D .BTBTIJ4IJOCBSB!TIJOY 1)1τϨʔεܭͷྲྀΕ w ඞཁͳύοέʔδͷಋೖ w ܭͷઃఆ w ܭଌίʔυͷՃʢखಈܭͷ߹ʣ खಈܭ1)1ίʔυܭࣗಈܭίʔυมߋແ͠ʹܭ
D .BTBTIJ4IJOCBSB!TIJOY खಈܭඞཁͳύοέʔδ w PQFOUFMFNFUSZTEL 0QFO5FMFNFUSZ4%, w PQFOUFMFNFUSZFYQPSUFSPUMQ ςϨϝτϦσʔλΛ05-1ܗࣜͰग़ྗ w
QIQIUUQHV[[MFBEBQUFS ςϨϝτϦσʔλΛૹ৴͢Δ)551ΫϥΠΞϯτ
D .BTBTIJ4IJOCBSB!TIJOY खಈܭඞཁͳύοέʔδ $ composer require open-telemetry/sdk \ open-telemetry/exporter-otlp \
php-http/guzzle7-adapter # ඞཁʹԠͯ͡ɺy or n Λೖྗ Do you trust "tbachert/spi" to ... [y,n,d,?] n
D .BTBTIJ4IJOCBSB!TIJOY ܭͷઃఆ w ڥมͰࢦఆ ڥม ༰ 05&-@&91035&3@05-1@13050$0- IUUQQSPUPCVGʢσϑΥϧτʣ
ૹ৴ϓϩτίϧ 05&-@4&37*$&@/".& BQQ αʔϏε໊ʢτϨʔεʹؚ·ΕΔʣ 05&-@&91035&3@05-1@&/%10*/5 IUUQKBFHFS ૹ৴ઌ63-ʢ+BFHFSʣ
D .BTBTIJ4IJOCBSB!TIJOY खಈܭ1)1ίʔυྫ $tracerProvider = new TracerProviderFactory()->create(); // TraceProvider ࡞
$tracer = $tracerProvider->getTracer('trace-example'); // Tracer ࡞ $rootSpan = $tracer->spanBuilder('root')->startSpan(); // ϧʔτεύϯ։࢝ $rootScope = $rootSpan->activate(); // Ҏ߱ͷεύϯΛϧʔτεύϯΛʹ͢Δ usleep(50 * 1000); try { $span1 = $tracer->spanBuilder('foo')->startSpan(); // εύϯ։࢝ usleep(100 * 1000); $span1->end(); // εύϯऴྃ } finally { $rootScope->detach(); $rootSpan->end(); // ϧʔτεύϯऴྃ } $tracerProvider->shutdown(); // TraceProvider ऴྃ
D .BTBTIJ4IJOCBSB!TIJOY खಈܭग़ྗྫ w ͭͷεύϯΛग़ྗ w ॲཧͷྲྀΕɺॲཧ࣌ؒɺ։࢝࣌ؒͳͲ͕͔Δ ॲཧ࣌ؒSPPUNTGPPNTʢVTMFFQ ࣮ߦʣ
D .BTBTIJ4IJOCBSB!TIJOY ࣗಈܭ w ඞཁͳύοέʔδΛΠϯετʔϧ w ܭΛઃఆ 1)1ίʔυͷ࣮ෆཁ w ͜͜Ͱ-BSBWFMΞϓϦέʔγϣϯͷܭΛྫࣔ
%#ΞΫηεɺ֎෦"1*ݺͼग़͋͠Γ
D .BTBTIJ4IJOCBSB!TIJOY ࣗಈܭඞཁͳύοέʔδ w खಈܭύοέʔδ w PQFOUFMFNFUSZ֦ு ؔϝιου࣮ߦΛϑοΫͯ͠ҙͷؔΛࠩ͠ࠐΉ w PQFOUFMFNFUSZPQFOUFMFNFUSZBVUPMBSBWFM
-BSBWFMΞϓϦέʔγϣϯͷࣗಈܭ
D .BTBTIJ4IJOCBSB!TIJOY ύοέʔδ w ڥมखಈܭͷઃఆʹՃ ڥม ༰ 05&-@1)1@"650-0"%@&/"#-&% 536&
ΦʔτϩʔμಡΈࠐΈ࣌ʹ4%,ͷ άϩʔόϧઃఆΛࣗಈͰߦ͏
D .BTBTIJ4IJOCBSB!TIJOY w )551ϦΫΤετεύϯʢϧʔτεύϯʣ w 42-จൃߦ w ֎෦)551ϦΫΤετૹ৴ τϨʔεྫ
D .BTBTIJ4IJOCBSB!TIJOY τϨʔεεύϯྫ ൃߦ͞Εͨ42- ൃߦ͞Εͨ42- ࣮ߦ࣌ؒ
D .BTBTIJ4IJOCBSB!TIJOY τϨʔεεύϯྫ ֎෦"1*ݺͼग़͠ )551ϦΫΤετɺϨεϙϯε ϦΫΤετૹ৴ઌ ࣮ߦ࣌ؒ ։࢝࣌ؒ
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZ$PMMFDUPS
D .BTBTIJ4IJOCBSB!TIJOY PHP アプリケーション Jaeger OTel Collector New Relic Datadog
Loki 0QFO5FMFNFUSZ$PMMFDUPSར༻Πϝʔδ ςϨϝτϦσʔλੜɺૹ৴ όοΫΤϯυʹసૹ σʔλอଘɺࢹ֮Խɺੳ
D .BTBTIJ4IJOCBSB!TIJOY 0QFO5FMFNFUSZ$PMMFDUPS w ςϨϝτϦσʔλͷड৴ɺॲཧɺૹ৴Λߦ͏ιϑτΣΞ (P࣮%PDLFSΠϝʔδɺόΠφϦύοέʔδఏڙ w ΞϓϦέʔγϣϯͱΦϒβʔόϏϦςΟόοΫΤϯυΛհ ΞϓϦέʔγϣϯͱόοΫΤϯυΛૄ݁߹ʹ͢Δ w
ΞϓϦέʔγϣϯ$PMMFDUPSʹૹ৴͢Δ͚ͩͰྑ͍ ϨΠςϯγΛԼ͛ΔΞϓϦέʔγϣϯ͕όοΫΤϯυใΛอ࣋͠ͳͯ͘ྑ͍ w ུޠ05FM$PMMFDUPSPUFMDPM
D .BTBTIJ4IJOCBSB!TIJOY ྫϩʔΧϧڥͱຊ൪ڥྫ PHP アプリケーション Jaeger OTLP OTel Collector OTLP
w ϩʔΧϧڥ w ຊ൪ڥ PHP アプリケーション New Relic OTLP OTel Collector OTLP όοΫΤϯυ͕มΘͬͯ 1)1ΞϓϦέʔγϣϯมߋෆཁ
D .BTBTIJ4IJOCBSB!TIJOY ྫҟͳΔϓϩτίϧʹม PHP アプリケーション Jaeger OTLP OTel Collector OTLP
w ϩʔΧϧڥ w ຊ൪ڥ %BUBEPH&YQPSUFSͰม PHP アプリケーション Datadog OTLP OTel Collector Datadog
D .BTBTIJ4IJOCBSB!TIJOY PHP アプリケーション AWS X-Ray OTLP ADOT Collector X-Ray
ྫόοΫΤϯυઐ༻$PMMFDUPSͷར༻ PHP アプリケーション Jaeger OTLP OTel Collector OTLP w ϩʔΧϧڥ w ຊ൪ڥ "84%JTUSPGPS0QFO5FMFNFUSZ "%05 $PMMFDUPSΛར༻
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ
D .BTBTIJ4IJOCBSB!TIJOY ·ͱΊ w 0QFO5FMFNFUSZϕϯμʔχϡʔτϥϧͳ ΦϒβʔόϏϦςΟπʔϧΩοτ w ςϨϝτϦσʔλͷຽओԽ w ·ͣϩʔΧϧڥ͔Βࢼ͢ͷ͕͓͢͢Ί
IUUQTCMPHTIJOYDPNFOUSZQIQPQFOUFMFNFUSZQSJNFS
D .BTBTIJ4IJOCBSB!TIJOY ࢀর w IUUQTPQFOUFMFNFUSZJPEPDT w IUUQTEPDTEBUBEPHIRDPNKBPQFOUFMFNFUSZDPMMFDUPS@FYQPSUFS w IUUQTEPDTOFXSFMJDDPNKQEPDTPQFOUFMFNFUSZPQFOUFMFNFUSZ JOUSPEVDUJPO
w IUUQTBXTPUFMHJUIVCJPEPDTJOUSPEVDUJPO w IUUQTXXXKBFHFSUSBDJOHJP w IUUQTCMPHTIJOYDPNFOUSZQIQPQFOUFMFNFUSZQSJNFS