Skip to content

Latest commit

 

History

History
574 lines (437 loc) · 59.7 KB

CHANGELOG.md

File metadata and controls

574 lines (437 loc) · 59.7 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

New Features

  • Support for .NET 7 has been verified with the GA version of the .NET 7 SDK. Please note that if you use dynamically-created assemblies, there is a bug in .NET 7 that prevents them from being instrumented at this time.
  • Application log fowarding can now be configured to capture and forward context data (also referred to as "custom attributes") to New Relic. Details (including how to enable and configure this new feature) can be found here.
  • The NewRelic.Agent NuGet package now includes the Linux Arm64 profiler. This can be found in the newrelic/linux-arm64 directory. Configure your CORECLR_PROFILER_PATH environment variable to use this version of the profiler when deploying to linux ARM64 targets.
  • When finest logs are enabled, the transaction guid will be applied to attribute limit log messages, if present.

Fixes

  • Resolves potential crash when using Infinite Tracing. #1319

10.3.0 - 2022-10-26

New Features

  • Custom Event Limit Increase
    • This version increases the default limit of custom events from 10,000 events per minute to 30,000 events per minute. In the scenario that custom events were being limited, this change will allow more custom events to be sent to New Relic. There is also a new configurable maximum limit of 100,000 events per minute. To change the limits, see the documentation for max_samples_stored. To learn more about the change and how to determine if custom events are being dropped, see our Explorers Hub post. #1284

Fixes

10.2.0 - 2022-10-03

New Features

  • Add new environment variables to control SendDataOnExit functionality: NEW_RELIC_SEND_DATA_ON_EXIT, NEW_RELIC_SEND_DATA_ON_EXIT_THRESHOLD_MS. #1250
  • Enables integration with CodeStream Code-Level Metrics by default. This allows you to see Golden Signals in your IDE through New Relic CodeStream without altering agent configuration. Learn more here. For any issues or direct feedback, please reach out to [email protected]. #1255

Fixes

  • Resolves an issue where the .NET Core agent could crash during application shutdown when SendDataOnExit functionality was triggered. #1254
  • Resolves an issue where the .NET agent incorrectly injects the browser agent script inside Html pages. #1247
  • Resolves an issue where some instrumentation was missing for Microsoft.Data.SqlClient in .NET Framework. #1248
  • Resolves an issue with local log decoration for NLog where the original log message was not included in the output. #1249
  • Resolves an issue where the .NET agent failed to serialize custom attributes containing some non-primtive types. #1256
  • Includes missing profiler environment variables in debug logs during application startup. #1255
  • Resolves an issue where the .NET agent still sends up disabled event types during reconnecting period. #1251

10.1.0 - 2022-09-12

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

New Features

  • Support of setting up labels via appsettings.json and app/web.config file. #1204
  • Additional DEBUG-level logging of all environment variables.
  • Forwarded application logs now capture exception details including, error message, error stack, and error class. #1228
    • Log events with no message will now be accepted if an exception is present in the log event.
    • The error stack is created using the stack of the inner exception, up to 5 levels deep, just like existing Agent error reporting.
  • Adds a new SetName() method to the Agent API for spans which allows customization of segment/span/metric names. #1238

Fixes

  • Resolves an issue where log forwarding could drop logs in async scenarios. #1174
  • Resolves an issue where more logs were forwarded than expected from Microsoft.Extensions.Logging. #1237
  • Resolves an agent configuration bug where values set in the MAX_EVENT_SAMPLES_STORED and MAX_TRANSACTION_SAMPLES_STORED environment variables, which configure the maximum samples stored per one-minute harvest interval, were not being properly converted to apply to the five-second harvest interval for those data types. #1239

10.0.0 - 2022-07-19

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

New Features

  • Adds support for forwarding application logs to New Relic for .NET Framework 4.6.2 and newer applications using Microsoft.Extensions.Logging. #1172
  • Additional agent configuration options are now visible and easily accessible through the UI on NR1. Agent configuration is also now reported during agent connect. This information can be seen in the APM->Environment->Agent Initialization view. #1174

Fixes

  • Resolves an issue with transaction trace aggregation where the slowest transaction trace was not always captured due to a race condition. #1166
  • Adds an ignore rule to prevent profiling SMSvcHost.exe. #1182
  • Updates applicationLogging attribute log.level to be level. #1144

