Architecture enhancements
A few enhancements to the architecture doc. Change-Id: Ie3516a96f41639abf12f42e975427a0ece617268
This commit is contained in:
parent
90a556ef33
commit
f68d949afa
@ -44,17 +44,17 @@ tagged as “alarming“.
|
|||||||
Metering
|
Metering
|
||||||
--------
|
--------
|
||||||
|
|
||||||
If you divide a billing process into a three steps process as is commonly done in
|
If you divide a billing process into a 3 step process as is commonly done in
|
||||||
the telco industry, the steps are:
|
the telco industry, the steps are:
|
||||||
|
|
||||||
1. :term:`Metering` is the process of collecting information about what,
|
1. :term:`Metering` is the process of collecting information about what,
|
||||||
who, when and how much regarding anything that can be billed. The result of
|
who, when and how much regarding anything that can be billed. The result of
|
||||||
this is a collection of “tickets” (a.k.a. samples) which are ready to be
|
this is a collection of “tickets” (a.k.a. samples) which are ready to be
|
||||||
processed in anyway you want.
|
processed in anyway you want.
|
||||||
1. :term:`Rating` is the process of analysing a series of tickets,
|
2. :term:`Rating` is the process of analysing a series of tickets,
|
||||||
according to business rules defined by marketing, in order to transform
|
according to business rules defined by marketing, in order to transform
|
||||||
them into bill line items with a currency value.
|
them into bill line items with a currency value.
|
||||||
1. :term:`Billing` is the process to assemble bill line items into a
|
3. :term:`Billing` is the process to assemble bill line items into a
|
||||||
single per customer bill, emitting the bill to start the payment collection.
|
single per customer bill, emitting the bill to start the payment collection.
|
||||||
|
|
||||||
Ceilometer’s initial goal was, and still is, strictly limited to step
|
Ceilometer’s initial goal was, and still is, strictly limited to step
|
||||||
@ -62,7 +62,7 @@ one. This is a choice made from the beginning not to go into rating or billing,
|
|||||||
as the variety of possibilities seemed too huge for the project to ever deliver
|
as the variety of possibilities seemed too huge for the project to ever deliver
|
||||||
a solution that would fit everyone’s needs, from private to public clouds. This
|
a solution that would fit everyone’s needs, from private to public clouds. This
|
||||||
means that if you are looking at this project to solve your billing needs, this
|
means that if you are looking at this project to solve your billing needs, this
|
||||||
is the right way to go, but certainly not the end of the road for your. Once
|
is the right way to go, but certainly not the end of the road for you. Once
|
||||||
Ceilometer is in place on your OpenStack deployment, you will still have
|
Ceilometer is in place on your OpenStack deployment, you will still have
|
||||||
quite a few things to do before you can produce a bill for your customers.
|
quite a few things to do before you can produce a bill for your customers.
|
||||||
One of you first task could be: finding the right queries within the Ceilometer
|
One of you first task could be: finding the right queries within the Ceilometer
|
||||||
@ -109,23 +109,30 @@ collect data:
|
|||||||
OpenStack related project and are using the Oslo library, you are kindly
|
OpenStack related project and are using the Oslo library, you are kindly
|
||||||
invited to come and talk to one of the project members to learn how you
|
invited to come and talk to one of the project members to learn how you
|
||||||
could quickly add instrumentation for your project.
|
could quickly add instrumentation for your project.
|
||||||
1. :term:`Push agents` which is the only solution to fetch data within projects
|
2. :term:`Push agents` which is the only solution to fetch data within projects
|
||||||
which do not expose the required data in a remotely useable way. This is not
|
which do not expose the required data in a remotely useable way. This is not
|
||||||
the preferred method as it makes deployment a bit more complex having to add
|
the preferred method as it makes deployment a bit more complex having to add
|
||||||
a component to each of the nodes that need to be monitored. However, we do
|
a component to each of the nodes that need to be monitored. However, we do
|
||||||
prefer this compared to a polling agent method as resilience (high
|
prefer this compared to a polling agent method as resilience (high
|
||||||
availability) will not be a problem with this method.
|
availability) will not be a problem with this method.
|
||||||
1. :term:`Polling agents` which is the least preferred method, that will poll
|
3. :term:`Polling agents` which is the least preferred method, that will poll
|
||||||
some API or other tool to collect information at a regular interval. The main
|
some API or other tool to collect information at a regular interval. The main
|
||||||
reason why we do not like this method is the inherent difficulty to make such
|
reason why we do not like this method is the inherent difficulty to make such
|
||||||
a component be resilient.
|
a component be resilient.
|
||||||
|
|
||||||
|
The first method is supported by the ceilometer-collector agent, which monitors
|
||||||
|
the message queues for notifications and for metering data coming from the
|
||||||
|
"push" and "polling" agents. Methods 2 and 3 rely on a combination of the
|
||||||
|
ceilometer-central-agent/ceilometer-compute-agent and the collector.
|
||||||
|
|
||||||
How to access collected data?
|
How to access collected data?
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
Once collected, the data is stored in a database. There can be multiple types of
|
Once collected, the data is stored in a database generally, or in a simple
|
||||||
|
file if you do not care about API access and want to do the rest of the
|
||||||
|
processing elsewhere. There can be multiple types of
|
||||||
databases through the use of different database plugins (see the section
|
databases through the use of different database plugins (see the section
|
||||||
`which database to use`_). Moreover, the schema and dictionary of
|
:ref:`which-db`). Moreover, the schema and dictionary of
|
||||||
this database can also evolve over time. For both reasons, we offer a REST API
|
this database can also evolve over time. For both reasons, we offer a REST API
|
||||||
that should be the only way for you to access the collected data rather than
|
that should be the only way for you to access the collected data rather than
|
||||||
accessing the underlying database directly. It is possible that the way
|
accessing the underlying database directly. It is possible that the way
|
||||||
@ -233,7 +240,8 @@ will be critical in all cases of production deployment.
|
|||||||
|
|
||||||
.. _Autoscaling with Heat and Ceilometer: http://techs.enovance.com/5991/autoscaling-with-heat-and-ceilometer
|
.. _Autoscaling with Heat and Ceilometer: http://techs.enovance.com/5991/autoscaling-with-heat-and-ceilometer
|
||||||
|
|
||||||
.. _which database to use:
|
.. _which-db:
|
||||||
|
|
||||||
Which database to use
|
Which database to use
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ Samples and Statistics
|
|||||||
:members:
|
:members:
|
||||||
|
|
||||||
.. _alarms-api:
|
.. _alarms-api:
|
||||||
|
|
||||||
Alarms
|
Alarms
|
||||||
======
|
======
|
||||||
|
|
||||||
@ -327,6 +328,7 @@ parameter to the query::
|
|||||||
This query would only return the last 3 samples.
|
This query would only return the last 3 samples.
|
||||||
|
|
||||||
.. _user-defined-data:
|
.. _user-defined-data:
|
||||||
|
|
||||||
User-defined data
|
User-defined data
|
||||||
+++++++++++++++++
|
+++++++++++++++++
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user