You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Problem Statement

There are multiple parties like event-driven workflows systems, monitoring system, usage & billing system would be interested in getting notification of a events in the cloud in near instantaneous manner. In CloudStack event could be state change of virtual or psychical resources, an action performed by user (action events), policy based events (alerts). Currently CloudStack has no notification mechanism to let the interested parties know of the occurrence of an event. Polling by invoking listEvents and listAlerts is the only way to know occurrence of events. Also there are no externsion hooks one can implement to get the event notification. Though there is StateListener interface which has both pre and post state transition event call back methods, only user VM resource has state listener implemented. Most of the resorces volume, network, nic, etc has states but does not have state machine and StateListener. So for a component interested getting notification need to get tightly coupled into orchestration workflow. For e.g, code to generate usage date (usage events) is spread across the orchestration components.

Proposal

  • introduce a state machine for all the virtual and physical resources which CloudStack manages and generate an event on state transition
  •  
  • Introduce a light weight event bus
  • wildcard subscription

Use cases

  • Usage/billing engines
  • AMQP
  • CMDB
  • pub/sub notification service

Discussion topics

Implementation

  • No labels