| |
| ========== |
| Ceilometer |
| ========== |
| |
| The 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. |
| |
| Sample pillars |
| ============== |
| |
| Ceilometer API/controller node |
| |
| .. code-block:: yaml |
| |
| ceilometer: |
| server: |
| enabled: true |
| version: havana |
| cluster: true |
| secret: pwd |
| bind: |
| host: 127.0.0.1 |
| port: 8777 |
| identity: |
| engine: keystone |
| host: 127.0.0.1 |
| port: 35357 |
| tenant: service |
| user: ceilometer |
| password: pwd |
| message_queue: |
| engine: rabbitmq |
| host: 127.0.0.1 |
| port: 5672 |
| user: openstack |
| password: pwd |
| virtual_host: '/openstack' |
| rabbit_ha_queues: true |
| database: |
| engine: mongodb |
| host: 127.0.0.1 |
| port: 27017 |
| name: ceilometer |
| user: ceilometer |
| password: pwd |
| |
| Ceilometer Graphite publisher |
| |
| .. code-block:: yaml |
| |
| ceilometer: |
| server: |
| enabled: true |
| publisher: |
| graphite: |
| enabled: true |
| host: 10.0.0.1 |
| port: 2003 |
| |
| Ceilometer compute agent |
| |
| .. code-block:: yaml |
| |
| ceilometer: |
| agent: |
| enabled: true |
| version: havana |
| secret: pwd |
| identity: |
| engine: keystone |
| host: 127.0.0.1 |
| port: 35357 |
| tenant: service |
| user: ceilometer |
| password: pwd |
| message_queue: |
| engine: rabbitmq |
| host: 127.0.0.1 |
| port: 5672 |
| user: openstack |
| password: pwd |
| virtual_host: '/openstack' |
| rabbit_ha_queues: true |
| |
| Read more |
| ========= |
| |
| * https://wiki.openstack.org/wiki/Ceilometer |
| * http://docs.openstack.org/developer/ceilometer/install/manual.html |
| * http://docs.openstack.org/developer/ceilometer/ |
| * https://fedoraproject.org/wiki/QA:Testcase_OpenStack_ceilometer_install |
| * https://github.com/spilgames/ceilometer_graphite_publisher |
| * http://engineering.spilgames.com/using-ceilometer-graphite/ |
| |
| Things to improve/consider |
| ========================== |
| |
| * Graphite publisher http://engineering.spilgames.com/using-ceilometer-graphite/ |
| * Juno additions - Split Events/Meters and Alarms databases, Polling angets are HA now, active/Activr Workload partitioning to central agents |
| * Kilo additions - Splint Events - Meters - Agents, notification agents are HA now (everything is HA now), events - elastic search |
| * User notifier publisher vs rpc publisher (Juno+) |
| * Enable jittering (rendom delay) to polling. (Kilo+) |
| * Collect what you need - pipeline.yaml, tweak polling interval (Icehouse+) |
| * add more agents as load inceases (Juno+) |
| * Avoid open-ended queries - query on a time range |
| * Install api behind mod_wsgi, tweak wsgi daemon - threads and processes |
| * Set TTL - expire data to minimise database size |
| * Run Mongodb on separate node - use sharding and replica-sets |
| |
| Deployment scenarios |
| -------------------- |
| |
| * Lambda design - use short term and long term databases in the same time |
| * Data segragation - separatem |
| * JSON files - Apache spark |
| * Fraud detection - proprietary alarming system |
| * Custom consumers - kafka - Apache Storm (kilo+) |
| * Debugging - Collecttions - Elastic serach - Kibana |
| * Noisy services - Multiple notification buses |