Find the Exponential Software extensions you want
UNIX name | Owner | Status |
---|---|---|
ezperformancelogger | eZ Publish Legacy | stable |
Version | Compatible with |
---|---|
N/A | N/A |
This tool is meant to measure performances of eZ Publish sites.
Performance measurement is designed to be used in production.
It will work with ezdebug turned off, and tries to be lightweight not to slow
down your server too much because of the measurements. For the same reason by
default it does not store performance data into the database, but as part of
the existing Apache log.
The amount of performance data measured is fully configurable, as well as the
mechanism used to store it.
It doubles as profiling tool as well, since version 0.4.
This means having at your fingertips more detailed information that the standard
debug output, complete with drill-down capabilities and call graphs.
Note for the causal reader: profiling means measuring all php function calls
executed by the web page, and is extremely heavy. It should only be used in development,
not in production environments.
See the INSTALL.md doc
the logging of the data can be directed to different media:
Logging to the Apache access log is recommended for a number of reasons: by default
apache logs are rotated, so you do not risk filling your disks with data, and
there is less of an IO performance hit in logging there, as the log files are
written anyway.
to ease statistical usage of the perf data saved in the Apache log, a courtesy cronjob/
command line script is provided: updateperfstats.
It can be used in a 2-phase performance analysis scenario:
Phase 1: enable and configure ezperformanceogger to log to Apache log or to a
custom log file; execute load tests
Phase 2: run php extension/ezperformancelogger/bin/php/updateperfstats.php to
parse the Apache access log and produce a csv file; import that csv
file in your preferred spreadsheet tool or database
If you don't care so much about a very small performance loss, you can log
performance data directly to a csv-formatted log file, and skip execution
of the updateperfstats.php script.
NB: the extension does not provide a way to visualize the logged
data, you will need an external tool for that:
Notes:
eZ pages which end in a redirection or terminate execution during the view will
not log data by default. To force even those pages to be measured you will have
to patch the index.php file and add the following line to it:
eZPerfLogger::registerShutdownPerfLogger();
A good candidate location is next to the existing eZExecution::addCleanupHandler call.
For eZ 5.x in Legacy-Stack-Only mode, this is in ezpkernelweb.php instead, around line 191;
please note that in this case the measured data can be lower than expected,
you should also patch ezpkernelweb::runCallback() to avoid measuring data
via calls to eZPerfLogger::disable() and reenable().
For eZ 5.x in any other mode, you do not need to do anything - it just works and logs redirecting pages.
If you do now want to hack the kernel and are using the customized db connector, you
just need instead to set AlwaysRegisterShutdownPerfLogger=enabled in ezperformacelogger.ini
Notes:
There are many Application Performance Management solutions out there, which can do a lot more of this extension.
A very good (but not entirely free) APM tool is NewRelic.
For application profiling, besides XHProf and XDebug, there is (but not entirely free) Blackfire.io.