PHP Client for Cube. See Square/Cube.
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib
tests
.gitignore
LICENSE
README.md
composer.json

README.md

Cube Client for PHP

Cube Client that supports communicating with a Cube collector and evaluator.

Usage

// Create a Client pointed at a local collector and evaluator
$client = \Cube\Client::createHttpClient(array(
    'collector' => array(
        'host' => 'localhost',
        'port' => 1080,
    ),
    'evaluator' => array(
        'host' => 'localhost',
        'port' => 1081,
    ),
    'secure' => true,
));

$res = $client->metricGet(array(
    'expression' => 'sum(cube_request)',
    'step' => \Cube\Client::INT_ONE_MINUTE,
    'limit' => 100,
));

echo "There were {$res[0]['value']} hits during {$res[0]['time']}";

Install

Via composer

composer.phar install showclix/cube-php

API

\Cube\Client

[static] createHttpClient(array $conf)

param array $conf

Configuration array. For example:

array(
    'collector' => array(
        'host' => 'localhost',
        'port' => 1080,
    ),
    'evaluator' => array(
        'host' => 'localhost',
        'port' => 1081,
    ),
    'secure' => true,
)

return \Cube\Client

eventPut(array $event)

param array $event

The event to push to cube. Requires type, time and data options.

array(
    'type' => 'example',
    'time' => time(),
    'data' => array(
        'key' => 'value',
    ),
)

returns array response from Cube

eventGet(array $query)

param array $query

returns array

EXAMPLE

$query = array(
    'expression' => 'request.eq(path, "search")',   // cube expression
    'limit' => 10,                                  // limit (optional)
);
$client->metricGet($query);

metricGet(array $query)

param array $query Metric query to send to cube evaluator

returns array

EXAMPLE

$query = array(
    'expression' => 'sum(type_name)',   // cube expression
    'start' => strtotime('-1 day'),     // start time (optional)
    'stop' => time(),                   // end time (optional)
    'limit' => 10,                      // limit (optional)
    'step' => Client::INT_ONE_MINUTE,   // time grouping interval
);
$res = $client->metricGet($query);
echo "There were {$res[0]['value']} during {$res[0]['time']}";

typesGet()

returns array of all types currently in cube

Todo

  • Implement \Cube\Connection\WebSocketConnection
  • Implement \Cube\Connection\UdpConnection
  • Add Travis CI Integaration complete with hooks to setup and install Cube/Mongo