Submit Search
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
9 likes
•
40,054 views
Masahiro Nagano
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Technology
Read more
1 of 21
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
More Related Content
PDF
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA, Inc.
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
PPT
Scripting Layer for Android + Perl
Naoya Ito
PDF
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
PDF
Ansible 入門 #01 (初心者向け)
Taro Hirose
PDF
Ansible入門...?
shirou wakayama
『How to build a High Performance PSGI/Plack Server』のその後と ISUCON3を受けての話題
Masahiro Nagano
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
CLARA, Inc.
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Scripting Layer for Android + Perl
Naoya Ito
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
Ansible 入門 #01 (初心者向け)
Taro Hirose
Ansible入門...?
shirou wakayama
What's hot
(19)
PDF
Ansible入門
Daiki Hayakawa
PPTX
CMSとPerlで遊ぼう
Daiki Ichinose
PDF
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
PPT
about Thrift
Naoya Ito
KEY
Development app-with-elixir
k1complete
PPT
CPANの依存モジュールをもう少し正しく検出したい
charsbar
PPTX
Open Source System Administration Framework - Func
Gosuke Miyashita
PPT
081108huge_data.ppt
Naoya Ito
PPT
Titanium Mobile
Naoya Ito
PDF
CodeIgniter入門
Sho A
PPT
Scala on Hadoop
Shinji Tanaka
PDF
Tottoruby 20110903
Takashi SAKAGUCHI
PDF
WordPress関数の処理コストを考えよう
Naoki Matsuda
KEY
あらためてPHP5.3
Masashi Shinbara
PPT
Using Windows Azure
Shinji Tanaka
KEY
FuelPHPをさわってみて
Sotaro Omura
PDF
Zabbix API
Shuhei Hayashibara
PDF
10分で作る Node.js Auto Scale 環境 with CloudFormation
Kazuyuki Honda
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
Ansible入門
Daiki Hayakawa
CMSとPerlで遊ぼう
Daiki Ichinose
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
about Thrift
Naoya Ito
Development app-with-elixir
k1complete
CPANの依存モジュールをもう少し正しく検出したい
charsbar
Open Source System Administration Framework - Func
Gosuke Miyashita
081108huge_data.ppt
Naoya Ito
Titanium Mobile
Naoya Ito
CodeIgniter入門
Sho A
Scala on Hadoop
Shinji Tanaka
Tottoruby 20110903
Takashi SAKAGUCHI
WordPress関数の処理コストを考えよう
Naoki Matsuda
あらためてPHP5.3
Masashi Shinbara
Using Windows Azure
Shinji Tanaka
FuelPHPをさわってみて
Sotaro Omura
Zabbix API
Shuhei Hayashibara
10分で作る Node.js Auto Scale 環境 with CloudFormation
Kazuyuki Honda
実"戦"CakePHP Plugin
Kenichirou Oyama
Ad
Viewers also liked
(20)
PDF
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
PDF
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
PDF
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Masahiro Nagano
PDF
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
PDF
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
Masahiro Nagano
PDF
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano
PDF
Big Master Data PHP BLT #1
Masahiro Nagano
PDF
Rrdtool基礎から応用
Shoichi Masuhara
PDF
仮想化専門コンサルタントが教える「成功するエンタープライズクラウド環境構のポイント」
VirtualTech Japan Inc.
PDF
ZabbixによるOpenStack監視のご紹介
VirtualTech Japan Inc.
PDF
Deep Learning on iOS #360iDev
Shuichi Tsutsumi
PDF
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
PPTX
医療データ解析界隈から見たICLR2017
RIKEN, Medical Sciences Innovation Hub Program (MIH)
PDF
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Takeru Miyato
PDF
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
Takahiro Kubo
PDF
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Takanori Nakai
PDF
ICLR読み会 奥村純 20170617
Jun Okumura
PDF
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Eiji Sekiya
PDF
170614 iclr reading-public
Katsuhiko Ishiguro
PDF
Q prop
Reiji Hatsugai
Mackerel & Norikra mackerel meetup #4 LT
Masahiro Nagano
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
Gazelle & CPAN modules for performance. Shibuya.pm Tech Talk #17 LT
Masahiro Nagano
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
Masahiro Nagano
メルカリでのNorikraの活用、 Mackerelを添えて
Masahiro Nagano
Big Master Data PHP BLT #1
Masahiro Nagano
Rrdtool基礎から応用
Shoichi Masuhara
仮想化専門コンサルタントが教える「成功するエンタープライズクラウド環境構のポイント」
VirtualTech Japan Inc.
ZabbixによるOpenStack監視のご紹介
VirtualTech Japan Inc.
Deep Learning on iOS #360iDev
Shuichi Tsutsumi
飛び道具ではないMetal #iOSDC
Shuichi Tsutsumi
医療データ解析界隈から見たICLR2017
RIKEN, Medical Sciences Innovation Hub Program (MIH)
[ICLR2017読み会 @ DeNA] ICLR2017紹介
Takeru Miyato
言葉のもつ広がりを、モデルの学習に活かそう -one-hot to distribution in language modeling-
Takahiro Kubo
ICLR2017読み会 Data Noising as Smoothing in Neural Network Language Models @Dena
Takanori Nakai
ICLR読み会 奥村純 20170617
Jun Okumura
Semi-Supervised Classification with Graph Convolutional Networks @ICLR2017読み会
Eiji Sekiya
170614 iclr reading-public
Katsuhiko Ishiguro
Q prop
Reiji Hatsugai
Ad
Similar to Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
(20)
PDF
Local php-100828 2
Akio Ishida
PDF
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PPTX
pecl-AOPの紹介
Hiraku Nakano
PDF
Swift 2.0 の Error Handling #yhios
Tomohiro Kumagai
PDF
PHP language update 201211
Moriyoshi Koizumi
PPTX
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
KEY
Perl 非同期プログラミング
lestrrat
PDF
90分間濃縮 PHPエラーの教室
Yusuke Ando
KEY
Cakephp api
Eiji Yokota
PDF
最近の PHP の話
y-uti
PDF
Node.js Error & Debug Leveling
kumatch kumatch
PDF
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
PPTX
詳説ぺちぺち
do_aki
PPT
Task
Shingo Nakamura
PDF
PHPの今とこれから2023
Rui Hirokawa
PDF
PHPの今とこれから2014
Rui Hirokawa
PDF
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
PDF
Swift 2.0 で変わったところ「前編」 #cswift
Tomohiro Kumagai
KEY
モダンmod_perl入門 #yapcasia
鉄次 尾形
PDF
Ajax 応用
Katsuyuki Seino
Local php-100828 2
Akio Ishida
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
pecl-AOPの紹介
Hiraku Nakano
Swift 2.0 の Error Handling #yhios
Tomohiro Kumagai
PHP language update 201211
Moriyoshi Koizumi
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
Perl 非同期プログラミング
lestrrat
90分間濃縮 PHPエラーの教室
Yusuke Ando
Cakephp api
Eiji Yokota
最近の PHP の話
y-uti
Node.js Error & Debug Leveling
kumatch kumatch
GMO TECHNOLOGY BOOT CAMP2015(PHP編)
Arata Fujimura
詳説ぺちぺち
do_aki
Task
Shingo Nakamura
PHPの今とこれから2023
Rui Hirokawa
PHPの今とこれから2014
Rui Hirokawa
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
Swift 2.0 で変わったところ「前編」 #cswift
Tomohiro Kumagai
モダンmod_perl入門 #yapcasia
鉄次 尾形
Ajax 応用
Katsuyuki Seino
More from Masahiro Nagano
(20)
PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
PDF
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
PDF
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano
PDF
Isucon makers casual talks
Masahiro Nagano
PDF
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
PDF
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
PDF
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
PDF
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Masahiro Nagano
PDF
Webアプリケーションの パフォーマンス向上のコツ 実践編
Masahiro Nagano
PDF
Webアプリケーションの パフォーマンス向上のコツ 概要編
Masahiro Nagano
PDF
Webアプリケーションとメモリ
Masahiro Nagano
PDF
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano
PDF
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
PDF
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Masahiro Nagano
PDF
MHA for MySQL の話
Masahiro Nagano
KEY
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
KEY
監視ツールの話
Masahiro Nagano
KEY
捗れ!Operation
Masahiro Nagano
KEY
グラフで捗る話#2 kansai.pm#14
Masahiro Nagano
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
Masahiro Nagano
Stream processing in Mercari - Devsumi 2015 autumn LT
Masahiro Nagano
ISUCON4 予選問題で(中略)、”my.cnf”に1行だけ足して予選通過ラインを突破するの術
Masahiro Nagano
Isucon makers casual talks
Masahiro Nagano
blogサービスの全文検索の話 - #groonga を囲む夕べ
Masahiro Nagano
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
Web Framework Benchmarksと Perl の現状報告会 YAPC::Asia Tokyo 2014 LT
Masahiro Nagano
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
Masahiro Nagano
Webアプリケーションの パフォーマンス向上のコツ 実践編
Masahiro Nagano
Webアプリケーションの パフォーマンス向上のコツ 概要編
Masahiro Nagano
Webアプリケーションとメモリ
Masahiro Nagano
最近作ったN個のCPANモジュール Yokohama.pm #10
Masahiro Nagano
How to build a High Performance PSGI/Plack Server
Masahiro Nagano
Apache::LogFormat::Compiler YAPC::Asia 2013 Tokyo LT-Thon
Masahiro Nagano
MHA for MySQL の話
Masahiro Nagano
1台から500台までのMySQL運用(YAPC::Asia編)
Masahiro Nagano
監視ツールの話
Masahiro Nagano
捗れ!Operation
Masahiro Nagano
グラフで捗る話#2 kansai.pm#14
Masahiro Nagano
Recently uploaded
(9)
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
20250729_Devin-for-Enterprise
Masaki Yamakawa
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
1.
Norikraで作る PHPの例外検知システム YAPC::Asia Tokyo 2015
LT Masahiro Nagano @kazeburo
2.
PHPはじめました 長年Perlをやってきましたが
3.
PHPの例外を検出し 通知するシステム Catch PHP Exception
and send it to Slack
4.
STEP 1 例外をログに記録する Log the
PHP Exception
5.
Try-Catch try { throw new
MyAppException('Boofy'); } catch (Exception $e ) { $msg = json_encode(array( 'message' => $e->getMessage(), '_exception' => array( 'class' => get_class($e), 'message' => $e->getMessage(), 'trace' => .. ), )). "n"; error_log($msg, 3, '/path/to/app_error_log'); }
6.
set_exception_handler set_exception_handler(function($e) { $msg =
decorate_exception($e); error_log($msg, 3, '/path/to/app_error_log'); }); throw new MyAppException('Boofy'); try-catch外で発生した例外を補足 Catch the PHP Exception outside Try-Catch
7.
set_error_handler set_error_handler( function($severity, $msg, $file,
$line){ throw new ErrorException( $msg, 0, $$severity, $file, $line ); } ); PHPではエラーと例外は別物 エラーを例外に変換 Convert Error to Exeption
8.
これらの機能を使っても 補足できない例外がある (例) syntax error、存在しないメソッドの呼び出し Can’t all
Exception with these functions
9.
error_reporting & error_log error_reporting(E_ALL
| E_STRICT); ini_set('error_log', '/path/to/php_log'); 致命的エラーをログに記録 php.ini でも書ける Log Fatal Errors to the log file
10.
Apache vhost ErrorLog <VirtualHost
*:80> ServerName api.example.com ErrorLog /path/to/error_log </VirtualHost> php.ini にerror_logの設定がなく ini_set 前にエラーが発生した場合
11.
Apache ErrorLog ErrorLog /var/log/httpd/error_log Segmentation
fault など Apacheのworkerプロセスの不正終了
12.
ここまでまとめ PHP(mod_php)のエラーログは全部で 4つのファイルに記録される ここまでが長かった 弊社の環境では
13.
STEP 2 例外の集約から通知
14.
構成 App App App SQLを投入 エラーログをfluentdでNorikraに送り リアルタイムに集計してSlackに通知
15.
fluentd <source> type tail format json path
/path/to/app_error_log tag nohostname.error_app_log </source> <source> type tail format /^[(?<time>[^]]*)] (?<message>.*)$/ time_format %d-%b-%Y %H:%M:%S path /path/to/php_log tag nohostname.apache_error </source> <source> type tail format /^[[^ ]* (?<time>[^]]*)] [(?<level>[^]]*)](?: [pid (?<pid>[^]]*)])? [client (?<client>[^]]*)] (?<message>.*?)(?:, referer: (? <referer>.*))?$/ path /path/to/error_log tag nohostname.apache_error </source> <source> type tail format /^[[^ ]* (?<time>[^]]*)] [(?<level>[^]]*)](?: [pid (?<pid>[^]]*)])? [client (?<client>[^]]*)] (?<message>.*?)(?:, referer: (? <referer>.*))?$/ path /var/log/httpd/error_log tag nohostname.apache_error </source> <match nohostname.**> type record_reformer tag ${tag_suffix[1]} hostname ${hostname} </match> <match {error_app_log,apache_error}> type forward <server> name cep host cep </server> </match> in_tail x 4 hostname追加 集約サーバへの送信
16.
Norikra •Norikra とはリアルタイムイベントスト リームに対して SQL
ライクな言語で処 理できる super cool なプロダクト
17.
Norikra Query SELECT "alert-channel" as
channel, "[..][" || hostname || "] Detect *" || CAST(COUNT(*), string) || "* PDOException in this 1min: ```" || message || "``` action: `" || COALESCE(NULLABLE(action),"-") || "`" AS msg FROM error_app_log.win:time_batch(1 min) WHERE exception.class = "PDOException" OR ( _exception.class = "ErrorException" AND _exception.message LIKE "PDOStatement%" ) GROUP BY hostname, message, action HAVING COUNT(*) > 0
18.
表示例
19.
まとめ • Norikra便利 • PHPのエラーログはつらい •
扱いづらいPHPのエラー処理を適当にいなす - uzullaがブログ • http://uzulla.hateblo.jp/entry/ 2013/12/20/041619
20.
He is an
awesome PHP guy!!!
21.
おわり
Download