Note
|
Release notes are best read in our documentation at elastic.co |
-
Auto instrumentation for
SqlClient
(documentation) -
Introducing Filter API {pull}792[#792] (documentation)
-
Auto-detect culprit for exceptions {pull}740[#740]
-
New config settings:
ExcludedNamespaces
,ApplicationNamespaces
(documentation) -
Keep
Activity.Current.TraceId
in sync with the Trace ID used by the agent {pull}800[#800] -
Report Kubernetes system metadata {pull}741[#741]
-
Database connection string parsing issue with Oracle {pull}795[#795]
-
Introducing
ITransaction.EnsureParentId()
to integrate with RUM in dynamically loaded HTML pages (including page loads in ASP.NET Core) {pull}771[#771] -
New config setting:
ApiKey
{pull}733[#733]
-
Memory issue in .NET Full Framework with default metrics turned on {pull}750[#750]
-
Parsing for Oracle connection strings {pull}749[#749]
-
StackOverflowException
when using theElastic.Apm.SerilogEnricher
package and the log level is set toVerbose
{pull}753[#753]
-
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.
-
Fix log spamming issues {pull}736[#736], {pull}738[#738]
-
Fix turning HTTP 415 responses in ASP.NET Core to HTTP 500 when request body capturing is active {pull}739[#739]
-
Fix disabling GC metrics collection in case no GC is triggered during the first "5*MetricsInterval" of the process {pull}745[#745]
-
New GC metrics:
clr.gc.count
,clr.gc.gen[X]size
, where [X]: heap generation {pull}697[#697] -
Capturing SOAP action name as part of the transaction name {pull}683[#683]
-
New config options:
ServiceNodeName
,VerifyServerCert
,DisableMetrics
,UseElasticTraceparentHeader
(docs) -
Full W3C TraceContext support {pull}717[#717]
-
Fix transaction name generation in ASP.NET Core 3.x {pull}647[#647]
-
Fix around HTTP request body sanitization {pull}712[#712]
-
Entity framework support with Interceptor (docs)
-
Sanitization of HTTP headers and request body (docs)
-
Central configuration - 2 new configs:
CAPTURE_BODY
andTRANSACTION_MAX_SPANS
. {pull}577[#577]. -
Support for global labels (docs)
-
Custom context (docs)
-
Dropping support for ASP.NET Core 2.0 (which is already end of life) (docs)
-
De-dotting labels. {pull}583[#583].
-
Request body capturing TypeLoadException in ASP.NET Core 3.0. {pull}604[#604].
-
Metrics collection: filtering NaN and Infinity. {pull}589[#589].
-
Capturing request body with ASP.NET Core erased the body in some scenarios {pull}539[#539].
-
Integration with Serilog caused missing logs and diagnostic traces with
NullReferenceException
{pull}544[#544], {pull}545[#545].
Configure transaction max spans. {pull}472[#472]
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. {pull}527[#527]
-
ASP.NET Support, documentation can be found here
-
Central configuration (Beta)
-
Addressed some performance issues {pull}359[#359]
-
Improved error handling in ASP.NET Core {pull}512[#512]
-
Fix for mono {pull}164[#164]
-
NullReferenceException
on .NET Framework with outgoing HTTP calls created withHttpClient
in case the response code is HTTP3xx {pull}450[#450] -
Added missing
net461
target to theElastic.Apm
package -
Handling
Labels
withnull
{pull}429[#429]
-
Reading request body in ASP.NET Core. Also introduced two new settings:
CaptureBody
andCaptureBodyContentTypes
. By default this feature is turned off, this is an opt-in feature and can be turned on with theCaptureBody
setting. {pull}402[#402]
The 1. GA release of the Elastic APM .NET Agent. Stabilization of the 1.0.0-beta feature for production usage.
-
Out of the box integration with
ILoggerFactory
and the logging infrastructure in ASP.NET Core {pull}249[#249] -
Introduced
StackTraceLimit
andSpanFramesMinDurationInMilliseconds
configs {pull}374[#374] -
The Public Agent API now support
Elastic.Apm.Agent.Tracer.CurrentSpan
{pull}391[#391]
-
Thread safety for some bookkeeping around spans {pull}394[#394]
-
Auto instrumentation automatically creates sub-spans in case a span is already active {pull}391[#391]
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 withElastic.Apm.NetCoreAll
{pull}371[#371] -
Based on feedback we also renamed the
UseElasticApm()
method in theElastic.Apm.NetCoreAll
package toUseAllElasticApm
- this method turns on every component of the Agent for ASP.NET Core. {pull}371[#371] -
Our logger abstraction, specifically the
IApmLogger
interface changed: {pull}389[#389] -
To follow the Elastic Common Schema (ECS), we renamed our
Tags
properties toLabels
. {pull}416[#416]
-
Distributed tracing support (based on W3C Trace Context)
-
Sampling
-
Metrics (Process and System CPU usage, Free and total Memory, Process working set and private bytes)
-
Capture Docker container id (linux containers only)
-
ASP.NET Core: better transaction names based on routing, capture authenticated users
-
Public Agent API: create sub spans, serialize and deserialize traceparent
-
Stack traces contain fully qualified class names and real method names in case of async methods
-
SecretToken
setting - with this you can use the agent with Elastic Cloud. -
Intake V2 protocol to server communication - support for APM Server 7.x
-
Extended public agent API: support for setting custom HTTP and Database related fields.
-
Improved logging.
Packages can be found on nuget.org.
-
ASP.NET Core auto instrumentation
-
Entity Framework Core auto instrumentation
-
HttpClient auto instrumentation
We shipped the following packages:
-
Elastic.Apm.All: This is a meta package that references every other Elastic APM .NET agent package. If you plan to monitor a typical ASP.NET Core application that depends on the Microsoft.AspNetCore.All package and uses Entity Framework Core then you should reference this package. In order to avoid adding unnecessary dependencies in applications that aren’t depending on the Microsoft.AspNetCore.All package we also shipped some other packages - those are all referenced by the Elastic.Apm.All package.
-
Elastic.Apm: This is the core of the agent, which we didn’t name “Core”, because someone already took that name :) This package also contains the Public Agent API and it is a .NET Standard 2.0 package. We also ship every tracing component that traces things that are part of .NET Standard 2.0 in this package, which includes the monitoring part for HttpClient. Elastic.Apm.AspNetCore: This package contains ASP.NET Core monitoring related code. The main difference between this package and the Elastic.Apm.All package is that this package does not reference the
-
Elastic.Apm.EntityFrameworkCore package, so if you have an ASP.NET Core application that does not use EF Core and you want to avoid adding additional unused references, you should use this package.
-
Elastic.Apm.EntityFrameworkCore: This package contains EF Core monitoring related code.