Ejemplo n.º 1
0
 /**
  * {@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;
     }
 }
Ejemplo n.º 2
0
 /**
  * {@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;
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @expectedException \InvalidArgumentException
  * @expectedExceptionMessage This resource "fake" does not exist.
  * testClientException.
  *
  * testgetWrongResource.
  */
 public function testgetWrongResource()
 {
     $resourceFactory = new ResourceFactory($this->createClient());
     $resourceFactory->get('fake');
 }
Ejemplo n.º 4
0
 /**
  * testMetricUpdate.
  */
 public function testMetricDelete()
 {
     $mock = new MockHandler([new Response(200), function (RequestInterface $request) {
         $this->assertEquals($request->getUri()->getPath(), '/metrics/ec9e5ba7-9136-4b67-b049-a969e8e6dcde');
         $this->assertEquals($request->getMethod(), 'DELETE');
         return new Response(204);
     }]);
     $handler = HandlerStack::create($mock);
     $client = new Client(['username' => 'admin', 'password' => 'admin', 'base_uri' => 'http://hogosha.dev/api', 'handler' => $handler]);
     $resourceFactory = new ResourceFactory($client);
     $metricResource = $resourceFactory->get('metric');
     $response = $metricResource->deleteMetric('ec9e5ba7-9136-4b67-b049-a969e8e6dcde');
     $this->assertInstanceOf(Response::class, $response);
     $this->assertEquals($response->getStatusCode(), 204);
 }
Ejemplo n.º 5
0
 /**
  * testIncidentDelete.
  */
 public function testIncidentDelete()
 {
     $mock = new MockHandler([new Response(200), function (RequestInterface $request) {
         $this->assertEquals($request->getUri()->getPath(), '/incidents/e3d1ab31-800e-4710-8b25-14bdc6742951');
         $this->assertEquals($request->getMethod(), 'DELETE');
         return new Response(204);
     }]);
     $handler = HandlerStack::create($mock);
     $client = new Client(['username' => 'admin', 'password' => 'admin', 'base_uri' => 'http://hogosha.dev/api', 'handler' => $handler]);
     $resourceFactory = new ResourceFactory($client);
     $incidentResource = $resourceFactory->get('incident');
     $response = $incidentResource->deleteIncident('e3d1ab31-800e-4710-8b25-14bdc6742951');
     $this->assertInstanceOf(Response::class, $response);
     $this->assertEquals($response->getStatusCode(), 204);
 }