Table of Contents
- Health Monitoring
- Endpoint
- Response Structure
- The 16 Checks
- 1. database
- 2. filesystem
- 3. cache
- 4. extensions
- 5. backup (Akeeba)
- 6. security (Admin Tools)
- 7. ssl
- 8. cron (Scheduled Tasks)
- 9. errors (Error Log)
- 10. db_size
- 11. content
- 12. users (User Activity)
- 13. mail
- 14. seo
- 15. template
- 16. config (Config Drift)
- Example Response
- Metadata
Health Monitoring
MokoWaaS includes a built-in health monitoring system that runs 16 diagnostic checks against the Joomla site. Results are returned as a JSON payload via the /?mokowaas=health endpoint.
Endpoint
GET https://example.com/?mokowaas=health
Authorization: Bearer <health_api_token>
The health_api_token is auto-generated during plugin installation and stored as a read-only plugin parameter. See API Endpoints for authentication details.
Response Structure
The response includes an overall status, a human-readable reason string, a UTC timestamp, individual check results, and instance metadata.
| Field | Description |
|---|---|
status |
Overall status: ok, degraded, or error |
reason |
Human-readable summary of issues (null when status is ok) |
timestamp |
ISO 8601 UTC timestamp |
checks |
Object containing all 16 check results |
meta |
Instance metadata (brand, versions, server name) |
Status Determination
- If any check returns
error, the overall status iserrorand the HTTP status code is 503. - If any check returns
degraded(and none areerror), the overall status isdegradedwith HTTP 200. - Otherwise the overall status is
okwith HTTP 200.
The 16 Checks
1. database
Tests database connectivity and query latency.
| Field | Description |
|---|---|
status |
ok or error |
latency_ms |
Query round-trip time in milliseconds |
driver |
Database driver name (e.g. mysqli, pdomysql) |
users |
Total user count (sanity check) |
2. filesystem
Checks writable directories and disk space.
| Field | Description |
|---|---|
status |
ok, degraded (low disk), or error (not writable) |
tmp_writable |
Whether /tmp is writable |
log_writable |
Whether /administrator/logs is writable |
cache_writable |
Whether /cache is writable |
free_disk_mb |
Free disk space in MB |
total_disk_mb |
Total disk space in MB |
site_size_mb |
Estimated site size in MB (images, media, tmp, cache, logs) |
Degraded when free disk is below 100 MB. Error when required directories are not writable.
3. cache
Reports Joomla cache configuration.
| Field | Description |
|---|---|
status |
Always ok |
enabled |
Whether Joomla caching is active |
handler |
Cache handler type (e.g. file, redis) |
4. extensions
Counts enabled extensions by type and checks for pending updates.
| Field | Description |
|---|---|
status |
ok or degraded (pending updates) |
by_type |
Object with counts per extension type |
pending_updates |
Number of available extension updates |
5. backup (Akeeba)
Checks Akeeba Backup status.
| Field | Description |
|---|---|
status |
ok, degraded, or error |
last_status |
Status of the last backup record (complete, fail, etc.) |
days_since |
Days since the last backup |
message |
Human-readable backup status |
Degraded when the last backup is older than 7 days or did not complete successfully.
6. security (Admin Tools)
Checks Admin Tools WAF status if installed.
| Field | Description |
|---|---|
status |
ok, degraded, or error |
waf_enabled |
Whether the Web Application Firewall is active |
blocked_24h |
Number of blocked requests in the last 24 hours |
7. ssl
Checks SSL certificate validity and expiration.
| Field | Description |
|---|---|
status |
ok, degraded, or error |
days_left |
Days until certificate expiration |
issuer |
Certificate issuer |
valid_from |
Certificate start date |
valid_to |
Certificate expiration date |
Degraded when the certificate expires within 30 days.
8. cron (Scheduled Tasks)
Checks Joomla scheduled task execution.
| Field | Description |
|---|---|
status |
ok or degraded |
total_tasks |
Total number of scheduled tasks |
failed_24h |
Tasks that failed in the last 24 hours |
9. errors (Error Log)
Analyzes recent Joomla error log entries.
| Field | Description |
|---|---|
status |
ok or degraded |
recent_errors |
Count of recent error log entries |
last_error |
Most recent error message |
10. db_size
Reports database size metrics.
| Field | Description |
|---|---|
status |
ok or degraded |
total_mb |
Total database size in MB |
tables |
Number of database tables |
11. content
Reports content statistics.
| Field | Description |
|---|---|
status |
Always ok |
articles |
Total article count |
categories |
Total category count |
published |
Number of published articles |
unpublished |
Number of unpublished articles |
12. users (User Activity)
Reports user statistics.
| Field | Description |
|---|---|
status |
Always ok |
total |
Total user count |
active_30d |
Users active in the last 30 days |
blocked |
Number of blocked user accounts |
13. mail
Checks Joomla mail configuration.
| Field | Description |
|---|---|
status |
ok or degraded |
mailer |
Mail handler type (e.g. smtp, mail, sendmail) |
from |
Configured sender address |
14. seo
Checks SEO configuration.
| Field | Description |
|---|---|
status |
ok or degraded |
sef |
Whether SEF URLs are enabled |
sef_rewrite |
Whether URL rewriting is enabled |
sitemap |
Whether a sitemap is detected |
15. template
Reports active template information.
| Field | Description |
|---|---|
status |
Always ok |
site_template |
Active frontend template name |
admin_template |
Active admin template name |
16. config (Config Drift)
Detects configuration anomalies.
| Field | Description |
|---|---|
status |
ok or degraded |
issues |
Array of detected configuration problems |
Checks for issues such as debug mode enabled in production, error reporting set too high, or default database prefix still in use.
Example Response
{
"status": "degraded",
"reason": "2 extension updates available; SSL expires in 14 days",
"timestamp": "2026-05-24T12:00:00Z",
"checks": {
"database": {
"status": "ok",
"latency_ms": 1.23,
"driver": "pdomysql",
"users": 5
},
"filesystem": {
"status": "ok",
"tmp_writable": true,
"log_writable": true,
"cache_writable": true,
"free_disk_mb": 4500,
"total_disk_mb": 20000,
"site_size_mb": 320
},
"ssl": {
"status": "degraded",
"days_left": 14,
"issuer": "Let's Encrypt",
"valid_to": "2026-06-07"
}
},
"meta": {
"brand": "MokoWaaS",
"plugin_version": "02.03.11",
"joomla_version": "5.2.4",
"php_version": "8.2.20",
"server_name": "Example Site",
"server_time": "2026-05-24T12:00:00Z"
}
}
(Remaining checks omitted for brevity.)
Metadata
The meta object is included in every health response:
| Field | Description |
|---|---|
brand |
Configured brand name |
plugin_version |
MokoWaaS plugin version |
joomla_version |
Joomla CMS version |
php_version |
PHP version |
server_name |
Joomla site name |
server_time |
Server UTC time |