The pursuit of data-driven decision making has put tracking, logging, and monitoring forefront in the minds of product, sales, and marketing teams. Engineers are generally familiar with gathering and tracking data to maintain and optimize infrastructure and application performance, but with the discovery of the power of data, the other divisions now clamor for the latest tools and instrumentation. Quite often the expense of implementation is undersold as merely placing a tag on your site or adding a library and doesn’t take into account the additional expense of tracking unique aspects of your application. To complicate matters, there is usually quite a bit of confusion on the types of data being captured by the tools a company already has in place.
While various products can span multiple areas of tracking and vendors continue to deliver new methods for visualizing data, the commonly used tools for capturing data can be classified in 5 categories:
- Infrastructure Monitoring
- Application Monitoring
- Request Logging
- Event Tracking
- User Recording
1. Infrastructure Monitoring
What it is: Information about your individual servers and how they are handling the load of your application and requests. The data includes CPU and memory usage, load, disk I/O, and memory I/O aggregated for the system or displayed individually by process.
Why you want it: Understanding how your infrastructure performs allows the engineering team to proactively address issues, set alerts, assess how to scale the environment, and optimize performance.
Level of Effort: Low-Medium
2. Application Monitoring
What it is: Information about the performance of your application. The data includes transaction response times, throughput, and error rates. A transaction is the work your application did in response to a request from a user and the response time is comprised of any network latency, application processing time, and read/write access to a database or cache.
Where it comes from: An agent is installed on each application server or a SDK is used on native applications. Agentless monitoring solutions exist for applications that support client requests.
Why you want it: Application monitoring enables the engineering team to diagnose performance issues and track errors within an application. In addition to response time, detailed visibility is given into slow code execution via stack traces and slow database queries are tracked and logged for investigation. Throughput visualization provides insight on how the application performs under various loads and client side monitoring can demonstrate geographical variances for web applications.
Level of Effort: Low-Medium
3. Request Logs
What it is: Data contained in requests made to the server are logged in files. Referrer, remote address, user agent, header data, status codes, response data, etc. can be captured.
Where it comes from: An application module, library, or SDK handles recording the requests and formatting the data being logged.
Why you want it: Almost any data within the stack can be logged; from server, application, and client performance to user activities. Log data can be filtered, aggregated, and then analyzed via visualization tools to assess most aspects of your product and underlying infrastructure.
Level of Effort: Low (implementing logging library)
High (implementing filtration and visualization)
4. Event Tracking
What it is: As a user interacts with a website or application their actions can trigger events. For example, an application can be setup so that when a user clicks submit on a registration form they trigger the “registration” event which is then captured by the tracking service. Data includes any events that have been defined for the application.
Why you want it: Event data is valuable to the product and marketing team for understanding how users navigate through an application as well as any areas of friction in the UX (user experience). Generally the event data is visualized within UX flows as a funnel, with the wide top of the funnel representing the area of the application where most users start their interaction and the narrow part at the bottom of the funnel being the desired user action.
Level of Effort: Low (pageviews)
High (full funnel tracking)
5. User Recording
What it is: Session recordings and/or heat maps of cursor placement, clicks, and scroll behaviors.
Why you want it: These tools can give insight into how users are interacting with the pages of your application between clicks to aid in identifying UX friction. Heat maps indicate areas on your application with the highest frequency of activity, while recordings can be invaluable to identify how a set of users experience the application.
Level of Effort: Low
Amidst the data revolution, a multitude of analytics, monitoring and visualization solutions have come out in the market. Vendors generally provide core features that are similar while having unique features that cater to certain use cases and differentiate from competitors. It is quite common to see Product, Marketing, and Sales chase the latest features of various platforms and end up with a multitude of portals to visualize data. Service providers generally store your data in their own infrastructure and multiple analytics tools means your data will be spread across disjointed data stores. Consolidation and a centralized view are paramount to maintaining a holistic view your entire team can work from. With the ability to gather data across the various layers of your product it is critical to understand what each product can deliver and have a well-thought analytics strategy to keep each division in the organization and the view of your application and infrastructure connected.
About the Author
Tom Overton has leveraged full-stack technical experience to run engineering teams for companies including Technicolor, VMware, and VentureBeat.