showclix/cube-php

A PHP client for Cube

0.1.3 2021-03-18 15:48 UTC

This package is not auto-updated.

Last update: 2024-04-12 06:04:31 UTC


README

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