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
Monitoring PHP applications
Search
Mariusz Gil
May 05, 2014
Programming
300
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Monitoring PHP applications
Talk from local meetup.
Mariusz Gil
May 05, 2014
More Decks by Mariusz Gil
See All by Mariusz Gil
Aspect Oriented Programming
mariuszgil
1
350
Designing and implementing GraphQL API
mariuszgil
1
110
Discovering unknown with EventStorming ConFoo
mariuszgil
0
320
Game of Developer Life... Deconstructed
mariuszgil
1
200
Back to forgotten roots
mariuszgil
1
440
Go micro with microservices
mariuszgil
5
710
Machine Learning for the rescue
mariuszgil
0
460
Discovering graph structures
mariuszgil
3
560
Introduction to Aerospike with PHP
mariuszgil
8
880
Other Decks in Programming
See All in Programming
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
160
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
290
FDEが実現するAI駆動経営の現在地
gonta
2
240
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
190
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
えっ!!コードを読まずに開発を!?
hananouchi
0
290
React本体のコードリーディング
high_g_engineer
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
440
その節約、円になってますか?
isamumumu
0
490
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
480
Featured
See All Featured
Done Done
chrislema
186
16k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
The Spectacular Lies of Maps
axbom
PRO
1
880
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
360
Optimising Largest Contentful Paint
csswizardry
37
3.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
Between Models and Reality
mayunak
4
380
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Transcript
MONITORING PHP APPS with metrics Mariusz Gil
None
architecture
backend mods
devops
sexy frontend
business logic
technology
the client
None
life guard
monitoring and the answer is…
fast deployment low price strength and power
None
None
graphite even better monitoring
carbon whisper web app
carbon whisper web app metrics data charts
carbon app metrics servers metrics
carbon backtop bucky collectd diamond evenflow ganglia graphios grockets hoardid
host sflow jmxtrans logster sensu statsd statsite
web app
php lang? what about
None
$log = new \StatsD\Client(! ! [$host=‚localhost']! ! [, $port=8125]! );
$log->start($stat);! $log->stop($stat [, $sampleRate]);
$log->timing($stat, $time [, $sampleRate]);!
$log->increment($stat [, $sampleRate]);! $log->decrement($stat [, $sampleRate]);
$log->gauge($stat, $val, [, $sampleRate]);!
None
None
<?php ! $cache =
apc_cache_info(); $cache_user = apc_cache_info('user', 1); $mem = apc_sma_info(); ! $stats = array( "mem"=>array( "segments" => (int)$mem['num_seg'], "segment_size" => (int)$mem['seg_size'], "total" => (int)$mem['num_seg'] * $mem['seg_size'], ), "opcode"=>array( "files_count" => (int)$cache['num_entries'], "files_size" => (int)$cache['mem_size'], "hits" => (int)$cache['num_hits'], "misses" => (int)$cache['num_misses'], "full_count" => (int)$cache['expunges'], ), "user"=>array( "vars_count" => (int)$cache_user['num_entries'], "vars_size" => (int)$cache_user['mem_size'], "hits" => (int)$cache_user['num_hits'], "misses" => (int)$cache_user['num_misses'], "full_count" => (int)$cache_user['expunges'], ), ); ! echo json_encode($stats);
app logs? metrics from
None
app server app server mobile apps
mobile apps app server app server fluentd php php
<?php! ! // you can choose your own AutoLoader! require_once
__DIR__.'/src/Fluent/Autoloader.php';! ! use Fluent\Logger\FluentLogger;! ! Fluent\Autoloader::register();! ! $logger = new FluentLogger("localhost","24224");! $logger->post("debug.test",array("hello"=>"world"));!
app server app server fluentd php php graphite logster mobile
apps
None
THANKS! @mariuszgil