forked from newrelic/newrelic-ruby-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
610 lines (515 loc) · 23.3 KB
/
CHANGELOG
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
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
v3.4.0.1
* Prevent the agent from resolving the collector address when disabled.
* Fix for error collector configuration that was introduced during beta.
v3.4.0
* Major refactor of data transmission mechanism. This enabled child processes to send data to parent processes, which then send the data to the New Relic service. This should only affect Resque users, dramatically improving their experience.
* Moved Resque instrumentation from rpm_contrib to main agent. Resque users should discontinue use of rpm_contrib or upgrade to 2.1.11.
* Resolve issue with configuring the Error Collector when using server-side configuration.
v3.3.5
* [FIX] Allow tracing of methods ending in ! and ?
* [PERF] Give up after scanning first 50k of the response in RUM
auto-instrumentation.
* [FIX] Don't raise when extracting metrics from SQL queries with non UTF-8 bytes.
* Replaced "Custom/DJ Locked Jobs" metric with new metrics for
monitoring DelayedJob: queue_length, failed_jobs, and locked_jobs, all under
Workers/DelayedJob. queue_length is also broken out by queue name or priority
depending on the version of DelayedJob deployed.
v3.3.4.1
* Bug fix when rendering empty collection in Rails 3.1+
v3.3.4
* Rails 3 view instrumentation
v3.3.3
* Improved Sinatra instrumentation
* Limit the number of nodes collected in long running transactions to prevent leaking memory
v3.3.2.1
* [SECURITY] fix for cookie handling by End User Monitoring instrumentation
v3.3.2
* deployments recipe change: truncate git SHAs to 7 characters
* Fixes for obfuscation of PostgreSQL and SQLite queries
* Fix for lost database connections when using a forking framework
* Workaround for RedHat kernel bug which prevented blocking reads of /proc fs
* Do not trap signals when handling exceptions
v3.3.1
* improved Ruby 1.8.6 support
* fix for issues with RAILS_ROOT deprecation warnings
* fixed incorrect 1.9 GC time reporting
* obfusction for Slow SQL queries respects transaction trace config
* fix for RUM instrumentation repoting bad timing info in some cases
* refactored ActiveRecord instrumentation, no longer requires Rails
v3.3.0
* fix for GC instrumentation when using Ruby 1.9
* new feature to correlate browser and server transaction traces
* new feature to trace slow sql statements
* fix to help cope with malformed rack responses
* do not try to instrument versions of ActiveMerchant that are too old
v3.2.0.1
* Updated LICENSE
* Updated links to support docs
v3.2.0
* Fix over-detection of mongrel and unicorn and only start the agent when
actual server is running
* Improve developer mode backtraces to support ruby 1.9.2, windows
* Fixed some cases where Memcache instrumentation was failing to load
* Ability to set log destination by NEW_RELIC_LOG env var
* Fix to mutex lib load issue
* Performance enhancements (thanks to Jeremy Kemper)
* Fix overly verbose STDOUT message (thanks to Anselm Helbig)
v3.1.2
* Fixed some thread safety issues
* Work around for Ruby 1.8.7 Marshal crash bug
* Numerous community patches (Gabriel Horner, Bradley Harris, Diego Garcia,
Tommy Sullivan, Greg Hazel, John Thomas Marino, Paul Elliott, Pan Thomakos)
* Fixed RUM instrumentation bug
v3.1.1
* Support for Rails 3.1 (thanks to Ben Hoskings via github)
* Support for Rubinius
* Fixed issues affecting some Delayed Job users where log files were not appearing
* Fixed an issue where some instrumentation might not get loaded in Rails apps
* Fix for memcached cas method (thanks to Andrew Long and Joseph Palermo )
* Fix for logger deprecation warning (thanks to Jonathan del Strother via github)
* Support for logging to STDOUT
* Support for Spymemcached client on jruby
v3.1.0
* Support for aggregating data from short-running
processes to reduce reporting overhead
* Numerous bug fixes
* Increased unit test coverage
v3.0.1
* Updated Real User Monitoring to reduce javascript size and improve
compatibility, fix a few known bugs
v3.0.0
* Support for Real User Monitoring
* Back end work on internals to improve reliability
* added a 'log_file_name' and 'log_file_path' configuration variable to allow
setting the path and name of the agent log file
* Improve reliability of statistics calculations
* Remove some previously deprecated methods
* Remove Sequel instrumentation pending more work
v2.14.1
* Avoid overriding methods named 'log' when including the MethodTracer module
* Ensure that all load paths for 'new_relic/agent' go through 'new_relic/control' first
* Remove some debugging output from tests
v2.14.0
* Dependency detection framework to prevent multi-loading or early-loading
of instrumentation files
v2.13.5
* Moved the API helper to the github newrelic_api gem.
* Revamped queue time to include server, queue, and middleware time
* Increased test coverage and stability
* Add Trinidad as a dispatcher (from Calavera, on github)
* Sequel instrumentation from Aman Gupta
* patches to 1.9 compatibility from dkastner on github
* Support for 1.9.2's garbage collection instrumentation from Justin Weiss
* On Heroku, existing queue time headers will be detected
* Fix rack constant scoping in dev mode for 1.9 (Rack != ::Rack)
* Fixes for instrumentation loading failing on Exception classes that
are not subclasses of StandardError
* Fix active record instrumentation load order for Rails 3
v2.13.4
* Update DNS lookup code to remove hardcoded IP addresses
v2.13.3
* Dalli instrumentation from Mike Perham (thanks Mike)
* Datamapper instrumentation from Jordan Ritter (thanks Jordan)
* Apdex now defaults to 0.5
!!! Please be aware that if you are not setting an apdex,
!!! this will cause a change in the apparent performance of your app.
* Make metric hashes threadsafe (fixes problems sending metrics in Jruby
threaded code)
* Delete obsolete links to metric docs in developer mode
* Detect gems when using Bundler
* Fix newrelic_ignore in Rails 3
* Break metric parser into a seperate vendored gem
* When using Unicorn, preload_app: true is recommended to get proper
after_fork behavior.
v2.13.2
* Remove a puts. Yes, a whole release for a puts.
v2.13.1
* Add missing require in rails 3 framework control
v2.13.0
* developer mode is now a rack middleware and can be used on any framework;
it is no longer supported automatically on versions of Rails prior to 2.3;
see README for details
* memcache key recording for transaction traces
* use system_timer gem if available, fall back to timeout lib
* address instability issues in JRuby 1.2
* renamed executable 'newrelic_cmd' to 'newrelic'; old name still supported
for backward compatibility
* added 'newrelic install' command to install a newrelic.yml file in the
current directory
* optimization to execution time measurement
* optimization to startup sequence
* change startup sequence so that instrumentation is installed after all
other gems and plugins have loaded
* add option to override automatic flushing of data on exit--send_data_on_exit
defaults to 'true'
* ignored errors no longer affect apdex score
* added record_transaction method to the api to allow recording
details from web and background transactions occurring outside RPM
* fixed a bug related to enabling a gold trial / upgrade not sending
trasaction traces correctly
v2.12.3
* fix regression in startup sequence
v2.12.2
* fix for regression in Rails 2.1 inline rendering
* workaround bug found in some rubies that caused a segv and/or NoMemoryError
when deflating content for upload
* avoid creating connection thread in unicorn/passenger spawners
v2.12.1
* fix bug in profile mode
* fix race condition in Delayed::Job instrumentation loading
* fix glassfish detection in latest glassfish gem
v2.12.0
* support basic instrumentation for ActsAsSolr and Sunspot
v2.11.3
* fix bug in startup when running JRuby
v2.11.2
* fix for unicorn not reporting when the proc line had 'master' in it
* fix regression for passenger 2.0 and earlier
* fix after_fork in the shim
v2.11.1
* republished gem without generated rdocs
v2.11.0
* rails3 instrumentation (no developer mode support yet)
* removed the ensure_worker_thread started and instead defined an after_fork
handler that will set up the agent properly in forked processes.
* change at_exit handler so the shutdown always goes after other shutdown
handlers
* add visibility to active record db transactions in the rpm transaction
traces (thanks to jeremy kemper)
* fix regression in merb support which caused merb apps not to start
* added NewRelic::Agent.logger to the public api to write to the agent
log file.
* optimizations to background thread, controller instrumentation, memory
usage
* add logger method to public_api
* support list notation for ignored exceptions in the newrelic.yml
v2.10.8
* fix bug in delayed_job instrumentation that caused the job queue sampler
to run in the wrong place
* change startup sequence and code that restarts the worker loop
thread
* detect the unicorn master and dont start the agent; hook in after_fork
* fix problem with the Authlogic metric names which caused errors in
developer mode. Authlogic metrics now adhere to the convention of
prefixing the name with 'Custom'
* allow more correct overriding of transaction trace settings in the
call to #manual_start
* simplify WorkerLoop and add better protection for concurrency
* preliminary support for rails3
v2.10.6
* fix missing URL and referer on some traced errors and transactions
* gather traced errors *after* executing the rescue chain in ActionController
* always load controller instrumentation
* pick up token validation from newrelic.yml
v2.10.5
* fix bug in delayed_job instrumentation occurring when there was no DJ log
v2.10.4
* fix incompatibility with Capistrano 2.5.16
* strip down URLs reported in transactions and errors to path only
v2.10.3
* optimization to reduce overhead: move background samplers into foreground thread
* change default config file to ignore RoutingErrors
* moved the background task instrumentation into a separate tab in the RPM UI
* allow override of the RPM application name via NEWRELIC_APP_NAME environment variable
* revised Delayed::Job instrumentation so no manual_start is required
* send buffered data on shutdown
* expanded support for queue length and queue time
* remove calls to starts_with to fix Sinatra and non-rails deployments
* fix problem with apdex scores recording too low in some circumstances
* switch to jeweler for gem building
* minor fixes, test improvements, doc and rakefile improvements
* fix incompatibility with Hoptoad where Hoptoad was not getting errors handled by New Relic
* many other optimizations, bug fixes and documentation improvements
v2.10.2.
* beta release of 2.10
* fix bugs with Sinatra app instrumentation
* minor doc updates
v2.10.1.
* alpha release of 2.10
* rack support, including metal; ignores 404s; requires a module inclusion (see docs)
* sinatra support, displays actions named by the URI pattern matched
* add API method to abort transaction recording for in-flight transactions
* remove account management calls from newrelic_api.rb
* truncating extremely large transaction traces for efficiency
* fix error reporting in recipes; add newrelic_rails_env option to recipes to
override the rails env used to pull the app_name out of newrelic.yml
* added TorqueBox recognition (thanks Bob McWhirter)
* renamed config settings: enabled => monitor_mode; developer => developer_mode;
old names will still work in newrelic.yml
* instrumentation for DelayedJob (thanks Travis Tilley)
* added config switches to turn off certain instrumentation when you aren't
interested in the metrics, to save on overhead--see newrelic.yml for details.
* add profiling support to dev mode; very experimental!
* add 'multi_threaded' config option to indicate when the app is running
multi-threaded, so we can disable some instrumentation
* fix test failures in JRuby, REE
* improve Net::HTTP instrumentation so its more efficient and distinguishes calls
between web and non-web transactions.
* database instrumentation notices all database commands in addition to the core commands
* add support for textmate to dev mode
* added add_transaction_tracer method to support instrumenting methods as
if they were web transactions; this will facilitate better visibility of background
tasks and eventually things like rack, metal and Sinatra
* adjusted apdex scores to reflect time spent in the mongrel queue
* fixed incompatibility with JRuby on startup
* implmented CPU measure for JRuby which reflects the cpu burn for
all controller actions (does not include background tasks)
* fixed scope issue with GC instrumentation, subtracting time from caller
* added # of GC calls to GC instrumentation
* renamed the dispatcher metric
* refactored stats_engine code for readability
* optimization: reduce wakeup times for harvest thread
v2.10.0.
* alpha release of 2.10
* support unicorn
* instrumentation of GC for REE and MRE with GC patch
* support agent restarting when changes are made to the account
* removed #newrelic_notice_error from Object class, replaced by NewRelic::Agent#notic_error
* collect histogram statistics
* add custom parameters to newrelic_notice_error call to display
extra info for errors
* add method disable_all_tracing(&block) to execute a block without
capturing metrics
* newrelic_ignore now blocks all instrumentation collection for
the specified actions
* added doc to method_tracer API and removed second arg
requirement for add_method_tracer call
* instrumentation for Net::HTTP
* remove method_tracer shim to avoid timing problems in monitoring daemons
* for non-rails daemons, look at APP_ROOT and NRCONFIG env vars for custom locations
v2.9.9.
* Disable at_exit handler for Unicorn which sometimes caused the
agent to stop reporting immediately.
v2.9.8.
* add instrumentation for Net::HTTP calls, to show up as "External"
* added support for validating agents in the cloud.
* recognize Unicorn dispatcher
* add NewRelic module definitions to ActiveRecord instrumentation
v2.9.5.
* Snow Leopard memory fix
v2.9.4.
* clamp size of data sent to server
* reset statistics for passenger when forking to avoid erroneous data
* fix problem deserializing errors from the server
* fix incompatibility with postgres introduced in 2.9.
v2.9.3.
* fix startup failure in Windows due to memory sampler
* add JRuby environment information
v2.9.2.
* change default apdex_t to 0.5 seconds
* fix bug in deployments introduced by multi_homed setting
* support overriding the log in the agent api
* fix JRuby problem using objectspace
* display custom parameters when looking at transactions in dev mode
* display count of sql statements on the list of transactions in dev mode
* fixes for merb--thanks to Carl Lerche
v2.9.1.
* add newrelic_ignore_apdex method to controller classes to allow
you to omit some actions from apdex statistics
* Add hook for Passenger shutdown events to get more timely shutdown
notices; this will help in more accurate memory readings in
Passenger
* add newrelic_notice_error to Object class
* optional ability to verify SSL certificates, note that this has some
performance and reliability implications
* support multi-homed host with multiple apps running on duplicate
ports
v2.9.0.
Noteworthy Enhancements
* give visibility to templates and partials in Rails 2.1 and later, in
dev mode and production
* change active record metrics to capture statistics in adapter log()
call, resulting in lower overhead and improved visibility into
different DB operations; only AR operations that are not hitting the
query cache will be measured to avoid overhead
* added mongrel_rpm to the gem, a standalone daemon listening for custom
metric values sent from local processes (experimental); do mongrel_rpm
--help
* add API for system monitoring daemons (refer to KB articles); changed
API for manual starting of the agent; refer to
NewRelic::Agent.manual_start for details
* do certificate verification on ssl connections to
collector.newrelic.com
* support instances appearing in more than one application by allowing a
semicolon separated list of names for the newrelic.yml app_name
setting.
* combined agent logfiles into a single logfile
* use rpm server time for transaction traces rather than agent time
Developer Mode (only) Enhancements
* show partial rendering in traces
* improved formatting of metric names in traces
* added number of queries to transactions in the transaction list
* added some sorting options for the transaction list
* added a page showing the list of active threads
Compatibility Enhancements
* ruby 1.9.1 compatibility
* support concurrency when determining busy times, for 2.2 compatibility
* in jruby, use Java used heap for memory sampling if the system memory
is not accessible from an unsupported platform
* jruby will no longer start the agent now when running the console or
rake tasks
* API support for RPM as a footnote add-in
* webrick support restored
Noteworthy bugfixes
* sample memory on linux by reading /proc/#{$$}/status file
* fixed ambiguous 'View' metrics showing up in controller breakdown
* removed Numeric extensions, including round_to, and to_ms
* using a different timeout mechanism when we post data to RPM
* remove usage of Rails::Info which had a side effect of enabling
ActiveRecord even when it wasn't an active framework
* moved CPU sampler off background thread and onto the harvest thread
* tests now run cleanly in any rails app using test:newrelic or
test:plugins
Agent improvements to support future RPM enhancements
* add instrumentation to capture metrics on response codes; not yet
working in rails 2.3.*
* added http referer to traced errors
* capture gem requirements from rails
* capture cpu utilization adjusted for processor count
* transaction sampling
v2.8.10.
* fix thin support with rails 2.3.2 when using script/server
* fix incompatibility with rails 2.3.2 and script/server options
processing
* minor tweak to environment gathering for gem mode
v2.8.9.
* fix problem finding the newrelic controller in dev mode
* fix incompatibility with older versions of optparse
* fix potential jvm problem with jruby
* remove test:all task definition to avoid conflicts
* change error message about window sampler in windows not supported to a
warning message
v2.8.8.
* fix error with jruby on windows
* fix problem where webrick was being incorrectly detected causing some
problems with mongrel application assignments--had to disable webrick
for now
v2.8.7.
* fix for ssl connection hanging problems
* fix problem recognizing mongrel in rails 2.3.2
* fastcgi support in rails 2.3.2
* put back webrick support
v2.8.6.
* fix for capture_params when using file uploads in controller actions
* use pure ruby NS lookup for collector host to eliminate possibly
blocking applications
v2.8.5.
* fix reference to CommandError which was breaking some cap scripts
* fix incompatibility with Rails 2.0 in the server API
* fix problem with litespeed with Lite accounts
* fix problem when ActiveRecord is disabled
* moved merb instrumentation to Merb::Controller instead of
AbstractController to address incompatibility with MailController
* fix problem in devmode displaying sql with embedded urls
v2.8.4.
* fix bug in capistrano recipe causing cap commands to fail with error
about not finding Version class
v2.8.3.
* refactor unit tests so they will run in a generic rails environment
* require classes in advance to avoid autoloading. this is to address
incompatibilities with desert as well as more flexibility in gem
initialization
* fixed newrelic_helper.rb 1.9 incompatibility
v2.8.2.
* fix Ruby 1.9 syntax compatibility errors
* update the class loading sanity check, will notify server of errors
* fix agent output on script and rake task execution
v2.8.1.
* Convert the deployment information upload script to an executable and
put in the bin directory. When installed as a gem this command is
symlinked to /usr/bin. Usage: newrelic_cmd deployments --help
* Fix issue invoking api when host is not set in newrelic.yml
* Fix deployments api so it will work from a gem
* Fix thin incompatibility in developer mode
v2.8.0.
* add beta of api in new_relic_api.rb
* instrumented dynamic finders in ActiveRecord
* preliminary support for capturing deployment information via capistrano
* change memory sampler for solaris to use /usr/bin/ps
* allow ERB in newrelic.yml file
* merged support for merb into this version
* fix incompatibility in the developer mode with the safe_erb plugin
* fix module namespace issue causing an error accessing
NewRelic::Instrumentation modules
* fix issue where the agent sometimes failed to start up if there was a
transient network problem
* fix IgnoreSilentlyException message
v2.7.4.
* fix error when trying to serialize some kinds of Enumerable objects
* added extra debug logging
* added app_name to app mapping
v2.7.3.
* fix compatibility issue with 1.8.5 causing error with Dir.glob
v2.7.2.
* fix problem with passenger edge not being a detected environment
v2.7.1.
* fix problem with skipped dispatcher instrumentation
v2.7.0.
* Repackage to support both plugin and Gem installation
* Support passenger/litespeed/jruby application naming
* Update method for calculating dispatcher queue time
* Show stack traces in RPM Transaction Traces
* Capture error source for TemplateErrors
* Clean up error stack traces.
* Support query plans from postgres
* Performance tuning
* bugfixes
v2.5.3.
* fix error in transaction tracing causing traces not to show up
v2.5.2.
* fixes for postgres explain plan support
v2.5.1.
* bugfixes
v2.5.0.
* add agent support for rpm 1.1 features
* Fix regression error with thin support
v2.4.3.
* added 'newrelic_ignore' controller class method with :except and :only options for finer grained control
over the blocking of instrumentation in controllers.
* bugfixes
v2.4.2.
* error reporting in early access
v2.4.1.
* bugfix: initializing developer mode
v2.4.0.
* Beta support for LiteSpeed and Passenger
v2.3.7.
* bugfixes
v2.3.6.
* bugfixes
v2.3.5.
* bugfixes: pie chart data, rails 1.1 compability
v2.3.4.
* bugfix
v2.3.3.
* bugfix for non-mysql databases
v2.3.2.
* bugfixes
* Add enhancement for Transaction Traces early access feature
v2.3.1.
* bugfixes
v2.3.0.
+ Add support for Transaction Traces early access feature
v2.2.2.
* bugfixes
v2.2.1.
+ Add rails 2.1 support for Developer Mode
+ Changes to memory sampler: Add support for JRuby and fix Solaris support.
* Stop catching exceptions and start catching StandardError; other exception cleanup
* Add protective exception catching to the stats engine
* Improved support for thin domain sockets
* Support JRuby environments
v2.1.6.
* bugfixes
v2.1.5.
* bugfixes
v2.1.4.
* bugfixes
v2.1.3.
* bugfixes
v2.1.2.
* bugfixes
v2.1.1.
* bugfixes
v2.1.0.
* release for private beta