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
shin1x1
December 22, 2024
Technology
3
2.2k
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
77
抽象化という思考のツール - 理解と活用 - / Abstraction-as-a-Tool-for-Thinking
shin1x1
1
1.1k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
6
3.6k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
2
2.7k
制約の力 - 状態を限定する -
shin1x1
6
5.4k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.8k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
500
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
280
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.3k
Other Decks in Technology
See All in Technology
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.5k
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
開発者を支える Internal Developer Portal のイマとコレカラ / To-day and To-morrow of Internal Developer Portals: Supporting Developers
aoto
PRO
1
460
オブザーバビリティが広げる AIOps の世界 / The World of AIOps Expanded by Observability
aoto
PRO
0
380
Aurora DSQLはサーバーレスアーキテクチャの常識を変えるのか
iwatatomoya
1
990
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
290
「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド
zozotech
PRO
0
450
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
270
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.8k
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
230
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
860
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
How STYLIGHT went responsive
nonsquared
100
5.8k
Embracing the Ebb and Flow
colly
87
4.8k
Scaling GitHub
holman
463
140k
We Have a Design System, Now What?
morganepeng
53
7.8k
Making Projects Easy
brettharned
117
6.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Typedesign – Prime Four
hannesfritz
42
2.8k
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