blob: 8ffe6482ef0867d1486ec07f9adc9ccd703f8f4c [file] [log] [blame]
Filip Pytlouna87b4712015-10-06 16:28:31 +02001
2==========
3Ceilometer
4==========
5
6The ceilometer project aims to deliver a unique point of contact for billing systems to acquire all of the measurements they need to establish customer billing, across all current OpenStack core components with work underway to support future OpenStack components.
7
8Sample pillars
9==============
10
11Ceilometer API/controller node
12
13.. code-block:: yaml
14
15 ceilometer:
16 server:
17 enabled: true
18 version: havana
19 cluster: true
20 secret: pwd
21 bind:
22 host: 127.0.0.1
23 port: 8777
24 identity:
25 engine: keystone
26 host: 127.0.0.1
27 port: 35357
28 tenant: service
29 user: ceilometer
30 password: pwd
31 message_queue:
32 engine: rabbitmq
33 host: 127.0.0.1
34 port: 5672
35 user: openstack
36 password: pwd
37 virtual_host: '/openstack'
38 rabbit_ha_queues: true
39 database:
40 engine: mongodb
41 host: 127.0.0.1
42 port: 27017
43 name: ceilometer
44 user: ceilometer
45 password: pwd
46
47Ceilometer Graphite publisher
48
49.. code-block:: yaml
50
51 ceilometer:
52 server:
53 enabled: true
54 publisher:
55 graphite:
56 enabled: true
57 host: 10.0.0.1
58 port: 2003
59
60Ceilometer compute agent
61
62.. code-block:: yaml
63
64 ceilometer:
65 agent:
66 enabled: true
67 version: havana
68 secret: pwd
69 identity:
70 engine: keystone
71 host: 127.0.0.1
72 port: 35357
73 tenant: service
74 user: ceilometer
75 password: pwd
76 message_queue:
77 engine: rabbitmq
78 host: 127.0.0.1
79 port: 5672
80 user: openstack
81 password: pwd
82 virtual_host: '/openstack'
83 rabbit_ha_queues: true
84
85Read more
86=========
87
88* https://wiki.openstack.org/wiki/Ceilometer
89* http://docs.openstack.org/developer/ceilometer/install/manual.html
90* http://docs.openstack.org/developer/ceilometer/
91* https://fedoraproject.org/wiki/QA:Testcase_OpenStack_ceilometer_install
92* https://github.com/spilgames/ceilometer_graphite_publisher
93* http://engineering.spilgames.com/using-ceilometer-graphite/
94
95Things to improve/consider
96==========================
97
98* Graphite publisher http://engineering.spilgames.com/using-ceilometer-graphite/
99* Juno additions - Split Events/Meters and Alarms databases, Polling angets are HA now, active/Activr Workload partitioning to central agents
100* Kilo additions - Splint Events - Meters - Agents, notification agents are HA now (everything is HA now), events - elastic search
101* User notifier publisher vs rpc publisher (Juno+)
102* Enable jittering (rendom delay) to polling. (Kilo+)
103* Collect what you need - pipeline.yaml, tweak polling interval (Icehouse+)
104* add more agents as load inceases (Juno+)
105* Avoid open-ended queries - query on a time range
106* Install api behind mod_wsgi, tweak wsgi daemon - threads and processes
107* Set TTL - expire data to minimise database size
108* Run Mongodb on separate node - use sharding and replica-sets
109
110Deployment scenarios
111--------------------
112
113* Lambda design - use short term and long term databases in the same time
114* Data segragation - separatem
115* JSON files - Apache spark
116* Fraud detection - proprietary alarming system
117* Custom consumers - kafka - Apache Storm (kilo+)
118* Debugging - Collecttions - Elastic serach - Kibana
119* Noisy services - Multiple notification buses