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
120
Discovering unknown with EventStorming ConFoo
mariuszgil
0
330
Game of Developer Life... Deconstructed
mariuszgil
1
200
Back to forgotten roots
mariuszgil
1
440
Go micro with microservices
mariuszgil
5
720
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
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
260
仕様駆動開発の消費期限
watany
20
8.9k
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
410
What's New in Android 2026
veronikapj
0
270
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
250
ソフトウェアラスタライザ
fadis
1
480
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.1k
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
720
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
360
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
230
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Darren the Foodie - Storyboard
khoart
PRO
3
3.7k
Designing for Timeless Needs
cassininazir
1
450
Being A Developer After 40
akosma
91
590k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Automating Front-end Workflow
addyosmani
1369
210k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
430
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
260
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
210
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
360
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
630
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