[Openstack] [ceilometer] Polling interval behaving differently between Juno and Liberty

rezroo openstack at roodsari.us
Sun Apr 10 01:49:48 UTC 2016


Hi Nadya,
Thanks for the clarification.
Do you know if there is a bug report for this issue? If not, should I 
submit one for tracking?
Reza

On 4/8/2016 11:48 AM, Nadya Shakhat wrote:
> Hello, Reza!
>
> Thank you very much for this question. Your understanding is correct. 
> In Liberty in Ceilometer we did a refactoring which has changed the 
> behaviour in the way you've described. Let me try to explain in details.
>
> Each cpu_util sample is the sample which is derived from cpu ones. In 
> Juno, this transformation took place in Compute agent. In Liberty, 
> we've started to do it in Notification agent. And it's the root cause 
> of the issue. Let's consider the following pipeline.yam file:
> sources:
>
> 	- name: meter_source
>
> 	interval: 600
>
> 	meters:
>
> 	- "*"
>
> 	sinks:
>
> 	- meter_sink
>
> 	- name: cpu_source
>
> 	interval: 60 <-----it's your change
>
> 	meters:
>
> 	- "cpu"
>
> 	sinks:
>
> 	- cpu_sink
>
> 	- cpu_delta_sink
>
> It's written here that all possible pollsters (see setup.cfg 
> ceilometer.poll.compute section) should be run every 10 minutes and 
> "meter_sink" should be applied accordingly. Also, once in 60 seconds 
> you want to run _only_ cpu pollster 
> (ceilometer.compute.pollsters.cpu:CPUPollster) and transform the 
> result as described in cpu_sink and cpu_delta_sink. In Juno, we did 
> everything in Compute agent.
>     In Liberty the situation has been changed. In the example above, 
> we run all pollsters once in 600 seconds and send the result to the 
> RabbitMQ (to the special queue "notification.sample"). Also, every 60 
> seconds we run only CPUPollster and send results to MQ again. After 
> this, a notification agent should read these messages and apply the 
> second "part" of pipeline.yaml, i.e. sinks. But how does this agent 
> determine what sink to apply to a Sample? The algorithm is simple: we 
> read the Sample from the "notification.sample" queue and check the 
> "counter_name" of it (note that we don't care about "interval" on this 
> stage). After, we send this Sample to every sink if the corresponding 
> source has the satisfied rule in "meters" section. In the example 
> above, every 10 minutes we have Samples for all the possible meters, 
> including "cpu", i.e. every 10 minutes we apply cpu_sink and 
> cpu_delta_sink for the Sample from meter_source source (it's actually 
> wrong, because these sinks refers to cpu_source source and in Juno we 
> applied only meter_sink). Also, every 1 minute (your change) we have 
> only one Sample with "counter_name=cpu". And now we also apply all 
> sinks again, because "cpu" satisfies the "*" and "cpu" rules in the 
> sources description. That's why  you see "cpu"-related samples every 
> minute. I assume that every 10 minute you may see two "cpu", 
> "cpu_delta" and "cpu_util"-related samples.
>     The main problem we have now in Ceilometer (starting from Liberty) 
> is that we have pipeline.yaml, but this file is not fully applied 
> neither on Polling agents (Central and Compute), nor on Notification. 
> On Polling, we are interested only in sources and don't use 
> transformers information; on Notification, we don't care about intervals.
>     I don't see any workaround in your case, because you need "cpu" 
> samples for "cpu_util" construction, and you need it every 60 seconds, 
> i.e. you need to receive "cpu" every 1 minute and it's impossible to 
> configure "please write down cpu Sample to db only once in 10 minutes, 
> ignore all other occurrence of cpu Sample, use it only for 
> transformation".
>
>     Sorry for bad news. I hope that this behaviour will be discussed 
> soon on the Summit.
>
> Thanks,
> Nadya
>
>
> On Fri, Apr 8, 2016 at 5:03 PM, rezroo <openstack at roodsari.us 
> <mailto:openstack at roodsari.us>> wrote:
>
>     Hi - I have been using ceilometer in devstack for a while, and
>     what I used to be able to do is modify pipeline.yaml to set the
>     polling interval for "name: cpu_source" to 60, and then publish it
>     using udp. The diff for the changes are below for the Liberty
>     pipeline.yaml:
>
>         /stack at vlab:/etc/ceilometer$ diff pipeline.yaml.bak
>         pipeline.yaml//
>         //10c10//
>         //<       interval: 600//
>         //---//
>         //>       interval: 60//
>         //53c53//
>         //<           - notifier:////
>         //---//
>         //>           - udp://127.0.0.1:4952 <http://127.0.0.1:4952>//
>         /
>
>     The desired and net effect of these changes in Juno was the I
>     would get cpu_util samples every minute, but cpu meters every 10
>     minute, in the Juno release.
>
>     These same changes in Liberty are not having the same effect. I
>     get cpu, cpu_util, and cpu.delta every 1 minute. Why are cpu
>     samples arriving every minute?
>
>         /stack at lab:~$ ceilometer sample-list -m cpu | head//
>         //+--------------------------------------+------+------------+------------+------+----------------------------+//
>         //| Resource ID                          | Name | Type       |
>         Volume     | Unit | Timestamp                  |//
>         //+--------------------------------------+------+------------+------------+------+----------------------------+//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0746e+11 | ns   | 2016-04-08T13:48:17.380281 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0739e+11 | ns   | 2016-04-08T13:47:17.357667 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.073e+11  | ns   | 2016-04-08T13:46:17.414188 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0723e+11 | ns   | 2016-04-08T13:45:17.356869 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0715e+11 | ns   | 2016-04-08T13:44:17.357771 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0707e+11 | ns   | 2016-04-08T13:43:17.349820 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu  | cumulative |
>         1.0699e+11 | ns   | 2016-04-08T13:42:17.348110 |//
>         //
>         //stack at lab:~$ ceilometer sample-list -m cpu.delta | head//
>         //+--------------------------------------+-----------+-------+-------------+------+----------------------------+//
>         //| Resource ID                          | Name      | Type  |
>         Volume      | Unit | Timestamp                  |//
>         //+--------------------------------------+-----------+-------+-------------+------+----------------------------+//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         70000000.0  | ns   | 2016-04-08T13:48:17.380281 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         90000000.0  | ns   | 2016-04-08T13:47:17.357667 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         70000000.0  | ns   | 2016-04-08T13:46:17.414188 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         80000000.0  | ns   | 2016-04-08T13:45:17.356869 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         80000000.0  | ns   | 2016-04-08T13:44:17.357771 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         80000000.0  | ns   | 2016-04-08T13:43:17.349820 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu.delta | delta |
>         80000000.0  | ns   | 2016-04-08T13:42:17.348110 |//
>         //
>         //stack at lab:~$ ceilometer sample-list -m cpu_util | head//
>         //+--------------------------------------+----------+-------+----------------+------+----------------------------+//
>         //| Resource ID                          | Name     | Type  |
>         Volume         | Unit | Timestamp                  |//
>         //+--------------------------------------+----------+-------+----------------+------+----------------------------+//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.116622711567 | %    | 2016-04-08T13:48:17.380281 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.150141435735 | %    | 2016-04-08T13:47:17.357667 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.116555319427 | %    | 2016-04-08T13:46:17.414188 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.133335337808 | %    | 2016-04-08T13:45:17.356869 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.133315666786 | %    | 2016-04-08T13:44:17.357771 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.133329533442 | %    | 2016-04-08T13:43:17.349820 |//
>         //| 6c4d5e4c-066e-4e98-b728-caaa66d8bf3b | cpu_util | gauge |
>         0.133329311232 | %    | 2016-04-08T13:42:17.348110 |/
>
>     Is this a ceilometer bug, or change? Is my understanding of the
>     desired effect incorrect?
>     Thanks,
>     Reza
>
>     _______________________________________________
>     Mailing list:
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>     Post to     : openstack at lists.openstack.org
>     <mailto:openstack at lists.openstack.org>
>     Unsubscribe :
>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20160409/139f0a98/attachment.html>


More information about the Openstack mailing list