You've already forked wp-prometheus
feat: Add custom metric builder, export/import, and Grafana dashboards (v0.3.0)
All checks were successful
Create Release Package / build-release (push) Successful in 59s
All checks were successful
Create Release Package / build-release (push) Successful in 59s
- Custom Metrics Builder with admin UI for gauge metrics - Support for static values and WordPress option-based values - JSON-based export/import with skip/overwrite/rename modes - Three Grafana dashboard templates (overview, runtime, WooCommerce) - New tabs: Custom Metrics and Dashboards - Reset runtime metrics button Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
46
CLAUDE.md
46
CLAUDE.md
@@ -18,6 +18,9 @@ This plugin provides a Prometheus `/metrics` endpoint and an extensible way to a
|
||||
- Cron job metrics (scheduled events, overdue, next run)
|
||||
- Transient cache metrics (total, expiring, expired)
|
||||
- WooCommerce integration (products, orders, revenue, customers)
|
||||
- Custom metric builder with admin UI (gauges with static or option-based values)
|
||||
- Metric export/import for backup and site migration
|
||||
- Grafana dashboard templates for easy visualization
|
||||
- Dedicated plugin settings under 'Settings/Metrics' menu
|
||||
- Extensible by other plugins using `wp_prometheus_collect_metrics` action hook
|
||||
- License management integration
|
||||
@@ -30,11 +33,7 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
|
||||
|
||||
**Note for AI Assistants:** Clean this section after the specific features are done or new releases are made. Effective changes are tracked in `CHANGELOG.md`. Do not add completed versions here - document them in the Session History section at the end of this file.
|
||||
|
||||
### Version 0.3.0 (Planned)
|
||||
|
||||
- Custom metric builder in admin
|
||||
- Metric export/import
|
||||
- Grafana dashboard templates
|
||||
*No planned features at this time.*
|
||||
|
||||
## Technical Stack
|
||||
|
||||
@@ -214,6 +213,10 @@ wp-prometheus/
|
||||
│ └── release.yml # CI/CD pipeline
|
||||
├── assets/
|
||||
│ ├── css/ # Admin/Frontend styles
|
||||
│ ├── dashboards/ # Grafana dashboard templates
|
||||
│ │ ├── wordpress-overview.json
|
||||
│ │ ├── wordpress-runtime.json
|
||||
│ │ └── wordpress-woocommerce.json
|
||||
│ └── js/
|
||||
│ └── admin.js # Admin JavaScript
|
||||
├── languages/ # Translation files
|
||||
@@ -222,6 +225,7 @@ wp-prometheus/
|
||||
├── releases/ # Release packages
|
||||
├── src/
|
||||
│ ├── Admin/
|
||||
│ │ ├── DashboardProvider.php # Grafana dashboard provider
|
||||
│ │ └── Settings.php # Settings page
|
||||
│ ├── Endpoint/
|
||||
│ │ └── MetricsEndpoint.php # /metrics endpoint
|
||||
@@ -229,6 +233,7 @@ wp-prometheus/
|
||||
│ │ └── Manager.php # License management
|
||||
│ ├── Metrics/
|
||||
│ │ ├── Collector.php # Prometheus metrics collector
|
||||
│ │ ├── CustomMetricBuilder.php # Custom metric CRUD
|
||||
│ │ └── RuntimeCollector.php # Runtime metrics collector
|
||||
│ ├── Installer.php # Activation/Deactivation
|
||||
│ ├── Plugin.php # Main plugin class
|
||||
@@ -285,6 +290,37 @@ add_action( 'wp_prometheus_collect_metrics', function( $collector ) {
|
||||
|
||||
## Session History
|
||||
|
||||
### 2026-02-02 - Custom Metrics & Dashboards (v0.3.0)
|
||||
|
||||
- Added Custom Metric Builder with full admin UI:
|
||||
- `CustomMetricBuilder.php` - CRUD operations, validation, export/import
|
||||
- Support for static values and WordPress option-based values
|
||||
- Label support (max 5 labels, 50 value combinations)
|
||||
- Prometheus naming convention validation (`[a-zA-Z_:][a-zA-Z0-9_:]*`)
|
||||
- Added Grafana Dashboard Templates:
|
||||
- `DashboardProvider.php` - Dashboard file provider with path traversal protection
|
||||
- `wordpress-overview.json` - General WordPress metrics
|
||||
- `wordpress-runtime.json` - HTTP/DB performance metrics
|
||||
- `wordpress-woocommerce.json` - WooCommerce store metrics
|
||||
- Added export/import functionality:
|
||||
- JSON-based configuration export
|
||||
- Three import modes: skip, overwrite, rename duplicates
|
||||
- Version tracking in export format
|
||||
- Updated Settings page with new tabs:
|
||||
- "Custom Metrics" tab with metric form and table
|
||||
- "Dashboards" tab with download buttons
|
||||
- "Reset Runtime Metrics" button in Metrics tab
|
||||
- Updated `Collector.php` to integrate custom metrics
|
||||
- Updated translation files with all new strings
|
||||
- **Key Learning**: Dynamic form handling in WordPress admin
|
||||
- Use `wp_create_nonce()` with unique nonce names per AJAX action
|
||||
- Localize script with `wp_localize_script()` for nonces and AJAX URL
|
||||
- Always verify `current_user_can('manage_options')` in AJAX handlers
|
||||
- **Key Learning**: Grafana dashboard JSON format
|
||||
- Use `${DS_PROMETHEUS}` for data source variable
|
||||
- Schema version 39 for current Grafana compatibility
|
||||
- Panels use `gridPos` for layout positioning
|
||||
|
||||
### 2026-02-02 - Extended Metrics (v0.2.0)
|
||||
|
||||
- Added WooCommerce integration metrics (only when WooCommerce is active):
|
||||
|
||||
Reference in New Issue
Block a user