You've already forked wp-prometheus
feat: Add runtime metrics for HTTP requests and database queries (v0.1.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
- Add RuntimeCollector class for tracking request lifecycle metrics - Add wordpress_http_requests_total counter (method, status, endpoint) - Add wordpress_http_request_duration_seconds histogram - Add wordpress_db_queries_total counter (endpoint) - Add wordpress_db_query_duration_seconds histogram (requires SAVEQUERIES) - Update Collector to expose stored runtime metrics - Add new settings options for enabling/disabling runtime metrics - Create translation files (.pot, .po, .mo) for internationalization - Update documentation and changelog Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ use Magdev\WpPrometheus\Admin\Settings;
|
||||
use Magdev\WpPrometheus\Endpoint\MetricsEndpoint;
|
||||
use Magdev\WpPrometheus\License\Manager as LicenseManager;
|
||||
use Magdev\WpPrometheus\Metrics\Collector;
|
||||
use Magdev\WpPrometheus\Metrics\RuntimeCollector;
|
||||
|
||||
// Prevent direct file access.
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
@@ -90,6 +91,20 @@ final class Plugin {
|
||||
new Settings();
|
||||
}
|
||||
|
||||
// Initialize runtime collector for request metrics (always runs to collect data).
|
||||
// Only collect if at least one runtime metric is enabled.
|
||||
$enabled_metrics = get_option( 'wp_prometheus_enabled_metrics', array() );
|
||||
$runtime_metrics = array(
|
||||
'wordpress_http_requests_total',
|
||||
'wordpress_http_request_duration_seconds',
|
||||
'wordpress_db_queries_total',
|
||||
);
|
||||
$has_runtime_metrics = ! empty( array_intersect( $runtime_metrics, $enabled_metrics ) );
|
||||
|
||||
if ( $has_runtime_metrics && LicenseManager::is_license_valid() ) {
|
||||
RuntimeCollector::get_instance();
|
||||
}
|
||||
|
||||
// Initialize metrics endpoint (only if licensed).
|
||||
if ( LicenseManager::is_license_valid() ) {
|
||||
$this->collector = new Collector();
|
||||
|
||||
Reference in New Issue
Block a user