NET release notes

Recent .NET agent release notes are listed below. If you would like a release that has been used extensively with a list of known issues, see Established releases (.NET) for download and version information.

Thursday, April 30, 2020 - 16:00 Download

Download URLs

Download the appropriate release for your New Relic .NET agent:

https://download.newrelic.com/dot_net_agent/latest_release

New Features

  • Support for W3C Trace Context, with easy upgrade from New Relic trace context
    • Distributed Tracing now supports W3C Trace Context headers for HTTP when distributed tracing is enabled. Our implementation can accept and emit both W3C trace header format and New Relic trace header format. This simplifies agent upgrades, allowing trace context to be propagated between services with older and newer releases of New Relic agents. W3C trace header format will always be accepted and emitted. New Relic trace header format will be accepted, and you can optionally disable emission of the New Relic trace header format.
    • When distributed tracing is enabled with <distributedTracing enabled="true" />, the .NET agent will now accept W3C's traceparent and tracestate headers when calling Transaction.AcceptDistributedTraceHeaders. When calling Transaction.InsertDistributedTraceHeaders, the .NET agent will include the W3C headers along with the New Relic distributed tracing header, unless the New Relic trace header format is disabled using <distributedTracing enabled="true" excludeNewrelicHeader="true" />.
    • The existing Transaction.AcceptDistributedTracePayload and Transaction.CreateDistributedTracePayload APIs are deprecated in favor of Transaction.AcceptDistributedTraceHeaders and Transaction.InsertDistributedTraceHeaders.

Fixes

  • Fixes issue which prevented Synthetics from working when distributed tracing is enabled.
  • Fixes issue where our RPM package for installing the agent on RPM-based Linux distributions included a 32-bit shared library, which created unnecessary dependencies on 32-bit system libraries.
  • Fixes issue where the TransportDuration metric for distributed traces was always reporting 0.

Upgrading

Monday, April 20, 2020 - 16:00 Download

New Features

  • Infinite Tracing on New Relic Edge

    This release adds support for Infinite Tracing on New Relic Edge. Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data so you have the examples of errors and long-running traces so you can better diagnose and troubleshoot your systems.

    You configure your agent to send traces to a trace observer in New Relic Edge. You view your distributed traces through the New Relic’s UI. There is no need to install a collector on your network.

    Infinite Tracing is currently available on a sign-up basis. If you would like to participate, please contact your sales representative.

  • Error attributes now added to each span that exits with an error or exception

    Error attributes error.class and error.message are now included on the span event in which an error or exception was noticed, and, in the case of unhandled exceptions, on any ancestor spans that also exit with an error. The public API method NoticeError now attaches these error attributes to the currently executing span.

    Spans with error details are now highlighted red in the Distributed Tracing UI, and error details will expose the associated error.class and error.message. It is also now possible to see when an exception leaves the boundary of the span, and if it is caught in an ancestor span without reaching the entry span. NOTE: This “bubbling up” of exceptions will impact the error count when compared to prior behavior for the same trace. It is possible to have a trace that now has span errors without the trace level showing an error.

    If multiple errors occur on the same span, only the most recent error information is added to the attributes. Prior errors on the same span are overwritten.

    These span event attributes conform to ignored errors configuration.

Fixes

  • Fixes issue in the MSI installer which prevented the InstrumentAllNETFramework feature selection from working as expected on the command line.
  • Fixes issue for Azure App Service environments running on Linux that caused both the application and its Kudu process to be instrumented by the agent. The Kudu process is no longer instrumented.
  • Fixes issue when using the ignoreErrors configuration. Previously, when an exception contained a inner exception(s), the ignoreErrors config was only applied to the outer-most exception. Now, both the outer-most and inner-most exception type are considered when evaluating the ignoreErrors configuration.
  • Fixes an issue that could cause an exception to occur in the instrumentation for StackExchange Redis. This exception caused the instrumentation to shut down leaving StackExchange Redis uninstrumented.

Upgrading

Wednesday, March 11, 2020 - 16:00 Download

