Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Monitoring PHP applications
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
120
Discovering unknown with EventStorming ConFoo
mariuszgil
0
330
Game of Developer Life... Deconstructed
mariuszgil
1
200
Back to forgotten roots
mariuszgil
1
450
Go micro with microservices
mariuszgil
5
730
Machine Learning for the rescue
mariuszgil
0
470
Discovering graph structures
mariuszgil
3
570
Introduction to Aerospike with PHP
mariuszgil
8
890
Other Decks in Programming
See All in Programming
The Rails Doctrine Decade
koic
2
540
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
240
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
650
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
3k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
950
Workers Cache を知る
syumai
0
350
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
100
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
200
最近”作らせてる” ローカルAIアプリの話
akit37
0
430
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
21
21k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
580
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
610
Navigating Weather and Climate Data
rabernat
0
550
Code Review Best Practice
trishagee
74
20k
A better future with KSS
kneath
240
18k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
620
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Rails Girls Zürich Keynote
gr2m
96
14k
Designing Experiences People Love
moore
143
24k
Building an army of robots
kneath
307
47k
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