How to Keep Your eCommerce Retail Applications Open

In my last blog on preparing for Black Friday, I teased how easy it is to gain insight into the state of your eCommerce retail applications and all its components with an enterprise observability platform. As promised, I’ve set up OpenCart with Instana’s AutoTrace instrumentation on a small demo environment, which we will walk through from infrastructure to end user monitoring. As you read this, keep in mind that I’ve made no changes to OpenCart itself, but Instana’s AutoTrace was able to provide me:

  • Full request and response tracing between the end user, the application, and any of its external services. This includes things like logs of every database query made to its database, the health of the infrastructure and a mapping of all the services.
  • Monitoring of the end user device, including asset timings and JavaScript errors.
  • Business relevant SLAs and dashboards generated from application health and metrics.

To start, I spun up a fresh virtual machine, installed the Instana Agent, then installed Apache2 HTTPD, MariaDB and OpenCart. Automatically, Instana was able to detect and configure monitoring for all the necessary components. By the time I was finished with OpenCart’s installer, I had a handy set of dashboards and reports ready for me in the Instana UI.

The first dashboard was for the host itself. This provided me a “table stakes” view of how the virtual machine was running, and any critical services which were present like Apache and MariaDB.

eCommerce Retail Applications Screenshot: The first dashboard was for the host, providing me a "table stakes" view of how the virtual machine was running, and any critical services which were present.

I drilled into the Apache dashboard, which provided a service health overview with some key statistics.

eCommerce Retail Applications Screenshot: the Apache dashboard, which provided a service health overview with some key statistics

I saw that we are running a PHP application inside Apache via mod_php, and we generated a service overview automatically. This overview picked up all the activity that was generated when I ran through the installation process for OpenCart.

If these high-level statistics weren’t enough and I wanted to focus on a set of problematic requests, I could use this page as a springboard into Instana’s analytics platform.

eCommerce Retail Applications Screenshot: this overview provides a springboard into Instana's analytics platform

eCommerce Retail Applications Screenshot: Instana's analytics platform

This page lets me filter, group and analyze traces that were sent to Instana along almost any dimension I need. For example, here’s a detailed look at what happened when I loaded the admin page.

eCommerce Retail Applications Screenshot: what happened when the admin page loaded

More importantly, since Instana correlates everything from the infrastructure to end user activity, I can see the process and host that generated this response.

eCommerce Retail Applications Screenshot: the process and host that generated this response

While the preceding views are great for looking at a single service or single host, many modern eCommerce sites have scaled past the point of running as a single service on a single host. Instead, they consist of fleets of servers, containers, applications, and various third-party services working in conjunction to deliver the expected experience to customers, partners, and internal stakeholders. These experiences differ based off each stakeholder’s function and how they expect the software to help them achieve their goals.

To sort, manage and monitor these expectations, Instana offers Application Perspectives. Application Perspectives allow you to use Instana’s query builder and aggregate data to construct different views of how your services interact and communicate. For example, I’ve seen and helped configure perspectives to:

  • Track the health of different datacenter spread out geographically.
  • Track the health of different business systems as they all interact with a single master database.
  • Track key customers and their critical third-party integrations in multi-tenant applications.
  • Provide dashboards for each development team to get a quick overview of how the services and technology they are responsible for is functioning.

These perspectives scale up as you add data to Instana and grow the scope and scale of your monitored services. As a small example, we can look at one generated based on the data from our OpenCart installation.

eCommerce Retail Applications Screenshot: an Application Perspective based on the data from our OpenCart installation

This looks like the service dashboard, but there is a key difference. We’ve turned our attention from the individual endpoints to a whole collection of services. This enables us to do things like create this dependencies graph.

eCommerce Retail Applications Screenshot: an comprehensive dependencies graph

Even on a very simple setup, we still can find some interesting dependencies and answer some probing questions. For instance, where are we talking with www.opencart.com? Because Instana links everything together, I’m able to quickly jump from the node in the graph straight into one of the traces that made the request.

page10image58464640 page10image58462912 eCommerce Retail Applications Screenshot: one of the traces that made the request

At some point, every website needs to be rendered in a web browser. End user monitoring offers us a way to ensure that our websites are being rendered as expected, free from errors or issues like slow resource timings. Instana’s end user monitoring come with the added benefit of linking actions taken during a user session to backend responses.

To show this off, I used the built-in template editor in OpenCart to add the necessary JavaScript snippet to every page.

eCommerce Retail Applications Screenshot: using the built-in template editor in OpenCart to add a JavaScript snippet to every page

eCommerce Retail Applications Screenshot: JavaScript snippet added to every page

Back in Instana, we’ve generated another dashboard showing all the high-level metrics of interest. We are able to capture JavaScript errors, the number of pages viewed, load times and geographical information. Like with service and application perspectives, we can jump from this view to look at a specific request.

eCommerce Retail Applications Screenshot: another dashboard showing high-level metrics of interest

 

Now we can see all the timing information, JavaScript errors, and any metadata we want to set. It’s also possible to jump to any backend traces from this view, which is very helpful if the issues in the browser are being caused by a poorly performing backend.

eCommerce Retail Applications Screenshot: all the timing information, JavaScript errors and any metadata we want to set

Note: like with the rest of Instana, the backend trace has links back to the end user monitoring beacon which initiated it. Combined with the infrastructure overview, we have a full insight into every request made from the underlying hardware to the actions taken in the recipient’s browser.

eCommerce Retail Applications Screenshot: full insight into every request made from the underlying hardware to the actions taken in the recipient’s browser

For any eCommerce retailer, understanding the health of business means having a holistic understanding of your site and making sure that everyone understands your site’s status. Dashboards are a powerful tool in ensuring that happens quickly and effectively.

Instana’s dashboard supports the common “table stakes” asks of merging infrastructure, application and end user monitoring data into a single custom view. It can also create and display service level indicators. To demonstrate this, I turned off the database for our demo site after starting a load test.

eCommerce Retail Applications Screenshot: I turned off the database for our demo site after starting a load test to display SLIs

The SLI tracked the errors over the time window and gave us a clear indicator of how well the site was performing versus the business expectation.

I hope this demo was helpful as we approach the most critical time for your eCommerce retail applications and all its components. Get your hands dirty in Play With, the Instana observability guided demo environment, to learn more about using Instana yourself.

Play with Instana’s APM Observability Sandbox

Announcement
I am thrilled to share that Instana has been recognized as a Top 3 observability platform by EMA.     Download the full EMA Top 3 Enterprise Decision Guide 2021. Built for...
|
Announcement
Instana, an IBM company, has been recognized as a Customers’ Choice in the 2021 Gartner Peer Insights ‘Voice of the Customer’: Application Performance Monitoring, and we are thrilled. Our team takes great...
|
Conceptual, Thought Leadership
With the leaves beginning to change, the days shortening, and Starbucks bringing back The One True latte flavor, autumn is clearly here. For some, this brings a mad scramble before the Black...
|

Start your FREE TRIAL today!

Instana, an IBM company, provides an Enterprise Observability Platform with automated application monitoring capabilities to businesses operating complex, modern, cloud-native applications no matter where they reside – on-premises or in public and private clouds, including mobile devices or IBM Z.

Control hybrid modern applications with Instana’s AI-powered discovery of deep contextual dependencies inside hybrid applications. Instana also gives visibility into development pipelines to help enable closed-loop DevOps automation.

This provides actionable feedback needed for clients as they to optimize application performance, enable innovation and mitigate risk, helping Dev+Ops add value and efficiency to software delivery pipelines while meeting their service and business level objectives.

For further information, please visit instana.com.