Deprecations/Removed Features

  • This is a major release of the agent, and contains breaking changes. See the migration guide for details.
  • This agent release targets .NET Framework 4.6.2 and .NET Standard 2.0. The minimum supported runtime versions for profiled applications are .NET Framework 4.6.2+ and .NET Core 3.1+.
  • The scriptable installers have been removed. #1170
  • Windows installation files have been consolidated and renamed. #1187
  • The Linux installation packages have been renamed. #1180
  • Castle.Monorail instrumentation has been removed. #1177

9.9.0 - 2022-06-08

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

New Features

  • Adds support for logging metrics, forwarding application logs, and enriching application logs written to disk or standard out for NLog versions v5 and v4. #1087
  • Adds integration with CodeStream, introducing Code-Level Metrics! Golden Signals visible in your IDE through New Relic CodeStream. Learn more here. For any issues or direct feedback, please reach out to [email protected]
  • Updates the following installation methods to check for and remove deprecated files. (#1104)
    • MSI Installer
    • Azure Site Extension
    • RPM package
    • DEB package

Fixes

  • Upgrades Newtonsoft.Json to version 13.0.1 to address potential security vulnerabilities identified by Snyk (#1107)
  • The agent will now send the values of application logging config options (e.g. application_logging.forwarding.enabled) to the agent initialization settings page. (#1135)

9.8.1 - 2022-05-19

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

Fixes

  • Fixes an issue with log forwarding where an agent could momentarily forward logs even if the feature had been disabled at an account level. (#1097)
  • Adds an internal list of deprecated instrumentation xml files which will cause the profiler to ignore deprecated instrumentation. This feature avoids an issue where orphaned deprecated log forwarding instrumentation could conflict with newer instrumentation. (#1097)
  • Serilog instrumentation is now performed by injecting a custom sink in to the logging chain. (#1084)

9.8.0 - 2022-05-05

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

APM logs in context

Automatic application log forwarding is now enabled by default. This version of the agent will automatically send enriched application logs to New Relic. To learn more about about this feature see here, and additional configuration options are available here. To learn about how to toggle log ingestion on or off by account see here.

New Features

  • Error messages in error traces and error events now retain up to 1023 characters instead of 255 characters. #1058
  • New environment variables have been added for AllowAllHeaders and Attributes configuration settings. See our documentation for more details. #1059
  • Introduces environment variables to enabled/disable cloud detection to facilitate customer use cases and reduce errors in logs. (#1061)
  • New environment variables have been added for all Proxy configuration settings. See our documentation for more details. #1063
  • Introduces a new configuration option to force custom instrumentation to create new transactions in async scenarios versus re-using an existing transaction. #1071

Fixes

  • Fixes Agent fails to execute explain plan for parameterized stored procedure. (#1066)
  • Fixes getting duplicate logs using log forwarding and Serilog. #1076

Deprecations

Microsoft has officially EOL .NET Framework versions 4.5.1, 4.5.2, and 4.6.1 on Apr 26, 2022. The informational blog can be found here. The official product lifecycle start and end dates can be found here. The dotnet agent support of these framework versions is will continue as is with the released versions. In a future major release, we will target .NET framework 4.6.2 onwards.

9.7.1 - 2022-04-13

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

Fixes

  • Adds missing instrumentation for application logging feature when using the MSI installer (#1055)
  • Fixes issue on Linux when specifying a non-default profiler log directory with non-existent intermediate directories. (#1051)

9.7.0 - 2022-04-04

Notice: For the new application logging features, if you install using the MSI, please update to version 9.7.1 or later.

Notice: If using Microsoft.Extensions.Logging as your logging framework of choice, please use .NET agent version 10.1.0 or newer. We encourage you to adopt the newer version due to bug #1230, which we fixed in #1237, that was resolved in .NET agent version 10.1.0.

New Features

  • Adds support for logging metrics which shows the rate of log message by severity in the Logs chart in the APM Summary view for Log4net, Serilog, and Microsoft.Extensions.Logging. This is enabled by default in this release. (#1034)
  • Adds support for forwarding application logs to New Relic. This automatically sends enriched application logs for Log4net, Serilog, and Microsoft.Extensions.Logging. This is disabled by default in this release. (#1034)
  • Adds support for enriching application logs written to disk or standard out for Log4net, Serilog, Microsoft.Extensions.Logging. This can be used with another log forwarder if in-agent log forwarding is not desired. We recommend enabling either log forwarding or local log decorating, but not both features. This is disabled by default in this release. (#1034)
  • Adds flexibility to what is accepted to enable/disable boolean environment variables per FR #1008. "0"/"1", and case insensitive "true"/"false" are now accepted. (#1033)

Fixes

Deprecations

  • The scriptable installers are now deprecated and will be removed from the download site in a future major release. (Issue: #571)
  • The established release installers are now deprecated and will be removed from the download site in a future major release. (Issue: #578)

9.6.1 - 2022-03-15

Fixes

9.6.0 - 2022-02-24

Fixes

  • Adds new supportability metrics to track agent endpoint data usage. New metrics will be reported under the Supportability/DotNET/Collector namespace. (#899)
  • Uses IMDSv2 instead of IMDSv1 to gather utilization details for AWS hosted instances. (#965)

9.5.1 - 2022-02-03

Fixes

9.5.0 - 2022-02-01

New Features

  • Internal improvements to runtime detection logic in the profiler component of the agent. (#891)

Fixes

9.4.0 - 2022-01-18

New Features

  • Allows NewRelicQueryName to be specified for SQL, to implement this suggestion. Thanks to community contributor @kevinpohlmeier for the implementation. (#799)

Fixes

  • Resolves an issue where GC metrics were not being properly captured for .NET 6 applications (#874)

9.3.0 - 2022-01-04

New Features

  • NServiceBus versions 6 and 7 are now supported in .NET Framework and .NET Core. (#857)
  • Add ability to disable agent support for Server-Configuration with NEW_RELIC_IGNORE_SERVER_SIDE_CONFIG environment variable. The available value options are true and false. (#814)

Fixes

  • Fixes issue #36: Total system memory will now be correctly reported on Linux. (#855)
  • Fixes an issue in newrelic.config file schema validation that could block agent startup. (#835)

9.2.0 - 2021-11-18

.NET 6 Compatibility

As of version 9.2.0, the New Relic .NET Core agent supports .NET 6.

New Features

  • Adds automatic instrumentation for the Microsoft.Azure.Cosmos client library. (#811)
  • Adds additional logging to the Garbage Collection performance metrics to aid in troubleshooting performance counter issues. (#792)
  • Feature #800: On .NET Framework apps instrumented with the .NET Framework agent, the value of the ".NET Version" property in the Environment data page will more accurately reflect the version of .NET Framework in use. (#801)

Fixes

  • Fixes issue #803: Thread safety issue occurred when accessing HTTP headers collection in HttpClient on .NET 6. (#804)

9.1.1 - 2021-11-02

Fixes

  • Fixes issue #780: Improves management of gRPC channels during connection failure scenarios. (#782)
  • Fixes issue #781: Windows MSI installer was not deploying gRPC libraries for netcore applications. (#788)

9.1.0 - 2021-10-26

New Features

  • Feature #365: This version adds support for the Linux ARM64/AWS Graviton2 platform using .NET 5.0. (#768)
    • Includes a new Processor Architecture property reported by the Agent with the Environment.

Fixes

  • Fixes issue #754: Agent could cause applications that use configuration builders from Microsoft.Configuration.ConfigurationBuilders to hang on startup. (#753)

9.0.0 - 2021-09-16

New Features

  • Feature #672: This release of the .NET agent enables Distributed Tracing by default, and deprecates Cross Application Tracing. (#700)
  • Feature #671: The maximum number of samples stored for Span Events can be configured via the spanEvents.maximumSamplesStored configuration in the newrelic.config or the NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED Environemnt Variable.(#701)
  • Feature #703: Increases the default maximum number of samples stored for Span Events from 1000 to 2000.(#705)
  • Feature #532: Adds Environment variables for log level NEWRELIC_LOG_LEVEL and directory NEWRELIC_LOG_DIRECTORY to allow better control of logs for the Agent and the Profiler. (#717)

Fixes

  • Fixes issue #707: In 8.40.1 SQL explain plans are not being captured for parameterized SQL statements. (#708)
  • Fixes issue #502: Agent encountering serialization error (#715)
  • Fixes issue #679: Update gRPC libraries from 2.35.0 to 2.40.0 to reduce installation size (#721)

Deprecations/Removed Features

  • Cross Application Tracing is now deprecated, and disabled by default. To continue using it, enable it with crossApplicationTracer.enabled = true and distributedTracing.enabled = false.
  • Issue #667, 668, #669: previously deprecated agent configuration options are now disabled. See the migration guide for details.
  • Issue #666: previously deprecated agent APIs have been removed, and disabled in the Agent. Disabled APIs will log a warning when invoked by old versions of the Agent API. See the migration guide for details. (#687)
  • Issue #702 Deprecate instrumentation for Castle.Monorail (#710)

8.41.1 - 2021-08-25

New Features

Fixes

  • Fixes issue #627: Grpc channel shutdown can cause license_key is required error message. (#663)
  • Fixes issue #683: Requested stack trace depth is not always honored. (#684)

8.41.0 - 2021-07-21

New Features

  • Feature #611: Capture HTTP request method on transactions in the AspNetCore, Asp35, Wcf3, and Owin wrappers.
  • Feature #580: Send initial app name and source in environment data. (#653)
  • Adds support for capturing stack traces for each instrumented method in a Transaction Trace.
    • This feature is disabled by default.
    • You can enable the capture of stack traces by setting either maxStackTrace to any value greater than 1. This value will only be used to determine if stack traces are captured or not despite the name.
    • The following are the default settings for stack traces. These can be changed using the newrelic.config:
      • A maximum 80 stack frames are reported per stack trace.

Fixes

  • Fixes issue #639: RabbitMQ instrumentation can delete user headers from messages. Thank you @witoldsz for finding and reporting this bug. (#648)

8.40.1 - 2021-07-08

Fixes

  • Fixes issue #485: SendDataOnExit configuration setting will prevent Infinite Traces data sending interuption on application exit. (#550)
  • Fixes issue #155: MVC invalid Action for valid Controller can cause MGI. (#608)
  • Fixes issue #186: Attribute based Routing (ex WebAPI) can cause transaction naming issues. (#612)
  • Fixes issue #463: Handle OPTIONS requests for asp.net applications. (#612)
  • Fixes issue #551: Missing external calls in WCF Service. (#610)
  • Fixes issue #616: Linux Kudu not accessible when .NET agent presents. (#618)
  • Fixes issue #266: Agent fails to initialize and provides no logs when configured with capitalized booleans. (#617)
  • Explain plans will be created if transactionTracer.explainEnabled is true and one or both transactionTracer.enabled or slowSql.enabled are true. If transactionTracer.explainEnabled is false or both transactionTracer.enabled and slowSql.enabled are false, no Explain Plans will be created.
  • Fixes issue #600: Thread id will now be used in agent logging, even if a thread name has been set. (#626)
  • Fixes issue #476: When generating and explain plan MS SQL parsing is matching parts of words instead of whole words
  • Fixes issue #477: SQL Explain plans MS SQL parser needs to be able to ToString an object to work with parameterized queries
    • Improves handling serializable types like DateTimeOffset
    • The presence DbTypes Binary and Object will prevent an Explain Plan from being executed. In order to execute an explain plan, the agent must replace any parameters in a query with the real values. Binary and Object are too complex to properly serialize without introducing errors.

8.40.0 - 2021-06-08

New Features

  • Adds Agent support for capturing HTTP Request Headers.
    • Support included for ASP.NET 4.x, ASP.NET Core, Owin, and WCF instrumentation. (#558, #559, #560, #561)

Fixes

  • Fixes issue #264: Negative GC count metrics will now be clamped to 0, and a log message will be written to note the correction. This should resolve an issue where the GCSampler was encountering negative values and crashing. (#550)
  • Fixes issue #584: When the agent is configured to log to the console, the configured logging level from newrelic.config will be respected. (#587)

8.39.2 - 2021-04-14

Fixes

  • Fixes issue #500: For transactions without errors, Agent should still create the error intrinsics attribute with its value set to false. (#501)
  • Fixes issue #522: When the maxStackTraceLines config value is set to 0, the agent should not send any stack trace data in the error_data payload. (#523)

8.39.1 - 2021-03-17

Fixes

  • Fixes issue #22: Agent causes exception when distributed tracing is enabled in ASP.NET Core applications that use the RequestLocalization middleware in a Linux environment. (#493)
  • Fixes issue #267: On Linux, the profiler fails to parse config files that start with a UTF-8 byte-order-mark (BOM). (#492)
  • Fixes issue #464: Distributed tracing over RabbitMQ does not work with RabbitMQ.Client versions 6.x+ (#466)
  • Fixes issue #169: Profiler should be able to match method parameters from XML that contain a space. (#461)

8.39 - 2021-02-10

New Features

  • Add GetBrowserTimingHeader(string nonce) overload.
    • This allows sites with a Content-Security-Policy that disables 'unsafe-inline' to emit the inline script with a nonce.

Fixes

  • Fixes Issue #394: agent fails to enable infinite tracing in net5.0 docker images

8.38 - 2021-01-26

New Features

  • Improvements to New Relic Edge (Infinite Tracing)
    • The agent will now handle having its infinite tracing traffic moved from one backend host to another without losing data or requiring an agent restart.
    • Improved logging of infinite tracing connections.

8.37 - 2021-01-04

New Features

  • Updated support for RabbitMQ

    • Adds support for .NET Core applications using RabbitMQ.Client.
    • Adds support for RabbitMQ.Client version 6.2.1.
    • Not supported: Distributed Tracing is not supported with the RabbitMQ AMQP 1.0 plugin.
  • Adds configuration Environment Variables

    • Adds MAX_TRANSACTION_SAMPLES_STORE - the maximum number of samples stored for Transaction Events.
    • Adds MAX_EVENT_SAMPLES_STORED - the maximum number of samples stored for Custom Events.
    • Adds NEW_RELIC_LOG - the unqualifed name for the Agent's log file.

8.36 - 2020-12-08

Fixes

  • Fixes Issue #224: leading "SET" commands will be ignored when parsing compound SQL statements. (#370)
  • Fixes Issue #226: the profiler ignores drive letter in HOME_EXPANDED when detecting running in Azure Web Apps. (#373)
  • Fixes Issue #93: when the parent methods are blocked by their asynchronous child methods, the agent deducts the child methods' duration from the parent methods' exclusive duration.(#374)
  • Fixes Issue #9 where the agent failed to read settings from appsettings.{environment}.json files. (#372)
  • Fixes Issue #116 where the agent failed to read settings from appsettings.json in certain hosting scenarios. (#375)
  • Fixes Issue #234 by reducing the likelihood of a Fatal CLR Error. (#376)
  • Fixes Issue #377 when using the AddCustomAttribute API with Microsoft.Extensions.Primitives.StringValues type causes unsupported type exception. (378)

8.35 - 2020-11-09

New Features

Fixes

  • Fixes Issue #337 by removing obsolete code which was causing memory growth associated with a large number of transaction names.
  • PR #348: guards against potential exceptions being thrown from the agent API when the agent is not attached.

8.34 - 2020-10-26

New Features

  • .NET 5 RC2 Support
    We have validated that this version of the agent is compatible with .NET 5 Release Candidate 2.

Fixes

  • Fixes issue #301 where the agent incorrectly parses server-side configuration causing agent to shutdown.(#310)
  • Modifies WCF Instrumentation to address #314 by minimizing the reliance upon handled exceptions during the attempt to capture CAT and DT payloads.

8.33 - 2020-10-12

Fixes

  • Fixes #223 so the agent can be compatible with ASP.NET Core 5 RC1.
  • Fixes issue in .NET 5 applications where external calls made with HttpClient may not get instrumented. For example, calls made with HttpClient.GetStringAsync would be missed. (#235)
  • Fixes issue #257 where .NET Standard Libraries that do not reference mscorlib fail to be instrumented in .NET Framework applications.
  • Reduces the performance impact of large amounts of instrumentation. See issue #269 for more information.

8.32 - 2020-09-17

New Features

  • Proxy Password Obfuscation Support
    Agent configuration supports the obfuscation of the proxy password. The New Relic Command Line Interface (CLI) may be used to obscure the proxy password. The following documentation describes how to use an obscured proxy password in the .NET Agent configuration.

  • MySqlConnector Support
    The MySqlConnector ADO.NET driver is instrumented by default. Fixes #85 and implements this suggestion.

  • Nullable Reference Type support in the API
    Enables nullable reference types that are part of the C# 8.0 language specification and updates the signatures of API methods accordingly. There should be no required changes in API usage.

  • Improved Support for NetTCP Binding in WCF Instrumation When the NetTCP Binding type is used in Windows Communication Foundation (WCF), the Agent will now send and receive trace context information in support of Distributed Tracing (DT) or Cross Application Tracing (CAT). Implements #209.

Fixes

  • Fixes an issue that may cause InvalidCastException due to an assembly version mismatch in Mvc3 instrumentation.
  • Fixes an async timing issue that can cause the end time of Task-returning methods to be determined incorrectly.

8.31 - 2020-08-17

New Features

  • Expected Errors Support
    Certain errors that are expected within the application may be identified so that they will not be counted towards the application's error rate and Apdex Score. Only errors that truly affect the health of the application will be alerted on. Please review the following documentation for details on how to configure Expected Errors.

  • Ignored Errors Enhancements
    Certain errors may be identified in configuration so that they will be ignored. These errors will not be counted towards the application's error rate, Apdex score, and will not be reported by the agent. Please review the following documentation for details on how to configure Ignored Errors.

    • New configuration element <ignoreMessages>supports filtering based on the error message.
    • Please note that the <ignoreErrors> configuration element has been deprecated and replaced by <ignoreClasses>. The .NET Agent continues to support this configuration element, but its support may be removed in the future.

Fixes

  • Garbage Collection Performance Metrics for Windows
    Fixes an issue where Garbage Collection Performance Metrics may not be reported for Windows Applications.

  • Maintaining newrelic.config on Linux package upgrades
    Fixes an issue where newrelic.config was being overwritten when upgrading the agent via either rpm/yum (RedHat/Centos) or dpkg/apt (Debian/Ubuntu).

8.30 - 2020-07-15

New Features

  • The .NET Agent is now open source!
    The New Relic .NET agent is now open source! Now you can view the source code to help with troubleshooting, observe the project roadmap, and file issues directly in this repository. We are now using the Apache 2 license. See our Contributing guide and Code of Conduct for details on contributing!

Fixes

  • Memory Usage Reporting for Linux
    Fixes issue where applications running on Linux were either reporting no physical memory usage or using VmData to report the physical memory usage of the application. The agent now uses VmRSS through a call to Process.WorkingSet64 to report physical memory usage. See the dotnet runtime discussion and the proc man pages for more details about this change.

  • Infinite Tracing Performance
    Fixes issue where the Agent may consume too much memory when using Infinite Tracing.

  • .NET 5 support
    Fixes issue with applications running on .NET 5 that prevented instrumentation changes at runtime (either though editing instrumentation XML files or through the Live Instrumentation editor Beta).

8.29 - 2020-06-25

New Features

  • Additional Transaction Information applied to Span Events
    When Distributed Tracing and/or Infinite Tracing are enabled, the Agent will now incorporate additional information from the Transaction Event on to the root Span Event of the transaction.

Fixes

Fixes issue where updating custom instrumentation while application is running could cause application to crash.

8.28 - 2020-06-04

New Features

Fixes

  • Infinite Tracing

    • Fixes issue with Infinite Tracing where a communication error can result in consuming too much CPU.
    • Fixes issue with Infinite Tracing where a communication error did not clean up its corresponding communication threads.
    • Agent version 8.30 introduces significant performance enhancements to Infinite Tracing. To use Infinite Tracing, please upgrade to version 8.30 or later.

  • Fixes issue in .NET Framework ASP.NET MVC applications where transactions started on one thread would flow to background threads (e.g., started with Task.Run) in some scenarios but not others. Transaction state used to only flow to a background thread if the transaction originated from an async controller action. Transaction state now flows to background threads regardless of whether the controller action is async or not.

  • Fixes issue in .NET Framework ASP.NET MVC applications where agent instrumentation of an MVC controller action could cause an InvalidProgramException.

  • Fixes a problem with the reporting of Errors where Error Events may not appear even though Error Traces are being sent.

8.27 - 2020-04-30

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.

8.26 - 2020-04-20

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.

    Agent version 8.30 introduces significant performance enhancements to Infinite Tracing. To use Infinite Tracing, please upgrade to version 8.30 or later.

  • 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.

8.25 - 2020-03-11

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. This page does not yet have the functionality enabled, but it will be enabled in the next few business days.

  • 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.

8.24 - 2020-02-19

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.