Files
dewemoji-api/app/controllers/MetricsLite.php

33 lines
799 B
PHP

<?php
require_once __DIR__.'/../helpers/json.php';
// DB quick check
$db_ok = null;
try {
require_once __DIR__.'/../db.php';
$pdo = getPDO();
$pdo->query('SELECT 1');
$db_ok = true;
} catch (Throwable $e) {
$db_ok = false;
}
// Rounded loadavg as STRINGS to avoid jq float parsing edge cases
$loadavg_raw = function_exists('sys_getloadavg') ? sys_getloadavg() : null;
$loadavg = null;
if (is_array($loadavg_raw)) {
$loadavg = array_map(function($v){
return number_format((float)$v, 2, '.', ''); // string "6.03"
}, $loadavg_raw);
}
json_ok([
'time' => gmdate('c'),
'php_version' => PHP_VERSION,
'memory_used_bytes' => memory_get_usage(true),
'db' => $db_ok ? 'ok' : 'down',
'system' => [
'loadavg' => $loadavg,
'uptime' => @trim(shell_exec('uptime')),
],
]);