예제 #1
0
 public function __construct(LibratoConfig $libratoConfig, AsyncStats $asyncStats, ImagickTaskQueue $imagickTaskQueue, Librato $librato)
 {
     $this->asyncStats = $asyncStats;
     $this->flushInterval = 10;
     $this->sourceName = $libratoConfig->getStatsSourceName();
     $this->imagickTaskQueue = $imagickTaskQueue;
     $this->librato = $librato;
 }
예제 #2
0
 /**
  * @param $gauges Gauge[]
  * @param $counters Counter[]
  */
 function send($gauges, $counters)
 {
     $client = new ArtaxClient();
     $client->setAllOptions([ArtaxClient::OP_MS_CONNECT_TIMEOUT => 2000, ArtaxClient::OP_MS_TRANSFER_TIMEOUT => 3000]);
     $request = new Request();
     $request->setUri("https://metrics-api.librato.com/v1/metrics");
     $request->setProtocol('1.1');
     $request->setMethod('POST');
     $request->setHeader("Content-Type", "application/json");
     $auth = base64_encode($this->libratoConfig->getLibratoUsername() . ':' . $this->libratoConfig->getLibratoKey());
     $request->setHeader("Authorization", "Basic {$auth}");
     $data = [];
     //working
     //"{"gauges":[{"name":"Queue.ImagickTaskQueue","value":0,"source":"test.phpimagick.com"}]}"
     if (count($gauges)) {
         $gaugeEntries = [];
         foreach ($gauges as $gauge) {
             $arrayed = $gauge->convertToArray();
             $gaugeEntries = array_merge($gaugeEntries, $arrayed);
         }
         $data["gauges"] = $gaugeEntries;
     }
     if (count($counters)) {
         $counterEntries = [];
         foreach ($counters as $counter) {
             $arrayed = $counter->convertToArray();
             if (is_array($arrayed) == true) {
                 $counterEntries = array_merge($counterEntries, $arrayed);
             } else {
                 $counterEntries[] = $arrayed;
             }
         }
         $data["counters"] = $counterEntries;
     }
     $body = json_encode($data);
     $request->setBody($body);
     var_dump($body);
     try {
         $promise = $client->request($request);
         /** @var $response \Amp\Artax\Response */
         $response = \Amp\wait($promise);
         echo "Status " . $response->getStatus() . "\n";
         echo $response->getBody();
     } catch (SocketException $se) {
         echo "Artax\\SocketExeption" . $se->getMessage();
     }
 }
예제 #3
0
function createLibrato(Config $config)
{
    return \ImagickDemo\Config\Librato::make($config->getKey(Config::LIBRATO_KEY), $config->getKey(Config::LIBRATO_USERNAME), $config->getKey(Config::LIBRATO_STATSSOURCENAME));
}
예제 #4
0
 public function __construct(RedisClient $redisClient, LibratoConfig $libratoConfig)
 {
     $this->redisClient = $redisClient;
     $this->redisKey = self::getClassKey();
     $this->sourceName = $libratoConfig->getStatsSourceName();
 }
예제 #5
0
 public function createLibrato()
 {
     return \ImagickDemo\Config\Librato::make(self::getEnv(self::LIBRATO_KEY), self::getEnv(self::LIBRATO_USERNAME), self::getEnv(self::LIBRATO_STATSSOURCENAME));
 }
예제 #6
0
 /**
  * @param \Auryn\Injector $injector
  * @param LibratoConfig $libratoConfig
  */
 function __construct(\Auryn\Injector $injector, LibratoConfig $libratoConfig)
 {
     $this->injector = $injector;
     $this->flushInterval = 10;
     $this->sourceName = $libratoConfig->getStatsSourceName();
 }