New Features

  • Thread profiling support for Linux

    Thread profiling on Linux will be supported on .NET Core 3.0 or later applications when running .NET agent version 8.23 or later. Triggering a thread profile is done from the Thread profiler page in APM.

  • Accessing Span-Specific information using the .NET Agent API

    New property, CurrentSpan has been added to IAgent and ITransaction. It returns an object implementing ISpan which provides access to span-specific functions within the API.

  • Adding Custom Span Attributes using the .NET Agent API

    New method, AddCustomAttribute(string, object) has been added to ISpan.

Fixes

  • Fixes issue where adding multiple custom attributes on a Transaction using ITransaction.AddCustomAttribute causes the agent to ignore additional attempts to add custom attributes to any transaction.
  • Fixes issue that prevented Custom Events from being sent to New Relic until the agent shuts down.
  • Fixes issue that can cause asynchronous Redis calls in an ASP.NET MVC application to report an inflated duration.

Upgrading

Wednesday, February 19, 2020 - 17:00 Download

New Features

  • Adding custom transaction attributes using the .NET Agent API

    New method, AddCustomAttribute(string, object) has been added to ITransaction.

    • This new method accepts and supports all data types.
    • Method AddCustomParameter(string, IConvertable) is still available with limited data-type support; however, this method should be considered obsolete and will be removed in a future release of the agent API.
    • Further information may be found within .NET Agent API documentation.
  • Enhanced type support for RecordCustomEvent and NoticeError API methods.

    APIs for recording exceptions and custom events now support values of all types.

    • The NoticeError API method has new overloads that accept an IDictionary<string, object>.
    • The RecordCustomEvent methods have been modified to handle all types of data. In that past, they only handled string and float types.
    • Further information may be found within .NET agent API documentation.
  • New attributes on span events

    • Spans created for external HTTP calls now include the http.statusCode attribute representing the status code of the call.
    • Spans created for calls to a datastore now include the db.collection attribute. For instance, this will be the table name for a call to MS SQL Server.
  • Ability to exclude attributes from span events

    Attributes on span events (e.g., http.url) can now be excluded via configuration. See .NET agent configuration for further information.

