New

The executive guide to generative AI

Read more

.NET Agent version 1.x

edit

1.8.1

edit

Features

edit
  • #1196 Add GC Heap Stats capturing for .NET 5.0 (issue: #1195)

Bug fixes

edit
  • #1192 Lazily access the agent in ElasticApmProfiler redis integration (issue: #1190)
  • #1198 Add TargetFramework NET5.0 to Elastic.Apm.AspNetCore and related packages (issue: #1194)

1.8.0

edit

Features

edit
  • #1063 Add support for capturing redis commands from StackExchange.Redis (documentation) (issue: #874)
  • #1065 Introduce ServerUrl config - (ServerUrls is still working but will be removed in the future) (issue: #1035)
  • #1048 Support for more k8s cgroup path patterns (issue: #968)
  • #1082 SanitizeFieldNames config became changeable though Kibana central configuration
  • #1083 Azure App Service cloud metadata collection
  • #1135 Capture error logs as APM errors from Microsoft.Extensions.Logging automatically and extend the Public API to capture custom logs as APM errors (issue: #894)
  • #1096 Support changing log level through Kibana central configuration and support "off" level (issue: #970)

Bug fixes

edit
  • #1081 NullReferenceException with disabled agent on Transaction.Custom (issue: #1080)
  • #1078 ASP.NET Core, enabled=false in appsettings.json does not disable public Agent API (issue: #1077)
  • #1115 System.IO.IOException on ASP.NET Classic (issue: #1113)
  • #1118 Memory issue with gRPC (issue: #1116)
  • #1124 Ensuring ETW sessions are terminated on agent shutdown (issue: #897)
  • #1109 NullReferenceException with custom IConfigurationReader implementation in MetricsCollector
  • #1138 and #1165 Fixes around zero code change agent setup with DOTNET_STARTUP_HOOKS
  • #1115 Access Request.InputStream only when SOAP header present (issue: #1113)

1.7.1

edit

Features

edit
  • #1057 Introduce GetLabel<T> method on IExecutionSegment (issue: #1033)

Bug fixes

edit
  • #1052 Increased transaction duration due to stack trace capturing (issue: #1039)
  • #1053 Warning with Synchronous operations are disallowed on ASP.NET Core during request body capturing (issue: #1044)
  • #1042 SqlClient instrumentation on .NET 5 (issue: #1025)
  • #1060 UseAllElasticApm with IHostBuilder missing auto instrumentation (issue: #1059)

1.7.0

edit

Features

edit
  • #828 Agent loading with zero code change on .NET Core (issue: #71)
  • #969 gRPC support (issue: #478)
  • #974 Add ability to configure Hostname (issue: #932)
  • #997 Add Enabled and Recording configuration (issue: #122)
  • #912 Add FullFrameworkConfigurationReaderType config to load custom configuration reader on ASP.NET
  • #978 Capture User id and email on ASP.NET (issue: #540)
  • #982 Support boolean and numeric labels in addition to string labels (issues: #967, #788, #473, #191, #788, #473, #191)
  • #1000 Collecting metrics based on cGroup (issue: #937)
  • #1002 ITransaction.SetService API to support multiple services in a single process (issue: #1001)
  • #1003 Collecting cloud metadata (supporting AWS, Azure, GCP) (issue: #918)
  • #973 Transaction grouping on ASP.NET (issue: #201)
  • #913 Entity Framework 6 support on .NET Core (issue: #902)

Bug fixes

edit
  • #992 On ASP.NET Core CurrentTransaction is null in some cases (issues: #934, #972)
  • #971 Avoid double initialization in HostBuilderExtensions
  • #999 Capture body with large file error (issue: #960)

Breaking changes

