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.1k
PHP ユーザのための OpenTelemetry 入門 / phpcon2024-opentelemetry
2024-12-22 PHP カンファレンス 2024
shin1x1
December 22, 2024
Tweet
Share
More Decks by shin1x1
See All by shin1x1
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
6
3.4k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
2
2.6k
制約の力 - 状態を限定する -
shin1x1
5
5.2k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.7k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
490
Domain modeling with PHP / domain-modeling-with-php-en
shin1x1
1
270
ドメインをモデリングしてPHPコードに落とし込む / domain-modeling-with-php8
shin1x1
15
7.3k
PHP 8 で作る JSON パーサ / php8-json-parser
shin1x1
2
3.9k
Kubernetes で構築する PHP 開発環境 / php-development-environment-on-kubernetes
shin1x1
3
5k
Other Decks in Technology
See All in Technology
DenoとJSRで実現する最速MCPサーバー開発記 / Building MCP Servers at Lightning Speed with Deno and JSR
yamanoku
1
250
In Praise of "Normal" Engineers (LDX3)
charity
2
1.2k
SFTPコンテナからファイルをダウンロードする
dip_tech
PRO
0
570
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
180
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
140
AIのAIによるAIのための出力評価と改善
chocoyama
0
440
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
370
~宇宙最速~2025年AWS Summit レポート
satodesu
1
930
CI/CDとタスク共有で加速するVibe Coding
tnbe21
0
230
Workflows から Agents へ ~ 生成 AI アプリの成長過程とアプローチ~
belongadmin
3
170
活きてなかったデータを活かしてみた話 / Shirokane Kougyou vol 19
sansan_randd
1
400
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
300
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
46
14k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Producing Creativity
orderedlist
PRO
346
40k
Navigating Team Friction
lara
187
15k
A designer walks into a library…
pauljervisheath
206
24k
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