1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332
|
# Version 4.1.7
- Add support for PHP 7.3
# Version 4.1.6
- Fix Elasticsearch Instrumentation on v5+ has moved resultOrFuture to a new class.
- Fix Oxid 6.0 transaction detection
- Remove apc(u) support, because in many scenarios it generated huge amounts of
not-so-insightful data that could negatively affect the efficient collection
of more important span data.
# Version 4.1.5
- Fix crash on MacOS in Smarty3 instrumentation when using Smarty#fetch() with
a template object instance instead of a string.
- Add Oxid 6 Instrumentation
# Version 4.1.4
- Increased Annotation max length from 1000 to 2000 to fix very long SQL
statements from being shortened to "SELECT " only because the FROM clause was
cut of.
- Bugfix: Symfony 3 Controllers were not detected as spans because underlying
instrumentation hook was changed in the framework.
# Version 4.1.3
- Added `tideways.stack_threshold` (in microseconds) variable that
when reached stores the last 10 frames of the stack for a span.
# Version 4.1.2
- Bugfix: Prevent a crash in some scenarios when
`\Tideways\Profiler\Span::annotate` or `tideways_span_annotate` is called
repeatedly.
# Version 4.1.1
- Disable `tideways.monitor_cli` by default.
# Version 4.1.0
- Add `tideways.service` INI variable for use with https://tideways.io
- Add `tideways.monitor_cli` INI variable for use with https://tideways.io
- Add Neos FLOW 4 Framework Support
# Version 4.0.8
- Add PHP 7.1 support
# Version 4.0.7
- Group spans by category after reaching maximum number of spans per trace.
# Version 4.0.6
- Make maximum number of spans configurable with `tideways.max_spans` ini variable.
# Version 4.0.5
- Added Elasticsearch PHP Support
- Added curl_multi support when `curl_multi_add_handle` and `curl_multi_remove_handle` are called.
- Added Laravel Eloquent ORM support
- Added CakePHP 2 & 3 Support
- Added New MongoDB Extension support
- Added PDO, ext/mysql and ext/mysqli Connect Host+Database Name support
- Added Yii 1 & 2 Support
- Added Phalcon Support (for spans, no transaction detection)
# Version 4.0.4
- Add support for Fatal Error detection in PHP 7
- Add log-level INI settings
- Fix compilation with clang on OSX
- Fix missing header include for `zend_exceptions.h` (Ondřej Surý)
- Fix memory leaks on PHP 7
# Version 4.0.3
- Add PHP 7 support
# Version 3.0.0
- Remove SQL summarization, always keep full SQL and delegate summary
generation to the daemon.
- Change `tideways_minify_sql()` to always return empty string, because summary
function was removed. To pass full sql and let the daemon summarize it, create
a span of category ``sql`` and pass an annotation with key ``sql``.
- Add Pheanstalk v2 and v3 support
- Add PhpAmqpLib support
- Add MongoDB support (Queries on MongoCollection, MongoCursor, MongoCommandCursor)
- Add Predis support
# Version 2.0.10
- Fix bug in CentOS compilation, where -lrt flag is required to use ``clock_gettime`` function.
Research suggests this is required on some other Linux distributions as well.
# Version 2.0.9
- Remove slow_php_treshold functionality that recorded arbitrary php spans as long
as they were 50ms and slower. This could lead to unpredictable results which are
hard to render in the UI.
Also fixes a potential segfault when triggered inside a generator, where parts
of execute_data are already NULL.
# Version 2.0.8
- Always measure CPU time of the main() span.
- Cleanup CPU timer code to use `CLOCK_PROCESS_CPUTIME_ID`.
- Increase default sample-rate configuration to 30%
- Multiple calls to tideways_enable() restart profiling instead of continuing
- Fix Doctrine span watchers for ORM 2.5
# Version 2.0.7
- Fix Apple Build
# Version 2.0.5
- Introduce `tideways_span_callback()` function that takes a function and a
callback to start a span.
# Version 2.0.4
- Fix segfault in `tideways_span_watch()`
# Versoin 2.0.3
- Replace TSC based profiling with clock_gettime(CLOCK_GETMONOTONIC) to
avoid binding process to CPUs.
- Add more special support for Symfony EventDispatcher
- Add Laravel support
# Version 2.0
- Add new collection mechanism using spans (See Google Dapper paper).
There is a large list of extensions, libraries and frameworks supported
automatically and an API to create spans yourself.
- Added Symfony2 Support for Spans
- Added Oxid Support for Spans
- Added Shopware Support for Spans
- Added Magento Support for Spans
- Added Zend Framework 1 Support for Spans
- Added span support for mysql, mysqli, PDO and pg database extensions
- Added Doctrine2 ORM Support for Spans
- Added Smarty2, Smarty2 and Twig Template Support for spans
- Added HTTP support for spans hooking into file_get_contents, curl_exec and SoapClient
# Version 1.7.1
- Reintroduce `tideways_last_fatal_error` as alias of `error_get_last()` for
backwards compatibility reasons because Profiler PHP library is written in a
way where extension update could break application.
# Version 1.7.0
- Remove `tideways_last_fatal_error` and `tideways_last_exception`.
- Add new method `tideways_fatal_backtrace()` that returns the data
from `debug_backtrace()` as an array instead of string as before.
This is easier to maintain, but requires userland code to convert to string.
- Add `"exception_function"` option that allows setting a function
which gets passed exceptions at the framework level. You
have access to this exception calling `tideways_last_detected_exception()`.
# Version 1.6.2
- Fix wrong definition of TIDEWAYS_FLAGS_NO_COMPILE flag.
# Version 1.6.1
- Fix segfault in `auto_prepend_library` cleanup handling.
- Add new constant `TIDEWAYS_FLAGS_NO_COMPILE` that skips
profiling of require/include and eval statements.
# Version 1.6.0
- Move away from requireing file in module RINIT to hooking into
auto_prepend_file. We changed the INI setting `tideways.load_library`
to be `tideways.auto_prepend_library` instead and defaults to 1.
It will check for `Tideways.php` next to tideways.so and load that
library by adding it to the `auto_prepend_file` PHP.INI option.
If that is already set a new function `tideways_prepend_overwritten()`
allows to check if we need to require the old ini_get("auto_prepend_file").
# Version 1.5.0
- Change default socket option to `/var/run/tideways/tidewaysd.sock`
- Rename INI option `tideways.transaction_function` to `tideways.framework`
- Rename from qafooprofiler to tideways
# Version 1.3.2
- Add protection against segfault in combination with XDebug < 2.2.7
See https://github.com/xdebug/xdebug/pull/131
# Version 1.3.1
- Improve auto loading/start functionality by using better
abstractions from Zend Engine. Replaced copied code from `spl_autoload`
with call to `zend_execute_scripts`.
- Bugfix in sql argument summary when FROM keyword was found, but
it was not a SELECT/INSERT/UPDATE/DELETE statement.
# Version 1.3.0
- Add support for profiling Event-based frameworks/applications
Optionally collect the name of the event triggered as part
of the function call for the following libraries:
- Doctrine 2
- Zend Framework 2
- Symfony 2
- Drupal
- Wordpress
- Magento
- Enlight/Shopware
- Add optional support to auto start profiling and transmitting
to [Qafoo Profiler platform](https://qafoolabs.com) by copying
`QafooProfiler.php` next to the `qafooprofiler.so`.
# Version 1.2.2
- Fix bug in `eval()` support
# Version 1.2.0
- Fix bug in Smarty support
- Fix bug in overwrite mechanism of `zend_execute` for transacation name detection.
- Improve performance for transaction name detection when no layer data is requested.
# Version 1.0
- Rename extension to `qafooprofiler`
- Add support for transaction name detection when not fully profiling (layer-mode)
# Version 0.9.11
- Fix segfault in Twig_Template#getTemplateName instrumentation
on PHP versions < 5.5
- Fix segfault in memory handling of fatal error callback when catching
an exception.
- Fix missing TSRMLS_CC/DC flags and a missing TSRMLS_FETCH() to
allow compilation on threaded systems such as Travis running
with --enable-zts-maintainer flag.
- Enabled Travis CI
# Version 0.9.10
- Fix segfault in Twig_Template#getTemplateName instrumentation.
- Integrate curl dependency into repository cleanly to avoid
problems with having to copy the `php_curl.h` header around.
# Version 0.9.9
- Apply patch by tstarling@php.net to fix frequency collection on linux:
https://bugs.php.net/bug.php?id=64165
- Apply patch by github@fabian-franz.de to fix Mac timing:
https://bugs.php.net/bug.php?id=61132
# Version 0.9.8
- Improve performance on modern CPUs by checking for invariant tsc,
a feature that guarantees the same timer values and speed in the
`cpuinfo` register.
This allows xhprof to avoid the costly bind to a single CPU, which
causes performance problems on servers with very high load. Binding
to cpus disallows migrating the threads to another cpu and prevents
the Kernel to adjust different loads of cpus.
# Version 0.9.7
- Remove `xhprof_sample_disable()`, use `xhprof_disable()` instead when in
sampling mode.
- Add `xhprof_layers_enable() ` that accepts an array of key value pairs in the
constructor containing function names to layers. Will automatically set the
`XHPROF_FLAGS_NOUSERLAND` mode and use the passed functions as a `functions`
whitelist. The result is a profiling report only based on grouping certain
function calls into layers. If you want to profile the request as well, add
`"main()" => "main()"` as an entry.
- Add new constant `XHPROF_FLAGS_NOUSERLAND` when set will not override
the zend_execute hook for userland functions.
- Add new function `xhprof_last_fatal_error()` that returns information
on PHP fatal error with trace and more information than PHP core has usually.
Overrides zend_error_cb such that it will not work when xdebug is also enabled
(depends on the order).
# Version 0.9.6
- Add `argument_functions` feature that allows logging the arguments of a function.
Includes special handling for a lot of interesting functions that will want this
feature, for example `PDO::execute`.
# Version 0.9.5
- Fix segfault with PHP 5.5.9 and up
- Add new option `functions` to `xhprof_enable()` that allows whitelist profiling of functions.
|