Fixes

  • New Relic distributed tracing relies on propagating trace and span identifiers in the headers of external calls (e.g., an HTTP call). These identifiers now only contain lowercase alphanumeric characters. Previous versions of the .NET agent used uppercase alphanumeric characters. The usage of uppercase alphanumeric characters can break traces when calling downstream services also monitored by a New Relic agent that supports W3C trace context (New Relic's .NET agent does not currently support W3C trace context. Support for W3C trace context for .NET will be in an upcoming release). This is only a problem if a .NET application is the originator of the trace.

Upgrading

Wednesday, January 15, 2020 - 17:00 Download

Download URLs

Download the appropriate release for your New Relic .NET agent:

This is a security-only release for the 6.x agents that support legacy frameworks (.NET version 4.5 and lower). If you are on .NET version 4.5 or higher, or if you are on .NET Core, use the 7.x or later agent versions.

Fixes

  • Fixes security vulnerability NR20-01 which may cause SQL parameter values to appear in the agent log file when the logging level is set to Debug or Finest and the calling application supplies SQL parameters without a @ prefix.
  • Fixes an issue where Explain Plans are not generated for database commands with parameters that do not have the @ prefix on the name.

Upgrading

Wednesday, January 15, 2020 - 17:00 Download

New Features

  • Support for Real Time Streaming

    • Event data is now sent to New Relic every five seconds, instead of every minute. As a result, transaction, error, and custom events will now be available in New Relic One and Insights dashboards in near real time. For more information on how to view your events with a five-second refresh, see the real time streaming documentation.

    • Note that the overall limits on how many events can be sent per minute have not changed. Also, span events, metrics, and trace data is unaffected, and will still be sent every minute.

Fixes

  • Fixes security vulnerability NR20-01 which may cause SQL parameter values to appear in the agent log file when the logging level is set to Debug or Finest and the calling application supplies SQL parameters without a @ prefix.
  • Fixes an issue where Explain Plans are not generated for database commands with parameters that do not have the @ prefix on the name.
  • Fixes an issue with the timing of some async MongoDB driver methods.

Upgrading

Thursday, December 19, 2019 - 18:00 Download

New Features

  • Enables ability to migrate to Configurable Security Policies (CSP) on a per agent basis for accounts already using High Security Mode (HSM). When both HSM and CSP are enabled for an account, an agent (this version or later) can successfully connect with either high_security: true or the appropriate security_policies_token configured.

Fixes

  • Fixes a number of issues caused when Application Initialization has been enabled in Internet Information Services (IIS) (a.k.a. AlwaysOn in Azure App Services). The issues include the inability for the agent to name an app or possibly not instrument an app at all when app pool allow/deny listing has been applied via newrelic.config. In an Azure App Services scenario inadvertent instrumentation of the Kudu process could also occur. This was caused by the agent relying on the IIS environment variable APP_POOL_ID. When Application Initialization or AlwaysOn are enabled, the APP_POOL_ID environment variable is unavailable to the agent. The agent now also attempts to parse the command line of the w3wp.exe process to identify the application pool the app is running under.
  • Improves the handling of OperationCanceledException errors when trying to connect or send data to New Relic.
  • Fixes a problem with instrumenting ASP.NET Core applications that can occur when the Microsoft.AspNetCore.Diagnostics.Abstraction assembly is not available.
  • Fixes a problem where WCF Instrumentation may shut-down due to an unexpected error.
  • Fixes a problem that can cause the agent to fail to shutdown completely when a shutdown is triggered while the agent is still in its startup process.
  • Fixes a problem with the GetLinkingMetadata API method that could cause an expected KeyValuePair to not be included in the Dictionary.

Upgrading

Thursday, November 14, 2019 - 12:00 Download

Fixes

  • [.NET Core] Fixes a problem that could cause some .NET Core 3.0 applications to hang if they were configured with an invalid license key.

Upgrading

Thursday, October 17, 2019 - 16:00

New Features

  • Improved support for WCF.

    • Support for Task-based (TAP) service calls.
    • Distributed Tracing and CAT are automatically supported for HTTP-based binding types (such as BasicHTTP, WebHTTP, WSHTTP).
    • Non-HTTP binding types (such as NetTCP, MSMQ, Named Pipes) are instrumented, but do not automatically support Distributed Tracing and CAT.
  • [.NET Core] Adds support for .NET Core 3.1 beginning with preview 1.

  • Performance Metrics: The .Net Agent collects information about application performance in the following areas.

    • Memory and CPU Utilization
    • Garbage Collection
    • Threadpool Usage and Throughput

    Please refer to online documentation for further information.

Fixes

  • [.NET Framework] Fix an issue where reading application settings from web.config or app.config could prevent the agent from starting up.
  • [.NET Framework] Fix an issue where the agent caused an application to deadlock when using a ConfigurationBuilder. This was commonly seen in applications using the AzureKeyVaultConfigBuilder.
  • Fix an issue introduced in 8.16 where Memory and CPU metrics failed to update.

Upgrading

Tuesday, October 1, 2019 - 16:00 Download

New Features

  • .NET agent installation procedures have been simplified for Windows environments enabling you to more easily monitor .NET Core applications. Our standard installation procedures use a single MSI installer to install support for both .NET Framework and .NET Core applications. If you previously only monitored .NET Framework applications then nothing changes for you. If you were previously installing our .NET Core support using one of our manual install procedures you may need to port any custom modifications you have made to your newrelic.config and any XML custom instrumentation you have applied to the new install location.
  • Trace Accessors APIs: two new API calls to obtain information used to support tracing.
    • TraceMetadata - returns a property with access to the following:
      • TraceId - the currently executing trace's identifier.
      • SpanId - the currently executing span's identifier.
      • IsSampled - returns whether or not the current transaction is part of a sampled distributed trace.
    • GetLinkingMetadata - returns key/value pairs which can be used to correlate this application in the New Relic backend.

Fixes

  • [.NET Framework] Fix an issue in WCF instrumentation where multiple transactions were created for a call to a WCF service endpoint that used the begin/end async pattern.
  • [.NET Core] Fix an application crash bug on Alpine Linux.

Upgrading

Monday, August 26, 2019 - 15:00

New Features

  • Adds instrumentation for StackExchange.Redis asynchronous methods. Generally, these methods end with the Async suffix (e.g., StringSetAsync).
  • [.NET Core] Adds support in the .NET Core Agent for StackExchange.Redis.

Fixes

  • Resolves security issue where a manually constructed SQL stored procedure invocation may cause sensitive data to be captured in metric names. See Security Bulletin NR19-05
  • Fix a memory leak introduced in agent version 8.17.438.0.
  • Fixes an issue where NullReferenceExceptions may be logged in scenarios where a large number of segments are created for a single transaction.
  • Fix an issue where the request.uri attribute on transaction traces and event data would be set to the full URI of the request instead of the request path (e.g., http://www.domain.com/request/path instead of /request/path) in automatic instrumentation of ASP.NET and WCF applications, as well as in the agent API method SetTransactionUri().
  • [.NET Core] Fix an issue where memory and CPU metrics may be overstated in APM.
  • [.NET Framework] Fix an issue with the 8.17.438.0 release which can cause a delay in starting up an application.
  • [.NET Framework] Fix an issue where the agent may fail to start for 32-bit ASP.NET MVC applications when the NewRelic.Agent NuGet package was used to install the agent.
  • [.NET Framework] Fix an issue on agent shutdown where an error log message may appear in the agent log indicating an HTTP 409 error response from New Relic. This error did not have any other impact other than appearing in the log.
  • [.NET Framework] Fix an issue where a large number of error messages may be reported on agent startup due to insufficient permissions of the app-pool user to create performance counters. In this release, a specific warning message regarding permissions will be reported.

Upgrading

Monday, August 26, 2019 - 14:30 Download

Notes

This is a security-only release for the 6.x agents that support legacy frameworks (.NET version 4.5 and lower). If you are on .NET version 4.5 or higher, or if you are on .NET Core, use the 7.x or later agent versions.

Fixes

Resolves security issue where a manually constructed SQL stored procedure invocation may cause sensitive data to be captured in metric names. See Security Bulletin NR19-05.

Upgrading

Monday, July 22, 2019 - 13:00 Download

New Features

  • This release adds Transaction event attributes that provide context between your Kubernetes cluster and services. For details on the benefits see this blog post.
  • The NewRelic.Agent NuGet package now includes the x86 (32-bit) profiler for Windows. To monitor 32-bit Windows applications using this NuGet package the COR_PROFILER_PATH (.NET Framework) or the CORECLR_PROFILER_PATH (.NET Core) environment variable needs to be set to the path the of the 32-bit profiler DLL (NewRelic.Profiler.x86.dll).
  • For .NET Core applications hosted in Azure App Services, the New Relic Azure Site Extension can now be used to install the agent. This was previously only available for .NET Framework applications. Follow these procedures to install.

Fixes

  • Fixed an issue where the NRQL Extrapolate clause in Insights did not work properly for Transaction Events.
  • Fixed an issue where cross application tracing could cause a metric grouping issue (MGI) for web requests that result in a 300 or higher response status code. Transaction names may now be rolled up by status code.
  • Fixed an issue where browser script injection in ASP.NET applications could cause a metric grouping issue (MGI) for web requests that result in a 30x redirect status code. Transaction names may now be rolled up by status code.

Upgrading

Tuesday, June 11, 2019 - 15:30 Download

Fixes

  • CORS (Cross-Origin Resource Sharing) “pre-flight” requests with the HTTP OPTIONS method were causing extraneous metrics to be generated for ASP.NET Core applications using the CORS middleware. These requests will now be ignored by the agent.
  • Fixes a problem where WCF instrumentation shuts down when WebHttpBinding is used and CAT is enabled.
  • Fixes a problem where an async WCF client call may prevent further data from being captured in a transaction.

New Features

  • Adds database instrumentation for Microsoft.Data.SqlClient.

Upgrading

Monday, April 22, 2019 - 14:30

Fixes

  • Fixes a problem with parsing method signatures that do not align with ECMA-335 that could cause an application to crash.
  • Fixes a problem where third-party libraries that perform assembly-scanning using reflection may encounter TypeLoadExceptions.
  • Fixes a problem where the agent may incorrectly report Response Time when custom instrumentation is applied to methods that are called from within an instrumented framework (such as ASP.Net).
  • Resolves security issue with how SQL Server handles escaping which could lead to a failure to correctly obfuscate SQL statements. See Security Bulletin NR19-03.
  • Resolves issue with not rolling up 30x HTTP response codes which resulted in MGI issues.

New Features

  • Adds improved WCF support
    • WCF client task asynchronous programming model (following the task asynchronous pattern) calls are tracked as external calls.

Upgrading

Monday, April 22, 2019 - 14:30 Download

Notes

This is a security-only release for the 6.x agents that support legacy frameworks (.NET version 4.5 and lower). If you are on .NET version 4.5 and higher or .NET Core, the 7.x or later versions of the agent should be used.

Fixes

  • Resolved security issue with how SQL Server handles escaping which could lead to a failure to correctly obfuscate SQL statements. See Security Bulletin NR19-03.

Upgrading

Monday, March 18, 2019 - 16:30

Fixes

  • Fixed issue where transactions may not get reported when custom instrumentation is applied to async methods with a void return type. Instrumenting async void methods is generally not recommended and may result in unexpected segment timing as well as the disruption of downstream instrumentation. Please review async limitations online help for alternative approaches.

New Features

  • [.NET Core] Adds support for .NET Core 3.0
  • [.NET Core] Adds support for ASP.NET Core 3.0
  • [.NET Framework] Adds support for .NET Framework 4.8 Early Access build 3694
  • Adds official support for Postgres/Npgsql versions 4.0.
    • Supports Sync and Async methods, on .Net Framework and .Net Core running in Windows and Linux.
    • Eliminates duplicate and extraneous datastore metrics and trace segments associated with opening connections to databases (as seen in prior agent versions).
    • Npgsql versions older than 4.0 may also be instrumented, but duplicate and/or missing metrics are possible.
  • Adds improved WCF support
    • WCF client calls are tracked as external calls
    • WCF client synchronous and asynchronous programming model (following the begin/end asynchronous pattern) calls are tracked.

Upgrading

Tuesday, February 12, 2019 - 14:00

Fixes

  • [Framework] Improved support for async workloads in self-hosted OWIN applications.
  • [Framework] Status code only errors are now noticed in self-hosted OWIN applications.

New Features

  • [Framework] Adds support for the following in .Net Framework self-hosted OWIN apps:
    • Microsoft OWIN version 4
    • Distributed tracing
    • Cross application tracing
    • Request parameters capture
    • Request URI capture
    • Introduces single metric creation for HTTP status codes 400 and greater
    • Exception capture from OWIN middleware components

Upgrading

Wednesday, January 9, 2019 - 14:00

Fixes

  • Fixed an issue where the response time of a web transaction could be misreported when making asynchronous external calls whose duration extended beyond the time the web transaction response ended.
  • Fixed an issue when using OpenRasta instrumentation where the full URL could be captured on instrumented requests. This may have resulted in query strings being collected which can contain sensitive information. See security bulletin NR19-01.
  • Fixes an issue with auto-instrumenting RestSharp and Couchbase driver calls involving non-public collection types.

Upgrading

Monday, December 17, 2018 - 14:30

Fixes

  • Fixes an issue where stack traces for custom errors outside a transaction were not visible in the Error Analytics UI page.
  • Fixes an issue with auto-instrumenting MongoDB driver calls involving non-public collection types.
  • Fixes an issue with reporting the same transaction multiple times.

New Features

  • Improved performance when serializing metrics prior to sending to New Relic.
  • Improved SQL-related database instrumentation performance.

Upgrading

Pages