Jump to: navigation, search

Main Page/cobbler

Hi:

I have deployed a RDO havana version's openstack environment for a period.

By chance I tested APIs of ceilometer, in the first I defined a new meter like meter_test, then used 'ceilometer sample-list -m yjmeter' command to check the result. I found that the query cost about 13 seconds, why it was so slow with one record?

Now that RDO used mongodb as default DB for ceilometer, I logging into it and found that the meter collection had about 2,700,000 records. Maybe the mass records slowed the query.

Take production environemnt into account, If there are 100 hosts , each host contains 30 VM. CeilometerI use default configuration of 11 compute pollsters and the pipeline interval is 600s. Then one day system will generate 4,752,000 record, the formula is: 11(meter) * 30(VM) * 6(system run pollsters 6 times an hour) * 24(a day) * 100(host) = 4,752,000 records.

For above case I think it is necessary to restrict number of records by some mechanism, below are my immature idea: 1. Make restriction on max supported records by time or number of samples, discard old records. 2. Providing API to delete samples by resource_id or some other conditions, so the third integration system may call this API to delete related samples when delete a resource. 3. Running period task of accounting on raw samples, using 1min samples to generate 5min statistics samples, using 5min statistics to generate 30min statistics samples, and so on. Every period of sample has individual data table and has resriction on max supported records .

I am not a ceilometer programmer and I apologize if I am missing something very obvious. Can you give me some help to make me clear about them and how to implement my requirement?

Thanks

Hi

I have a requirement of monitoring VMs, if a VM's meter like cpu_util become too high, then system generate an alarm for this VM with meter information.

I have tested alarm function of ceilometer, below are commands I used to create alarm object with meter and resource id or not: ceilometer alarm-threshold-create --name alarm1 --meter-name cpu_util --period 60 --evaluation-periods 1 --statistic avg --comparison-operator gt --threshold 1 -q resource_id=757dadaa-0707-4fad-808d-81edc11438aa ceilometer alarm-threshold-create --name alarm1 --meter-name cpu_util --period 60 --evaluation-periods 1 --statistic avg --comparison-operator gt --threshold 1

I have the following question: If I have to define alarm object for every VM and every meter? Take 100 VM and 2 meter cpu_util, memory_util as an example, I will have to define 100*2 alarm objects for them. I think if I just define alarm object with meter not but VM(resource_id), then alarm evaluator will count all VM's meter.

Another question produced by question above: I know that alarm evaluator will process alarm object one by one, so too many alarm object may result in performance problems too.

I am not a ceilometer programmer and I apologize if I am missing something very obvious. Can you give me some help to make me clear about them and how to implement my requirement?

Thanks