{"id":357435,"date":"2026-08-26T12:26:48","date_gmt":"2026-08-26T12:26:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/metrixwire-apm\/"},"modified":"2026-08-26T12:26:18","modified_gmt":"2026-08-26T12:26:18","slug":"metrixwire-apm","status":"publish","type":"plugin","link":"https:\/\/es.wordpress.org\/plugins\/metrixwire-apm\/","author":23527322,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"MetrixWire APM","header_author":"PlatkaDigital","header_description":"Zero-config APM for WordPress \u2014 traces every request and its database queries, no code changes required.","assets_banners_color":"","last_updated":"2026-08-26 12:26:18","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/metrixwire.com","header_author_uri":"https:\/\/platkadigital.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"platkadigital","date":"2026-08-26 12:26:18"}},"upgrade_notice":{"1.1.0":"<p>The plugin folder is now <code>metrixwire-apm<\/code>. Activating it adopts the settings from the old <code>metrixwire<\/code>\nplugin, which is then safe to delete.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[51565,153,5603,248562,247],"plugin_category":[54,59],"plugin_contributors":[275779],"plugin_business_model":[],"class_list":["post-357435","plugin","type-plugin","status-publish","hentry","plugin_tags-apm","plugin_tags-database","plugin_tags-monitoring","plugin_tags-observability","plugin_tags-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-platkadigital","plugin_committers-platkadigital"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/metrixwire-apm.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>MetrixWire APM traces every WordPress request end-to-end: response time, status, and (when <code>SAVEQUERIES<\/code>\nis enabled) each <code>$wpdb<\/code> query as its own span. Detectors on the MetrixWire dashboard flag N+1 queries,\nslow endpoints, slow queries, and unhandled exceptions from the traces this plugin sends.<\/p>\n\n<p>No code changes are required \u2014 activate the plugin, paste your API key and endpoint under\n<strong>Settings \u2192 MetrixWire<\/strong>, and traces start flowing.<\/p>\n\n<p>For the absolute earliest possible trace start (before regular plugins load), see the must-use plugin\nvariant bundled with the <code>metrixwire\/php<\/code> Composer package instead.<\/p>\n\n<h4>External services<\/h4>\n\n<p>This plugin sends trace data to the MetrixWire endpoint you configure \u2014 your own instance, or\nmetrixwire.com if you use the hosted service. Each request contains the HTTP method, path, response\nstatus, duration, and (when <code>SAVEQUERIES<\/code> is enabled) the SQL text and duration of each database query.\nNothing is sent until you enter an API key and endpoint, and nothing is sent while the Enabled toggle is\noff. Traces leave the site on the <code>shutdown<\/code> hook, after the response has already reached the visitor.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>metrixwire-apm<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the zip via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu.<\/li>\n<li>Go to <strong>Settings \u2192 MetrixWire<\/strong> and enter your project's API key and endpoint URL (find both in your\nMetrixWire dashboard's install guide).<\/li>\n<li>Optionally add <code>define( 'SAVEQUERIES', true );<\/code> to <code>wp-config.php<\/code> to capture per-query spans.<\/li>\n<li>Click <strong>Test Connection<\/strong> to confirm the key and endpoint are valid before saving.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20configure%20this%20via%20wp-config.php%20instead%20of%20the%20settings%20screen%3F\"><h3>Can I configure this via wp-config.php instead of the settings screen?<\/h3><\/dt>\n<dd><p>Yes. Define <code>METRIXWIRE_KEY<\/code>, <code>METRIXWIRE_ENDPOINT<\/code>, and optionally <code>METRIXWIRE_ENABLED<\/code> as constants in\n    wp-config.php \u2014 they take precedence over the saved settings, and the settings screen shows the covered\nfields as read-only.<\/p><\/dd>\n<dt id=\"why%20aren%27t%20database%20query%20spans%20showing%20up%3F\"><h3>Why aren't database query spans showing up?<\/h3><\/dt>\n<dd><p>SAVEQUERIES must be defined as a constant in <code>wp-config.php<\/code>; WordPress reads it before any plugin loads,\nso it can't be turned on from the settings screen at runtime.<\/p><\/dd>\n<dt id=\"does%20this%20slow%20down%20my%20site%3F\"><h3>Does this slow down my site?<\/h3><\/dt>\n<dd><p>Traces are sent on the <code>shutdown<\/code> hook, after the response has already been sent to the visitor, over a\nshort-timeout non-blocking request. Failures to reach MetrixWire are swallowed silently.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Yes. Each site keeps its own API key, endpoint, and toggle, and uninstalling removes those options from\nevery site in the network.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed the plugin slug and text domain to <code>metrixwire-apm<\/code>, with translation-ready strings and a\nbundled <code>.pot<\/code> template.<\/li>\n<li>Settings screen rebuilt on the WordPress Settings API, with a \"Settings\" shortcut on the Plugins row.<\/li>\n<li>wp-config.php constants now render as read-only values per field instead of disabling the form, so\nsaving no longer clears the options they cover.<\/li>\n<li>Options are prefixed <code>metrixwire_apm_*<\/code>; activation migrates values saved by the 1.0 plugin.<\/li>\n<li>Uninstall now clears options on every site of a multisite network.<\/li>\n<li>Traces are posted with <code>wp_remote_post()<\/code> instead of cURL, so the site's HTTP transport, proxy\nsettings and filters apply.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: settings screen, wp-config.php constant override, test-connection check, automatic\nrequest + database query tracing.<\/li>\n<\/ul>","raw_excerpt":"Zero-config APM for WordPress \u2014 traces every request and its database queries, no code changes required.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/357435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=357435"}],"author":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/platkadigital"}],"wp:attachment":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=357435"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=357435"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=357435"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=357435"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=357435"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=357435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}