File: CHANGELOG.md

package info (click to toggle)
tideways 4.1.6-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 792 kB
  • sloc: ansic: 3,533; php: 432; makefile: 14
file content (332 lines) | stat: -rw-r--r-- 10,389 bytes parent folder | download
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.