edit
  • Binary compatibility on IExecutionSegment.CaptureException and IExecutionSegment.CaptureError with libraries depending on previous version. If this happens you need to update Elastic.Apm to 1.7.0 in your projects (Issue: (#1067)

1.6.1

edit

Bug fixes

edit
  • Service map: missing connection between .NET services (#909)

1.6.0

edit

Features

edit
  • Elasticsearch client instrumentation #329
  • Introducing Elastic.Apm.Extensions.Hosting package with an extension method on IHostBuilder #537
  • Stack trace improvements: async call stack demystification (#847) and showing frames from user code for outgoing HTTP calls (#845)
  • Making fields on IError public #847
  • Service map improvements: #893

Bug fixes

edit
  • Missing traces from the Kibana traces list due to setting Transaction.ParentId to an Activity #888
  • Exception around runtime detection #859
  • Missing outgoing HTTP calls in .NET Framework applications and causing memory issues #896

1.5.1

edit

Bug fixes

edit
  • Memory issue in SqlEventListener #851

1.5.0

edit

Features

edit
  • Auto instrumentation for SqlClient (documentation)
  • Introducing Filter API #792 (documentation)
  • Auto-detect culprit for exceptions #740
  • New config settings: ExcludedNamespaces, ApplicationNamespaces (documentation)
  • Keep Activity.Current.TraceId in sync with the Trace ID used by the agent #800
  • Report Kubernetes system metadata #741

Bug fixes

edit
  • Database connection string parsing issue with Oracle #795

1.4.0

edit

Features

edit
  • Introducing ITransaction.EnsureParentId() to integrate with RUM in dynamically loaded HTML pages (including page loads in ASP.NET Core) #771
  • New config setting: ApiKey #733

Bug fixes

edit
  • Memory issue in .NET Full Framework with default metrics turned on #750
  • Parsing for Oracle connection strings #749
  • StackOverflowException when using the Elastic.Apm.SerilogEnricher package and the log level is set to Verbose #753

Breaking changes

edit
  • We have some changes that are technically breaking changes. We made some helper classes internal that were never meant to be public. These are: Elastic.Apm.Helpers.AgentTimeInstant, Elastic.Apm.Helpers.ContractExtensions, Elastic.Apm.Helpers.ObjectExtensions, Elastic.Apm.Helpers.ToStringBuilder. None of these classes were documented or mentioned as part of the Public Agent API. We expect no usage of these classes outside the agent.

1.3.1

edit

Bug fixes

edit
  • Fix log spamming issues #736, #738
  • Fix turning HTTP 415 responses in ASP.NET Core to HTTP 500 when request body capturing is active #739
  • Fix disabling GC metrics collection in case no GC is triggered during the first "5*MetricsInterval" of the process #745

1.3.0

edit

Features

edit
  • New GC metrics: clr.gc.count, clr.gc.gen[X]size, where [X]: heap generation #697
  • Capturing SOAP action name as part of the transaction name #683
  • New config options: ServiceNodeName, VerifyServerCert, DisableMetrics, UseElasticTraceparentHeader (docs)
  • Full W3C TraceContext support #717

Bug fixes

edit
  • Fix transaction name generation in ASP.NET Core 3.x #647
  • Fix around HTTP request body sanitization #712

1.2.0

edit

Features

edit
  • Entity framework support with Interceptor (docs)
  • Sanitization of HTTP headers and request body (docs)
  • Central configuration - 2 new configs: CAPTURE_BODY and TRANSACTION_MAX_SPANS. #577.
  • Support for global labels (docs)
  • Custom context (docs)
  • Dropping support for ASP.NET Core 2.0 (which is already end of life) (docs)

Bug fixes

edit
  • De-dotting labels. #583.
  • Request body capturing TypeLoadException in ASP.NET Core 3.0. #604.
  • Metrics collection: filtering NaN and Infinity. #589.

1.1.2

edit

Bug fixes

edit
  • Capturing request body with ASP.NET Core erased the body in some scenarios #539.
  • Integration with Serilog caused missing logs and diagnostic traces with NullReferenceException #544, #545.

1.1.1

edit

Features

edit

Configure transaction max spans. #472

Bug fixes

edit

Fixing missing "Date Modified" field on the files from the 1.1.0 packages causing an error while executing dotnet pack or nuget pack on a project with Elastic APM Agent packages. #527

1.1.0

edit

Features

edit
  • ASP.NET Support, documentation can be found here
  • Central configuration (Beta)

Bug fixes

edit
  • Addressed some performance issues #359
  • Improved error handling in ASP.NET Core #512
  • Fix for mono #164

1.0.1

edit

Bug fixes

edit
  • NullReferenceException on .NET Framework with outgoing HTTP calls created with HttpClient in case the response code is HTTP3xx #450
  • Added missing net461 target to the Elastic.Apm package
  • Handling Labels with null #429

Features

edit
  • Reading request body in ASP.NET Core. Also introduced two new settings: CaptureBody and CaptureBodyContentTypes. By default this feature is turned off, this is an opt-in feature and can be turned on with the CaptureBody setting. #402

1.0.0 GA

edit

The 1. GA release of the Elastic APM .NET Agent. Stabilization of the 1.0.0-beta feature for production usage.

Features

edit
  • Out of the box integration with ILoggerFactory and the logging infrastructure in ASP.NET Core #249
  • Introduced StackTraceLimit and SpanFramesMinDurationInMilliseconds configs #374
  • The Public Agent API now support Elastic.Apm.Agent.Tracer.CurrentSpan #391

Bug fixes

edit
  • Thread safety for some bookkeeping around spans #394
  • Auto instrumentation automatically creates sub-spans in case a span is already active #391

Breaking changes

edit

We have some breaking changes in this release. We wanted to do these changes prior to our GA release and with this we hopefully avoid breaking changes in the upcoming versions.

  • For better naming we replaced the Elastic.Apm.All packages with Elastic.Apm.NetCoreAll #371
  • Based on feedback we also renamed the UseElasticApm() method in the Elastic.Apm.NetCoreAll package to UseAllElasticApm - this method turns on every component of the Agent for ASP.NET Core. #371
  • Our logger abstraction, specifically the IApmLogger interface changed: #389
  • To follow the Elastic Common Schema (ECS), we renamed our Tags properties to Labels. #416