- Fixed a bug whereby IIS applications with underscore characters in their names were not displayed correctly in the Status Monitor.
- Fixed a bug whereby users could not view the log file for some IIS applications in the Status Monitor.
- Improved the naming of MVC transactions. Naming to controller/action should be much more reliable now.
- Improved WebAPI support. You should now see Web Transactions grouped by [controller].[action] rather than all WebAPI transactions reporting as System.Web.Http.WebHost.HttpControllerHandler.
- Fixed a bug where external request timing was showing up on the call to WriteHeaders instead of on the Stream Read. The Stream Read has been removed and WriteHeaders should correctly report as being fast. In their place you will now see all the time occurring inside a call to Stream GetResponse.
- Fixed a bug in external request counting that would result in the counts being too high.
- The Original Url custom parameter will now contain the correct value if the application had re-written the Url in the BeginRequest event handler of an HttpModule.
- Fixes an issue on Windows 2003/IIS 6 server where the New Relic Status Monitor was showing no reporting applications and an incorrect error message about IIS being in a stopped state in some cases where apps hosted on the machine were in fact reporting to New Relic.
- Fixed an issue where sometimes our usage of Log4Net would conflict with the user's usage of Log4Net.
- Fixed a bug that would cause some stack traces thrown in the user's application to be truncated.
- Moved some spammy log messages to debug level logging.
- Improved cold startup time for user applications instrumented by New Relic.
- Added the ability to selectively include or exclude certain application pools from being monitored by New Relic.
- Improved error logging of API method calls. If you call an API method at an invalid time or you supply invalid parameters a warning will be logged to the New Relic .NET Agent log file.
- Changed startup logging location from the event log to log file on disk.
- Changed the agent configuration file from newrelic.xml to newrelic.config.
This is an interim release which addresses performance issues by temporarily disabling some features.
At times, the agent may not release database connections quickly when the code being instrumented does not properly dispose of connections. Connections may not be returned to the pool until the one minute harvest cycle is reached.
The Status Monitor diagnostics tool has the following known issues:
- Does not function correctly for IIS6 installations and applications running under sites other than DefaultWebSite.
- Shows incorrect information for some sites.
- Shows no reporting applications and an incorrect error message about IIS being in a stopped state in some cases where apps hosted on the machine are in fact reporting to New Relic.
The agent writes too many messages to the log at INFO level. This can result in log files growing too large and a possible CPU impact. Work-around: set logging level to warning or above.
In some cases, the agent may display incorrect counts for external calls.
The Original URL displayed in the UI is not correct if the application uses an HttpModule to rewrite the url.
In some cases, the agent may inject browser monitoring code in the wrong section of the page. This can cause pages to render incorrectly. Work-around: disable browser monitoring via the API for pages experiencing this issue.
The agent reads its config file more frequently than necessary causing a potential performance problem for apps with very high frequency, very fast transactions.
Auto RUM may not inject appropriately on pages where the content-type has optional parameters. This can result in no browser monitoring functionality for these pages.
Generic exceptions cannot be ignored in the UI.
Future upgrades from 2.8 to newer releases may not remove the newrelic.xml file. This may require manual cleanup.
- Fixed a very rare race condition that could cause a monitored application to get into a bad state and start consuming as much CPU as possible (across multiple threads).
- Fixed a bug that would sometimes cause a TypeLoadException when using the New Relic API.
- Fixed a crash that would occur if the agent failed to connect to our servers due to SSL issues when running under IIS7 integrated mode.
- Adds a new utility (New Relic Status Monitor) that provides a quick way to give feedback on what the .net agent has instrumented just after installation. The tool also provides a quick way to diagnose and troubleshoot issues with instrumentation or with the agent that are normally obscured form the users view.
- Fixes an issue in the coreinstrumentation.xml file where an overload for Oracle.DataAccess.Client.OracleCommand.ExecuteReader was not getting instrumented.
- Fixes cleanup of Component Object Model (COM) registration.
- Fixes ability of agent to monitor partially-trusted .NET applications.
- Removes comments from the newrelic.xml file and provides a link to the living docs to provide more information on configuring the agent
- Added ability to enable/disable various parameter information via agent configuration. This includes the default setting to not capture a username from the security principal associated with a web application.
- Fixes instances where the AgentEnabled setting was set to false and the NewRelic.Agent.IL.dll was not getting unloaded from the process. No code was ever executed from the module when the agent was disabled but the module needed to be unloaded so that the process would correctly reflect the actual modules that were being used.
- Fixes an issue where the user could not override the default naming of a transaction using the agent API.
- Adds a new API method that can be used to disable Auto or Manual Real User Monitoring (RUM) script injection on a per page basis. Simply call NewRelic.Api.Agent.NewRelic.DisableBrowserMonitoring(); in your view to disable RUM scripts for that page.
See: https://newrelic.com/docs/dotnet/AgentApi for more information.
- Adds Cross Application Tracing for web request calls that use System.Net.WebClient
- Adds Cross Application Tracing for all Traced Errors that happen on the external applications
- Addresses an issue where enabling query explain plans on applications using MySql sometimes caused connection leaking.
- Correctly strip forward slash from the category name in AgentAPI's SetTransactionName method.
- Adds Cross Application Transaction Trace linking so that in SOA (service-oriented architectures), all applications that are instrumented by a New Relic agent and that communicate with each other via http will now "link" transaction traces with the applications that they call and the applications they are called by. This change helps improve the correlation of performance between services and applications.
- The installer should now do a better job of cleaning up bad install states. We are uncertain how users get into such a state, but now it is less problematic when it does occur.
- New (not update) installations of the .NET Agent will default to using secure communications (HTTPS) between the agent and the New Relic server.
- Agent logging improvements. We have improved the clarity of logging messages, adjusted logging levels to be more appropriate, and increased logging performance.
- Adds a 'X-NewRelic-ID' header to all outbound http requests. This change helps improve the correlation of performance between services in a service-oriented architecture for a forthcoming feature. In the meantime, if you wish to disable the header, set 'crossApplicationTracingEnabled=false' in the configuration element of the newrelic.xml file.
- Fix crash in NewRelic.Agent.IL.dll caused by uninitialized data.
- Fix potential metric grouping issues associated with HTTP redirects.
- Fix confusing error message in the Diagnostic tool when the Application Event Log is at least 90% full.
- Fix potential null de-reference in unmanaged dll.
- Extends the uri reported in the external call labels in transaction traces so that users can see both the host and the resource being called.
- Rewrote the installer.
- You no longer need to uninstall before re-installing the agent. You can simply run the new installer and it will upgrade your old install.
- The installer no longer requires administrative rights at start to complete successfully. It will ask for elevation (on newer OSs) when needed and give reasonable error messages when it doesn't have enough permission (on older OSs).
- If you instrument non-IIS applications you should no longer manually set environment variables manually. Instead, during install choose the "Instrument All .NET Applications" feature. If you have already installed run the installer again and choose "Change".
- Configuration and log files are now stored in %ALLUSERSPROFILE%\New Relic.NET Agent\ instead of Program Files.
- The API is now optionally installed and should only be needed on development machines and build servers.
- Restores request queuing metrics being reported by the agent - they will now appropriately appear in the overview graphs