/** * {@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; } }
/** * {@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; } } }
/** * @expectedException \InvalidArgumentException * @expectedExceptionMessage This resource "fake" does not exist. * testClientException. * * testgetWrongResource. */ public function testgetWrongResource() { $resourceFactory = new ResourceFactory($this->createClient()); $resourceFactory->get('fake'); }
/** * 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); }
/** * 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); }