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.5k
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
2
2.6k
制約の力 - 状態を限定する -
shin1x1
6
5.3k
Apple Silicon Mac 時代の PHP 開発環境構築 2021 / php-dev-env-on-m1-mac-era
shin1x1
2
4.7k
Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build
shin1x1
1
500
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
5.1k
Other Decks in Technology
See All in Technology
NewSQLや分散データベースを支えるRaftの仕組み - 仕組みを理解して知る得意不得意
hacomono
PRO
3
190
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
20250707-AI活用の個人差を埋めるチームづくり
shnjtk
6
4k
Delegating the chores of authenticating users to Keycloak
ahus1
0
160
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
160
関数型プログラミングで 「脳がバグる」を乗り越える
manabeai
2
210
AWS認定を取る中で感じたこと
siromi
1
210
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
SRE不在の開発チームが障害対応と 向き合った100日間 / 100 days dealing with issues without SREs
shin1988
1
400
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
130
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
180
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
2
360
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Why Our Code Smells
bkeepers
PRO
336
57k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
We Have a Design System, Now What?
morganepeng
53
7.7k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
A Tale of Four Properties
chriscoyier
160
23k
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