Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Nick Barcet
On 04/23/2012 10:45 PM, Doug Hellmann wrote:
 
 
 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
 brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.com wrote:
 
 Doug,
 
 Do we mirror the table structure of nova, etc. and add
 created/modified columns? 
 
 
 Or do we flatten into an instance event record with everything?  
 
 
 I lean towards flattening the data as it is recorded and making a second
 pass during the bill calculation. You need to record instance
 modifications separately from the creation, especially if the
 modification changes the billing rate. So you might have records for:
 
 created instance, with UUID, name, size, timestamp, ownership
 information, etc.
 resized instance, with UUID, name, new size, timestamp, ownership
 information, etc.
 deleted instance, with UUID, name, size, timestamp, ownership
 information, etc.
 
 Maybe some of those values don't need to be reported in some cases, but
 if you record a complete picture of the state of the instance then the
 code that aggregates the event records to produce billing information
 can use it to make decisions about how to record the charges.
 
 There is also the case where an instance is still no longer running but
 nova thinks it is (or the reverse), so some sort of auditing sweep needs
 to be included (I think that's what Dough called the farmer but I
 don't have my notes in front of me).

When I wrote [1], one of the things that I never assumed was how agents
would collect their information. I imagined that the system should allow
for multiple implementation of agents that would collect the same
counters, assuming that 2 implementations for the same counter should
never be running at once.

That said, I am not sure an event based collection of what nova is
notifying would satisfy the requirements I have heard from many cloud
providers:
- how do we ensure that event are not forged or lost in the current nova
system?
- how can I be sure that an instance has not simply crashed and never
started?
- how can I collect information which is not captured by nova events?

Hence the proposal to use a dedicated event queue for billing, allowing
for agents to collect and eventually validate data from different
sources, including, but not necessarily limiting, collection from the
nova events.

Moreover, as soon as you generalize the problem to other components than
just Nova (swift, glance, quantum, daas, ...) just using the nova event
queue is not an option anymore.

[1] http://wiki.openstack.org/EfficientMetering

Nick



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Sandy Walsh
I think we have support for this currently in some fashion, Dragon?

-S



On 04/24/2012 12:55 AM, Loic Dachary wrote:
 Metering needs to account for the volume of data sent to external network 
 destinations  ( i.e. n4 in http://wiki.openstack.org/EfficientMetering ) or 
 the disk I/O etc. This kind of resource is billable.
 
 The information described at http://wiki.openstack.org/SystemUsageData will 
 be used by metering but other data sources need to be harvested as well.

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Monsyne Dragon
Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
The event has the somewhat generic name of 'compute.instance.exists'  and is 
emitted on an periodic basis, currently by a cronjob. 
Currently, we only populate bandwidth data from XenServer, but if the hook is 
implemented for  the kvm, etc drivers, it will be picked up automatically for 
them as well. 

Note that we could report other metrics similarly. 


On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:

 I think we have support for this currently in some fashion, Dragon?
 
 -S
 
 
 
 On 04/24/2012 12:55 AM, Loic Dachary wrote:
 Metering needs to account for the volume of data sent to external network 
 destinations  ( i.e. n4 in http://wiki.openstack.org/EfficientMetering ) or 
 the disk I/O etc. This kind of resource is billable.
 
 The information described at http://wiki.openstack.org/SystemUsageData will 
 be used by metering but other data sources need to be harvested as well.

--
Monsyne M. Dragon
OpenStack/Nova 
cell 210-441-0965
work x 5014190


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Loic Dachary
On 04/24/2012 03:06 PM, Monsyne Dragon wrote:
 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
 The event has the somewhat generic name of 'compute.instance.exists'  and is 
 emitted on an periodic basis, currently by a cronjob. 
 Currently, we only populate bandwidth data from XenServer, but if the hook is 
 implemented for  the kvm, etc drivers, it will be picked up automatically for 
 them as well. 

 Note that we could report other metrics similarly. 
Hi,

Thanks for clarifying this. So you're suggesting that the metering agent should 
collect this data from the nova queue instead of extracting it from the system 
(interface, disk stats etc.) ? And for other openstack components ( as Nick 
Barcet suggests below ) the metering agent will have to find another way. Or do 
you have something else in mind ?

Cheers

On 04/24/2012 12:17 PM, Nick Barcet wrote:
 On 04/23/2012 10:45 PM, Doug Hellmann wrote:
  
  
  On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
  brian.sch...@nimbisservices.com
  mailto:brian.sch...@nimbisservices.com wrote:
  
  Doug,
  
  Do we mirror the table structure of nova, etc. and add
  created/modified columns? 
  
  
  Or do we flatten into an instance event record with everything?  
  
  
  I lean towards flattening the data as it is recorded and making a second
  pass during the bill calculation. You need to record instance
  modifications separately from the creation, especially if the
  modification changes the billing rate. So you might have records for:
  
  created instance, with UUID, name, size, timestamp, ownership
  information, etc.
  resized instance, with UUID, name, new size, timestamp, ownership
  information, etc.
  deleted instance, with UUID, name, size, timestamp, ownership
  information, etc.
  
  Maybe some of those values don't need to be reported in some cases, but
  if you record a complete picture of the state of the instance then the
  code that aggregates the event records to produce billing information
  can use it to make decisions about how to record the charges.
  
  There is also the case where an instance is still no longer running but
  nova thinks it is (or the reverse), so some sort of auditing sweep needs
  to be included (I think that's what Dough called the farmer but I
  don't have my notes in front of me).
 When I wrote [1], one of the things that I never assumed was how agents
 would collect their information. I imagined that the system should allow
 for multiple implementation of agents that would collect the same
 counters, assuming that 2 implementations for the same counter should
 never be running at once.

 That said, I am not sure an event based collection of what nova is
 notifying would satisfy the requirements I have heard from many cloud
 providers:
 - how do we ensure that event are not forged or lost in the current nova
 system?
 - how can I be sure that an instance has not simply crashed and never
 started?
 - how can I collect information which is not captured by nova events?

 Hence the proposal to use a dedicated event queue for billing, allowing
 for agents to collect and eventually validate data from different
 sources, including, but not necessarily limiting, collection from the
 nova events.

 Moreover, as soon as you generalize the problem to other components than
 just Nova (swift, glance, quantum, daas, ...) just using the nova event
 queue is not an option anymore.

 [1] http://wiki.openstack.org/EfficientMetering

 Nick




 On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:

 I think we have support for this currently in some fashion, Dragon?

 -S



 On 04/24/2012 12:55 AM, Loic Dachary wrote:
 Metering needs to account for the volume of data sent to external network 
 destinations  ( i.e. n4 in http://wiki.openstack.org/EfficientMetering ) 
 or the disk I/O etc. This kind of resource is billable.

 The information described at http://wiki.openstack.org/SystemUsageData will 
 be used by metering but other data sources need to be harvested as well.
 --
   Monsyne M. Dragon
   OpenStack/Nova 
   cell 210-441-0965
   work x 5014190


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


-- 
Loïc Dachary Chief Research Officer
// eNovance labs   http://labs.enovance.com
// ? l...@enovance.com  ? +33 1 49 70 99 82

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Monsyne Dragon

On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
The event has the somewhat generic name of 'compute.instance.exists'  and is 
emitted on an periodic basis, currently by a cronjob.
Currently, we only populate bandwidth data from XenServer, but if the hook is 
implemented for  the kvm, etc drivers, it will be picked up automatically for 
them as well.

Note that we could report other metrics similarly.


Hi,

Thanks for clarifying this. So you're suggesting that the metering agent should 
collect this data from the nova queue instead of extracting it from the system 
(interface, disk stats etc.) ? And for other openstack components ( as Nick 
Barcet suggests below ) the metering agent will have to find another way. Or do 
you have something else in mind ?

If it's something we have access to, we should emit it in those usage events.  
As far as the other components, glance is already using the same notification 
system.  (there was a thread awhile back about putting it into 
openstack.common)  It would be nice to have all of the components using it.

Cheers

On 04/24/2012 12:17 PM, Nick Barcet wrote:

On 04/23/2012 10:45 PM, Doug Hellmann wrote:




 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
  wrote:

 Doug,

 Do we mirror the table structure of nova, etc. and add
 created/modified columns?


 Or do we flatten into an instance event record with everything?


 I lean towards flattening the data as it is recorded and making a second
 pass during the bill calculation. You need to record instance
 modifications separately from the creation, especially if the
 modification changes the billing rate. So you might have records for:

 created instance, with UUID, name, size, timestamp, ownership
 information, etc.
 resized instance, with UUID, name, new size, timestamp, ownership
 information, etc.
 deleted instance, with UUID, name, size, timestamp, ownership
 information, etc.

 Maybe some of those values don't need to be reported in some cases, but
 if you record a complete picture of the state of the instance then the
 code that aggregates the event records to produce billing information
 can use it to make decisions about how to record the charges.

 There is also the case where an instance is still no longer running but
 nova thinks it is (or the reverse), so some sort of auditing sweep needs
 to be included (I think that's what Dough called the farmer but I
 don't have my notes in front of me).


When I wrote [1], one of the things that I never assumed was how agents
would collect their information. I imagined that the system should allow
for multiple implementation of agents that would collect the same
counters, assuming that 2 implementations for the same counter should
never be running at once.

That said, I am not sure an event based collection of what nova is
notifying would satisfy the requirements I have heard from many cloud
providers:
- how do we ensure that event are not forged or lost in the current nova
system?
- how can I be sure that an instance has not simply crashed and never
started?
- how can I collect information which is not captured by nova events?

Hence the proposal to use a dedicated event queue for billing, allowing
for agents to collect and eventually validate data from different
sources, including, but not necessarily limiting, collection from the
nova events.

Moreover, as soon as you generalize the problem to other components than
just Nova (swift, glance, quantum, daas, ...) just using the nova event
queue is not an option anymore.

[1] http://wiki.openstack.org/EfficientMetering

Nick






On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:



I think we have support for this currently in some fashion, Dragon?

-S



On 04/24/2012 12:55 AM, Loic Dachary wrote:


Metering needs to account for the volume of data sent to external network 
destinations  ( i.e. n4 in http://wiki.openstack.org/EfficientMetering ) or 
the disk I/O etc. This kind of resource is billable.

The information described at http://wiki.openstack.org/SystemUsageData will be 
used by metering but other data sources need to be harvested as well.


--
Monsyne M. Dragon
OpenStack/Nova
cell 210-441-0965
work x 5014190


___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp




--
Loïc Dachary Chief Research Officer
// eNovance labs   http://labs.enovance.comhttp://labs.enovance.com/
// ✉ l...@enovance.commailto:l...@enovance.com  ☎ +33 1 49 70 99 82



Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Loic Dachary
On 04/24/2012 04:45 PM, Monsyne Dragon wrote:

 On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

 On 04/24/2012 03:06 PM, Monsyne Dragon wrote:
 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each 
 instance The event has the somewhat generic name of 
 'compute.instance.exists'  and is emitted on an periodic basis, currently 
 by a cronjob. 
 Currently, we only populate bandwidth data from XenServer, but if the hook 
 is implemented for  the kvm, etc drivers, it will be picked up 
 automatically for them as well. 

 Note that we could report other metrics similarly. 
 Hi,

 Thanks for clarifying this. So you're suggesting that the metering agent 
 should collect this data from the nova queue instead of extracting it from 
 the system (interface, disk stats etc.) ? And for other openstack components 
 ( as Nick Barcet suggests below ) the metering agent will have to find 
 another way. Or do you have something else in mind ?

 If it's something we have access to, we should emit it in those usage events. 
  As far as the other components, glance is already using the same 
 notification system.  (there was a thread awhile back about putting it into 
 openstack.common)  It would be nice to have all of the components using it.  

Hi,

I don't see a section in http://wiki.openstack.org/SystemUsageData about making 
sure all messages related to a billable event are accounted for. I mean, for 
instance, what if the event that says an instance is deleted is lost ? How is 
the billing software supposed to cope with that ? If it checks the status of 
all VM on a regular basis to deal with this, how can it figure out when the 
missed event occured ?

It would be worth adding a short section about this in 
http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
hint.

Cheers
 Cheers

 On 04/24/2012 12:17 PM, Nick Barcet wrote:
 On 04/23/2012 10:45 PM, Doug Hellmann wrote:
  
  
  On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
  brian.sch...@nimbisservices.com
  mailto:brian.sch...@nimbisservices.com wrote:
  
  Doug,
  
  Do we mirror the table structure of nova, etc. and add
  created/modified columns? 
  
  
  Or do we flatten into an instance event record with everything?  
  
  
  I lean towards flattening the data as it is recorded and making a second
  pass during the bill calculation. You need to record instance
  modifications separately from the creation, especially if the
  modification changes the billing rate. So you might have records for:
  
  created instance, with UUID, name, size, timestamp, ownership
  information, etc.
  resized instance, with UUID, name, new size, timestamp, ownership
  information, etc.
  deleted instance, with UUID, name, size, timestamp, ownership
  information, etc.
  
  Maybe some of those values don't need to be reported in some cases, but
  if you record a complete picture of the state of the instance then the
  code that aggregates the event records to produce billing information
  can use it to make decisions about how to record the charges.
  
  There is also the case where an instance is still no longer running but
  nova thinks it is (or the reverse), so some sort of auditing sweep needs
  to be included (I think that's what Dough called the farmer but I
  don't have my notes in front of me).
 When I wrote [1], one of the things that I never assumed was how agents
 would collect their information. I imagined that the system should allow
 for multiple implementation of agents that would collect the same
 counters, assuming that 2 implementations for the same counter should
 never be running at once.

 That said, I am not sure an event based collection of what nova is
 notifying would satisfy the requirements I have heard from many cloud
 providers:
 - how do we ensure that event are not forged or lost in the current nova
 system?
 - how can I be sure that an instance has not simply crashed and never
 started?
 - how can I collect information which is not captured by nova events?

 Hence the proposal to use a dedicated event queue for billing, allowing
 for agents to collect and eventually validate data from different
 sources, including, but not necessarily limiting, collection from the
 nova events.

 Moreover, as soon as you generalize the problem to other components than
 just Nova (swift, glance, quantum, daas, ...) just using the nova event
 queue is not an option anymore.

 [1] http://wiki.openstack.org/EfficientMetering

 Nick



 On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:

 I think we have support for this currently in some fashion, Dragon?

 -S



 On 04/24/2012 12:55 AM, Loic Dachary wrote:
 Metering needs to account for the volume of data sent to external 
 network destinations  ( i.e. n4 in 
 http://wiki.openstack.org/EfficientMetering ) or the disk I/O etc. This 
 kind of resource is billable.

 The information described at http://wiki.openstack.org/SystemUsageData 
 will be used by metering but other 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Luis Gervaso
Probably an extra audit system is required. I'm searching for solutions in
the IT market.

Regards

On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary l...@enovance.com wrote:

 **
 On 04/24/2012 04:45 PM, Monsyne Dragon wrote:


  On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

  On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
 The event has the somewhat generic name of 'compute.instance.exists'  and is 
 emitted on an periodic basis, currently by a cronjob.
 Currently, we only populate bandwidth data from XenServer, but if the hook is 
 implemented for  the kvm, etc drivers, it will be picked up automatically for 
 them as well.

 Note that we could report other metrics similarly.

  Hi,

 Thanks for clarifying this. So you're suggesting that the metering agent
 should collect this data from the nova queue instead of extracting it from
 the system (interface, disk stats etc.) ? And for other openstack
 components ( as Nick Barcet suggests below ) the metering agent will have
 to find another way. Or do you have something else in mind ?


  If it's something we have access to, we should emit it in those usage
 events.  As far as the other components, glance is already using the same
 notification system.  (there was a thread awhile back about putting it into
 openstack.common)  It would be nice to have all of the components using it.


  Hi,

 I don't see a section in http://wiki.openstack.org/SystemUsageData about
 making sure all messages related to a billable event are accounted for. I
 mean, for instance, what if the event that says an instance is deleted is
 lost ? How is the billing software supposed to cope with that ? If it
 checks the status of all VM on a regular basis to deal with this, how can
 it figure out when the missed event occured ?

 It would be worth adding a short section about this in
 http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me
 a hint.

 Cheers

   Cheers

 On 04/24/2012 12:17 PM, Nick Barcet wrote:

  On 04/23/2012 10:45 PM, Doug Hellmann wrote:

 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott 
 brian.sch...@nimbisservices.com mailto:brian.sch...@nimbisservices.com 
 brian.sch...@nimbisservices.com wrote:  Doug,  Do we mirror 
 the table structure of nova, etc. and add created/modified columns?   
  Or do we flatten into an instance event record with everything? 
 I lean towards flattening the data as it is recorded and making a second 
 pass during the bill calculation. You need to record instance modifications 
 separately from the creation, especially if the modification changes the 
 billing rate. So you might have records for:  created instance, with UUID, 
 name, size, timestamp, ownership information, etc. resized instance, with 
 UUID, name, new size, timestamp, ownership information, etc. deleted 
 instance, with UUID, name, size, timestamp, ownership information, etc.  
 Maybe some of those values don't need to be reported in some cases, but if 
 you record a complete picture of the state of the instance then the code 
 that aggregates the event records to produce billing information can use it 
 to make decisions about how to record the charges.  There is also the case 
 where an instance is still no longer running but nova thinks it is (or the 
 reverse), so some sort of auditing sweep needs to be included (I think 
 that's what Dough called the farmer but I don't have my notes in front of 
 me).

  When I wrote [1], one of the things that I never assumed was how agents
 would collect their information. I imagined that the system should allow
 for multiple implementation of agents that would collect the same
 counters, assuming that 2 implementations for the same counter should
 never be running at once.

 That said, I am not sure an event based collection of what nova is
 notifying would satisfy the requirements I have heard from many cloud
 providers:
 - how do we ensure that event are not forged or lost in the current nova
 system?
 - how can I be sure that an instance has not simply crashed and never
 started?
 - how can I collect information which is not captured by nova events?

 Hence the proposal to use a dedicated event queue for billing, allowing
 for agents to collect and eventually validate data from different
 sources, including, but not necessarily limiting, collection from the
 nova events.

 Moreover, as soon as you generalize the problem to other components than
 just Nova (swift, glance, quantum, daas, ...) just using the nova event
 queue is not an option anymore.

 [1] http://wiki.openstack.org/EfficientMetering

 Nick




  On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:


  I think we have support for this currently in some fashion, Dragon?

 -S



 On 04/24/2012 12:55 AM, Loic Dachary wrote:

  Metering needs to account for the volume of data sent to external network 
 destinations  ( i.e. n4 in 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Luis Gervaso
Hi Monsyne,

I have set the notification_driver param, but no notification.* queues
created. I'm using devstack stable/essex.

stack@ubuntu:/$ sudo rabbitmqctl list_queues
Listing queues ...
volume_fanout_e0923a8bbb9f45dc9e63d382796a4c8f  0
cert.ubuntu 0
consoleauth.ubuntu  0
compute 0
compute.ubuntu  0
scheduler.ubuntu0
network_fanout_1a3d6d9e946b46d1bf64fc38be5a38aa 0
volume.ubuntu   0
compute_fanout_b29d53b516bb4acc9f8fb1bd4a9fc7f1 0
cert0
scheduler   0
consoleauth_fanout_d0fad95fbd0749929a84830a56551420 0
scheduler_fanout_0d320a2d79404d1d833ac248a8ff3dfc   0
network 0
volume  0
network.ubuntu  0
consoleauth 0
...done.
stack@ubuntu:/$

stack@ubuntu:/$ sudo rabbitmqctl list_exchanges
Listing exchanges ...
consoleauth_fanout  fanout
compute_fanout  fanout
amq.rabbitmq.trace  topic
network_fanout  fanout
amq.rabbitmq.logtopic
amq.match   headers
amq.headers headers
scheduler_fanoutfanout
volume_fanout   fanout
amq.topic   topic
amq.direct  direct
amq.fanout  fanout
novatopic
direct
...done.
stack@ubuntu:/$


On Tue, Apr 24, 2012 at 2:25 AM, Monsyne Dragon mdra...@rackspace.comwrote:

  This looks like just the standard RPC traffic.
 You need to turn notifications on
 (set:
 notification_driver=nova.notifier.rabbit_notifier
 in nova's config file)

  and listen on the notification.* queues



  On Apr 23, 2012, at 2:26 PM, Luis Gervaso wrote:

  Joshua,

  I have performed a create instance operation and here is an example data
 obtained from stable/essex rabbitmq nova catch all exchange.

 [*] Waiting for messages. To exit press CTRL+C

  [x] Received '{_context_roles: [admin], _msg_id:
 a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no,
 _context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args:
 {instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
 host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
 rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
 true, _context_project_id: null, _context_timestamp:
 2012-03-24T01:36:48.774891, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'

  [x] Received '{_context_roles: [admin], _msg_id:
 a1cb1cf61e5441c2a772b29d3cd54202, _context_read_deleted: no,
 _context_request_id: req-db34ba32-8bd9-4cd5-b7b5-43705a9e258e, args:
 {instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
 host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
 rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
 true, _context_project_id: null, _context_timestamp:
 2012-03-24T01:37:50.463586, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'

  [x] Received '{_context_roles: [admin], _msg_id:
 ebb0b1c340de4024a22eafec9d0a2d66, _context_read_deleted: no,
 _context_request_id: req-ddb51b2b-a29f-4aad-909d-3f7f79f053c4, args:
 {instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
 host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
 rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
 true, _context_project_id: null, _context_timestamp:
 2012-03-24T01:38:59.217333, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'

  [x] Received '{_context_roles: [Member], _msg_id:
 729535c00d224414a98286e9ce3475a9, _context_read_deleted: no,
 _context_request_id: req-b056a8cc-3542-41a9-9e58-8fb592086264,
 _context_auth_token: deb477655fba448e85199f7e559da77a,
 _context_is_admin: false, _context_project_id:
 df3827f76f714b1e8f31675caf84ae9d, _context_timestamp:
 2012-03-24T01:39:19.813393, _context_user_id:
 abe21eb7e6884547810f0a43c216e6a6, method:
 get_floating_ips_by_project, _context_remote_address: 192.168.1.41}'

  [x] Received '{_context_roles: [Member, admin],
 _context_request_id: req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5,
 _context_read_deleted: no, args: {request_spec: {num_instances:
 1, block_device_mapping: [], image: {status: active, name:
 cirros-0.3.0-x86_64-uec, deleted: false, container_format: ami,
 created_at: 2012-03-20 17:37:08, disk_format: ami, updated_at:
 2012-03-20 17:37:08, properties: {kernel_id:
 6b700d25-3293-420a-82e4-8247d4b0da2a, ramdisk_id:
 22b10c35-c868-4470-84ef-54ae9f17a977}, min_ram: 0, checksum:
 2f81976cae15c16ef0010c51e3a6c163, min_disk: 0, is_public: true,
 deleted_at: null, id: f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, size:
 25165824}, instance_type: {root_gb: 0, name: m1.tiny, deleted:
 false, created_at: null, ephemeral_gb: 0, updated_at: null,
 memory_mb: 512, vcpus: 1, flavorid: 1, swap: 0, rxtx_factor:
 1.0, extra_specs: {}, deleted_at: null, vcpu_weight: null, id: 2},
 instance_properties: {vm_state: building, ephemeral_gb: 0,
 access_ip_v6: null, access_ip_v4: null, kernel_id:
 6b700d25-3293-420a-82e4-8247d4b0da2a, key_name: testssh,
 ramdisk_id: 22b10c35-c868-4470-84ef-54ae9f17a977, instance_type_id:
 2, user_data: 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Brian Schott
I take it that the instance manager doesn't generate any kind of heartbeat, so 
whatever monitoring/archiving service we do should internally poll the status 
over MQ?


-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:

 Probably an extra audit system is required. I'm searching for solutions in 
 the IT market.
 
 Regards
 
 On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary l...@enovance.com wrote:
 On 04/24/2012 04:45 PM, Monsyne Dragon wrote:
 
 
 On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:
 
 On 04/24/2012 03:06 PM, Monsyne Dragon wrote:
 
 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each 
 instance The event has the somewhat generic name of 
 'compute.instance.exists'  and is emitted on an periodic basis, currently 
 by a cronjob. 
 Currently, we only populate bandwidth data from XenServer, but if the hook 
 is implemented for  the kvm, etc drivers, it will be picked up 
 automatically for them as well. 
 
 Note that we could report other metrics similarly. 
 Hi,
 
 Thanks for clarifying this. So you're suggesting that the metering agent 
 should collect this data from the nova queue instead of extracting it from 
 the system (interface, disk stats etc.) ? And for other openstack 
 components ( as Nick Barcet suggests below ) the metering agent will have 
 to find another way. Or do you have something else in mind ?
 
 If it's something we have access to, we should emit it in those usage 
 events.  As far as the other components, glance is already using the same 
 notification system.  (there was a thread awhile back about putting it into 
 openstack.common)  It would be nice to have all of the components using it.  
 
 Hi,
 
 I don't see a section in http://wiki.openstack.org/SystemUsageData about 
 making sure all messages related to a billable event are accounted for. I 
 mean, for instance, what if the event that says an instance is deleted is 
 lost ? How is the billing software supposed to cope with that ? If it checks 
 the status of all VM on a regular basis to deal with this, how can it figure 
 out when the missed event occured ?
 
 It would be worth adding a short section about this in 
 http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
 hint.
 
 Cheers
 
 Cheers
 
 On 04/24/2012 12:17 PM, Nick Barcet wrote:
 
 On 04/23/2012 10:45 PM, Doug Hellmann wrote:
  
  
  On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
  brian.sch...@nimbisservices.com
  mailto:brian.sch...@nimbisservices.com wrote:
  
  Doug,
  
  Do we mirror the table structure of nova, etc. and add
  created/modified columns? 
  
  
  Or do we flatten into an instance event record with everything?  
  
  
  I lean towards flattening the data as it is recorded and making a second
  pass during the bill calculation. You need to record instance
  modifications separately from the creation, especially if the
  modification changes the billing rate. So you might have records for:
  
  created instance, with UUID, name, size, timestamp, ownership
  information, etc.
  resized instance, with UUID, name, new size, timestamp, ownership
  information, etc.
  deleted instance, with UUID, name, size, timestamp, ownership
  information, etc.
  
  Maybe some of those values don't need to be reported in some cases, but
  if you record a complete picture of the state of the instance then the
  code that aggregates the event records to produce billing information
  can use it to make decisions about how to record the charges.
  
  There is also the case where an instance is still no longer running but
  nova thinks it is (or the reverse), so some sort of auditing sweep needs
  to be included (I think that's what Dough called the farmer but I
  don't have my notes in front of me).
 When I wrote [1], one of the things that I never assumed was how agents
 would collect their information. I imagined that the system should allow
 for multiple implementation of agents that would collect the same
 counters, assuming that 2 implementations for the same counter should
 never be running at once.
 
 That said, I am not sure an event based collection of what nova is
 notifying would satisfy the requirements I have heard from many cloud
 providers:
 - how do we ensure that event are not forged or lost in the current nova
 system?
 - how can I be sure that an instance has not simply crashed and never
 started?
 - how can I collect information which is not captured by nova events?
 
 Hence the proposal to use a dedicated event queue for billing, allowing
 for agents to collect and eventually validate data from different
 sources, including, but not necessarily limiting, collection from the
 nova events.
 
 Moreover, as soon as you generalize the problem to other components than
 just Nova (swift, glance, quantum, daas, ...) just using the nova 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Luis Gervaso
This kind of messages are coming from nova exchange aprox. each 60 secs

Can be this considered as a heartbeat for you?

 [x] Received '{_context_roles: [admin], _msg_id: 
a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no,
_context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args:
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
true, _context_project_id: null, _context_timestamp:
2012-03-24T01:36:48.774891, _context_user_id: null, method:
get_instance_nw_info, _context_remote_address: null}'



On Tue, Apr 24, 2012 at 9:31 PM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 I take it that the instance manager doesn't generate any kind of
 heartbeat, so whatever monitoring/archiving service we do should internally
 poll the status over MQ?


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:

 Probably an extra audit system is required. I'm searching for solutions in
 the IT market.

 Regards

 On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary l...@enovance.com wrote:

 **
 On 04/24/2012 04:45 PM, Monsyne Dragon wrote:


  On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

  On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
 The event has the somewhat generic name of 'compute.instance.exists'  and is 
 emitted on an periodic basis, currently by a cronjob.
 Currently, we only populate bandwidth data from XenServer, but if the hook 
 is implemented for  the kvm, etc drivers, it will be picked up automatically 
 for them as well.

 Note that we could report other metrics similarly.

  Hi,

 Thanks for clarifying this. So you're suggesting that the metering agent
 should collect this data from the nova queue instead of extracting it from
 the system (interface, disk stats etc.) ? And for other openstack
 components ( as Nick Barcet suggests below ) the metering agent will have
 to find another way. Or do you have something else in mind ?


  If it's something we have access to, we should emit it in those usage
 events.  As far as the other components, glance is already using the same
 notification system.  (there was a thread awhile back about putting it into
 openstack.common)  It would be nice to have all of the components using it.


  Hi,

 I don't see a section in http://wiki.openstack.org/SystemUsageData about
 making sure all messages related to a billable event are accounted for. I
 mean, for instance, what if the event that says an instance is deleted is
 lost ? How is the billing software supposed to cope with that ? If it
 checks the status of all VM on a regular basis to deal with this, how can
 it figure out when the missed event occured ?

 It would be worth adding a short section about this in
 http://wiki.openstack.org/SystemUsageData . Or I can do it if you give
 me a hint.

 Cheers

   Cheers

 On 04/24/2012 12:17 PM, Nick Barcet wrote:

  On 04/23/2012 10:45 PM, Doug Hellmann wrote:

 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott 
 brian.sch...@nimbisservices.com mailto:brian.sch...@nimbisservices.com 
 brian.sch...@nimbisservices.com wrote:  Doug,  Do we mirror 
 the table structure of nova, etc. and add created/modified columns?   
  Or do we flatten into an instance event record with everything? 
 I lean towards flattening the data as it is recorded and making a second 
 pass during the bill calculation. You need to record instance modifications 
 separately from the creation, especially if the modification changes the 
 billing rate. So you might have records for:  created instance, with UUID, 
 name, size, timestamp, ownership information, etc. resized instance, with 
 UUID, name, new size, timestamp, ownership information, etc. deleted 
 instance, with UUID, name, size, timestamp, ownership information, etc.  
 Maybe some of those values don't need to be reported in some cases, but if 
 you record a complete picture of the state of the instance then the code 
 that aggregates the event records to produce billing information can use it 
 to make decisions about how to record the charges.  There is also the case 
 where an instance is still no longer running but nova thinks it is (or the 
 reverse), so some sort of auditing sweep needs to be included (I think 
 that's what Dough called the farmer but I don't have my notes in front of 
 me).

  When I wrote [1], one of the things that I never assumed was how agents
 would collect their information. I imagined that the system should allow
 for multiple implementation of agents that would collect the same
 counters, assuming that 2 implementations for the same counter should
 never be running at once.

 That said, I 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Brian Schott
Yeah, but does that mean the instance is alive and billable :-)?  I guess that 
counts!  I thought they were only in response to external API/admin requests.

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 24, 2012, at 3:42 PM, Luis Gervaso wrote:

 This kind of messages are coming from nova exchange aprox. each 60 secs
 
 Can be this considered as a heartbeat for you? 
 
  [x] Received '{_context_roles: [admin], _msg_id: 
 a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no, 
 _context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args: 
 {instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
 host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
 rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
 _context_project_id: null, _context_timestamp: 
 2012-03-24T01:36:48.774891, _context_user_id: null, method: 
 get_instance_nw_info, _context_remote_address: null}'
 
 
 
 On Tue, Apr 24, 2012 at 9:31 PM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:
 I take it that the instance manager doesn't generate any kind of heartbeat, 
 so whatever monitoring/archiving service we do should internally poll the 
 status over MQ?
 
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:
 
 Probably an extra audit system is required. I'm searching for solutions in 
 the IT market.
 
 Regards
 
 On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary l...@enovance.com wrote:
 On 04/24/2012 04:45 PM, Monsyne Dragon wrote:
 
 
 On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:
 
 On 04/24/2012 03:06 PM, Monsyne Dragon wrote:
 
 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each 
 instance The event has the somewhat generic name of 
 'compute.instance.exists'  and is emitted on an periodic basis, currently 
 by a cronjob. 
 Currently, we only populate bandwidth data from XenServer, but if the 
 hook is implemented for  the kvm, etc drivers, it will be picked up 
 automatically for them as well. 
 
 Note that we could report other metrics similarly. 
 Hi,
 
 Thanks for clarifying this. So you're suggesting that the metering agent 
 should collect this data from the nova queue instead of extracting it from 
 the system (interface, disk stats etc.) ? And for other openstack 
 components ( as Nick Barcet suggests below ) the metering agent will have 
 to find another way. Or do you have something else in mind ?
 
 If it's something we have access to, we should emit it in those usage 
 events.  As far as the other components, glance is already using the same 
 notification system.  (there was a thread awhile back about putting it into 
 openstack.common)  It would be nice to have all of the components using it. 
  
 
 Hi,
 
 I don't see a section in http://wiki.openstack.org/SystemUsageData about 
 making sure all messages related to a billable event are accounted for. I 
 mean, for instance, what if the event that says an instance is deleted is 
 lost ? How is the billing software supposed to cope with that ? If it checks 
 the status of all VM on a regular basis to deal with this, how can it figure 
 out when the missed event occured ?
 
 It would be worth adding a short section about this in 
 http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
 hint.
 
 Cheers
 
 Cheers
 
 On 04/24/2012 12:17 PM, Nick Barcet wrote:
 
 On 04/23/2012 10:45 PM, Doug Hellmann wrote:
  
  
  On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
  brian.sch...@nimbisservices.com
  mailto:brian.sch...@nimbisservices.com wrote:
  
  Doug,
  
  Do we mirror the table structure of nova, etc. and add
  created/modified columns? 
  
  
  Or do we flatten into an instance event record with everything?  
  
  
  I lean towards flattening the data as it is recorded and making a 
  second
  pass during the bill calculation. You need to record instance
  modifications separately from the creation, especially if the
  modification changes the billing rate. So you might have records for:
  
  created instance, with UUID, name, size, timestamp, ownership
  information, etc.
  resized instance, with UUID, name, new size, timestamp, ownership
  information, etc.
  deleted instance, with UUID, name, size, timestamp, ownership
  information, etc.
  
  Maybe some of those values don't need to be reported in some cases, but
  if you record a complete picture of the state of the instance then the
  code that aggregates the event records to produce billing information
  can use it to make decisions about how to record the charges.
  
  There is also the case where an instance is still no longer running but
  nova thinks it is (or the reverse), so some sort of auditing sweep 
  needs
  to 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Luis Gervaso
I think so.

If it is in response or not, it's a truly heartbeat

On Tue, Apr 24, 2012 at 9:46 PM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 Yeah, but does that mean the instance is alive and billable :-)?  I guess
 that counts!  I thought they were only in response to external API/admin
 requests.

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 24, 2012, at 3:42 PM, Luis Gervaso wrote:

 This kind of messages are coming from nova exchange aprox. each 60 secs

 Can be this considered as a heartbeat for you?

  [x] Received '{_context_roles: [admin], _msg_id: 
 a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no,
 _context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe,
 args: {instance_id: 6, instance_uuid: 
 e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
 host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
 rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
 true, _context_project_id: null, _context_timestamp:
 2012-03-24T01:36:48.774891, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'



 On Tue, Apr 24, 2012 at 9:31 PM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:

 I take it that the instance manager doesn't generate any kind of
 heartbeat, so whatever monitoring/archiving service we do should internally
 poll the status over MQ?


  -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:

 Probably an extra audit system is required. I'm searching for solutions
 in the IT market.

 Regards

 On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary l...@enovance.com wrote:

 **
 On 04/24/2012 04:45 PM, Monsyne Dragon wrote:


  On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

  On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

 Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each 
 instance The event has the somewhat generic name of 
 'compute.instance.exists'  and is emitted on an periodic basis, currently 
 by a cronjob.
 Currently, we only populate bandwidth data from XenServer, but if the hook 
 is implemented for  the kvm, etc drivers, it will be picked up 
 automatically for them as well.

 Note that we could report other metrics similarly.

  Hi,

 Thanks for clarifying this. So you're suggesting that the metering agent
 should collect this data from the nova queue instead of extracting it from
 the system (interface, disk stats etc.) ? And for other openstack
 components ( as Nick Barcet suggests below ) the metering agent will have
 to find another way. Or do you have something else in mind ?


  If it's something we have access to, we should emit it in those usage
 events.  As far as the other components, glance is already using the same
 notification system.  (there was a thread awhile back about putting it into
 openstack.common)  It would be nice to have all of the components using it.


  Hi,

 I don't see a section in http://wiki.openstack.org/SystemUsageDataabout 
 making sure all messages related to a billable event are accounted
 for. I mean, for instance, what if the event that says an instance is
 deleted is lost ? How is the billing software supposed to cope with that ?
 If it checks the status of all VM on a regular basis to deal with this, how
 can it figure out when the missed event occured ?

 It would be worth adding a short section about this in
 http://wiki.openstack.org/SystemUsageData . Or I can do it if you give
 me a hint.

 Cheers

   Cheers

 On 04/24/2012 12:17 PM, Nick Barcet wrote:

  On 04/23/2012 10:45 PM, Doug Hellmann wrote:

 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott 
 brian.sch...@nimbisservices.com mailto:brian.sch...@nimbisservices.com 
 brian.sch...@nimbisservices.com wrote:  Doug,  Do we mirror 
 the table structure of nova, etc. and add created/modified columns?  
   Or do we flatten into an instance event record with everything?   
   I lean towards flattening the data as it is recorded and making a 
 second pass during the bill calculation. You need to record instance 
 modifications separately from the creation, especially if the modification 
 changes the billing rate. So you might have records for:  created 
 instance, with UUID, name, size, timestamp, ownership information, etc. 
 resized instance, with UUID, name, new size, timestamp, ownership 
 information, etc. deleted instance, with UUID, name, size, timestamp, 
 ownership information, etc.  Maybe some of those values don't need to be 
 reported in some cases, but if you record a complete picture of the state 
 of the instance then the code that aggregates the event records to produce 
 billing information can use it to make decisions about how to record the 
 charges.  There is also the case where an 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Monsyne Dragon

On Apr 24, 2012, at 11:00 AM, Loic Dachary wrote:

On 04/24/2012 04:45 PM, Monsyne Dragon wrote:

On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
The event has the somewhat generic name of 'compute.instance.exists'  and is 
emitted on an periodic basis, currently by a cronjob.
Currently, we only populate bandwidth data from XenServer, but if the hook is 
implemented for  the kvm, etc drivers, it will be picked up automatically for 
them as well.

Note that we could report other metrics similarly.


Hi,

Thanks for clarifying this. So you're suggesting that the metering agent should 
collect this data from the nova queue instead of extracting it from the system 
(interface, disk stats etc.) ? And for other openstack components ( as Nick 
Barcet suggests below ) the metering agent will have to find another way. Or do 
you have something else in mind ?

If it's something we have access to, we should emit it in those usage events.  
As far as the other components, glance is already using the same notification 
system.  (there was a thread awhile back about putting it into 
openstack.common)  It would be nice to have all of the components using it.

Hi,

I don't see a section in http://wiki.openstack.org/SystemUsageData about making 
sure all messages related to a billable event are accounted for. I mean, for 
instance, what if the event that says an instance is deleted is lost ? How is 
the billing software supposed to cope with that ? If it checks the status of 
all VM on a regular basis to deal with this, how can it figure out when the 
missed event occured ?

FIrst, we use a reliable queueing mechanism to prevent that.  Secondly there 
are periodic audit events that act as a check (and also contain data for usage 
over a time period, like bandwidth).


It would be worth adding a short section about this in 
http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
hint.

Cheers
Cheers

On 04/24/2012 12:17 PM, Nick Barcet wrote:

On 04/23/2012 10:45 PM, Doug Hellmann wrote:




 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
  wrote:

 Doug,

 Do we mirror the table structure of nova, etc. and add
 created/modified columns?


 Or do we flatten into an instance event record with everything?


 I lean towards flattening the data as it is recorded and making a second
 pass during the bill calculation. You need to record instance
 modifications separately from the creation, especially if the
 modification changes the billing rate. So you might have records for:

 created instance, with UUID, name, size, timestamp, ownership
 information, etc.
 resized instance, with UUID, name, new size, timestamp, ownership
 information, etc.
 deleted instance, with UUID, name, size, timestamp, ownership
 information, etc.

 Maybe some of those values don't need to be reported in some cases, but
 if you record a complete picture of the state of the instance then the
 code that aggregates the event records to produce billing information
 can use it to make decisions about how to record the charges.

 There is also the case where an instance is still no longer running but
 nova thinks it is (or the reverse), so some sort of auditing sweep needs
 to be included (I think that's what Dough called the farmer but I
 don't have my notes in front of me).


When I wrote [1], one of the things that I never assumed was how agents
would collect their information. I imagined that the system should allow
for multiple implementation of agents that would collect the same
counters, assuming that 2 implementations for the same counter should
never be running at once.

That said, I am not sure an event based collection of what nova is
notifying would satisfy the requirements I have heard from many cloud
providers:
- how do we ensure that event are not forged or lost in the current nova
system?
- how can I be sure that an instance has not simply crashed and never
started?
- how can I collect information which is not captured by nova events?

Hence the proposal to use a dedicated event queue for billing, allowing
for agents to collect and eventually validate data from different
sources, including, but not necessarily limiting, collection from the
nova events.

Moreover, as soon as you generalize the problem to other components than
just Nova (swift, glance, quantum, daas, ...) just using the nova event
queue is not an option anymore.

[1] http://wiki.openstack.org/EfficientMetering

Nick





On Apr 24, 2012, at 6:20 AM, Sandy Walsh wrote:



I think we have support for this currently in some fashion, Dragon?

-S



On 04/24/2012 12:55 AM, Loic Dachary wrote:


Metering needs to account for the volume of data sent to external network 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Monsyne Dragon

On Apr 24, 2012, at 2:31 PM, Brian Schott wrote:

I take it that the instance manager doesn't generate any kind of heartbeat, so 
whatever monitoring/archiving service we do should internally poll the status 
over MQ?


Actually, it generates periodic 'heartbeat' events ('exists' events) for each 
instance that existed during a given audit period.



-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:

Probably an extra audit system is required. I'm searching for solutions in the 
IT market.

Regards

On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary 
l...@enovance.commailto:l...@enovance.com wrote:
On 04/24/2012 04:45 PM, Monsyne Dragon wrote:

On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
The event has the somewhat generic name of 'compute.instance.exists'  and is 
emitted on an periodic basis, currently by a cronjob.
Currently, we only populate bandwidth data from XenServer, but if the hook is 
implemented for  the kvm, etc drivers, it will be picked up automatically for 
them as well.

Note that we could report other metrics similarly.


Hi,

Thanks for clarifying this. So you're suggesting that the metering agent should 
collect this data from the nova queue instead of extracting it from the system 
(interface, disk stats etc.) ? And for other openstack components ( as Nick 
Barcet suggests below ) the metering agent will have to find another way. Or do 
you have something else in mind ?

If it's something we have access to, we should emit it in those usage events.  
As far as the other components, glance is already using the same notification 
system.  (there was a thread awhile back about putting it into 
openstack.common)  It would be nice to have all of the components using it.

Hi,

I don't see a section in http://wiki.openstack.org/SystemUsageData about making 
sure all messages related to a billable event are accounted for. I mean, for 
instance, what if the event that says an instance is deleted is lost ? How is 
the billing software supposed to cope with that ? If it checks the status of 
all VM on a regular basis to deal with this, how can it figure out when the 
missed event occured ?

It would be worth adding a short section about this in 
http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
hint.

Cheers

Cheers

On 04/24/2012 12:17 PM, Nick Barcet wrote:

On 04/23/2012 10:45 PM, Doug Hellmann wrote:




 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
  wrote:

 Doug,

 Do we mirror the table structure of nova, etc. and add
 created/modified columns?


 Or do we flatten into an instance event record with everything?


 I lean towards flattening the data as it is recorded and making a second
 pass during the bill calculation. You need to record instance
 modifications separately from the creation, especially if the
 modification changes the billing rate. So you might have records for:

 created instance, with UUID, name, size, timestamp, ownership
 information, etc.
 resized instance, with UUID, name, new size, timestamp, ownership
 information, etc.
 deleted instance, with UUID, name, size, timestamp, ownership
 information, etc.

 Maybe some of those values don't need to be reported in some cases, but
 if you record a complete picture of the state of the instance then the
 code that aggregates the event records to produce billing information
 can use it to make decisions about how to record the charges.

 There is also the case where an instance is still no longer running but
 nova thinks it is (or the reverse), so some sort of auditing sweep needs
 to be included (I think that's what Dough called the farmer but I
 don't have my notes in front of me).


When I wrote [1], one of the things that I never assumed was how agents
would collect their information. I imagined that the system should allow
for multiple implementation of agents that would collect the same
counters, assuming that 2 implementations for the same counter should
never be running at once.

That said, I am not sure an event based collection of what nova is
notifying would satisfy the requirements I have heard from many cloud
providers:
- how do we ensure that event are not forged or lost in the current nova
system?
- how can I be sure that an instance has not simply crashed and never
started?
- how can I collect information which is not captured by nova events?

Hence the proposal to use a dedicated event queue for billing, allowing
for agents to collect and eventually validate data from different
sources, including, but 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-24 Thread Monsyne Dragon

On Apr 24, 2012, at 2:46 PM, Brian Schott wrote:

Yeah, but does that mean the instance is alive and billable :-)?  I guess that 
counts!  I thought they were only in response to external API/admin requests.

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



Actually,  that is simply an rpc call message. Unrelated to notifications.




On Apr 24, 2012, at 3:42 PM, Luis Gervaso wrote:

This kind of messages are coming from nova exchange aprox. each 60 secs

Can be this considered as a heartbeat for you?

 [x] Received '{_context_roles: [admin], _msg_id: 
a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no, 
_context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:36:48.774891, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'



On Tue, Apr 24, 2012 at 9:31 PM, Brian Schott 
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com wrote:
I take it that the instance manager doesn't generate any kind of heartbeat, so 
whatever monitoring/archiving service we do should internally poll the status 
over MQ?


-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



On Apr 24, 2012, at 2:10 PM, Luis Gervaso wrote:

Probably an extra audit system is required. I'm searching for solutions in the 
IT market.

Regards

On Tue, Apr 24, 2012 at 6:00 PM, Loic Dachary 
l...@enovance.commailto:l...@enovance.com wrote:
On 04/24/2012 04:45 PM, Monsyne Dragon wrote:

On Apr 24, 2012, at 9:03 AM, Loic Dachary wrote:

On 04/24/2012 03:06 PM, Monsyne Dragon wrote:

Yes,  we emit bandwidth (bytes in/out) on a per VIF basis from each instance 
The event has the somewhat generic name of 'compute.instance.exists'  and is 
emitted on an periodic basis, currently by a cronjob.
Currently, we only populate bandwidth data from XenServer, but if the hook is 
implemented for  the kvm, etc drivers, it will be picked up automatically for 
them as well.

Note that we could report other metrics similarly.


Hi,

Thanks for clarifying this. So you're suggesting that the metering agent should 
collect this data from the nova queue instead of extracting it from the system 
(interface, disk stats etc.) ? And for other openstack components ( as Nick 
Barcet suggests below ) the metering agent will have to find another way. Or do 
you have something else in mind ?

If it's something we have access to, we should emit it in those usage events.  
As far as the other components, glance is already using the same notification 
system.  (there was a thread awhile back about putting it into 
openstack.common)  It would be nice to have all of the components using it.

Hi,

I don't see a section in http://wiki.openstack.org/SystemUsageData about making 
sure all messages related to a billable event are accounted for. I mean, for 
instance, what if the event that says an instance is deleted is lost ? How is 
the billing software supposed to cope with that ? If it checks the status of 
all VM on a regular basis to deal with this, how can it figure out when the 
missed event occured ?

It would be worth adding a short section about this in 
http://wiki.openstack.org/SystemUsageData . Or I can do it if you give me a 
hint.

Cheers

Cheers

On 04/24/2012 12:17 PM, Nick Barcet wrote:

On 04/23/2012 10:45 PM, Doug Hellmann wrote:




 On Mon, Apr 23, 2012 at 4:14 PM, Brian Schott
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
  wrote:

 Doug,

 Do we mirror the table structure of nova, etc. and add
 created/modified columns?


 Or do we flatten into an instance event record with everything?


 I lean towards flattening the data as it is recorded and making a second
 pass during the bill calculation. You need to record instance
 modifications separately from the creation, especially if the
 modification changes the billing rate. So you might have records for:

 created instance, with UUID, name, size, timestamp, ownership
 information, etc.
 resized instance, with UUID, name, new size, timestamp, ownership
 information, etc.
 deleted instance, with UUID, name, size, timestamp, ownership
 information, etc.

 Maybe some of those values don't need to be reported in some cases, but
 if you record a complete picture of the state of the instance then the
 code that aggregates the event records to produce 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Nick Barcet
Hello Luis,

I presented a blueprint last week [1] which proposes to clearly
differentiate metering from the overall billing process.  It is my
understanding that billing is too complex a beast to be solved for each
requirement in a satisfactory way and have therefore proposed that we
should first concentrate on collecting the informations necessary for
billing systems to pull their information from.

The blueprint, and the discussion we had at the summit last week,
outlines a proposed architecture but has, so far, left open the
component choices to implement it.  It is our proposal to start a a
weekly meeting from that week to start selecting the components to
deliver this.  You are more than welcome to join the project if you want.

[1] http://wiki.openstack.org/EfficientMetering

Best regards,
Nick

On 04/22/2012 08:50 PM, Luis Gervaso wrote:
 Hi,
 
 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Ahn, Jaesuk
Hi, 

Although metering and billing always comes together for the deployment, for the 
sake of clarity, I also think metering should be a separate project from the 
billing, especially in openstack.  
(As you mentioned it, billing is complex and has too many different 
requirements per provider)

Anyway, I am really interested in weekly meeting you mentioned in the email. 
How can I join the meeting? Is it irc-meeting?, mailing-list?, or else?  


-- 
Jaesuk Ahn, Ph.D.
Team Leader | Cloud OS Dev. Team
Cloud Infrastructure Department
KT (Korea Telecom)
T. +82-10-9888-0328 | F. +82-303-0993-5340
Active member on OpenStack Korea Community


Apr 23, 2012, 4:09 PM, Nick Barcet 작성:

 Hello Luis,
 
 I presented a blueprint last week [1] which proposes to clearly
 differentiate metering from the overall billing process.  It is my
 understanding that billing is too complex a beast to be solved for each
 requirement in a satisfactory way and have therefore proposed that we
 should first concentrate on collecting the informations necessary for
 billing systems to pull their information from.
 
 The blueprint, and the discussion we had at the summit last week,
 outlines a proposed architecture but has, so far, left open the
 component choices to implement it.  It is our proposal to start a a
 weekly meeting from that week to start selecting the components to
 deliver this.  You are more than welcome to join the project if you want.
 
 [1] http://wiki.openstack.org/EfficientMetering
 
 Best regards,
 Nick
 
 On 04/22/2012 08:50 PM, Luis Gervaso wrote:
 Hi,
 
 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Nick Barcet
On 04/23/2012 11:17 AM, Ahn, Jaesuk wrote:
 Hi, 
 
 Although metering and billing always comes together for the deployment,
 for the sake of clarity, I also think metering should be a separate
 project from the billing, especially in openstack.  
 (As you mentioned it, billing is complex and has too many different
 requirements per provider)
 
 Anyway, I am really interested in weekly meeting you mentioned in the
 email. 
 How can I join the meeting? Is it irc-meeting?, mailing-list?, or else?  

Of course you can join.  It will be a weekly irc meeting and I am about
to send a doodle with multiple time choices to everyone that mentioned
being interested in joining this project at the summit, and have
included your email now.   The first meeting will have for objective to
finalize a project name and validate a road-map of decisions that need
to be made.

Thanks a lot,

Nick

 -- 
 *Jaesuk Ahn*, Ph.D.
 Team Leader | Cloud OS Dev. Team
 Cloud Infrastructure Department
 KT (Korea Telecom)
 *T. +82-10-9888-0328 | F. +82-303-0993-5340*
 *Active member on **OpenStack Korea Community* http://www.openstack.or.kr/
 
 
 Apr 23, 2012, 4:09 PM, Nick Barcet 작성:
 
 Hello Luis,

 I presented a blueprint last week [1] which proposes to clearly
 differentiate metering from the overall billing process.  It is my
 understanding that billing is too complex a beast to be solved for each
 requirement in a satisfactory way and have therefore proposed that we
 should first concentrate on collecting the informations necessary for
 billing systems to pull their information from.

 The blueprint, and the discussion we had at the summit last week,
 outlines a proposed architecture but has, so far, left open the
 component choices to implement it.  It is our proposal to start a a
 weekly meeting from that week to start selecting the components to
 deliver this.  You are more than welcome to join the project if you want.

 [1] http://wiki.openstack.org/EfficientMetering

 Best regards,
 Nick

 On 04/22/2012 08:50 PM, Luis Gervaso wrote:
 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 




signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Alexey Ababilov
Hi!

We have developed Nova Billing v2. Its documentation is currently available
at http://aababilov.github.com/nova-billing-doc.github.com/. The
documentation includes a glossary and architecture and API descriptions.

Nova Billing v2 is a totally new solution. Its API and architecture were
rewritten from scratch. The new Nova Billing introduces extensible
modularized system with separate components.

Nova Billing v2 can charge arbitrary resources according to custom billing
schemas and, naturally, with different tariffs.

Nova Billing v2 does not depend on any UI for OpenStack Cloud (neither
OpenStack Dashboard nor any other solution). It does not require a
particular OpenStack release. Provided components allow integration with
diablo and essex and this list can be extended.

Nova Billing v2 is event-driven and does not consumes system resources for
periodical polling.

Nova Billing v2 uses a RESTful protocol, so it is easy to integrate it with
miscellaneous user clients and to add third-party components notifying
about arbitrary events.
Alessio Ababilov,
Software Engineer
Grid Dynamics
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Nick Barcet
On 04/23/2012 04:39 PM, Alexey Ababilov wrote:
 Hi!
 
 We have developed Nova Billing v2. Its documentation is currently
 available at http://aababilov.github.com/nova-billing-doc.github.com/.
 The documentation includes a glossary and architecture and API descriptions.
 
 Nova Billing v2 is a totally new solution. Its API and architecture were
 rewritten from scratch. The new Nova Billing introduces extensible
 modularized system with separate components.
 
 Nova Billing v2 can charge arbitrary resources according to custom
 billing schemas and, naturally, with different tariffs.
 
 Nova Billing v2 does not depend on any UI for OpenStack Cloud (neither
 OpenStack Dashboard nor any other solution). It does not require a
 particular OpenStack release. Provided components allow integration with
 diablo and essex and this list can be extended.
 
 Nova Billing v2 is event-driven and does not consumes system resources
 for periodical polling.
 
 Nova Billing v2 uses a RESTful protocol, so it is easy to integrate it
 with miscellaneous user clients and to add third-party components
 notifying about arbitrary events.
 
 Alessio Ababilov,
 Software Engineer
 Grid Dynamics

Excellent! It sounds from the architecture that your work will easily be
integrated into a the generic OpenStack metering solution that we are
currently defining.  The main goal of our design is to dissociate the
metering from the billing part and to offer extensibility to all current
and future components of OpenStack.  Would you care to help us define
this architecture?

Thanks,
Nick



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Kevin L. Mitchell
On Sun, 2012-04-22 at 20:50 +0200, Luis Gervaso wrote:
 I want to share the architecture i am developing in order to perform
 the monitorig / billing OpenStack support:
 
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 
 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

Except for the use of MongoDB, the above seems to me to be almost
identical to the notifications system already in Nova, which Yagi
consumes.  Have you looked at our existing notifications?  Yagi?  One or
both might solve at least parts of your problem…

-- 
Kevin L. Mitchell kevin.mitch...@rackspace.com


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Monsyne Dragon
This already exists in trunk.  The Notification system was designed 
specifically to feed billing and monitoring systems.

Basically, we don't want Nova/Glance/etc to be in the business of trying to 
determine billing logic, since it is different for pretty much everyone,  so we 
just emit notifications to a queue and the interested pull what they want, and 
aggregate according to their own rules.

On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

Hi,

I want to share the architecture i am developing in order to perform the 
monitorig / billing OpenStack support:

1. AMQP Client which listen to RabbitMQ / QPid (this should be interchangeable) 
(Own Stuff or ServiceMix / Camel)

2. Events should be stored on a NoSQL document oriented database (I think 
mongodb is perfect, since we can query in a super easy fashion)

We have an existing system called Yagi (https://github.com/Cerberus98/yagi/) 
that listens to the notification queues and persists events to a Redis 
database.  It then provides feeds as ATOM formatted documents that a billing 
system can pull to aggregate data, It also can support PubSub notification of 
clients thru the pubsubhubub protocol, and push events to a long-term archiving 
store thru the AtomPub protocol.

That said, the notification system outputs its events as JSON, so it should be 
easy to pipe into a json document-oriented db if that's what you need. (we only 
use ATOM because we have a atom-based archiving/search/aggregation engine (it's 
open source: http://atomhopper.org/ ) our in-house systems already plug into. )




3a. The monitoring system can pull/push MongoDB

3b. The billing system can pull to create invoices

4. A mediation EIP should be necessary to integrate a billing/monitoring 
product. (ServiceMix / Camel)

This is to receive your feedback. So please, critics are welcome!

Cheers!

--
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/


___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

--
Monsyne M. Dragon
OpenStack/Nova
cell 210-441-0965
work x 5014190

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Luis Gervaso
Nick, I want contribute in the discussion group.

I have seen yagi implementation, and i like it. I like the protocol.

But I think that it's a protocol that fits very well when no sensible data
is involved (content feeds). When money, resources, companies are involved
i think we need to use a more elaborated schema.

I don't like the 3rd parties have to pull, my proporsal here is that 3rd
parties can be entities externalized outside of the datacenter.

1. i don't want to make the accounting public accessible for security
reasons.
2. 3rd parties can't be coupled to openstack, i want to feed them. I think
this is the key.

What i realized is that the listener needs to feed the billing system
following the rules/api of the selected billing system.

Scenario:

1. A company has an account on a billing provider
2. A company should define the pricing model in the billing system, outside
openstack (i.e: inside zuora, jbilling, recurly, dough)
3. When a message arrives to the listener the listener has to perform the
following actions:

3a: transform and store the message in a accounting system (restful api)
3b (optional): transform and store the message in a billing system (restful
api) example: [
http://knowledgecenter.zuora.com/C_Zuora_User_Guides/A_Billing_and_Payments/A_Z-Billing
]
3c (optional): perform monitoring (currently evaluating sigar functionality)

3a: is openstack related

3b, 3c, ...: are hooks

4a. A company can query the billing system to gather the bills (no
openstack dependencies)
4b. A company can query the monitoring system (no openstack dependencies)

Regarding MongoDB, I recommend a document oriented database where we can
query with criteria. Redis is key-value oriented.

Cheers!

On Mon, Apr 23, 2012 at 4:51 PM, Kevin L. Mitchell 
kevin.mitch...@rackspace.com wrote:

 On Sun, 2012-04-22 at 20:50 +0200, Luis Gervaso wrote:
  I want to share the architecture i am developing in order to perform
  the monitorig / billing OpenStack support:
 
 
  1. AMQP Client which listen to RabbitMQ / QPid (this should be
  interchangeable) (Own Stuff or ServiceMix / Camel)
 
 
  2. Events should be stored on a NoSQL document oriented database (I
  think mongodb is perfect, since we can query in a super easy fashion)

 Except for the use of MongoDB, the above seems to me to be almost
 identical to the notifications system already in Nova, which Yagi
 consumes.  Have you looked at our existing notifications?  Yagi?  One or
 both might solve at least parts of your problem…

 --
 Kevin L. Mitchell kevin.mitch...@rackspace.com


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Doug Hellmann
On Sun, Apr 22, 2012 at 5:29 PM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 Dough is a proposed billing service.  There was a session at Folsom design
 summit.  This is a practical project for an OpenStack provider with test
 code on github.
 http://summit.openstack.org/sessions/view/37

 
 The billing system consists of three components.
 1) API Server, which receives subscribe/unsubscribe and usage query
 requests.
 2) Farmer, which periodically checks all subscriptions and requests
 billing to the collector.
 3) Collector, gets work from the farmer and uses python-novaclient,
 kanyun-client, swift-client to retrieve usage information of a product the
 tenant has subscribed and charges money to the accordingly.
 
 Kanyun is an OpenStack monitoring tool, but I don't see documentation in
 the code tree (but I've just pulled it to see).
 https://github.com/lzyeval

 Dough had mixed reviews during the session, but that I think was because
 it came across as a billing system triggered solely by Horizon requests and
 was a polled architecture.


I also had some reservations about Dough because it seemed brittle. For
example, it was my impression that if an instance creation operation failed
for some reason, the operator had to manually correct the billing data.


 Given what we have today, I'd implement my own billing/metering system
 exactly the same way.  In fact, I have.  Our own e-commerce system at
 Nimbis works this way with EC2 and OpenStack presently because the only
 option available is polling periodically and logging the usage data.


The fact that it only worked through Horizon was the biggest issue for us.
That means if we expose the API to our users, instances created via the API
but not the Horizon dashboard would not be billed. I understood the
decision to be a proof-of-concept, but an event-based model for collecting
the data seems much more robust and flexible.


 Where I'd like to see OpenStack go is metering service that is fully
 asynchronous and event driven so that I only need to hit the API service
 when I'm generating an invoice, rather than once per minute because I don't
 know when an instance was terminated by the user or just crashed.

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 4:57 PM, Endre Karlson wrote:

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.com

 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.comwrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

  Hi,

 I want to share the architecture i am developing in order to perform
 the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Brian Schott
Is there a document somewhere on what events the services emit?  

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:

 This already exists in trunk.  The Notification system was designed 
 specifically to feed billing and monitoring systems. 
 
 Basically, we don't want Nova/Glance/etc to be in the business of trying to 
 determine billing logic, since it is different for pretty much everyone,  so 
 we just emit notifications to a queue and the interested pull what they want, 
 and aggregate according to their own rules. 
 
 On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:
 
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
  
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 We have an existing system called Yagi (https://github.com/Cerberus98/yagi/) 
 that listens to the notification queues and persists events to a Redis 
 database.  It then provides feeds as ATOM formatted documents that a billing 
 system can pull to aggregate data, It also can support PubSub notification of 
 clients thru the pubsubhubub protocol, and push events to a long-term 
 archiving store thru the AtomPub protocol. 
 
 That said, the notification system outputs its events as JSON, so it should 
 be easy to pipe into a json document-oriented db if that's what you need. (we 
 only use ATOM because we have a atom-based archiving/search/aggregation 
 engine (it's open source: http://atomhopper.org/  ) our in-house systems 
 already plug into. )
 
 
 
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 --
 Monsyne M. Dragon
 OpenStack/Nova 
 cell 210-441-0965
 work x 5014190
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



smime.p7s
Description: S/MIME cryptographic signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Luis Gervaso
I have been looking at : http://wiki.openstack.org/SystemUsageData

On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 Is there a document somewhere on what events the services emit?

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:

  This already exists in trunk.  The Notification system was designed
 specifically to feed billing and monitoring systems.

  Basically, we don't want Nova/Glance/etc to be in the business of trying
 to determine billing logic, since it is different for pretty much everyone,
  so we just emit notifications to a queue and the interested pull what they
 want, and aggregate according to their own rules.

  On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

 Hi,

  I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

  1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)



 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)


  We have an existing system called Yagi (
 https://github.com/Cerberus98/yagi/) that listens to the notification
 queues and persists events to a Redis database.  It then provides feeds as
 ATOM formatted documents that a billing system can pull to aggregate data,
 It also can support PubSub notification of clients thru the pubsubhubub
 protocol, and push events to a long-term archiving store thru the AtomPub
 protocol.

  That said, the notification system outputs its events as JSON, so it
 should be easy to pipe into a json document-oriented db if that's what you
 need. (we only use ATOM because we have a atom-based
 archiving/search/aggregation engine (it's open source:
 http://atomhopper.org/ ) our in-house systems already plug into. )




  3a. The monitoring system can pull/push MongoDB

  3b. The billing system can pull to create invoices

  4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

  Cheers!

  --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


   --
 Monsyne M. Dragon
 OpenStack/Nova
 cell 210-441-0965
 work x 5014190

  ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp





-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Matt Dietz
If you wanted to use Yagi, it would be trivial to add a JSON only notifier to 
Yagi. If you're interested and need a hand, feel free to hit Dragon or I for 
assistance.

From: Monsyne Dragon mdra...@rackspace.commailto:mdra...@rackspace.com
Date: Mon, 23 Apr 2012 16:39:08 +
To: Luis Gervaso l...@woorea.esmailto:l...@woorea.es
Cc: openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

This already exists in trunk.  The Notification system was designed 
specifically to feed billing and monitoring systems.

Basically, we don't want Nova/Glance/etc to be in the business of trying to 
determine billing logic, since it is different for pretty much everyone,  so we 
just emit notifications to a queue and the interested pull what they want, and 
aggregate according to their own rules.

On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

Hi,

I want to share the architecture i am developing in order to perform the 
monitorig / billing OpenStack support:

1. AMQP Client which listen to RabbitMQ / QPid (this should be interchangeable) 
(Own Stuff or ServiceMix / Camel)

2. Events should be stored on a NoSQL document oriented database (I think 
mongodb is perfect, since we can query in a super easy fashion)

We have an existing system called Yagi (https://github.com/Cerberus98/yagi/) 
that listens to the notification queues and persists events to a Redis 
database.  It then provides feeds as ATOM formatted documents that a billing 
system can pull to aggregate data, It also can support PubSub notification of 
clients thru the pubsubhubub protocol, and push events to a long-term archiving 
store thru the AtomPub protocol.

That said, the notification system outputs its events as JSON, so it should be 
easy to pipe into a json document-oriented db if that's what you need. (we only 
use ATOM because we have a atom-based archiving/search/aggregation engine (it's 
open source: http://atomhopper.org/ ) our in-house systems already plug into. )




3a. The monitoring system can pull/push MongoDB

3b. The billing system can pull to create invoices

4. A mediation EIP should be necessary to integrate a billing/monitoring 
product. (ServiceMix / Camel)

This is to receive your feedback. So please, critics are welcome!

Cheers!

--
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/


___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

--
Monsyne M. Dragon
OpenStack/Nova
cell 210-441-0965
work x 5014190

___ Mailing list: 
https://launchpad.net/~openstack Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net Unsubscribe 
: https://launchpad.net/~openstack More help : 
https://help.launchpad.net/ListHelp
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Brian Schott
So, we could build on this. No reason to reinvent, but we might want to expand 
the number of events.  I'm concerned about things like what happens when 
flavors change over time.  Maybe the answer is, always append to the 
flavor/instance-type table.  The code I remember and the admin interface that 
Ken wrote allowed you to modify flavors.  That would break billing unless you 
also track flavor modifications.

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 23, 2012, at 1:40 PM, Luis Gervaso wrote:

 I have been looking at : http://wiki.openstack.org/SystemUsageData
 
 On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:
 Is there a document somewhere on what events the services emit?  
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:
 
 This already exists in trunk.  The Notification system was designed 
 specifically to feed billing and monitoring systems. 
 
 Basically, we don't want Nova/Glance/etc to be in the business of trying to 
 determine billing logic, since it is different for pretty much everyone,  so 
 we just emit notifications to a queue and the interested pull what they 
 want, and aggregate according to their own rules. 
 
 On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:
 
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
  
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 We have an existing system called Yagi (https://github.com/Cerberus98/yagi/) 
 that listens to the notification queues and persists events to a Redis 
 database.  It then provides feeds as ATOM formatted documents that a billing 
 system can pull to aggregate data, It also can support PubSub notification 
 of clients thru the pubsubhubub protocol, and push events to a long-term 
 archiving store thru the AtomPub protocol. 
 
 That said, the notification system outputs its events as JSON, so it should 
 be easy to pipe into a json document-oriented db if that's what you need. 
 (we only use ATOM because we have a atom-based archiving/search/aggregation 
 engine (it's open source: http://atomhopper.org/ ) our in-house systems 
 already plug into. )
 
 
 
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 --
 Monsyne M. Dragon
 OpenStack/Nova 
 cell 210-441-0965
 work x 5014190
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 



smime.p7s
Description: S/MIME cryptographic signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Nick Barcet
On 04/23/2012 07:06 PM, Luis Gervaso wrote:
 Nick, I want contribute in the discussion group.

Luis,
I just sent your an invite to the doodle to pick the best time for this
irc meeting.  Once the date will have been finalized (I'll close the
poll tomorrow EOD), I'll announce the date, time and place on this list
as well as to everyone that entered the poll.

Anyone else wanting to participate in the poll for the meeting time may
follow this link:
http://doodle.com/zi6b6vxxkiuxyuqk

Thanks,
Nick



signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Zhongyue Luo
Brian,

Dough isn't dependent on Horizon.

Dough has a client that can be inserted anywhere to notify the start/end of
using a resource.

We inserted the client in horizon just to try out the many ways our billing
system could be integrated with our existing deployment.

We are planning to make a Nova notifier to listen on the AMQP to automate
the subscription process.

However, we still have to devise a way to integrate Swift that would
be symmetric with the things done in Nova.

Also fail recovery is a feature we are working on right now. Separate the
log and execution to cross-reference the logs and DB periodically.

We plan to finish the first release this month and use it on our deployment.

Let me know if you have other suggestions.

Cheers,
LZY

On Tue, Apr 24, 2012 at 1:06 AM, Doug Hellmann
doug.hellm...@dreamhost.comwrote:



 On Sun, Apr 22, 2012 at 5:29 PM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:

 Dough is a proposed billing service.  There was a session at Folsom
 design summit.  This is a practical project for an OpenStack provider with
 test code on github.
 http://summit.openstack.org/sessions/view/37

 
 The billing system consists of three components.
 1) API Server, which receives subscribe/unsubscribe and usage query
 requests.
 2) Farmer, which periodically checks all subscriptions and requests
 billing to the collector.
 3) Collector, gets work from the farmer and uses python-novaclient,
 kanyun-client, swift-client to retrieve usage information of a product the
 tenant has subscribed and charges money to the accordingly.
 
 Kanyun is an OpenStack monitoring tool, but I don't see documentation in
 the code tree (but I've just pulled it to see).
 https://github.com/lzyeval

 Dough had mixed reviews during the session, but that I think was because
 it came across as a billing system triggered solely by Horizon requests and
 was a polled architecture.


 I also had some reservations about Dough because it seemed brittle. For
 example, it was my impression that if an instance creation operation failed
 for some reason, the operator had to manually correct the billing data.


 Given what we have today, I'd implement my own billing/metering system
 exactly the same way.  In fact, I have.  Our own e-commerce system at
 Nimbis works this way with EC2 and OpenStack presently because the only
 option available is polling periodically and logging the usage data.


 The fact that it only worked through Horizon was the biggest issue for us.
 That means if we expose the API to our users, instances created via the API
 but not the Horizon dashboard would not be billed. I understood the
 decision to be a proof-of-concept, but an event-based model for collecting
 the data seems much more robust and flexible.


 Where I'd like to see OpenStack go is metering service that is fully
 asynchronous and event driven so that I only need to hit the API service
 when I'm generating an invoice, rather than once per minute because I don't
 know when an instance was terminated by the user or just crashed.

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 4:57 PM, Endre Karlson wrote:

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.com

 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
  wrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Joshua Harlow
I like http://wiki.openstack.org/SystemUsageData

I just wonder if there should be offical formats for the data sent across the 
wire.

Or at least high level formats that define the data, maybe in a simple python 
map style layout.

With examples would be awesome.

On 4/23/12 10:40 AM, Luis Gervaso l...@woorea.es wrote:

I have been looking at : http://wiki.openstack.org/SystemUsageData

On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott brian.sch...@nimbisservices.com 
wrote:
Is there a document somewhere on what events the services emit?

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064 tel:443-274-6064   fx: 443-274-6060 tel:443-274-6060



On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:

This already exists in trunk.  The Notification system was designed 
specifically to feed billing and monitoring systems.

Basically, we don't want Nova/Glance/etc to be in the business of trying to 
determine billing logic, since it is different for pretty much everyone,  so we 
just emit notifications to a queue and the interested pull what they want, and 
aggregate according to their own rules.

On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

Hi,

I want to share the architecture i am developing in order to perform the 
monitorig / billing OpenStack support:

1. AMQP Client which listen to RabbitMQ / QPid (this should be interchangeable) 
(Own Stuff or ServiceMix / Camel)

2. Events should be stored on a NoSQL document oriented database (I think 
mongodb is perfect, since we can query in a super easy fashion)

We have an existing system called Yagi (https://github.com/Cerberus98/yagi/) 
that listens to the notification queues and persists events to a Redis 
database.  It then provides feeds as ATOM formatted documents that a billing 
system can pull to aggregate data, It also can support PubSub notification of 
clients thru the pubsubhubub protocol, and push events to a long-term archiving 
store thru the AtomPub protocol.

That said, the notification system outputs its events as JSON, so it should be 
easy to pipe into a json document-oriented db if that's what you need. (we only 
use ATOM because we have a atom-based archiving/search/aggregation engine (it's 
open source: http://atomhopper.org/ ) our in-house systems already plug into. )




3a. The monitoring system can pull/push MongoDB

3b. The billing system can pull to create invoices

4. A mediation EIP should be necessary to integrate a billing/monitoring 
product. (ServiceMix / Camel)

This is to receive your feedback. So please, critics are welcome!

Cheers!
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Luis Gervaso
Joshua,

I have performed a create instance operation and here is an example data
obtained from stable/essex rabbitmq nova catch all exchange.

[*] Waiting for messages. To exit press CTRL+C

 [x] Received '{_context_roles: [admin], _msg_id:
a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no,
_context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args:
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
true, _context_project_id: null, _context_timestamp:
2012-03-24T01:36:48.774891, _context_user_id: null, method:
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id:
a1cb1cf61e5441c2a772b29d3cd54202, _context_read_deleted: no,
_context_request_id: req-db34ba32-8bd9-4cd5-b7b5-43705a9e258e, args:
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
true, _context_project_id: null, _context_timestamp:
2012-03-24T01:37:50.463586, _context_user_id: null, method:
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id:
ebb0b1c340de4024a22eafec9d0a2d66, _context_read_deleted: no,
_context_request_id: req-ddb51b2b-a29f-4aad-909d-3f7f79f053c4, args:
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7,
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2,
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin:
true, _context_project_id: null, _context_timestamp:
2012-03-24T01:38:59.217333, _context_user_id: null, method:
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [Member], _msg_id:
729535c00d224414a98286e9ce3475a9, _context_read_deleted: no,
_context_request_id: req-b056a8cc-3542-41a9-9e58-8fb592086264,
_context_auth_token: deb477655fba448e85199f7e559da77a,
_context_is_admin: false, _context_project_id:
df3827f76f714b1e8f31675caf84ae9d, _context_timestamp:
2012-03-24T01:39:19.813393, _context_user_id:
abe21eb7e6884547810f0a43c216e6a6, method:
get_floating_ips_by_project, _context_remote_address: 192.168.1.41}'

 [x] Received '{_context_roles: [Member, admin],
_context_request_id: req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5,
_context_read_deleted: no, args: {request_spec: {num_instances:
1, block_device_mapping: [], image: {status: active, name:
cirros-0.3.0-x86_64-uec, deleted: false, container_format: ami,
created_at: 2012-03-20 17:37:08, disk_format: ami, updated_at:
2012-03-20 17:37:08, properties: {kernel_id:
6b700d25-3293-420a-82e4-8247d4b0da2a, ramdisk_id:
22b10c35-c868-4470-84ef-54ae9f17a977}, min_ram: 0, checksum:
2f81976cae15c16ef0010c51e3a6c163, min_disk: 0, is_public: true,
deleted_at: null, id: f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, size:
25165824}, instance_type: {root_gb: 0, name: m1.tiny, deleted:
false, created_at: null, ephemeral_gb: 0, updated_at: null,
memory_mb: 512, vcpus: 1, flavorid: 1, swap: 0, rxtx_factor:
1.0, extra_specs: {}, deleted_at: null, vcpu_weight: null, id: 2},
instance_properties: {vm_state: building, ephemeral_gb: 0,
access_ip_v6: null, access_ip_v4: null, kernel_id:
6b700d25-3293-420a-82e4-8247d4b0da2a, key_name: testssh,
ramdisk_id: 22b10c35-c868-4470-84ef-54ae9f17a977, instance_type_id:
2, user_data: dGhpcyBpcyBteSB1c2VyIGRhdGE=, vm_mode: null,
display_name: eureka, config_drive_id: , reservation_id:
r-xtzjx50j, key_data: ssh-rsa
B3NzaC1yc2EDAQABgQDJ31tdayh1xnAY+JO/ZVdg5L83CsIU7qaOmFubdH7zlg2jjS9JmkPNANj99zx+UHg5F5JKGMef9M8VP/V89D5g0oIjIJtBdFpKOScBo3yJ1vteW5ItImH8h9TldymHf+CWNVY1oNNqzXqAb41xwUUDNvgeXHRZNnE6tmwZO0oC1Q==
stack@ubuntu\n, root_gb: 0, user_id:
abe21eb7e6884547810f0a43c216e6a6, uuid:
40b5a1c5-bd4f-40ee-ae0a-73e0bc927431, root_device_name: null,
availability_zone: null, launch_time: 2012-03-24T01:39:52Z,
metadata: {}, display_description: eureka, memory_mb: 512,
launch_index: 0, vcpus: 1, locked: false, image_ref:
f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, architecture: null,
power_state: 0, auto_disk_config: null, progress: 0, os_type: null,
project_id: df3827f76f714b1e8f31675caf84ae9d, config_drive: },
security_group: [default]}, is_first_time: true, filter_properties:
{scheduler_hints: {}}, topic: compute, admin_password:
SKohh79r956J, injected_files: [], requested_networks: null},
_context_auth_token: deb477655fba448e85199f7e559da77a,
_context_is_admin: false, _context_project_id:
df3827f76f714b1e8f31675caf84ae9d, _context_timestamp:
2012-03-24T01:39:52.089383, _context_user_id:
abe21eb7e6884547810f0a43c216e6a6, method: run_instance,
_context_remote_address: 192.168.1.41}'

 [x] Received '{_context_roles: [Member, admin],
_context_request_id: req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5,
_context_read_deleted: no, args: {instance_uuid:
40b5a1c5-bd4f-40ee-ae0a-73e0bc927431, requested_networks: 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Alan Sill
The following links to work from OGF in the usage accounting and tracking area 
might be useful.  

First of all, we have the UsageRecord format (UR), which has been used in a 
variety of distributed computing environments for tracking usage.  It defines 
an XML-based format for exchange of usage records.  The format is general 
enough to describe a variety of distributed computing environments, but 
specific enough to allow practical usage and has served as the basis for usage 
accounting in grids, for example, for some time.

  http://ogf.org/documents/GFD.98.pdf

We also have the following storage accounting work in process and nearly 
complete:

https://forge.gridforum.org/sf/go/artf6532?nav=1 and
http://www.ogf.org/Public_Comment_Docs/Documents/2012-02/EMI-StAR-OGF-info-doc-v2.pdf
 

This document has just come out of public comment and is moving toward 
publication shortly.

Between the UR work on traditional cpu accounting and the above storage 
accounting publication, I hope this provides some input into this topic from 
OGF.

Alan

On Apr 23, 2012, at 12:50 PM, Brian Schott wrote:

 So, we could build on this. No reason to reinvent, but we might want to 
 expand the number of events.  I'm concerned about things like what happens 
 when flavors change over time.  Maybe the answer is, always append to the 
 flavor/instance-type table.  The code I remember and the admin interface that 
 Ken wrote allowed you to modify flavors.  That would break billing unless you 
 also track flavor modifications.
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 23, 2012, at 1:40 PM, Luis Gervaso wrote:
 
 I have been looking at : http://wiki.openstack.org/SystemUsageData
 
 On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:
 Is there a document somewhere on what events the services emit?  
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:
 
 This already exists in trunk.  The Notification system was designed 
 specifically to feed billing and monitoring systems. 
 
 Basically, we don't want Nova/Glance/etc to be in the business of trying to 
 determine billing logic, since it is different for pretty much everyone,  
 so we just emit notifications to a queue and the interested pull what they 
 want, and aggregate according to their own rules. 
 
 On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:
 
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
  
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 We have an existing system called Yagi 
 (https://github.com/Cerberus98/yagi/) that listens to the notification 
 queues and persists events to a Redis database.  It then provides feeds as 
 ATOM formatted documents that a billing system can pull to aggregate data, 
 It also can support PubSub notification of clients thru the pubsubhubub 
 protocol, and push events to a long-term archiving store thru the AtomPub 
 protocol. 
 
 That said, the notification system outputs its events as JSON, so it should 
 be easy to pipe into a json document-oriented db if that's what you need. 
 (we only use ATOM because we have a atom-based archiving/search/aggregation 
 engine (it's open source: http://atomhopper.org/ ) our in-house systems 
 already plug into. )
 
 
 
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 --
 Monsyne M. Dragon
 OpenStack/Nova 
 cell 210-441-0965
 work x 5014190
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Sandy Walsh
Flavor information is copied to the Instance table on creation so the
Flavors can change and still be tracked in the Instance. It may just
need to be sent in the notification payload.

The current events in the system are documented here:
http://wiki.openstack.org/SystemUsageData

-Sandy


On 04/23/2012 02:50 PM, Brian Schott wrote:
 So, we could build on this. No reason to reinvent, but we might want to
 expand the number of events.  I'm concerned about things like what
 happens when flavors change over time.  Maybe the answer is, always
 append to the flavor/instance-type table.  The code I remember and the
 admin interface that Ken wrote allowed you to modify flavors.  That
 would break billing unless you also track flavor modifications.
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com mailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 23, 2012, at 1:40 PM, Luis Gervaso wrote:
 
 I have been looking at : http://wiki.openstack.org/SystemUsageData

 On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott
 brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.com wrote:

 Is there a document somewhere on what events the services emit?  

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064 tel:443-274-6064  fx: 443-274-6060
 tel:443-274-6060



 On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:

 This already exists in trunk.  The Notification system was
 designed specifically to feed billing and monitoring systems. 

 Basically, we don't want Nova/Glance/etc to be in the business of
 trying to determine billing logic, since it is different for
 pretty much everyone,  so we just emit notifications to a queue
 and the interested pull what they want, and aggregate according
 to their own rules. 

 On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

 Hi,

 I want to share the architecture i am developing in order to
 perform the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)
  
 2. Events should be stored on a NoSQL document oriented database
 (I think mongodb is perfect, since we can query in a super easy
 fashion)

 We have an existing system called Yagi
 (https://github.com/Cerberus98/yagi/) that listens to the
 notification queues and persists events to a Redis database.  It
 then provides feeds as ATOM formatted documents that a billing
 system can pull to aggregate data, It also can support PubSub
 notification of clients thru the pubsubhubub protocol, and push
 events to a long-term archiving store thru the AtomPub protocol. 

 That said, the notification system outputs its events as JSON, so
 it should be easy to pipe into a json document-oriented db if
 that's what you need. (we only use ATOM because we have a
 atom-based archiving/search/aggregation engine (it's open
 source: http://atomhopper.org/ ) our in-house systems already
 plug into. )




 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices 

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344 tel:%28%2B34%29%20627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp

 --
 Monsyne M. Dragon
 OpenStack/Nova 
 cell 210-441-0965 tel:210-441-0965
 work x 5014190

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/

 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Joshua Harlow
Great,

Now we just need to officialize those as a first step to making a real 
interchange format that can be versioned, documented... and all the other 
goodies u would normally expect.

On 4/23/12 12:26 PM, Luis Gervaso l...@woorea.es wrote:

Joshua,

I have performed a create instance operation and here is an example data 
obtained from stable/essex rabbitmq nova catch all exchange.
[*] Waiting for messages. To exit press CTRL+C

 [x] Received '{_context_roles: [admin], _msg_id: 
a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no, 
_context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:36:48.774891, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id: 
a1cb1cf61e5441c2a772b29d3cd54202, _context_read_deleted: no, 
_context_request_id: req-db34ba32-8bd9-4cd5-b7b5-43705a9e258e, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:37:50.463586, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id: 
ebb0b1c340de4024a22eafec9d0a2d66, _context_read_deleted: no, 
_context_request_id: req-ddb51b2b-a29f-4aad-909d-3f7f79f053c4, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:38:59.217333, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [Member], _msg_id: 
729535c00d224414a98286e9ce3475a9, _context_read_deleted: no, 
_context_request_id: req-b056a8cc-3542-41a9-9e58-8fb592086264, 
_context_auth_token: deb477655fba448e85199f7e559da77a, _context_is_admin: 
false, _context_project_id: df3827f76f714b1e8f31675caf84ae9d, 
_context_timestamp: 2012-03-24T01:39:19.813393, _context_user_id: 
abe21eb7e6884547810f0a43c216e6a6, method: get_floating_ips_by_project, 
_context_remote_address: 192.168.1.41}'

 [x] Received '{_context_roles: [Member, admin], _context_request_id: 
req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5, _context_read_deleted: no, 
args: {request_spec: {num_instances: 1, block_device_mapping: [], 
image: {status: active, name: cirros-0.3.0-x86_64-uec, deleted: 
false, container_format: ami, created_at: 2012-03-20 17:37:08, 
disk_format: ami, updated_at: 2012-03-20 17:37:08, properties: 
{kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, ramdisk_id: 
22b10c35-c868-4470-84ef-54ae9f17a977}, min_ram: 0, checksum: 
2f81976cae15c16ef0010c51e3a6c163, min_disk: 0, is_public: true, 
deleted_at: null, id: f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, size: 
25165824}, instance_type: {root_gb: 0, name: m1.tiny, deleted: false, 
created_at: null, ephemeral_gb: 0, updated_at: null, memory_mb: 512, 
vcpus: 1, flavorid: 1, swap: 0, rxtx_factor: 1.0, extra_specs: {}, 
deleted_at: null, vcpu_weight: null, id: 2}, instance_properties: 
{vm_state: building, ephemeral_gb: 0, access_ip_v6: null, 
access_ip_v4: null, kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, 
key_name: testssh, ramdisk_id: 22b10c35-c868-4470-84ef-54ae9f17a977, 
instance_type_id: 2, user_data: dGhpcyBpcyBteSB1c2VyIGRhdGE=, vm_mode: 
null, display_name: eureka, config_drive_id: , reservation_id: 
r-xtzjx50j, key_data: ssh-rsa 
B3NzaC1yc2EDAQABgQDJ31tdayh1xnAY+JO/ZVdg5L83CsIU7qaOmFubdH7zlg2jjS9JmkPNANj99zx+UHg5F5JKGMef9M8VP/V89D5g0oIjIJtBdFpKOScBo3yJ1vteW5ItImH8h9TldymHf+CWNVY1oNNqzXqAb41xwUUDNvgeXHRZNnE6tmwZO0oC1Q==
 stack@ubuntu\n, root_gb: 0, user_id: abe21eb7e6884547810f0a43c216e6a6, 
uuid: 40b5a1c5-bd4f-40ee-ae0a-73e0bc927431, root_device_name: null, 
availability_zone: null, launch_time: 2012-03-24T01:39:52Z, metadata: 
{}, display_description: eureka, memory_mb: 512, launch_index: 0, 
vcpus: 1, locked: false, image_ref: 
f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, architecture: null, power_state: 0, 
auto_disk_config: null, progress: 0, os_type: null, project_id: 
df3827f76f714b1e8f31675caf84ae9d, config_drive: }, security_group: 
[default]}, is_first_time: true, filter_properties: {scheduler_hints: 
{}}, topic: compute, admin_password: SKohh79r956J, injected_files: 
[], requested_networks: null}, _context_auth_token: 
deb477655fba448e85199f7e559da77a, _context_is_admin: false, 
_context_project_id: df3827f76f714b1e8f31675caf84ae9d, 
_context_timestamp: 2012-03-24T01:39:52.089383, _context_user_id: 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Sandy Walsh
StackTach is a Django-based web interface for capturing, displaying and
navigating OpenStack notifications

https://github.com/rackspace/stacktach

-S


On 04/23/2012 04:26 PM, Luis Gervaso wrote:
 Joshua,
 
 I have performed a create instance operation and here is an example data
 obtained from stable/essex rabbitmq nova catch all exchange.
 
 [*] Waiting for messages. To exit press CTRL+C
 
  [x] Received '{_context_roles: [admin], _msg_id:
 a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no,
 _context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe,
 args: {instance_id: 6, instance_uuid:
 e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, host: ubuntu, project_id:
 c290118b14564257be26a2cb901721a2, rxtx_factor: 1.0},
 _context_auth_token: null, _context_is_admin: true,
 _context_project_id: null, _context_timestamp:
 2012-03-24T01:36:48.774891, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'
 
  [x] Received '{_context_roles: [admin], _msg_id:
 a1cb1cf61e5441c2a772b29d3cd54202, _context_read_deleted: no,
 _context_request_id: req-db34ba32-8bd9-4cd5-b7b5-43705a9e258e,
 args: {instance_id: 6, instance_uuid:
 e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, host: ubuntu, project_id:
 c290118b14564257be26a2cb901721a2, rxtx_factor: 1.0},
 _context_auth_token: null, _context_is_admin: true,
 _context_project_id: null, _context_timestamp:
 2012-03-24T01:37:50.463586, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'
 
  [x] Received '{_context_roles: [admin], _msg_id:
 ebb0b1c340de4024a22eafec9d0a2d66, _context_read_deleted: no,
 _context_request_id: req-ddb51b2b-a29f-4aad-909d-3f7f79f053c4,
 args: {instance_id: 6, instance_uuid:
 e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, host: ubuntu, project_id:
 c290118b14564257be26a2cb901721a2, rxtx_factor: 1.0},
 _context_auth_token: null, _context_is_admin: true,
 _context_project_id: null, _context_timestamp:
 2012-03-24T01:38:59.217333, _context_user_id: null, method:
 get_instance_nw_info, _context_remote_address: null}'
 
  [x] Received '{_context_roles: [Member], _msg_id:
 729535c00d224414a98286e9ce3475a9, _context_read_deleted: no,
 _context_request_id: req-b056a8cc-3542-41a9-9e58-8fb592086264,
 _context_auth_token: deb477655fba448e85199f7e559da77a,
 _context_is_admin: false, _context_project_id:
 df3827f76f714b1e8f31675caf84ae9d, _context_timestamp:
 2012-03-24T01:39:19.813393, _context_user_id:
 abe21eb7e6884547810f0a43c216e6a6, method:
 get_floating_ips_by_project, _context_remote_address: 192.168.1.41}'
 
  [x] Received '{_context_roles: [Member, admin],
 _context_request_id: req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5,
 _context_read_deleted: no, args: {request_spec:
 {num_instances: 1, block_device_mapping: [], image: {status:
 active, name: cirros-0.3.0-x86_64-uec, deleted: false,
 container_format: ami, created_at: 2012-03-20 17:37:08,
 disk_format: ami, updated_at: 2012-03-20 17:37:08, properties:
 {kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, ramdisk_id:
 22b10c35-c868-4470-84ef-54ae9f17a977}, min_ram: 0, checksum:
 2f81976cae15c16ef0010c51e3a6c163, min_disk: 0, is_public: true,
 deleted_at: null, id: f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525,
 size: 25165824}, instance_type: {root_gb: 0, name: m1.tiny,
 deleted: false, created_at: null, ephemeral_gb: 0, updated_at:
 null, memory_mb: 512, vcpus: 1, flavorid: 1, swap: 0,
 rxtx_factor: 1.0, extra_specs: {}, deleted_at: null,
 vcpu_weight: null, id: 2}, instance_properties: {vm_state:
 building, ephemeral_gb: 0, access_ip_v6: null, access_ip_v4:
 null, kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, key_name:
 testssh, ramdisk_id: 22b10c35-c868-4470-84ef-54ae9f17a977,
 instance_type_id: 2, user_data: dGhpcyBpcyBteSB1c2VyIGRhdGE=,
 vm_mode: null, display_name: eureka, config_drive_id: ,
 reservation_id: r-xtzjx50j, key_data: ssh-rsa
 B3NzaC1yc2EDAQABgQDJ31tdayh1xnAY+JO/ZVdg5L83CsIU7qaOmFubdH7zlg2jjS9JmkPNANj99zx+UHg5F5JKGMef9M8VP/V89D5g0oIjIJtBdFpKOScBo3yJ1vteW5ItImH8h9TldymHf+CWNVY1oNNqzXqAb41xwUUDNvgeXHRZNnE6tmwZO0oC1Q==
 stack@ubuntu\n, root_gb: 0, user_id:
 abe21eb7e6884547810f0a43c216e6a6, uuid:
 40b5a1c5-bd4f-40ee-ae0a-73e0bc927431, root_device_name: null,
 availability_zone: null, launch_time: 2012-03-24T01:39:52Z,
 metadata: {}, display_description: eureka, memory_mb: 512,
 launch_index: 0, vcpus: 1, locked: false, image_ref:
 f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, architecture: null,
 power_state: 0, auto_disk_config: null, progress: 0, os_type:
 null, project_id: df3827f76f714b1e8f31675caf84ae9d, config_drive:
 }, security_group: [default]}, is_first_time: true,
 filter_properties: {scheduler_hints: {}}, topic: compute,
 admin_password: SKohh79r956J, injected_files: [],
 requested_networks: null}, _context_auth_token:
 deb477655fba448e85199f7e559da77a, _context_is_admin: false,
 _context_project_id: df3827f76f714b1e8f31675caf84ae9d,
 _context_timestamp: 2012-03-24T01:39:52.089383, _context_user_id:
 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Monsyne Dragon
This looks like just the standard RPC traffic.
You need to turn notifications on
(set:
notification_driver=nova.notifier.rabbit_notifier
in nova's config file)

and listen on the notification.* queues



On Apr 23, 2012, at 2:26 PM, Luis Gervaso wrote:

Joshua,

I have performed a create instance operation and here is an example data 
obtained from stable/essex rabbitmq nova catch all exchange.

[*] Waiting for messages. To exit press CTRL+C

 [x] Received '{_context_roles: [admin], _msg_id: 
a2d13735baad4613b89c6132e0fa8302, _context_read_deleted: no, 
_context_request_id: req-d7ffbe78-7a9c-4d20-9ac5-3e56951526fe, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:36:48.774891, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id: 
a1cb1cf61e5441c2a772b29d3cd54202, _context_read_deleted: no, 
_context_request_id: req-db34ba32-8bd9-4cd5-b7b5-43705a9e258e, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:37:50.463586, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [admin], _msg_id: 
ebb0b1c340de4024a22eafec9d0a2d66, _context_read_deleted: no, 
_context_request_id: req-ddb51b2b-a29f-4aad-909d-3f7f79f053c4, args: 
{instance_id: 6, instance_uuid: e3ad17e6-dd59-4b67-a7d0-e3812f96c2d7, 
host: ubuntu, project_id: c290118b14564257be26a2cb901721a2, 
rxtx_factor: 1.0}, _context_auth_token: null, _context_is_admin: true, 
_context_project_id: null, _context_timestamp: 
2012-03-24T01:38:59.217333, _context_user_id: null, method: 
get_instance_nw_info, _context_remote_address: null}'

 [x] Received '{_context_roles: [Member], _msg_id: 
729535c00d224414a98286e9ce3475a9, _context_read_deleted: no, 
_context_request_id: req-b056a8cc-3542-41a9-9e58-8fb592086264, 
_context_auth_token: deb477655fba448e85199f7e559da77a, _context_is_admin: 
false, _context_project_id: df3827f76f714b1e8f31675caf84ae9d, 
_context_timestamp: 2012-03-24T01:39:19.813393, _context_user_id: 
abe21eb7e6884547810f0a43c216e6a6, method: get_floating_ips_by_project, 
_context_remote_address: 192.168.1.41}'

 [x] Received '{_context_roles: [Member, admin], _context_request_id: 
req-45e6c2af-52c7-4de3-af6c-6b2f7520cfd5, _context_read_deleted: no, 
args: {request_spec: {num_instances: 1, block_device_mapping: [], 
image: {status: active, name: cirros-0.3.0-x86_64-uec, deleted: 
false, container_format: ami, created_at: 2012-03-20 17:37:08, 
disk_format: ami, updated_at: 2012-03-20 17:37:08, properties: 
{kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, ramdisk_id: 
22b10c35-c868-4470-84ef-54ae9f17a977}, min_ram: 0, checksum: 
2f81976cae15c16ef0010c51e3a6c163, min_disk: 0, is_public: true, 
deleted_at: null, id: f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, size: 
25165824}, instance_type: {root_gb: 0, name: m1.tiny, deleted: false, 
created_at: null, ephemeral_gb: 0, updated_at: null, memory_mb: 512, 
vcpus: 1, flavorid: 1, swap: 0, rxtx_factor: 1.0, extra_specs: {}, 
deleted_at: null, vcpu_weight: null, id: 2}, instance_properties: 
{vm_state: building, ephemeral_gb: 0, access_ip_v6: null, 
access_ip_v4: null, kernel_id: 6b700d25-3293-420a-82e4-8247d4b0da2a, 
key_name: testssh, ramdisk_id: 22b10c35-c868-4470-84ef-54ae9f17a977, 
instance_type_id: 2, user_data: dGhpcyBpcyBteSB1c2VyIGRhdGE=, vm_mode: 
null, display_name: eureka, config_drive_id: , reservation_id: 
r-xtzjx50j, key_data: ssh-rsa 
B3NzaC1yc2EDAQABgQDJ31tdayh1xnAY+JO/ZVdg5L83CsIU7qaOmFubdH7zlg2jjS9JmkPNANj99zx+UHg5F5JKGMef9M8VP/V89D5g0oIjIJtBdFpKOScBo3yJ1vteW5ItImH8h9TldymHf+CWNVY1oNNqzXqAb41xwUUDNvgeXHRZNnE6tmwZO0oC1Q==
 stack@ubuntu\n, root_gb: 0, user_id: abe21eb7e6884547810f0a43c216e6a6, 
uuid: 40b5a1c5-bd4f-40ee-ae0a-73e0bc927431, root_device_name: null, 
availability_zone: null, launch_time: 2012-03-24T01:39:52Z, metadata: 
{}, display_description: eureka, memory_mb: 512, launch_index: 0, 
vcpus: 1, locked: false, image_ref: 
f7d4bea2-2aed-4bf3-a5cb-db6a34c4a525, architecture: null, power_state: 0, 
auto_disk_config: null, progress: 0, os_type: null, project_id: 
df3827f76f714b1e8f31675caf84ae9d, config_drive: }, security_group: 
[default]}, is_first_time: true, filter_properties: {scheduler_hints: 
{}}, topic: compute, admin_password: SKohh79r956J, injected_files: 
[], requested_networks: null}, _context_auth_token: 
deb477655fba448e85199f7e559da77a, _context_is_admin: false, 
_context_project_id: df3827f76f714b1e8f31675caf84ae9d, 
_context_timestamp: 2012-03-24T01:39:52.089383, 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-23 Thread Loic Dachary
On 04/23/2012 10:09 PM, Sandy Walsh wrote:
 Flavor information is copied to the Instance table on creation so the
 Flavors can change and still be tracked in the Instance. It may just
 need to be sent in the notification payload.

 The current events in the system are documented here:
 http://wiki.openstack.org/SystemUsageData

Hi,

Metering needs to account for the volume of data sent to external network 
destinations  ( i.e. n4 in http://wiki.openstack.org/EfficientMetering ) or 
the disk I/O etc. This kind of resource is billable.

The information described at http://wiki.openstack.org/SystemUsageData will be 
used by metering but other data sources need to be harvested as well.

Cheers
 -Sandy


 On 04/23/2012 02:50 PM, Brian Schott wrote:
 So, we could build on this. No reason to reinvent, but we might want to
 expand the number of events.  I'm concerned about things like what
 happens when flavors change over time.  Maybe the answer is, always
 append to the flavor/instance-type table.  The code I remember and the
 admin interface that Ken wrote allowed you to modify flavors.  That
 would break billing unless you also track flavor modifications.

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com mailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 23, 2012, at 1:40 PM, Luis Gervaso wrote:

 I have been looking at : http://wiki.openstack.org/SystemUsageData

 On Mon, Apr 23, 2012 at 7:35 PM, Brian Schott
 brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.com wrote:

 Is there a document somewhere on what events the services emit?  

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 mailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064 tel:443-274-6064  fx: 443-274-6060
 tel:443-274-6060



 On Apr 23, 2012, at 12:39 PM, Monsyne Dragon wrote:

 This already exists in trunk.  The Notification system was
 designed specifically to feed billing and monitoring systems. 

 Basically, we don't want Nova/Glance/etc to be in the business of
 trying to determine billing logic, since it is different for
 pretty much everyone,  so we just emit notifications to a queue
 and the interested pull what they want, and aggregate according
 to their own rules. 

 On Apr 22, 2012, at 1:50 PM, Luis Gervaso wrote:

 Hi,

 I want to share the architecture i am developing in order to
 perform the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)
  
 2. Events should be stored on a NoSQL document oriented database
 (I think mongodb is perfect, since we can query in a super easy
 fashion)
 We have an existing system called Yagi
 (https://github.com/Cerberus98/yagi/) that listens to the
 notification queues and persists events to a Redis database.  It
 then provides feeds as ATOM formatted documents that a billing
 system can pull to aggregate data, It also can support PubSub
 notification of clients thru the pubsubhubub protocol, and push
 events to a long-term archiving store thru the AtomPub protocol. 

 That said, the notification system outputs its events as JSON, so
 it should be easy to pipe into a json document-oriented db if
 that's what you need. (we only use ATOM because we have a
 atom-based archiving/search/aggregation engine (it's open
 source: http://atomhopper.org/ ) our in-house systems already
 plug into. )



 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices 

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344 tel:%28%2B34%29%20627983344
 luis@ mailto:luis.gerv...@gmail.comwoorea.es http://woorea.es/


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 --
 Monsyne M. Dragon
 OpenStack/Nova 
 cell 210-441-0965 tel:210-441-0965
 work x 5014190

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 mailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : 

[Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
Hi,

I want to share the architecture i am developing in order to perform the
monitorig / billing OpenStack support:

1. AMQP Client which listen to RabbitMQ / QPid (this should be
interchangeable) (Own Stuff or ServiceMix / Camel)

2. Events should be stored on a NoSQL document oriented database (I think
mongodb is perfect, since we can query in a super easy fashion)

3a. The monitoring system can pull/push MongoDB

3b. The billing system can pull to create invoices

4. A mediation EIP should be necessary to integrate a billing/monitoring
product. (ServiceMix / Camel)

This is to receive your feedback. So please, critics are welcome!

Cheers!

-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Endre Karlson
What about using the Dough project?

Endre.

2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
Dough is the proposed billing platform/product (where the billing rules
live), isn't it?

I don't know Dough enough, so please me correct me if i'm wrong.

I'm trying to define a generic/agnostic integration process, obviously
where Dough
can fit perfectly. I would like it become part to the reference
architecture.

Option 1) [3b in the arch proposed]

Dough should pull NoSQL

Option 2)

A Mediator can feed Dough


On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.comwrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

  Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Matt Joyce
Correct me if I am wrong but mongo has not been used in openstack
previously?  What is the benefit here that justifies bringing in new
technology?

Also are you planning an active polling process over AMPQ or passive
listening for the monitor?

It seems to me that most of the main components today can provide
billing data via their API, there's no need to write anything new.
Maybe we should just standardize billing related API queries across
the board?

-Matt

On Sun, Apr 22, 2012 at 12:36 PM, Luis Gervaso l...@woorea.es wrote:
 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously where
 Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
 wrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
On Sun, Apr 22, 2012 at 9:57 PM, Matt Joyce m...@nycresistor.com wrote:

 Correct me if I am wrong but mongo has not been used in openstack
 previously?  What is the benefit here that justifies bringing in new
 technology?


Mongo is document oriented, which i consider fits perfectly with the needs.

It allows to query a huge json documents set.

In older version of OpenStack the NoSQL used was Redis, this is key oriented



 Also are you planning an active polling process over AMPQ or passive
 listening for the monitor?


Listen: The Message Listener will feed MongoDB


 It seems to me that most of the main components today can provide
 billing data via their API,


You are right, the mediation has to transform the OpenStack specific data to
the billing priovider. Then using the billing provider API we can feed it.


 there's no need to write anything new.


We need to provider a driver for each billing provider


 Maybe we should just standardize billing related API queries across
 the board?


I see this option outbound of OpenStack project (actually, this a rougth
estimation ;)

Cheers!



 -Matt

 On Sun, Apr 22, 2012 at 12:36 PM, Luis Gervaso l...@woorea.es wrote:
  Dough is the proposed billing platform/product (where the billing rules
  live), isn't it?
 
  I don't know Dough enough, so please me correct me if i'm wrong.
 
  I'm trying to define a generic/agnostic integration process, obviously
 where
  Dough
  can fit perfectly. I would like it become part to the reference
  architecture.
 
  Option 1) [3b in the arch proposed]
 
  Dough should pull NoSQL
 
  Option 2)
 
  A Mediator can feed Dough
 
 
  On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
  wrote:
 
  What about using the Dough project?
 
  Endre.
 
 
  2012/4/22 Endre Karlson endre.karl...@gmail.com
 
  What about using the Dough project ?
 
  Endre.
 
  2012/4/22 Luis Gervaso l...@woorea.es
 
  Hi,
 
  I want to share the architecture i am developing in order to perform
 the
  monitorig / billing OpenStack support:
 
  1. AMQP Client which listen to RabbitMQ / QPid (this should be
  interchangeable) (Own Stuff or ServiceMix / Camel)
 
  2. Events should be stored on a NoSQL document oriented database (I
  think mongodb is perfect, since we can query in a super easy fashion)
 
  3a. The monitoring system can pull/push MongoDB
 
  3b. The billing system can pull to create invoices
 
  4. A mediation EIP should be necessary to integrate a
 billing/monitoring
  product. (ServiceMix / Camel)
 
  This is to receive your feedback. So please, critics are welcome!
 
  Cheers!
 
  --
  ---
  Luis Alberto Gervaso Martin
  Woorea Solutions, S.L
  CEO  CTO
  mobile: (+34) 627983344
  l...@woorea.es
 
 
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
 
 
 
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
 
 
 
 
  --
  ---
  Luis Alberto Gervaso Martin
  Woorea Solutions, S.L
  CEO  CTO
  mobile: (+34) 627983344
  l...@woorea.es
 
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to : openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net/~openstack
  More help   : https://help.launchpad.net/ListHelp
 




-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
Have you started a blueprint and/or Etherpad?  We should do that.

Couple of comments:

1. I had an idea for naming the metering service after Nipper, the famous RCA 
dog :-)
http://en.wikipedia.org/wiki/Nipper

2. A common metering service that listens on Rabbit/ZeroMQ bus for registering 
events is a good idea, but we need to document some use case scenarios to 
really nail down the architecture.  Who signals the metering service?  The API 
service or nova, quantum, swift, glance, volume?  I'd argue that the individual 
services need to hook into the metering service and that you can't just monitor 
the message bus for calls from the API service.

- A user launches a flavor A instance of image X through the API service.  When 
nova receives a run_instances request, nova signals nipper with the instance 
details, the flavor details, and image details.  As the instance transitions 
through its states (pending, starting, running), nova signals nipper on each 
state change.  Nipper will need to have an immutable copy of the current 
flavor, image, and instance information in case an administrator 
changes/deletes this information in the future.  You want a bill to reflect 
what resources were consumed, not what the flavor describes when when the bill 
is generated.  

- From within the instance, a user issues a shutdown -h command.  Nova 
signals nipper that the state has changed to shutting down, and then to 
stopped or terminated depending on nova's config.

- A user creates a volume of flavor X of size N.  (won't the volume service 
have different flavor of volumes like SSD, sparse, raid-x, ...?).   The volume 
service signals nipper that the volume has been created.  Nipper needs to have 
an immutable copy of the current volume flavor, utilization, and size.

- A user allocates a public IP address.  Quantum

2. A separate billing service should have a pricing plugin similar to 
nova's scheduler.  This should handle generating quotes for a given flavor, 
image, volume, network, combination and generate invoices as you describe.

3. I'd steer away from mandating implementation technologies in the 
architecture.  MongoDB is fine, but others here would prefer to make their own 
deployment choices.

Brian

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 22, 2012, at 2:50 PM, Luis Gervaso wrote:

 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



smime.p7s
Description: S/MIME cryptographic signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
I see this blueprint for metering, but none for Dough currently.
http://wiki.openstack.org/EfficientMetering

Here are the Dough slides, however:
http://www.slideshare.net/lzyeval/dough-openstack-billing-project

We collectively need to talk more about the user scenarios, because I don't 
think you can just put a decorator around the API rpc calls and get an accurate 
picture of what to bill for later.  There are metered things like bandwidth or 
IOPS, events that happen outside of the API (shutdown -h), and it is hard to 
predict what a reseller will want to charge for.  It is better to put a 
metering system in that can handle many billing configurations.


-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules 
 live), isn't it?
 
 I don't know Dough enough, so please me correct me if i'm wrong.
 
 I'm trying to define a generic/agnostic integration process, obviously where 
 Dough 
 can fit perfectly. I would like it become part to the reference architecture.
 
 Option 1) [3b in the arch proposed]
 
 Dough should pull NoSQL
 
 Option 2)
 
 A Mediator can feed Dough
 
 
 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com 
 wrote:
 What about using the Dough project?
 
 Endre.
 
 
 2012/4/22 Endre Karlson endre.karl...@gmail.com
 What about using the Dough project ?
 
 Endre.
 
 2012/4/22 Luis Gervaso l...@woorea.es
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



smime.p7s
Description: S/MIME cryptographic signature
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Endre Karlson
What is Dough then compared to what you want to do ?

2012/4/22 Endre Karlson endre.karl...@gmail.com

 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.com

 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.comwrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

  Hi,

 I want to share the architecture i am developing in order to perform
 the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es

  ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
my comments below

On Sun, Apr 22, 2012 at 10:32 PM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 Have you started a blueprint and/or Etherpad?  We should do that.

 Couple of comments:

 1. I had an idea for naming the metering service after Nipper, the famous
 RCA dog :-)
 http://en.wikipedia.org/wiki/Nipper

 2. A common metering service that listens on Rabbit/ZeroMQ bus for
 registering events is a good idea, but we need to document some use case
 scenarios to really nail down the architecture.  Who signals the metering
 service?  The API service or nova, quantum, swift, glance, volume?  I'd
 argue that the individual services need to hook into the metering service
 and that you can't just monitor the message bus for calls from the API
 service.


Each service should signal the bus, these are the different exchanges/queues

The metering service should subscribe to whatever it wants to be notified,
then react with custom implementation for each event. I identify a template
here:

1. persist the event (useful for accounting)
2. mediate and notify the monitoring tool
3. mediate and notify the billing tool
4. ... (whatever)

Consider than extra billable services like platformlayer (from Justin)
should feed the bus, and the metering should be aware of them in the same
fashion.


 - A user launches a flavor A instance of image X through the API service.
  When nova receives a run_instances request, nova signals nipper with the
 instance details, the flavor details, and image details.  As the instance
 transitions through its states (pending, starting, running), nova signals
 nipper on each state change.  Nipper will need to have an immutable copy of
 the current flavor, image, and instance information in case an
 administrator changes/deletes this information in the future.  You want a
 bill to reflect what resources were consumed, not what the flavor describes
 when when the bill is generated.


My vision is that billable systems knows nothing about cloud, they only
know how to bill items. So extra info is for accounting and monitoring.



 - From within the instance, a user issues a shutdown -h command.  Nova
 signals nipper that the state has changed to shutting down, and then to
 stopped or terminated depending on nova's config.


 OK


 - A user creates a volume of flavor X of size N.  (won't the volume
 service have different flavor of volumes like SSD, sparse, raid-x, ...?).
 The volume service signals nipper that the volume has been created.  Nipper
 needs to have an immutable copy of the current volume flavor, utilization,
 and size.


I think metering service, is only a dispatcher of asynchronous events to
the specific systems. I mean metering is behind the firewall and billing,
accounting, monitoring should not.


 - A user allocates a public IP address.  Quantum

 2. A separate billing service should have a pricing plugin similar to
 nova's scheduler.  This should handle generating quotes for a given
 flavor, image, volume, network, combination and generate invoices as you
 describe.


Totally agree, this is part of the billing system: for example Dough.
Zuora, whatever


 3. I'd steer away from mandating implementation technologies in the
 architecture.  MongoDB is fine, but others here would prefer to make their
 own deployment choices.


Agree, I have put them because I am working on a POC using these
technologies


 Brian


Thanks Brian! I like your vision!


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 2:50 PM, Luis Gervaso wrote:

 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es


 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp





-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Atul Jha
Hi,
Has anyone checked this 
http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html

From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net 
[openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf of Endre 
Karlson [endre.karl...@gmail.com]
Sent: Monday, April 23, 2012 2:27 AM
To: openstack@lists.launchpad.net
Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

What is Dough then compared to what you want to do ?

2012/4/22 Endre Karlson 
endre.karl...@gmail.commailto:endre.karl...@gmail.com
What is Dough then ?


2012/4/22 Brian Schott 
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
I see this blueprint for metering, but none for Dough currently.
http://wiki.openstack.org/EfficientMetering

Here are the Dough slides, however:
http://www.slideshare.net/lzyeval/dough-openstack-billing-project

We collectively need to talk more about the user scenarios, because I don't 
think you can just put a decorator around the API rpc calls and get an accurate 
picture of what to bill for later.  There are metered things like bandwidth or 
IOPS, events that happen outside of the API (shutdown -h), and it is hard to 
predict what a reseller will want to charge for.  It is better to put a 
metering system in that can handle many billing configurations.


-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

Dough is the proposed billing platform/product (where the billing rules live), 
isn't it?

I don't know Dough enough, so please me correct me if i'm wrong.

I'm trying to define a generic/agnostic integration process, obviously where 
Dough
can fit perfectly. I would like it become part to the reference architecture.

Option 1) [3b in the arch proposed]

Dough should pull NoSQL

Option 2)

A Mediator can feed Dough


On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
What about using the Dough project?

Endre.


2012/4/22 Endre Karlson 
endre.karl...@gmail.commailto:endre.karl...@gmail.com
What about using the Dough project ?

Endre.

2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
Hi,

I want to share the architecture i am developing in order to perform the 
monitorig / billing OpenStack support:

1. AMQP Client which listen to RabbitMQ / QPid (this should be interchangeable) 
(Own Stuff or ServiceMix / Camel)

2. Events should be stored on a NoSQL document oriented database (I think 
mongodb is perfect, since we can query in a super easy fashion)

3a. The monitoring system can pull/push MongoDB

3b. The billing system can pull to create invoices

4. A mediation EIP should be necessary to integrate a billing/monitoring 
product. (ServiceMix / Camel)

This is to receive your feedback. So please, critics are welcome!

Cheers!

--
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344tel:%28%2B34%29%20627983344
luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/



___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp




___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp




--
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344tel:%28%2B34%29%20627983344
luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/

___
Mailing list: https://launchpad.net/~openstack
Post to : 
openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


http://www.csscorp.com/common/email-disclaimer.php

___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
On Sun, Apr 22, 2012 at 11:18 PM, Luis Gervaso l...@woorea.es wrote:

 I think Dough takes care about pricing and billing.

 I have proposed an arch and technologies to fill the gap between openstack
 and
 whatever billing system / monitoring system.


 On Sun, Apr 22, 2012 at 10:57 PM, Endre Karlson 
 endre.karl...@gmail.comwrote:

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.com

 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
  wrote:

 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.com

 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.es

  Hi,

 I want to share the architecture i am developing in order to perform
 the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

  This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es

  ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp





 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es




-- 
---
Luis Alberto Gervaso Martin
Woorea Solutions, S.L
CEO  CTO
mobile: (+34) 627983344
luis@ luis.gerv...@gmail.comwoorea.es
___
Mailing list: https://launchpad.net/~openstack
Post to : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp


Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
Dough is a proposed billing service.  There was a session at Folsom design 
summit.  This is a practical project for an OpenStack provider with test code 
on github.  
http://summit.openstack.org/sessions/view/37


The billing system consists of three components.
1) API Server, which receives subscribe/unsubscribe and usage query requests.
2) Farmer, which periodically checks all subscriptions and requests billing to 
the collector.
3) Collector, gets work from the farmer and uses python-novaclient, 
kanyun-client, swift-client to retrieve usage information of a product the 
tenant has subscribed and charges money to the accordingly.

Kanyun is an OpenStack monitoring tool, but I don't see documentation in the 
code tree (but I've just pulled it to see).
https://github.com/lzyeval

Dough had mixed reviews during the session, but that I think was because it 
came across as a billing system triggered solely by Horizon requests and was a 
polled architecture.  Given what we have today, I'd implement my own 
billing/metering system exactly the same way.  In fact, I have.  Our own 
e-commerce system at Nimbis works this way with EC2 and OpenStack presently 
because the only option available is polling periodically and logging the usage 
data.

Where I'd like to see OpenStack go is metering service that is fully 
asynchronous and event driven so that I only need to hit the API service when 
I'm generating an invoice, rather than once per minute because I don't know 
when an instance was terminated by the user or just crashed.  

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 22, 2012, at 4:57 PM, Endre Karlson wrote:

 What is Dough then compared to what you want to do ?
 
 2012/4/22 Endre Karlson endre.karl...@gmail.com
 What is Dough then ?
 
 
 2012/4/22 Brian Schott brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering
 
 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project
 
 We collectively need to talk more about the user scenarios, because I don't 
 think you can just put a decorator around the API rpc calls and get an 
 accurate picture of what to bill for later.  There are metered things like 
 bandwidth or IOPS, events that happen outside of the API (shutdown -h), and 
 it is hard to predict what a reseller will want to charge for.  It is better 
 to put a metering system in that can handle many billing configurations.
 
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:
 
 Dough is the proposed billing platform/product (where the billing rules 
 live), isn't it?
 
 I don't know Dough enough, so please me correct me if i'm wrong.
 
 I'm trying to define a generic/agnostic integration process, obviously where 
 Dough 
 can fit perfectly. I would like it become part to the reference architecture.
 
 Option 1) [3b in the arch proposed]
 
 Dough should pull NoSQL
 
 Option 2)
 
 A Mediator can feed Dough
 
 
 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com 
 wrote:
 What about using the Dough project?
 
 Endre.
 
 
 2012/4/22 Endre Karlson endre.karl...@gmail.com
 What about using the Dough project ?
 
 Endre.
 
 2012/4/22 Luis Gervaso l...@woorea.es
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices 
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
I see this is an accounting system, a billing system needs things like
promotional codes, vat, invoices ...

I'm proposing the way the events should be orchestated

Please, correct me, if i'm wrong

Luis

On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:

 Hi,
 Has anyone checked this
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: 
 openstack-bounces+atul.jha=csscorp@lists.launchpad.net[openstack-bounces+atul.jha=
 csscorp@lists.launchpad.net] on behalf of Endre Karlson [
 endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
 mailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


 http://www.csscorp.com/common/email-disclaimer.php

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
The heart of nova-biling is built around accounts, resources, billing segments 
with a tariff and cost.  Not clear at my first review where/how these costs are 
set.

Brian

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:

 I see this is an accounting system, a billing system needs things like 
 promotional codes, vat, invoices ...
 
 I'm proposing the way the events should be orchestated
 
 Please, correct me, if i'm wrong
 
 Luis
 
 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:
 Hi,
 Has anyone checked this 
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net 
 [openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf of 
 Endre Karlson [endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed
 
 What is Dough then compared to what you want to do ?
 
 2012/4/22 Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What is Dough then ?
 
 
 2012/4/22 Brian Schott 
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering
 
 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project
 
 We collectively need to talk more about the user scenarios, because I don't 
 think you can just put a decorator around the API rpc calls and get an 
 accurate picture of what to bill for later.  There are metered things like 
 bandwidth or IOPS, events that happen outside of the API (shutdown -h), and 
 it is hard to predict what a reseller will want to charge for.  It is better 
 to put a metering system in that can handle many billing configurations.
 
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060
 
 
 
 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:
 
 Dough is the proposed billing platform/product (where the billing rules 
 live), isn't it?
 
 I don't know Dough enough, so please me correct me if i'm wrong.
 
 I'm trying to define a generic/agnostic integration process, obviously where 
 Dough
 can fit perfectly. I would like it become part to the reference architecture.
 
 Option 1) [3b in the arch proposed]
 
 Dough should pull NoSQL
 
 Option 2)
 
 A Mediator can feed Dough
 
 
 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?
 
 Endre.
 
 
 2012/4/22 Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What about using the Dough project ?
 
 Endre.
 
 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : 
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : 
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Matt Joyce
Monitoring and billing seem to be two VERY different beasts.

Should we be separating the two efforts?

On Sun, Apr 22, 2012 at 3:08 PM, Brian Schott
brian.sch...@nimbisservices.com wrote:
 The heart of nova-biling is built around accounts, resources, billing
 segments with a tariff and cost.  Not clear at my first review where/how
 these costs are set.

 Brian

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:

 I see this is an accounting system, a billing system needs things like
 promotional codes, vat, invoices ...

 I'm proposing the way the events should be orchestated

 Please, correct me, if i'm wrong

 Luis

 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:

 Hi,
 Has anyone checked this
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net
 [openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf of
 Endre Karlson [endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get an
 accurate picture of what to bill for later.  There are metered things like
 bandwidth or IOPS, events that happen outside of the API (shutdown -h), and
 it is hard to predict what a reseller will want to charge for.  It is better
 to put a metering system in that can handle many billing configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson
 endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     :
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to     :
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Endre Karlson
Why can't Dough / Kanyun be used for this?

Endre.

2012/4/23 Brian Schott brian.sch...@nimbisservices.com

 The heart of nova-biling is built around accounts, resources, billing
 segments with a tariff and cost.  Not clear at my first review where/how
 these costs are set.

 Brian

 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:

 I see this is an accounting system, a billing system needs things like
 promotional codes, vat, invoices ...

 I'm proposing the way the events should be orchestated

 Please, correct me, if i'm wrong

 Luis

 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:

 Hi,
 Has anyone checked this
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: 
 openstack-bounces+atul.jha=csscorp@lists.launchpad.net[openstack-bounces+atul.jha=
 csscorp@lists.launchpad.net] on behalf of Endre Karlson [
 endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process, obviously
 where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson endre.karl...@gmail.com
 mailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,

 I want to share the architecture i am developing in order to perform the
 monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I think
 mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a billing/monitoring
 product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/

 ___
 Mailing list

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
You are right.

OpenStack should do only cloudcomputing. Others should manage better
monitor and billing

So we have to focus the effort to define the piece/component that
orchestates the two/three/four ... beasts
around OpenStack in a loosely coupled way.

That is, other *should not* know OpenStack internals to do their work.


On Mon, Apr 23, 2012 at 12:22 AM, Matt Joyce m...@nycresistor.com wrote:

 Monitoring and billing seem to be two VERY different beasts.

 Should we be separating the two efforts?

 On Sun, Apr 22, 2012 at 3:08 PM, Brian Schott
 brian.sch...@nimbisservices.com wrote:
  The heart of nova-biling is built around accounts, resources, billing
  segments with a tariff and cost.  Not clear at my first review where/how
  these costs are set.
 
  Brian
 
  -
  Brian Schott, CTO
  Nimbis Services, Inc.
  brian.sch...@nimbisservices.com
  ph: 443-274-6064  fx: 443-274-6060
 
 
 
  On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:
 
  I see this is an accounting system, a billing system needs things like
  promotional codes, vat, invoices ...
 
  I'm proposing the way the events should be orchestated
 
  Please, correct me, if i'm wrong
 
  Luis
 
  On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:
 
  Hi,
  Has anyone checked this
  http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
  
  From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net
  [openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf
 of
  Endre Karlson [endre.karl...@gmail.com]
  Sent: Monday, April 23, 2012 2:27 AM
  To: openstack@lists.launchpad.net
  Subject: Re: [Openstack] Monitoring / Billing Architecture proposed
 
  What is Dough then compared to what you want to do ?
 
  2012/4/22 Endre Karlson
  endre.karl...@gmail.commailto:endre.karl...@gmail.com
  What is Dough then ?
 
 
  2012/4/22 Brian Schott
  brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 
  I see this blueprint for metering, but none for Dough currently.
  http://wiki.openstack.org/EfficientMetering
 
  Here are the Dough slides, however:
  http://www.slideshare.net/lzyeval/dough-openstack-billing-project
 
  We collectively need to talk more about the user scenarios, because I
  don't think you can just put a decorator around the API rpc calls and
 get an
  accurate picture of what to bill for later.  There are metered things
 like
  bandwidth or IOPS, events that happen outside of the API (shutdown -h),
 and
  it is hard to predict what a reseller will want to charge for.  It is
 better
  to put a metering system in that can handle many billing configurations.
 
 
  -
  Brian Schott, CTO
  Nimbis Services, Inc.
  brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
  ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060
 
 
 
  On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:
 
  Dough is the proposed billing platform/product (where the billing rules
  live), isn't it?
 
  I don't know Dough enough, so please me correct me if i'm wrong.
 
  I'm trying to define a generic/agnostic integration process, obviously
  where Dough
  can fit perfectly. I would like it become part to the reference
  architecture.
 
  Option 1) [3b in the arch proposed]
 
  Dough should pull NoSQL
 
  Option 2)
 
  A Mediator can feed Dough
 
 
  On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson
  endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
  What about using the Dough project?
 
  Endre.
 
 
  2012/4/22 Endre Karlson
  endre.karl...@gmail.commailto:endre.karl...@gmail.com
  What about using the Dough project ?
 
  Endre.
 
  2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
  Hi,
 
  I want to share the architecture i am developing in order to perform the
  monitorig / billing OpenStack support:
 
  1. AMQP Client which listen to RabbitMQ / QPid (this should be
  interchangeable) (Own Stuff or ServiceMix / Camel)
 
  2. Events should be stored on a NoSQL document oriented database (I
 think
  mongodb is perfect, since we can query in a super easy fashion)
 
  3a. The monitoring system can pull/push MongoDB
 
  3b. The billing system can pull to create invoices
 
  4. A mediation EIP should be necessary to integrate a billing/monitoring
  product. (ServiceMix / Camel)
 
  This is to receive your feedback. So please, critics are welcome!
 
  Cheers!
 
  --
  ---
  Luis Alberto Gervaso Martin
  Woorea Solutions, S.L
  CEO  CTO
  mobile: (+34) 627983344tel:%28%2B34%29%20627983344
  luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/
 
 
 
  ___
  Mailing list: https://launchpad.net/~openstack
  Post to :
  openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
  Unsubscribe : https://launchpad.net

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
Agreed.  Not to mention all of those web commerce systems (Ubercart, Sachmo, 
Mezzanine/Cartridge, and many wordpress and rails commerce platforms I don't 
know).  We don't need to reinvent selling stuff on the Internet.  So, what's 
really missing?  

1) The ability to query historical cloud resource utilization over a given time 
period for usage reports, graphs, and invoice generation.  The alternative is 
polling the status interfaces frequently and caching externally.  Many 
applications could use this with no need of billing semantics.  Horizon can 
show you current instances, volumes, cores, memory, disk, etc. but no way it 
could give you a graph over time given that it doesn't store any historical 
data.  It shouldn't store historical data, another OpenStack service should.

2) Maybe, the ability to register an external web hook for resource so I don't 
have to poll for state changes.  This might be purely RESTful, so maybe this 
Nipper service returns 304 and lets the client cache?  Does the OpenStack API 
support 304 not modified?  I bet it doesn't because it doesn't have historical 
data.

3) Maybe, the ability to register an billing approval hook into keystone?  
Could be modeled like oauth style transaction.

-
Brian Schott, CTO
Nimbis Services, Inc.
brian.sch...@nimbisservices.com
ph: 443-274-6064  fx: 443-274-6060



On Apr 22, 2012, at 6:54 PM, Luis Gervaso wrote:

 You can, but there are more billing providers, i want to provider a point 
 where you can choose
 your provider.
 
 I propose 4 possibilities as example:
 
 Scenario1 (this can be the reference implementation):
 
 OpenStack + Dough 
 
 Scenario2:
 
 OpenStack + Zoura
 
 Scenario3:
 
 OpenStack + JBilling
 
 Scenario4:
 
 OpenStack + Recurly
 
 On Mon, Apr 23, 2012 at 12:26 AM, Endre Karlson endre.karl...@gmail.com 
 wrote:
 Why can't Dough / Kanyun be used for this?
 
 Endre.
 
 2012/4/23 Brian Schott brian.sch...@nimbisservices.com
 The heart of nova-biling is built around accounts, resources, billing 
 segments with a tariff and cost.  Not clear at my first review where/how 
 these costs are set.
 
 Brian
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060
 
 
 
 On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:
 
 I see this is an accounting system, a billing system needs things like 
 promotional codes, vat, invoices ...
 
 I'm proposing the way the events should be orchestated
 
 Please, correct me, if i'm wrong
 
 Luis
 
 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:
 Hi,
 Has anyone checked this 
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net 
 [openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf of 
 Endre Karlson [endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed
 
 What is Dough then compared to what you want to do ?
 
 2012/4/22 Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What is Dough then ?
 
 
 2012/4/22 Brian Schott 
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering
 
 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project
 
 We collectively need to talk more about the user scenarios, because I don't 
 think you can just put a decorator around the API rpc calls and get an 
 accurate picture of what to bill for later.  There are metered things like 
 bandwidth or IOPS, events that happen outside of the API (shutdown -h), and 
 it is hard to predict what a reseller will want to charge for.  It is better 
 to put a metering system in that can handle many billing configurations.
 
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060
 
 
 
 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:
 
 Dough is the proposed billing platform/product (where the billing rules 
 live), isn't it?
 
 I don't know Dough enough, so please me correct me if i'm wrong.
 
 I'm trying to define a generic/agnostic integration process, obviously where 
 Dough
 can fit perfectly. I would like it become part to the reference architecture.
 
 Option 1) [3b in the arch proposed]
 
 Dough should pull NoSQL
 
 Option 2)
 
 A Mediator can feed Dough
 
 
 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?
 
 Endre.
 
 
 2012/4/22

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
On Mon, Apr 23, 2012 at 2:10 AM, Brian Schott 
brian.sch...@nimbisservices.com wrote:

 Agreed.  Not to mention all of those web commerce systems (Ubercart,
 Sachmo, Mezzanine/Cartridge, and many wordpress and rails commerce
 platforms I don't know).  We don't need to reinvent selling stuff on the
 Internet.  So, what's really missing?

 1) The ability to query historical cloud resource utilization over a given
 time period for usage reports, graphs, and invoice generation.  The
 alternative is polling the status interfaces frequently and caching
 externally.  Many applications could use this with no need of billing
 semantics.  Horizon can show you current instances, volumes, cores, memory,
 disk, etc. but no way it could give you a graph over time given that it
 doesn't store any historical data.  It shouldn't store historical data,
 another OpenStack service should.


Exactly.
I'm evaluating such systems, actually I want to transform events from
openstack into billable items on a billing system. So I store event for
historical queries (accounting service) and send billable info to billing
system to avoid a billing system has to pull openstack.


 2) Maybe, the ability to register an external web hook for resource so I
 don't have to poll for state changes.  This might be purely RESTful, so
 maybe this Nipper service returns 304 and lets the client cache?  Does the
 OpenStack API support 304 not modified?  I bet it doesn't because it
 doesn't have historical data.

I have not found any 304 in the API


 3) Maybe, the ability to register an billing approval hook into keystone?
  Could be modeled like oauth style transaction.

I think we can use the existing X-Auth-Token with a billing system role as
the first approach (i have to look closer)


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 6:54 PM, Luis Gervaso wrote:

 You can, but there are more billing providers, i want to provider a point
 where you can choose
 your provider.

 I propose 4 possibilities as example:

 Scenario1 (this can be the reference implementation):

 OpenStack + Dough

 Scenario2:

 OpenStack + Zoura

 Scenario3:

 OpenStack + JBilling

 Scenario4:

 OpenStack + Recurly

 On Mon, Apr 23, 2012 at 12:26 AM, Endre Karlson 
 endre.karl...@gmail.comwrote:

 Why can't Dough / Kanyun be used for this?

 Endre.

 2012/4/23 Brian Schott brian.sch...@nimbisservices.com

 The heart of nova-biling is built around accounts, resources, billing
 segments with a tariff and cost.  Not clear at my first review where/how
 these costs are set.

 Brian

  -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:

 I see this is an accounting system, a billing system needs things like
 promotional codes, vat, invoices ...

 I'm proposing the way the events should be orchestated

 Please, correct me, if i'm wrong

 Luis

 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.com wrote:

 Hi,
 Has anyone checked this
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: 
 openstack-bounces+atul.jha=csscorp@lists.launchpad.net[openstack-bounces+atul.jha=
 csscorp@lists.launchpad.net] on behalf of Endre Karlson [
 endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing rules
 live), isn't it?

 I don't know Dough

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Zhongyue Luo
Hi, I'm the person who presented Dough.

After my presentation there were lots of feedback from many people.

The conclusion was that no matter how generic I tried to design Dough, the
billing requirements of each company will vary if they have different
metering specifications.

Therefore a few companies have agreed to first work on a metering system
together as described in http://wiki.openstack.org/EfficientMetering and
http://etherpad.openstack.org/EfficientMetering

They plan to officially launch a metering project and incubate the project
in Folsom if possible.

What I plan to do with Dough is to first use it in production and present
how it worked out in our beta service at the next summit.

Kanyun will be replaced with the new metering system.

I'll work on the documentation of Dough once I finish testing it with our
closed beta production environment.

Cheers,
LZY

On Sun, Apr 22, 2012 at 5:43 PM, Luis Gervaso l...@woorea.es wrote:



 On Mon, Apr 23, 2012 at 2:10 AM, Brian Schott 
 brian.sch...@nimbisservices.com wrote:

 Agreed.  Not to mention all of those web commerce systems (Ubercart,
 Sachmo, Mezzanine/Cartridge, and many wordpress and rails commerce
 platforms I don't know).  We don't need to reinvent selling stuff on the
 Internet.  So, what's really missing?

 1) The ability to query historical cloud resource utilization over a
 given time period for usage reports, graphs, and invoice generation.  The
 alternative is polling the status interfaces frequently and caching
 externally.  Many applications could use this with no need of billing
 semantics.  Horizon can show you current instances, volumes, cores, memory,
 disk, etc. but no way it could give you a graph over time given that it
 doesn't store any historical data.  It shouldn't store historical data,
 another OpenStack service should.


 Exactly.
 I'm evaluating such systems, actually I want to transform events from
 openstack into billable items on a billing system. So I store event for
 historical queries (accounting service) and send billable info to billing
 system to avoid a billing system has to pull openstack.


 2) Maybe, the ability to register an external web hook for resource so I
 don't have to poll for state changes.  This might be purely RESTful, so
 maybe this Nipper service returns 304 and lets the client cache?  Does the
 OpenStack API support 304 not modified?  I bet it doesn't because it
 doesn't have historical data.

 I have not found any 304 in the API


 3) Maybe, the ability to register an billing approval hook into keystone?
  Could be modeled like oauth style transaction.

 I think we can use the existing X-Auth-Token with a billing system role as
 the first approach (i have to look closer)


  -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 6:54 PM, Luis Gervaso wrote:

 You can, but there are more billing providers, i want to provider a point
 where you can choose
 your provider.

 I propose 4 possibilities as example:

 Scenario1 (this can be the reference implementation):

 OpenStack + Dough

 Scenario2:

 OpenStack + Zoura

 Scenario3:

 OpenStack + JBilling

 Scenario4:

 OpenStack + Recurly

 On Mon, Apr 23, 2012 at 12:26 AM, Endre Karlson 
 endre.karl...@gmail.comwrote:

 Why can't Dough / Kanyun be used for this?

 Endre.

 2012/4/23 Brian Schott brian.sch...@nimbisservices.com

 The heart of nova-biling is built around accounts, resources, billing
 segments with a tariff and cost.  Not clear at my first review where/how
 these costs are set.

 Brian

  -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.com
 ph: 443-274-6064  fx: 443-274-6060



 On Apr 22, 2012, at 5:38 PM, Luis Gervaso wrote:

 I see this is an accounting system, a billing system needs things like
 promotional codes, vat, invoices ...

 I'm proposing the way the events should be orchestated

 Please, correct me, if i'm wrong

 Luis

 On Sun, Apr 22, 2012 at 11:16 PM, Atul Jha atul@csscorp.comwrote:

 Hi,
 Has anyone checked this
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: 
 openstack-bounces+atul.jha=csscorp@lists.launchpad.net[openstack-bounces+atul.jha=
 csscorp@lists.launchpad.net] on behalf of Endre Karlson [
 endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Luis Gervaso
: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed

 What is Dough then compared to what you want to do ?

 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What is Dough then ?


 2012/4/22 Brian Schott brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering

 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project

 We collectively need to talk more about the user scenarios, because I
 don't think you can just put a decorator around the API rpc calls and get
 an accurate picture of what to bill for later.  There are metered things
 like bandwidth or IOPS, events that happen outside of the API (shutdown
 -h), and it is hard to predict what a reseller will want to charge for.  
 It
 is better to put a metering system in that can handle many billing
 configurations.


 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:
 brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060
 



 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:

 Dough is the proposed billing platform/product (where the billing
 rules live), isn't it?

 I don't know Dough enough, so please me correct me if i'm wrong.

 I'm trying to define a generic/agnostic integration process,
 obviously where Dough
 can fit perfectly. I would like it become part to the reference
 architecture.

 Option 1) [3b in the arch proposed]

 Dough should pull NoSQL

 Option 2)

 A Mediator can feed Dough


 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?

 Endre.


 2012/4/22 Endre Karlson endre.karl...@gmail.commailto:
 endre.karl...@gmail.com
 What about using the Dough project ?

 Endre.

 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,

 I want to share the architecture i am developing in order to perform
 the monitorig / billing OpenStack support:

 1. AMQP Client which listen to RabbitMQ / QPid (this should be
 interchangeable) (Own Stuff or ServiceMix / Camel)

 2. Events should be stored on a NoSQL document oriented database (I
 think mongodb is perfect, since we can query in a super easy fashion)

 3a. The monitoring system can pull/push MongoDB

 3b. The billing system can pull to create invoices

 4. A mediation EIP should be necessary to integrate a
 billing/monitoring product. (ServiceMix / Camel)

 This is to receive your feedback. So please, critics are welcome!

 Cheers!

 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.netmailto:
 openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp


 http://www.csscorp.com/common/email-disclaimer.php

 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp




 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 luis@ luis.gerv...@gmail.comwoorea.es

  ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp



 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net

Re: [Openstack] Monitoring / Billing Architecture proposed

2012-04-22 Thread Brian Schott
 atul@csscorp.com wrote:
 Hi,
 Has anyone checked this 
 http://www.griddynamics.com/openstack/docs/nova-billing/quickstart.html
 
 From: openstack-bounces+atul.jha=csscorp@lists.launchpad.net 
 [openstack-bounces+atul.jha=csscorp@lists.launchpad.net] on behalf of 
 Endre Karlson [endre.karl...@gmail.com]
 Sent: Monday, April 23, 2012 2:27 AM
 To: openstack@lists.launchpad.net
 Subject: Re: [Openstack] Monitoring / Billing Architecture proposed
 
 What is Dough then compared to what you want to do ?
 
 2012/4/22 Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What is Dough then ?
 
 
 2012/4/22 Brian Schott 
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 I see this blueprint for metering, but none for Dough currently.
 http://wiki.openstack.org/EfficientMetering
 
 Here are the Dough slides, however:
 http://www.slideshare.net/lzyeval/dough-openstack-billing-project
 
 We collectively need to talk more about the user scenarios, because I don't 
 think you can just put a decorator around the API rpc calls and get an 
 accurate picture of what to bill for later.  There are metered things like 
 bandwidth or IOPS, events that happen outside of the API (shutdown -h), and 
 it is hard to predict what a reseller will want to charge for.  It is 
 better to put a metering system in that can handle many billing 
 configurations.
 
 
 -
 Brian Schott, CTO
 Nimbis Services, Inc.
 brian.sch...@nimbisservices.commailto:brian.sch...@nimbisservices.com
 ph: 443-274-6064tel:443-274-6064  fx: 443-274-6060tel:443-274-6060
 
 
 
 On Apr 22, 2012, at 3:36 PM, Luis Gervaso wrote:
 
 Dough is the proposed billing platform/product (where the billing rules 
 live), isn't it?
 
 I don't know Dough enough, so please me correct me if i'm wrong.
 
 I'm trying to define a generic/agnostic integration process, obviously 
 where Dough
 can fit perfectly. I would like it become part to the reference 
 architecture.
 
 Option 1) [3b in the arch proposed]
 
 Dough should pull NoSQL
 
 Option 2)
 
 A Mediator can feed Dough
 
 
 On Sun, Apr 22, 2012 at 9:13 PM, Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com wrote:
 What about using the Dough project?
 
 Endre.
 
 
 2012/4/22 Endre Karlson 
 endre.karl...@gmail.commailto:endre.karl...@gmail.com
 What about using the Dough project ?
 
 Endre.
 
 2012/4/22 Luis Gervaso l...@woorea.esmailto:l...@woorea.es
 Hi,
 
 I want to share the architecture i am developing in order to perform the 
 monitorig / billing OpenStack support:
 
 1. AMQP Client which listen to RabbitMQ / QPid (this should be 
 interchangeable) (Own Stuff or ServiceMix / Camel)
 
 2. Events should be stored on a NoSQL document oriented database (I think 
 mongodb is perfect, since we can query in a super easy fashion)
 
 3a. The monitoring system can pull/push MongoDB
 
 3b. The billing system can pull to create invoices
 
 4. A mediation EIP should be necessary to integrate a billing/monitoring 
 product. (ServiceMix / Camel)
 
 This is to receive your feedback. So please, critics are welcome!
 
 Cheers!
 
 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : 
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : 
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 
 --
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344tel:%28%2B34%29%20627983344
 luis@mailto:luis.gerv...@gmail.comwoorea.eshttp://woorea.es/
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : 
 openstack@lists.launchpad.netmailto:openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 http://www.csscorp.com/common/email-disclaimer.php
 
 ___
 Mailing list: https://launchpad.net/~openstack
 Post to : openstack@lists.launchpad.net
 Unsubscribe : https://launchpad.net/~openstack
 More help   : https://help.launchpad.net/ListHelp
 
 
 
 -- 
 ---
 Luis Alberto Gervaso Martin
 Woorea Solutions, S.L
 CEO  CTO
 mobile: (+34) 627983344
 l...@woorea.es