sbf123官网

下面是一个示例ServiceLogger进程

五. 示例ServiceLogger进程
下面是一个示例ServiceLogger进程。当一个服务停用时,它负责把一个电子邮件发送给一个待命人员:class
EmailMe_ServiceLogger implements ServiceLogger { public function
log_service_event(ServiceCheck$service) { if($service-current_status
==ServiceCheck::FAILURE) { $message = Problem
with{$service-description()}rn; mail(‘oncall@example.com’, ‘Service
Event’,$message); if($service-consecutive_failures() 5) {
mail(‘oncall_backup@example.com’, ‘Service Event’, $message); } } }
public function log_current_status(ServiceCheck$service){ return; }}
假如连续失败五次,那么该进程还把一个消息发送到一个备份地址。注重,它并没有实现一个有意义的log_current_status()方法。
无论何时象如下这样改变一个服务的状态,你都应该实现一个写向PHP错误日志的ServiceLogger进程:class
ErrorLog_ServiceLogger implements ServiceLogger { public function
log_service_event(ServiceCheck$service) {
if($service-current_status() !==$service-previous_status()) {
if($service-current_status() ===ServiceCheck::FAILURE) { $status =
‘DOWN’; } else { $status = ‘UP’; } error_log({$service-description()}
changed status to $status); } } public function
log_current_status(ServiceCheck$service) {
error_log({$service-description()}: $status); }}
该log_current_status()方法意味着,假如进程发送一个SIGUSR1信号,它将把其完整的当前状态复制到你的PHP错误日志中。
该引擎使用如下的一个配置文件:config loggers logger iderrorlog/id
classErrorLog_ServiceLogger/class /logger logger idemailme/id
classEmailMe_ServiceLogger/class /logger /loggers services service
classHTTP_ServiceCheck/class params descriptionOmniTI HTTP
Check/description url timeout30/timeout frequency900/frequency /params
loggers loggererrorlog/logger loggeremailme/logger

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章