When you understand that performance is key to a great user experience, you need tools that will do one thing very well, and that's to measure the user's perceived load time. There are many performance rules out there, but ultimately, load time is the only performance metric that matters. How fast is fast enough for a web application? Here's a quick overview of key performance metrics :. Because of this, the importance of performance is increasing, and engineering teams need to treat performance as a feature.
The goal of a performance load test is to understand how your applications behave under heavy load conditions. To get started, you need to understand the baseline performance of your application and know that the performance of each transaction is unique.
For example, in an e-commerce application, a home page transaction is likely highly cached and very fast, whereas a checkout transaction is more complicated and must talk to a payment service, shipping service, etc. To ensure that users have a great experience, you must test the most common flows for your users and understand performance both in the browser and on the server. But before jumping into load-testing tools, don't make the mistake of overlooking how your application performs with just one user.
Believe it or not, most folks skip the most obvious place to start with performance—verifying that their application can perform well for one user before even starting concurrent load or stress testing. James Pulley , practice manager of performance engineering and test at TEKsystems Global Services and a podcaster at PerfBytes , reminded me in our last TestGuild performance podcast that most engineers focus only on how their applications perform for many concurrent users.
How many, though, can answer whether the app scales for only one person? You have to ask that question before even thinking about a load test. Most modern applications spend more time in the browser than on the server side. These feature-rich front ends add a new layer that needs to be measured.
So measuring the rendering time of an application that is under test on a client's local machine becomes critical. This open-source tool analyzes your website's speed and performance based on performance best practices and timing metrics. You can analyze one site, analyze and compare multiple sites, or let your continuous integration server break your build when you have exceeded your performance budget.
It is not always possible for teams to modify the applications to optimize client-side performance. When getting started with performance testing, don't overlook another asset your software team probably already has—a functional testing script. Some open-source functional test tools can be leveraged to gather some high-level performance info that should help your team. Once you have a good understanding of your client-side front-end performance, it's time to move on to some server-side load testing tools.
Apache Bench and Siege are great for quick load tests from a single endpoint. If you just need to get a sense of the requests per second for an endpoint, these are great solutions.
A more advanced approach—and my personal preference—is Locust. I've included it in the list below, along with a few other tools to consider. While you have many open-source tools from which to choose for performance management, it's not always wise to build and manage your own performance testing tools and infrastructure. You may determine that it's not worth the engineering resources required to load test when you can pay for a proven commercial product or service.
Such tools let you more easily build, execute, and analyze performance tests, but you have to have the budget pay for it. The main requirement is for the app to have a direct or indirect line of sight to the Applications Insights ingestion endpoint hosted with an Internet-facing address.
You can then add telemetry or enrich an existing telemetry collection. Runtime monitoring is another easy way to get started.
The telemetry that is collected must be controlled through configuration files. For example, you can include runtime methods that enable tools such as Application Insights Status Monitor to deploy the SDKs into the correct folder and add the right configurations to begin monitoring.
Like Application Insights, Log Analytics provides tools for analyzing data across sources , creating complex queries, and sending proactive alerts on specified conditions. You can also view telemetry in the Azure portal. Log Analytics adds value to existing monitoring services such as Azure Monitor and can also monitor on-premises environments.
You can also use cross-resource queries to analyze the telemetry gathered by Application Insights and Log Analytics in a single query. For example, Azure Monitor alerts on platform-level metrics such as CPU utilization, while Application Insights alerts on application-level metrics such as server response time.
Azure Monitor alerts on new events in the Azure Activity Log, while Log Analytics can issue alerts about metrics or event data for the services configured to use it. Unified alerts in Azure Monitor is a new, unified alerting experience in Azure that uses a different taxonomy. This article describes conveniently available monitoring options with popular features, but you have many choices, including the option to create your own logging mechanisms.
A recommended practice is to add monitoring services as you build out tiers in a solution. Here are some possible extensions and alternatives:. This scenario focuses on PaaS solutions for monitoring in large part because they conveniently handle availability and scalability for you and are backed by service-level agreements SLAs.
Application Insights has limits on how many requests can be processed per second. If you exceed the request limit, you may experience message throttling. To prevent throttling, implement filtering or sampling to reduce the data rate. High availability considerations for the app you run, however, are the developer's responsibility. For information about scale, for example, see the Scalability considerations section in the basic web application reference architecture.
After an app is deployed, you can set up tests to monitor its availability using Application Insights. Sensitive information and compliance requirements affect data collection, retention, and storage. Learn more about how Application Insights and Log Analytics handle telemetry. Monitoring charges can add up quickly. Consider pricing up front, understand what you are monitoring, and check the associated fees for each service.
Azure Monitor provides basic metrics at no cost, while monitoring costs for Application Insights and Log Analytics are based on the amount of data ingested and the number of tests you run. To help you get started, use the pricing calculator to estimate costs. Change the various pricing options to match your expected deployment. Telemetry from Application Insights is sent to the Azure portal during debugging and after you have published your app.
For testing purposes and to avoid charges, a limited volume of telemetry is instrumented. To add more indicators, you can raise the telemetry limit. For more granular control, see Sampling in Application Insights. After deployment, you can watch a Live Metrics Stream of performance indicators. For more in-depth monitoring, the Pro plan and Enterprise require custom price quotes based on your specific needs.
Visit NewRelic. StatusCake offers a slew of monitoring features presented in an easy-to-use format. It covers everything from uptime to server monitoring to page speed tracking.
StatusCake suits the most for small to mid-sized businesses seeking straightforward yet reliable monitoring tools. The Basic plan is free and offers 10 uptime monitors with five-minute tests. Visit StatusCake. Site24x7 offers in-depth monitoring tools for DevOps and IT operations, covering the gamut of availability monitoring, website traffic monitoring, cloud monitoring, and network operations.
Any size business can benefit from Site24x7. A slightly greater emphasis is placed on website monitoring, but app devs could still make use of it. A day trial is available across all plans. Each plan offers similar features with a variation in the number of monitors allowed, servers covered, pageviews supported, and support offered.
Visit Site24x7. However, there is a free day trial available. Visit SolarWinds. It allows for fast uptime checks and supports several integrations. Pricing is based on requests made. If you have more extensive needs, pricing is still affordable. Visit Updown. Another tool to consider is Uptrends , which offers a full scope website monitoring and performance service.
You can use it to monitor your website, server, and API. Any website owner. Pricing is within the budget range of most developers, and features are intuitive enough for beginners. There is a day free trial available. Advanced monitoring plans are available with support for multi-browser monitoring, transaction recording, and API monitoring. Visit UpTrends. SmartBear AlertSite provides synthetic monitoring tools you can rely on for accurate reporting about your websites, apps, and APIs.
Visit SmartBear. Sematext differs from most other monitoring services because instead of a single product, they offer a comprehensive suite of services, including infrastructure and application performance monitoring and log management solutions.
Sematext is good for everybody from small to large-sized companies that need reliable monitoring. Visit Sematext. Using a website monitoring tool can tell you a lot about your website, keep you informed of issues, and empowers you to make better decisions about improving website performanc e in the future.
You only stand to make your website better. So, why not invest in these tools? Disclosure : This content is reader-supported. If you click on our links, we may earn a commission.
Twitter Facebook. Last updated: Dec 20, 16 Comments.
0コメント