{"id":313625,"date":"2026-05-26T15:51:43","date_gmt":"2026-05-26T15:51:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/perfbase\/"},"modified":"2026-05-26T18:40:24","modified_gmt":"2026-05-26T18:40:24","slug":"perfbase","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/perfbase\/","author":23500413,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.2","stable_tag":"1.5.2","tested":"7.0","requires":"5.3","requires_php":"7.4","requires_plugins":null,"header_name":"Perfbase","header_author":"Perfbase Team","header_description":"WordPress integration for the Perfbase APM platform. Provides comprehensive performance monitoring and profiling for WordPress applications.","assets_banners_color":"","last_updated":"2026-05-26 18:40:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/perfbase.com\/integrations\/wordpress\/","header_author_uri":"https:\/\/perfbase.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.5.2":{"tag":"1.5.2","author":"perfbaseorg","date":"2026-05-26 18:40:24"},"v1.5.2":{"tag":"v1.5.2","author":"perfbaseorg","date":"2026-05-26 18:39:11"}},"upgrade_notice":{"1.5.2":"<p>Tagged Perfbase WordPress plugin release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.5.2","v1.5.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[51565,5603,247,23044,286],"plugin_category":[45,54],"plugin_contributors":[264493],"plugin_business_model":[],"class_list":["post-313625","plugin","type-plugin","status-publish","hentry","plugin_tags-apm","plugin_tags-monitoring","plugin_tags-performance","plugin_tags-profiling","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-perfbaseorg","plugin_committers-perfbaseorg"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/perfbase.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Perfbase profiles WordPress applications and sends performance traces to the Perfbase APM platform. It captures request lifecycle timing, WordPress context, selected metadata, and trace data through the native Perfbase PHP extension and the shared Perfbase PHP SDK.<\/p>\n\n<p>This plugin is a Software-as-a-Service integration. It requires a Perfbase account, a Perfbase API key, and the native <code>ext-perfbase<\/code> PHP extension. The plugin does not submit traces until profiling is enabled and an API key is configured.<\/p>\n\n<p>The plugin can profile:<\/p>\n\n<ul>\n<li>Standard HTTP requests.<\/li>\n<li>Admin requests when enabled.<\/li>\n<li>AJAX requests.<\/li>\n<li>WordPress cron runs.<\/li>\n<li>WP-CLI commands when enabled.<\/li>\n<li>WordPress, theme, plugin, REST, and WooCommerce context when available.<\/li>\n<\/ul>\n\n<p>For privacy and cardinality control, request URLs are stored without query strings. Important WordPress query parameters are stored separately where useful.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the Perfbase APM platform, an external application performance monitoring service, when profiling is enabled.<\/p>\n\n<p>Service name: Perfbase APM platform and the configured Perfbase ingest API endpoint. The default endpoint is <code>https:\/\/ingress.perfbase.cloud<\/code>.<\/p>\n\n<p>Service policies: <a href=\"https:\/\/perfbase.com\/privacy\/\">Perfbase Privacy Policy<\/a> and <a href=\"https:\/\/perfbase.com\/terms\/\">Perfbase Terms<\/a>.<\/p>\n\n<p>When data is sent: trace data is sent only after a Perfbase API key is configured, profiling is enabled, the request passes the configured sampling rate, include\/exclude filters, user-agent exclusions, request-type toggles, and HTTP status-code rules. For HTTP, AJAX, cron, and WP-CLI lifecycles, submission normally happens at the end of the lifecycle or during shutdown. The plugin does not submit profiling traces while profiling is disabled or while no API key is configured.<\/p>\n\n<p>Perfbase can send:<\/p>\n\n<ul>\n<li>Native trace payloads: function call trees, function names, source file paths and line numbers, timing, CPU, memory, host resource metrics, call context, and runtime error or exception context.<\/li>\n<li>System\/resource data: host operating system, kernel, hostname, CPU architecture, CPU details, disk capacity details, memory usage, CPU usage, disk I\/O, and network I\/O samples.<\/li>\n<li>Process-list tracking when enabled: capped process snapshots with process ID, executable basename, OS user, CPU usage, memory usage, and process runtime. Command-line arguments are not included in process snapshots.<\/li>\n<li>Additional native trace metadata: normalized SQL query text and query type, database DSN\/host\/database\/username\/port metadata, MongoDB or Elasticsearch query\/filter payload summaries, Redis or Memcached keys and fields, HTTP URL or URI metadata that may include query strings depending on the PHP API or HTTP library used, HTTP method\/status\/timing\/byte-count metadata, file paths and file operation metadata, mail recipient and subject metadata, shell\/process command strings, AWS operation names, OPcache and JIT statistics, PHP error or exception samples, compiled file paths, magic method counts, and truncated function argument values if argument capture is separately configured.<\/li>\n<li>WordPress request metadata: action name, HTTP method, request URL without query string, HTTP status code, user IP address, user agent, logged-in user ID when available, hostname, environment, application version, PHP version, WordPress version, and Perfbase plugin version.<\/li>\n<li>WordPress context metadata: AJAX action, REST route, admin page, post\/page identifiers, post type\/status, taxonomy context, template and theme information, conditional page type flags, plugin lifecycle context, and WooCommerce page, cart, product, or order context when available.<\/li>\n<li>Operational summaries: memory usage, database query count and timing summaries when available, and sanitized outbound HTTP request metadata when HTTP tracking is enabled.<\/li>\n<\/ul>\n\n<p>Perfbase does not collect:<\/p>\n\n<ul>\n<li>Source code.<\/li>\n<li>Request bodies, full POST payloads (<code>$_POST<\/code>), arbitrary form fields, or uploaded file contents.<\/li>\n<li>Cookie values (<code>$_COOKIE<\/code>) or PHP session data (<code>$_SESSION<\/code>).<\/li>\n<li>Authorization header values.<\/li>\n<li>Passwords, API keys, nonces, or session IDs from WordPress request, cookie, or session data.<\/li>\n<li>Command-line arguments for process-list snapshots.<\/li>\n<\/ul>\n\n<p>Feature flags control the extra native trace metadata listed under \"Perfbase can send\", including outbound HTTP URLs or URIs with query strings for some HTTP libraries and truncated function argument values if argument capture is separately configured. Administrators should review enabled Perfbase extension feature flags before profiling sensitive workloads.<\/p>\n\n<p>Extension installer and CDN: the plugin runtime does not call <code>cdn.perfbase.com<\/code>. The optional extension installer and manual extension binary downloads use <code>https:\/\/cdn.perfbase.com<\/code> only when a server administrator downloads or runs those installation assets.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin connects to Perfbase's external service when profiling is enabled. It sends profiling trace data and request metadata to the configured Perfbase API endpoint.<\/p>\n\n<p>Data submission requires explicit configuration of a Perfbase API key and the Enable Profiling setting. The plugin does not submit traces while profiling is disabled or while no API key is configured.<\/p>\n\n<p>Administrators should review their site's privacy policy and disclose their use of Perfbase where appropriate.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from WordPress.org, or upload the <code>perfbase-&lt;version&gt;.zip<\/code> asset from GitHub Releases through the WordPress plugins screen.<\/li>\n<li>Install the native Perfbase PHP extension on the server.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>Go to Settings -&gt; Perfbase.<\/li>\n<li>Add your Perfbase API key.<\/li>\n<li>Enable profiling and choose an appropriate sample rate.<\/li>\n<\/ol>\n\n<p>Do not use GitHub's automatically generated \"Source code\" archives for manual WordPress installs. Those archives are source snapshots for developers and do not include production Composer dependencies.<\/p>\n\n<h4>Installing the Perfbase extension<\/h4>\n\n<p>The plugin requires the native Perfbase PHP extension. This means shell\/server access is required, and the plugin is intended for advanced or server-managed WordPress environments. Many shared hosting and restricted managed WordPress environments do not allow custom PHP extensions; in those environments the plugin can be installed, but profiling will not run until the extension is available.<\/p>\n\n<p>Automated installer for supported server environments:<\/p>\n\n<pre><code>bash -c \"$(curl -fsSL https:\/\/cdn.perfbase.com\/install.sh)\"\n<\/code><\/pre>\n\n<p>The installer performs the same download, checksum, copy, ini-file, and verification steps automatically.<\/p>\n\n<p>Manual extension installation with <code>wget<\/code>:<\/p>\n\n<ol>\n<li>Find the PHP major\/minor version with <code>php -r 'echo PHP_MAJOR_VERSION.\".\".PHP_MINOR_VERSION;'<\/code>.<\/li>\n<li>Find the CPU architecture with <code>uname -m<\/code>. Use <code>amd64<\/code> for <code>x86_64<\/code>, and <code>arm64<\/code> for <code>aarch64<\/code> or Apple Silicon.<\/li>\n<li>Choose the URL pattern for your server:<\/li>\n<\/ol>\n\n<p>Debian\/Ubuntu and most glibc Linux distributions:<\/p>\n\n<pre><code>wget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-linux-amd64-gnu-release.so\nwget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-linux-amd64-gnu-release.so.sha256sum.txt\nsha256sum -c perfbase-8.3-linux-amd64-gnu-release.so.sha256sum.txt\n<\/code><\/pre>\n\n<p>Alpine Linux:<\/p>\n\n<pre><code>wget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-linux-amd64-musl-release.so\nwget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-linux-amd64-musl-release.so.sha256sum.txt\nsha256sum -c perfbase-8.3-linux-amd64-musl-release.so.sha256sum.txt\n<\/code><\/pre>\n\n<p>macOS:<\/p>\n\n<pre><code>wget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-darwin-arm64-release.dylib\nwget https:\/\/cdn.perfbase.com\/extension\/latest\/perfbase-8.3-darwin-arm64-release.dylib.sha256sum.txt\nsha256sum -c perfbase-8.3-darwin-arm64-release.dylib.sha256sum.txt\n<\/code><\/pre>\n\n<p>Replace <code>8.3<\/code> with your PHP major\/minor version and replace <code>amd64<\/code> with <code>arm64<\/code> when using ARM64 Linux.<\/p>\n\n<ol>\n<li>Find PHP's extension directory with <code>php -i | grep '^extension_dir'<\/code>.<\/li>\n<li>Find the loaded ini scan directories with <code>php --ini<\/code>.<\/li>\n<li>Copy the extension binary into PHP's extension directory.<\/li>\n<li><p>Create <code>perfbase.ini<\/code> in one of the loaded ini scan directories:<\/p>\n\n<p>extension=perfbase.ext<\/p><\/li>\n<\/ol>\n\n<p>Replace <code>perfbase.ext<\/code> with the downloaded filename, such as <code>perfbase.so<\/code> or <code>perfbase.dylib<\/code>.\n8. Restart PHP-FPM, Apache, Nginx Unit, or any long-lived PHP worker.\n9. Verify the extension is loaded with <code>php -m | grep perfbase<\/code>.<\/p>\n\n<p>For a specific pinned build instead of the mutable latest build, replace <code>\/extension\/latest\/<\/code> with a versioned path such as <code>\/extension\/v123\/<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20the%20perfbase%20php%20extension%3F\"><h3>Does this plugin work without the Perfbase PHP extension?<\/h3><\/dt>\n<dd><p>No. The admin settings screen remains available and shows a warning, but profiling requires the native <code>ext-perfbase<\/code> extension.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20immediately%20after%20activation%3F\"><h3>Does this plugin send data immediately after activation?<\/h3><\/dt>\n<dd><p>No. Profiling is disabled by default. Traces are submitted only after you configure an API key and enable profiling.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20a%20perfbase%20account%3F\"><h3>Does this plugin require a Perfbase account?<\/h3><\/dt>\n<dd><p>Yes. Perfbase is a SaaS APM platform and trace submission requires a Perfbase API key.<\/p><\/dd>\n<dt id=\"what%20data%20is%20sent%20to%20perfbase%3F\"><h3>What data is sent to Perfbase?<\/h3><\/dt>\n<dd><p>When enabled, the plugin sends profiling traces and request metadata such as action name, HTTP method, sanitized request URL without query string, HTTP status code, user agent, user IP address, hostname, environment, WordPress version, PHP version, and selected WordPress context.<\/p>\n\n<p>See the External Services section for the full data disclosure. The key distinction is that Perfbase does not collect source code, request bodies, full POST payloads, arbitrary form fields, uploaded file contents, cookie values, PHP session data, or authorization header values.<\/p><\/dd>\n<dt id=\"can%20i%20reduce%20production%20overhead%3F\"><h3>Can I reduce production overhead?<\/h3><\/dt>\n<dd><p>Yes. Lower the sample rate, disable profiling for admin traffic, and narrow the include and exclude filters.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Tagged Perfbase WordPress plugin release.<\/li>\n<li>Built with production Composer dependencies and tag-synced plugin metadata.<\/li>\n<\/ul>","raw_excerpt":"WordPress integration for the Perfbase APM platform.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=313625"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/perfbaseorg"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313625"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313625"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313625"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313625"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313625"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}