Log4j/Log4Shell

Log4j Vulnerability Response Center. Get Informed Now

DevOps and Security Glossary Terms

ASP.Net Core Monitoring

ASP.Net Core Monitoring

App building as a career enjoys a set-it-and-forget-it reputation amongst would-be developers who have never developed an app before. In reality, a finished web or mobile application represents thousands of hours of work and requires continued observation and management in order to remain usable and accessible. Frameworks like ASP.Net Core are designed to make that process as simple as possible.

What is ASP.Net Core?

ASP.Net Core is a free and open-source rewrite of the ASP.NET framework running on .NET Core and Full Framework. Recent updates to ASP.Net Core push the building solution’s versatility, and it can now be self-hosted on any server of user’s choosing.

End-users can engage the framework to easily build contemporary, cloud-based, internet-connected applications for a multiplicity of platforms, as well as mobile back-ends.

How does ASP.Net Core work?

ASP.Net Core has an open-source software framework arranged as cross-platform technology. This fact enables end-users to redistribute, modify, and customize the original source code to fit their unique needs, as well as the needs of their customer base. ASP.Net Core’s cross-platform framework also allows end-users to build applications on multiple platforms like iOS or Android with just a single codebase.

Base components of ASP.Net Core include CLR, Garbage Collector, JIT Compiler, and the base class library.

What does ASP.Net Core monitoring mean?

Most apps are designed to be highly accessible to a large volume of users. This requires app developers to keep a close eye on application performance to ensure everything is running smoothly. Low performance or access can indicate an issue that may be rendering your product unusable.

Here are some key ASP.Net Core metrics to observe that will help you track performance and address problems quickly.

Errors/Error types

  • The DeveloperExceptionPageMiddleware captures synchronous and asynchronous exceptions from the HTTP pipeline.

  • Error messages are generated in default plain-text response format.

  • Users can also request HTML-formatted error code responses to capture exceptions.

Request duration

  • The elapsed time between the client issuing the request to the moment client receives a response byte from the server.

Throughput (req/sec)

  • ASP.Net Core 3.0 adds multiple improvements including faster throughput.

CPU/Memory

  • Tools that help analyze memory usage such as counting object references, measuring GC impact on CPU usage, and how much memory space is used for each generation.

  • GC reserves memory for initial heap segments and saves a small portion of memory after runtime is loaded.

  • Task Manager that detects memory issues.

KPIs

  • Collection of calculations to evaluate business success such as value achieved, the goal, statuses, and trends.

Visitor count/sales

  • Potential to count every hit or visitor in a given application.


How to monitor ASP.Net Core

Now you know what metrics to look out for, how do you actually track them? Let’s take a look.

  1. Logging. ASP.Net Core supports a logging API to work with many built-in or third-party logging providers. It is available to any .NET app using Generic Host and creates a logger using a log category which evaluates the severity of the given event logged on a scale of 0 to 6. The end-user is able to configure logging to control how much log output is written to specific storage mediums. Log levels can also be set to command line, environment variables, and more.

  2. Tracing. ASP.Net Core distributed tracing helps engineers to pinpoint failures or performance issues within a given application. It is designed for low overhead in order for programs to continue recording in case issues occur.

  3. Analytics. Different metric analytic types (as listed above) can track measurements of the user’s choosing such as API, counters, gauges, histograms, meters, and timers. You can access available counters by various .NET Core packages, third-party packages, or self-created metrics for monitoring.

Troubleshooting issues found on .NET Core applications

Here’s how you can address any issues brought up during the monitoring process.

Troubleshooting issues found on ASP.NET Core applications such as SDK warnings:

  • Core SDK warnings such as “both 32-bit and 64-bit versions of the .NET Core SDK are installed
  • NET Core SDK is installed in multiple locations
  • No .NET Core SDKs were detected

Use middleware to obtain data from a given app such as:

  • Request (host, pathbase, headers, etc,)
  • Connection (local or remote IP address)
  • Configuration settings

Debug ASP.Net Core applications

  • Debugging on Linux
  • Debugging with Visual Studio debugger

How Sumo Logic can help

As the first enterprise-grade, cloud-based monitoring service, Sumo Logic can help manage and analyze collected data and provide real-time insight on operational or security concerns on all your cloud and internet-connected applications.

Sumo Logic is a user-friendly web application that allows you to start troubleshooting and analyzing just fifteen minutes after you sign up. Our product helps you provide top-notch customer service by providing thorough analytics on whatever applications you run.

Effortlessly scanning your entire infrastructure for operational errors in real-time regardless of log data placement, Sumo Logic’s search language identifies important messages, highlights meaningful data, and executes quality operations regardless of volume.

Sumo Logic helps users search through thousands of logs to identify any issues across multiple servers and categorizes log lines into easy-to-navigate log patterns that are additionally easy to understand. With Sumo Logic, users can spend less time hunting down issues and changes in their applications and more time-solving problems and providing quality customer service.

Try Sumo Logic to monitor your .NET applications for free today.

Complete visibility for DevSecOps

Reduce downtime and move from reactive to proactive monitoring.