Usage Monitoring (Erl, Naserpour)
How can IT resource usage be measured?
ProblemIT resources that are shared can generate a variety of runtime scenarios that, if not tracked and responded to, can cause numerous failure, performance, and security concerns and can further make usage-based reporting and billing impossible.
SolutionCloud usage monitors are utilized to track and measure the quantity and nature of runtime IT resource usage activity.
ApplicationVarious specialized cloud usage monitors can be incorporated into a cloud architecture, most of which will interact with other IT resources to transfer or process collected usage data.
MechanismsAudit Monitor, Automated Scaling Listener, Cloud Usage Monitor, Load Balancer, Pay-Per-Use Monitor, SLA Monitor
Compound PatternsBurst In, Burst Out to Private Cloud, Burst Out to Public Cloud, Elastic Environment, Infrastructure-as-a-Service (IaaS), Multitenant Environment, Platform-as-a-Service (PaaS), Private Cloud, Public Cloud, Resilient Environment, Software-as-a-Service (SaaS)
When making IT resources available for access and shared usage by multiple cloud consumers, the manner in which actual usage occurs can be highly unpredictable. IT resources may be subject to high usage volumes by individual cloud consumers performing a large amount of runtime processing or high volumes of cloud service consumers concurrently accessing the virtualized instances of the IT resources. Either way, infinite runtime scenarios can develop, leading to possible runtime exception conditions, security breaches, and other types of runtime failure.
Furthermore, for IT resources and cloud services to be commercialized in support of the Pay-as-You-Go pattern, the cloud architecture needs to support the ability for runtime usage to be accurately measured.
IT artifacts and systems capable of monitoring, collecting and processing usage data and metrics are incorporated into the cloud architecture to enable the inherent measured usage characteristic of cloud environments, and to further offer a range of specialized usage monitoring and data collection functions.
Figure 1 - A usage monitor measures IT resource use and collects corresponding usage data that is stored and made available for reporting purposes.
This pattern is fundamentally applied via the use of the cloud usage monitor mechanism. This broad, infrastructure-level mechanism encompasses a variety of specialized monitoring-based mechanisms that fulfill different forms of usage monitoring requirements and can be implemented as a monitoring agent, resource agent, or polling agent.
Regardless of which type of cloud usage monitor is used, there are common components that can accompany the implementation of a monitoring IT resource:
- Usage Monitoring Station - A system that the cloud usage monitor directly communicates with and to which it may transmit collected usage data.
- Usage Database - A repository used to store usage data received by usage monitoring stations or directly by cloud usage monitors.
- Data Saver - A middleware component used to save and update collected usage data.
- Usage Reporter - A middleware component used to retrieve usage data from the usage database and present it in human-readable reports. The usage reporter is generally integrated with a usage and administration portal.
- Custom Reporter - A tool used to design custom usage reports.
NIST Reference Architecture Mapping
This pattern relates to the highlighted parts of the NIST reference architecture, as follows: