3.6 Business Monitor

How to dynamically track usage patterns of a product or an IT service on how the features and components of the product or IT services are used?

3.6.1 Problem

A Business Monitor looks to help provide insights to the product business owner or IT service business owner on its customer usage patterns to determine which features are heavily used and determine any potential hotspots in the system or charge its customers for the resources they use or detect (possibly indirectly) user satisfaction with the performance or functionality of the system.

To monitor customer usage patterns, it is important to track details of business events that occur as part of the normal operation of the system, together with useful information about that event. For example, in an ecommerce site it would be useful to record the order number and value of each order that is placed. These are typically informational events that are used to collect data about the way the system is used.

To monitor user satisfaction, it may be useful to track details of runtime events that occur, and useful information about that event such as the location or data store used and the response time for access to the data store. These are also informational events that can provide additional insight into the normal operation of the system. The event should not include any sensitive information such as credentials, or any other data that might enable an attacker obtaining the logs to compromise the system.

3.6.2 Solution

  1. Collect the details the business KPIs the business monitor needs to enable. Examples of business KPIs:

    1. Dwell Time trends of customer engagements on a product feature

    2. Customer usage patterns of an IT service or product

    3. Average response time across different geographies

    4. Conversion rate of trial to purchased users

    5. Metering of resources for billing

  2. Instrument the product or IT service with <AutonomicInstrumentation> pattern. The instrumentation design should have the following characteristics:

  • non-invasive: ability to turn on or off globally with a simple switch

  • consistent: clean and consistent way of recording across the service. It should be contextual.

  • actionable: the idea of instrumentation is to enable appropriate action by the audience it is meant to deliver. Therefore, it should serve the right target audience whether developers or operations or business.

  1. Based on the telemetry persisted in the database with <AutonomicInstrumentation>, enable appropriate business rules for dynamic analysis and visualization related to business KPIs

3.6.3 Application

A business telemetry system is typically independent of any specific application or technology; so it expects information to follow a specific format that’s usually defined by a schema. The schema effectively specifies a contract that defines the data fields and types that the telemetry system can ingest. The schema should be generalized to allow for data arriving from a range of platforms and devices.

3.6.4 Examples / Use-cases

    1. An example of metering and billing telemetry is OpenStack’s Telemetry Service. It reliably collects data on the utilization of the physical and virtual resources comprising deployed clouds, persist these data for subsequent retrieval and analysis, and trigger actions when defined criteria are met.

    2. An example of highly scalable business and operational telemetry platform is Netflix’s Atlas