53

Raygun APM: Annihilate Performance Issues

 5 years ago
source link: https://www.tuicool.com/articles/hit/Inimu2m
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Today’s web apps are carefully crafted yet unwieldy beasts, and if you're not careful, they can bite your development team with costly errors and slow performance.

In truth, this is to be expected. The sheer complexity of today’s web apps means every piece and component needs to be considered. Everything from under-performing SQL queries to web API calls and even calls to third-party CDNs can cause problems for your app. This means that everyone involved with developing and maintaining your applications (including developers, testers, SysOps, etc.) needs to work together to ensure your application executes at peak performance.

Naturally, your team needs the necessary tools to monitor your application’s health, and Raygun has exactly what you need, especially with the release of Raygun APM .

Raygun is not new in the monitoring space. For years, Raygun has provided world-class and easily integrated tools that developers rely on for finding and analyzing costly application errors, as well as monitoring and reporting on UX and performance issues. With the release of Raygun APM, Raygun has a complete and innovative platform that offers a centralized tool to detect, diagnose, and resolve errors and performance issues, regardless of where they occur or what causes them.

Raygun APM has launched with first-class support for .NET applications, with support for .NET Core as well as other languages and frameworks on the way soon.

Tracking Performance Issues

Slow performance can be attributed to any number of sources, such as slow queries to external APIs, overusing external APIs, and slow tracing and method execution, just to name a few. Trying to pinpoint these issues on your own, or with the wrong tools, can easily lower your team’s productivity.

Raygun APM automatically detects and correctly categorizes these issues, giving you immediate and detailed feedback and insight into your application’s performance.

Ez2mErY.jpg!web

The dashboard gives you an overview of your application’s real-time performance, providing surprisingly deep yet visual analytical information about the requests your application receives and the types of work your application uses (e.g. API calls, methods, and queries) during each request. It highlights your application’s problem points by listing the slowest performing pieces of your application, and the Apdex gives you insight into your users’ satisfaction with the response time of your application.

The issues Raygun APM tracks are generated by a set of rules that you can customize and tailor to your specific needs. For example, if you consider 10 ms to be too long for a SELECT SQL statement to execute, you can configure Raygun APM’s rules to report on all queries that take longer than 10 ms to execute.

7jA7fyA.jpg!web

Raygun APM lets you drill down into the nitty-gritty details of each issue and provides contextual information specific to the type of issue that occurred. For example, the following is a screenshot of the information gathered for a slow-running SQL query.

ueye2un.jpg!web

Not only does Raygun APM provide you the actual query, but it also shows you when it executed slowly, as well as the traces where the issue occurred.

Raygun APM also breaks down each request into its disparate parts, giving you a clear understanding of the performance of each method, query, or other resources used in the request.

3AvAnmm.png!web

Every piece of a request that has any bearing on your application’s performance is captured, catalogued, and available, complete with analytical metrics for your team to dig into. Raygun APM gives you the needle in the haystack of data—it already finds the pain points of your application. All your team has to do is fix them.

Integrating With Your Workflow

Today, software development teams use a variety of services to develop and deploy applications. Think of GitHub and Bitbucket for managing and maintaining your source code, Jira for project management, Slack for communication, and even PagerDuty for incident resolution—these are all services used in modern software development to facilitate a productive team. Naturally, Raygun APM seamlessly integrates with these and many other third-party workflow tools and services.

2ArqIvj.png!web

Imagine inspecting an issue Raygun APM found with your products page and being able to see the source code of the controller’s action method—housed at GitHub or Bitbucket—and creating a Jira issue (or linking to an existing issue) without leaving Raygun APM. Everything you need to identify and assign issues to members of your team is at your fingertips, thus dramatically reducing the Mean Time To Resolution of performance issues and software errors in your applications.

Along with APM, Raygun also offers crash reporting and real user monitoring—together these services comprise the Raygun Platform. Naturally, all the parts of the Raygun Platform combine and share data in a seamless workflow.

Pricing

If you are familiar with other APM solutions, such as New Relic, then you’re aware of the high cost of application performance monitoring. APM providers like New Relic use a per-server pricing structure that can sometimes make it cost-prohibitive to get a complete picture of your applications’ performance.

But modern web development is much more than just code running on servers; we now take advantage of containers and microservices to better compartmentalize and isolate different parts of our applications. Other APM solutions approach containers and microservices in a, once again, cost-prohibitive way. New Relic, for example, does not require a license for each individual container, but their customers must purchase a license for the server those containers run on.

Raygun, however, uses a different pricing model based upon the number of traces they process for your applications. This means you can use Raygun APM on as many servers (both physical and virtual) as you need for as many containers, microservices, and applications as you want to monitor—making it much more cost-effective to get a complete picture of your applications’ performance.

Raygun APM is available as a standalone product, but it's even more cost-effective to purchase it as a part of the Raygun Platform. With the Raygun Platform, you get access to crash reporting, real user monitoring, and performance monitoring all working together.

Supporting .NET

There are many web development platforms available, and after all these years, PHP still reigns supreme. But .NET is the platform used in business environments, and with the cross-platform release of .NET Core, .NET's popularity is rapidly growing outside of the business sector. But unfortunately, not many APM providers focus on .NET, leaving a massive hole for Raygun to fill—and they certainly fill it.

With the launch of Raygun APM, .NET developers can leverage the power of a world-class APM for monitoring the performance of their applications. Whether your .NET application runs on your own hardware or in an Azure Web App instance, you can rely upon Raygun APM to deliver accurate and detailed performance data.

Currently, Raygun APM only supports .NET (non-Core) applications, but support for .NET Core and other non-Microsoft languages and platforms is coming soon.

My Experience

I took the opportunity to briefly test Raygun APM on a live, non-demo site that I had a hand in building. I knew beforehand that the application had performance issues. It was built under a tight deadline, and optimization wasn’t much of a priority… until my co-workers and I were told to optimize it. It runs on an on-prem (on-premise) server.

Setting up Raygun APM was extremely simple. Here are the steps I took:

  • downloaded and installed the Raygun APM client on the server
  • entered and registered the API key
  • attached the client to the application’s App Pool
  • recycled the App Pool

I started seeing trace data in the dashboard within a minute. Having intimate knowledge of the application, I wasn’t surprised to see that Raygun APM identified the poorly performing parts of the application. I was, however, very surprised at the amount of detail it provided. I always knew that certain methods and processes were slow, but Raygun APM allowed me to drill down into the details and pinpoint the exact methods and API calls slowing down my application.

I did notice a considerable hit to the application’s performance while the Raygun APM client was attached to the App Pool. However, this performance hit was not noticeable in the optimized parts of the application

Therefore, Raygun APM is certainly a tool you will want to leverage in a testing environment before using it to capture and analyze applications in production. Doing so gives you the ability to fix the performance issues before the application is even deployed.

Conclusion

Raygun APM is a fantastic service you can use to monitor your .NET application’s performance. It automatically finds the performance issues for you, and with its tight integration with other tools and services you already use, you and your team will be able to quickly fix those issues. Not only that, but it comes at a lower cost than most other APM services on the market!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK