Tolerance\Metrics\Collector\RabbitMq\RabbitMqHttpClient::getQueue PHP Method

getQueue() public method

public getQueue ( string $vhost, string $name, integer $interval = 30 ) : array
$vhost string
$name string
$interval integer
return array
    public function getQueue($vhost, $name, $interval = 30)
    {
        $queueName = sprintf('%s/%s', urlencode($vhost), urlencode($name));
        $url = sprintf('http://%s:%d/api/queues/%s?%s', $this->hostname, $this->port, $queueName, http_build_query(['lengths_age' => $interval, 'lengths_incr' => $interval, 'msg_rates_age' => $interval, 'msg_rates_incr' => $interval, 'data_rates_age' => $interval, 'data_rates_incr' => $interval]));
        $options = ['auth' => [$this->user, $this->password]];
        if (version_compare(ClientInterface::VERSION, '6.0') >= 0) {
            $response = $this->httpClient->request('get', $url, $options);
        } else {
            $response = $this->httpClient->get($url, $options);
        }
        return \GuzzleHttp\json_decode($response->getBody()->getContents(), true);
    }

Usage Example

Example #1
0
 /**
  * {@inheritdoc}
  */
 public function collect()
 {
     $queue = $this->rabbitMqClient->getQueue($this->vhost, $this->queueName);
     $metrics = [new Metric('pending', $queue['messages_ready']), new Metric('running', $queue['messages_unacknowledged'])];
     if (array_key_exists('message_stats', $queue)) {
         $metrics[] = new Metric('publish_rate', $queue['message_stats']['publish_details']['rate']);
         $metrics[] = new Metric('deliver_rate', $queue['message_stats']['deliver_get_details']['rate']);
     }
     return $metrics;
 }
All Usage Examples Of Tolerance\Metrics\Collector\RabbitMq\RabbitMqHttpClient::getQueue
RabbitMqHttpClient