コード例 #1
0
ファイル: IncidentPusher.php プロジェクト: hogosha/monitor
 /**
  * {@inheritdoc}
  */
 public function push(Result $result)
 {
     $statusGuesser = new StatusGuesser();
     $resourceFactory = new ResourceFactory($this->client);
     $incidentResource = $resourceFactory->get('incident');
     $serviceResource = $resourceFactory->get('service');
     $service = $serviceResource->getService($result->getUrl()->getServiceUuid());
     $alreadyInFailure = false;
     if ($service['status'] != StatusGuesser::RESOLVED) {
         $alreadyInFailure = true;
     }
     try {
         // If the service is not already in failure,
         // we check if there is a failure.
         if (false === $alreadyInFailure && $statusGuesser->isFailed($result)) {
             $incidentResource->createIncident(['name' => str_replace('%service_name%', $service['name'], $this->getDefaultFailedIncidentMessage()), 'service' => $result->getUrl()->getServiceUuid(), 'status' => StatusGuesser::IDENTIFIED, 'error_log' => sprintf('%s %s', $result->getHandlerError(), $result->getValidatorError())]);
         }
         // If the service is already in failture,
         // we check if it's back to normal and create a incident resolver
         if ($alreadyInFailure && $statusGuesser->isOk($result)) {
             $incidentResource->createIncident(['name' => str_replace('%service_name%', $service['name'], $this->getDefaultResolvedIncidentMessage()), 'service' => $result->getUrl()->getServiceUuid(), 'status' => StatusGuesser::RESOLVED]);
         }
     } catch (BadResponseException $e) {
         throw $e;
     }
 }
コード例 #2
0
ファイル: MetricPusher.php プロジェクト: hogosha/monitor
 /**
  * {@inheridoc}.
  */
 public function push(Result $result)
 {
     $statusGuesser = new StatusGuesser();
     if ($statusGuesser->isOk($result)) {
         $resourceFactory = new ResourceFactory($this->client);
         $metricResource = $resourceFactory->get('metricPoint');
         try {
             $metricResource->createMetricPoint(['metric' => $result->getUrl()->getMetricUuid(), 'value' => $result->getReponseTime() * 1000, 'datetime' => date('Y-m-d H:i:s')]);
         } catch (BadResponseException $e) {
             throw $e;
         }
     }
 }
コード例 #3
0
ファイル: StatusGuesserTest.php プロジェクト: hogosha/monitor
 /**
  * testIsOk.
  */
 public function testIsOk()
 {
     $statusGuesser = new StatusGuesser();
     $this->assertFalse($statusGuesser->isOk($this->createResult()));
 }