tonicforhealth / pagerduty-client
这是通过API创建事件并发送到PagerDuty的客户端
v0.1.0
2016-07-27 21:54 UTC
Requires
- php-http/client-common: ~1.0
- php-http/discovery: ~0.6
- php-http/message: ~1.2
- puli/composer-plugin: ^1.0@beta
Requires (Dev)
- guzzlehttp/psr7: ^1.3
- php-http/mock-client: ^0.3
- phpunit/phpunit: ~4.8|~5.3
Suggests
- guzzlehttp/guzzle: ~6.1
- php-http/guzzle6-adapter: ~1.1
This package is not auto-updated.
Last update: 2024-09-23 14:09:25 UTC
README
PagerDuty是一个客户端库,它为我们提供了使用PagerDuty events-api 的对象接口,并允许我们扩展这个库以使用PagerDuty rest-api v2
使用Composer简单尝试
安装
如果你想尝试
mkdir pagerduty-client-app && cd pagerduty-client-app && composer init --stability=dev -n && composer require tonicforhealth/pagerduty-client php-http/guzzle6-adapter guzzlehttp/guzzle:~6.1
使用示例
<?php require __DIR__.'/vendor/autoload.php'; use TonicForHealth\PagerDutyClient\Client\EventClientFactory; use TonicForHealth\PagerDutyClient\Client\Exception\EventClientTransportException; use TonicForHealth\PagerDutyClient\Client\Exception\ResponseDataValidationException; use TonicForHealth\PagerDutyClient\Entity\Event\Event; $eventClient = EventClientFactory::createEventClient( 'https://events.pagerduty.com/generic/2010-04-15' ); $event = new Event(); $event->serviceKey = 'change it to your "Integration Key"'; $event->description = 'FAILURE for production/HTTP on machine srv01.acme.com'; try { $response = $eventClient->post($event); } catch (EventClientTransportException $exception) { printf('HTTP Transport problem:%s'."\n", $exception->getMessage()); exit(1); } catch (ResponseDataValidationException $exception) { printf('Validation response problem:%s'."\n", $exception->getMessage()); exit(2); } var_dump($response);
对于已有项目且使用Composer
安装
如果你已经有了一个包含composer.json的项目,请检查minimum-stability,如果它高于dev,请将其更改为dev
$ composer config minimum-stability dev
然后添加tonicforhealth/pagerduty-client
$ composer require tonicforhealth/pagerduty-client
此外,你还需要添加一个具有适配器的http-client,或者如果你已经有了,你需要为其找到一个php-http-padapter
$ composer require php-http/guzzle6-adapter guzzlehttp/guzzle:~6.1
高级使用示例
<?php require __DIR__.'/vendor/autoload.php'; use Http\Client\Common\HttpMethodsClient; use Http\Discovery\HttpClientDiscovery; use Http\Discovery\MessageFactoryDiscovery; use TonicForHealth\PagerDutyClient\Client\EventClient; use TonicForHealth\PagerDutyClient\Client\Exception\EventClientTransportException; use TonicForHealth\PagerDutyClient\Client\Exception\ResponseDataValidationException; use TonicForHealth\PagerDutyClient\Entity\Event\Event; use TonicForHealth\PagerDutyClient\Entity\Event\EventRepresentation; use TonicForHealth\PagerDutyClient\RepresentProcessor\RepresentProcessor; use TonicForHealth\PagerDutyClient\Validation\ValidationResponseFactory; $representProcessor = new RepresentProcessor(); $eventRepresentation = new EventRepresentation(); $representProcessor->addRepresentation($eventRepresentation); $validationResponse = ValidationResponseFactory::createValidation('Event'); $httpMethodsClient = new HttpMethodsClient( HttpClientDiscovery::find(), MessageFactoryDiscovery::find() ); $eventClient = new EventClient( 'https://events.pagerduty.com/generic/2010-04-15', $httpMethodsClient, $representProcessor, $validationResponse ); $event = new Event(); $event->serviceKey = 'change it to your "Integration Key"'; $event->description = 'FAILURE for production/HTTP on machine srv01.acme.com'; try { $response = $eventClient->post($event); } catch (EventClientTransportException $exception) { printf('HTTP Transport problem:%s'."\n", $exception->getMessage()); exit(1); } catch (ResponseDataValidationException $exception) { printf('Validation response problem:%s'."\n", $exception->getMessage()); exit(2); } var_dump($response);