v05.00.01 � Grafana dashboard overhaul, library panels, monitoring fixes #6

Merged
jmiller merged 19 commits from dev into main 2026-05-12 05:20:45 +00:00
Owner

Summary

  • Rewrite MokoWaaS Grafana dashboard with table-based layout (Site Health, Joomla Core & Extensions, Backup Status)
  • Fix joomla-monitor.sh: clean_json SystemExit bug, config pagination, version regex
  • Add 14 reusable Grafana library panels (CPU, Memory, Disk, Network, Docker, Nginx, MySQL, SSL, Service Health, Response Time, Uptime)
  • Add site-uptime-alert.sh for ntfy critical notifications on site downtime
  • Configure Akeeba backup monitoring for all Joomla sites
  • Clear stuck clarksvillefurs backup, fix textfile collector permissions
  • Migrate .gitea/ workflows to .mokogitea/

Test plan

  • Verify all Grafana dashboard tables render correctly
  • Confirm library panels appear in Grafana panel library
  • Check ntfy alerts fire on site downtime
  • Validate joomla-monitor.sh produces clean .prom output

🤖 Generated with Claude Code

## Summary - Rewrite MokoWaaS Grafana dashboard with table-based layout (Site Health, Joomla Core & Extensions, Backup Status) - Fix joomla-monitor.sh: clean_json SystemExit bug, config pagination, version regex - Add 14 reusable Grafana library panels (CPU, Memory, Disk, Network, Docker, Nginx, MySQL, SSL, Service Health, Response Time, Uptime) - Add site-uptime-alert.sh for ntfy critical notifications on site downtime - Configure Akeeba backup monitoring for all Joomla sites - Clear stuck clarksvillefurs backup, fix textfile collector permissions - Migrate .gitea/ workflows to .mokogitea/ ## Test plan - [ ] Verify all Grafana dashboard tables render correctly - [ ] Confirm library panels appear in Grafana panel library - [ ] Check ntfy alerts fire on site downtime - [ ] Validate joomla-monitor.sh produces clean .prom output 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jmiller added 19 commits 2026-05-12 05:20:21 +00:00
- Add clickable links: Site Status → admin, API Reachable → endpoint, HTTP Status → Wikipedia reference, Last Backup/Records → Akeeba Manage
- Fix backup status doubling with max by() aggregation
- Show version as two-row display (site name + version string) using table format with labelsToFields
- Map 0 values to dash on Extensions, Enabled, Disabled panels
- Set minVizWidth for 3-column wrapping layout
- All links use dynamic Grafana variables, no hardcoded endpoints

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Switch all stat panels to w:24 full-width for natural 3-column wrapping
- Filter site variable to joomla.* site_type only (excludes git, grafana)
- Standardize all noValue to "—" for offline/unavailable endpoints
- Joomla Version panel uses table format with labelsToFields for xx.xx.xx display
- Remove wideLayout option (only applies to value_and_name textMode)

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Update template-CONTRIBUTING.md: .github/workflows/ → .mokogitea/workflows/
- Update templates/gitea/README.md: .gitea/ → .mokogitea/
- .mokogitea/ is now the standard system folder

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Site Health: rewritten from scratch — site_url via label_replace on HTTP
  query (works for offline sites), filterFieldsByName to keep only needed
  fields, endpoint URL as clickable Site column
- Joomla Core & Extensions: rewritten — same pattern, Site links to /administrator/
- Backup Status: rewritten — same pattern, Site links to Akeeba Manage
- Combined SSL Days and Last Scrape into Site Health table
- Collapsed Joomla Core section by default
- Moved dashboard to Endpoints folder
- Added site-uptime-alert.sh for ntfy critical alerts on site downtime
- Split updates into System and Ext Updates columns

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add reusable library panel templates exported from Grafana:
- Server: CPU, Memory, Disk, Network Traffic
- Docker: Container CPU, Container Memory
- Services: Nginx Request Rate, Nginx Connections, MySQL Queries/s, MySQL Connections
- Monitoring: SSL Certificate Expiry, Service Health, Response Time, Uptime Availability

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
jmiller merged commit 95f1d05253 into main 2026-05-12 05:20:45 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/moko-platform#6