File: /var/www/limestate-api/Controllers/ApiController.php
<?php
class ApiController
{
public static function actionVersion()
{
Ajax::success([
'env' => APP_ENV,
'version' => Api::$version,
]);
}
public static function actionElasticHealthCheck()
{
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
$indicesData = json_decode(file_get_contents('http://84.201.165.2:9200/_cat/indices?format=json'));
$state = 'ok';
$msg = '';
if (empty($indicesData)) {
json_encode(['state' => 'error', 'msg' => 'No elastic health check data found.']);
exit;
}
foreach ($indicesData as $row) {
if ($row->health !== 'green' || $row->{'docs.count'} < 1) {
$state = 'error';
$msg .= $row->index . ' (' . $row->heatlh . ')';
}
}
echo json_encode(compact('state', 'msg'));
exit;
}
}