Elastic APM .NET Agent Preview Released



  • We are proud to announce the preview release of the Elastic APM .NET agent! To make sure everyone is on the same page I’d like to start by defining what we exactly mean by “Preview Release”: this release is the first properly packaged version of the .NET APM agent. The main goal is to collect feedback and to share our progress with the community. If you are interested in this work, please try the agent in your test environment and let us know how it works for you and what features you miss! The best way to give feedback and ask questions is in our discussion forum or if you find an issue or you would like to submit a pull request, jump to our GitHub repository. The .NET agent is Apache licensed and we are more than happy to receive contributions from the community!

    Elastic APM is an Application Performance Monitoring solution from Elastic and alongside the .NET agent, there are official agents available for Java, Node.js, Python, Ruby, JavaScript/RUM, and Go. Elastic APM helps you to gain insight into the performance of your application, track errors, and gauge the end-user experience in the browser.

    I will dive into this new APM .NET agent below, but if you'd prefer to watch a preview rather than read about it, check out this video:

    If you would like to know more details, please take a look at the Elastic APM .NET agent documentation.

    Supported frameworks

    We started the the design of the agent by asking our potential user base about what frameworks and .NET flavors they use for their .NET applications.

    Based on that feedback the preview release has auto instrumentation features for the following libraries:

    • ASP.NET Core 2.x
    • Entity Framework Core 2.x
    • Outgoing web requests with the HttpClient class on .NET Core

    Additionally, the APM .NET agent offers a Public Agent API that enables you to manually instrument your application for other frameworks, or for custom tagging.

    This API is shipped as a .NET Standard 2.0 library, which means you can use it on every .NET flavour that supports .NET Standard 2.0. In the case of .NET Full Framework this is version 4.6.1 or newer, and in case of .NET Core this is version 2.0 or newer. The is no restriction in terms of operating systems, the agent packages should work on any operating system that is supported by the .NET Framework you use.

    Downloading the agent

    The agent ships as a set of NuGet packages via nuget.org.

    The following packages are available:

    • 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 classes that are part of .NET Standard 2.0 in this package, which includes the monitoring part for HttpClient. Every other Elastic APM package references this package.
    • 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.

    ASP.NET Core + Elastic APM

    The focus of this release is clearly ASP.NET Core monitoring. The first step to enable the agent is to add the Elastic.Apm.All package to your application:



    https://www.elastic.co/blog/elastic-apm-dot-net-agent-preview-released


Log in to reply
 

© Lightnetics 2024