The ATSD Client for PHP enables PHP developers to easily read statistics and metadata from the Axibase Time-Series Database. With minimal effort, you can build reporting, analytics, and alerting solutions. Use Composer to get started with this PHP API.
The ATSD Client for PHP in an easy-to-use client for interfacing with ATSD metadata and data REST API services. It has the ability to read time-series values, statistics, properties, alerts, and messages.
-
Data API
- Series
- QUERY
- Properties
- QUERY
- Alerts
- QUERY
- Alerts History
- QUERY
- Series
-
Meta API
- Metrics
- Get Metrics
- Get Metric
- Get Entities and Series Tags for Metric
- Entities
- Get Entities
- Get Metrics for Entity
- Entity Groups
- Get Entity Groups
- Entities for Entity Group
- Metrics
Before you begin using ATSD Client for PHP, you need to install a copy of the Axibase Time-Series Database. Download the latest version of ATSD that is available for your Linux distribution.
Minimum requirements for running the ATSD Client: PHP 5.3.2+, php5-curl
- From source:
git clone https://github.com/axibase/atsd-api-php.git
mv atsd-api-php /{your_documentroot_folder}/
- Composer
Once in composer.json
, specify the following:
{
"require": {
"axibase/atsd-api-php": "dev-master"
}
}
Specify the correct credentials in atsd.ini (atsd-api-php/atsdPHP/atsd.ini
):
url = [[atsd_server]]
username = [[username]]
password = [[password]]
Navigate to the following URL: yourDomainName/atsd-api-php/examples/testConnection.php
.
Make sure that application response is "Connection success.".
AtsdClientAlertsHistoryExample
$client = new HttpClient();
$client->connect();
$expression = 'name like \'nurs*\'';
$tags = 'app, os';
$limit = 10;
$queryClient = new Entities($client);
$params = array("limit" => $limit, 'expression' => $expression, 'tags' => $tags );
$responseEntities = $queryClient->findAll($params);
$viewConfig = new ViewConfiguration('Entities for expression: ' . $expression . "; tags: " . $tags . "; limit: " . $limit, 'entities', array('lastInsertTime' => 'unixtimestamp'));
$entitiesTable = Utils::arrayAsHtmlTable($responseEntities, $viewConfig);
$entity = "awsswgvml001";
$responseEntity = $queryClient->find($entity);
$viewConfig = new ViewConfiguration('Entity: ' . $entity, "entity");
$entityTable = Utils::arrayAsHtmlTable(array($responseEntity), $viewConfig);
$params = array("limit" => $limit);
$responseMetrics = $queryClient->findMetrics($entity, $params);
$viewConfig = new ViewConfiguration('Metrics for entity: ' . $entity, "metrics");
$metricsTable = Utils::arrayAsHtmlTable($responseMetrics, $viewConfig);
Utils::render(array($entitiesTable, $entityTable, $metricsTable));
$client->close();
$client = new HttpClient();
$client->connect();
$queryClient = new Series($client);
$queryClient->addDetailQuery('nurswgvml007', 'cpu_busy', 1424612226000, 1424612453000);
$aggregator = new Aggregator(array(AggregateType::AVG), array("count" => 1, "unit" => TimeUnit::HOUR));
$queryClient->addAggregateQuery('nurswgvml007', 'cpu_busy', 0, 1424612453000, $aggregator);
$queryClient->addQuery("nurswgvml007", "cpu_busy", array("limit" => "4"));
$response = $queryClient->execQueries();
$tables = array();
$tables[] = Utils::seriesAsHtml($response[0], "detail series");
$tables[] = Utils::seriesAsHtml($response[1], "aggregate series");
$tables[] = Utils::seriesAsHtml($response[2], "custom series");
Utils::render($tables);
$client->close();
You are able to customize your series query to use aggregate functionality using the following syntax:
$queryClient->addQuery("Entity1", "Metric1", array(
"startDate" => "2015-02-05T09:53:00Z",
"endDate" => "2015-02-05T09:54:00Z",
"timeFormat" => "iso",
"requestId" => "r-1",
"tags" => array(
"tag1" => array(
"value1"
),
"tag2"=>array(
"value2",
"Value3"
)
),
"type"=>"history",
"group"=>array(
"type"=>"AVG",
"interpolate"=>"STEP"
),
"rate"=>array(
"period"=>array(
"count"=>1,
"unit"=>"HOUR"
)
),
"aggregate"=>array(
"types"=>array(
"AVG",
"MAX"
),
"period"=>array(
"count"=>1,
"unit"=>"HOUR"
),
"interpolate"=>"NONE"
)
));
If you get an error like the following, ensure that the variable date.timezone in your php.ini is set.
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct():
It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.'