[openstack-dev] [Ceilometer] Dynamic Meters in Ceilometer

Kodam, Vijayakumar (EXT-Tata Consultancy Ser - FI/Espoo) vijayakumar.kodam.ext at nsn.com
Thu Jan 9 09:13:47 UTC 2014

From: ext Doug Hellmann [mailto:doug.hellmann at dreamhost.com]
Sent: Wednesday, January 08, 2014 10:21 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Ceilometer] Dynamic Meters in Ceilometer

On Wed, Jan 8, 2014 at 3:09 PM, Kodam, Vijayakumar (EXT-Tata Consultancy Ser - FI/Espoo) <vijayakumar.kodam.ext at nsn.com<mailto:vijayakumar.kodam.ext at nsn.com>> wrote:

 >From: ext Doug Hellmann [doug.hellmann at dreamhost.com<mailto:doug.hellmann at dreamhost.com>]
 >Sent: Wednesday, January 08, 2014 8:26 PM

 >To: OpenStack Development Mailing List (not for usage questions)
 >Subject: Re: [openstack-dev] [Ceilometer] Dynamic Meters in Ceilometer
 >On Wed, Jan 8, 2014 at 12:35 PM, Ildikó Váncsa <ildiko.vancsa at ericsson.com<mailto:ildiko.vancsa at ericsson.com>> wrote:
 >Hi Doug,
 >Answers inline again.
 >Best Regards,
 >On Wed, Jan 8, 2014 at 3:16 AM, Ildikó Váncsa <ildiko.vancsa at ericsson.com<mailto:ildiko.vancsa at ericsson.com>> wrote:
 >I've started to work on the idea of supporting a kind of tenant/project
 > based configuration for Ceilometer. Unfortunately I haven't reached
 > the point of having a blueprint that could be registered until now.
 > I do not have a deep knowledge about the collector and compute agent
 > services, but this feature would require some deep changes for sure.
 > Currently there are pipelines for data collection and transformation,
 > where the counters can be specified, about which data should be
 > collected and also the time interval for data collection and so on.
 > These pipelines can be configured now globally in the pipeline.yaml file,
 > which is stored right next to the Ceilometer configuration files.
 >Yes, the data collection was designed to be configured and controlled by
 > the deployer, not the tenant. What benefits do we gain by giving that
 > control to the tenant?
 >ildikov: Sorry, my explanation was not clear. I meant there the configuration
 > of data collection for projects, what was mentioned by Tim Bell in a
 > previous email. This would mean that the project administrator is able to
 > create a data collection configuration for his/her own project, which will
 > not affect the other project's configuration. The tenant would be able to
 > specify meters (enabled/disable based on which ones are needed) for the given
 > project also with project specific time intervals, etc.
 >OK, I think some of the confusion is terminology.
 >Who is a "project administrator"? Is that someone with access to change
 > ceilometer's configuration file directly? Someone with a particular role
 > using the API? Or something else?
 >ildikov: As project administrator I meant a user with particular role,
 > a user assigned to a tenant.
 >OK, so like I said, we did not design the system with the idea that a
 > user of the cloud (rather than the deployer of the cloud) would have
 > any control over what data was collected. They can ask questions about
 > only some of the data, but they can't tell ceilometer what to collect.
 >There's a certain amount of danger in giving the cloud user
 > (no matter their role) an "off switch" for the data collection.
 > As Julien pointed out, it can have a negative effect on billing
 > -- if they tell the cloud not to collect data about what instances
 > are created, then the deployer can't bill for those instances.
 > Differentiating between the values that always must be collected and
 > the ones the user can control makes providing an API to manage data
 > collection more complex.
 >Is there some underlying use case behind all of this that someone could
 > describe in more detail, so we might be able to find an alternative, or
 > explain how to use the existing features to achieve the goal?
 > For example, it is already possible to change the pipeline config file
 > to control which data is collected and stored.
 > If we make the pipeline code in ceilometer watch for changes to that file,
 > and rebuild the pipelines when the config is updated,
 > would that satisfy the requirements?

Yes. That's exactly the requirement for our blueprint. To avoid ceilometer restart for changes to take effect, when the config file changes.
API support was added later based on the request in this mail chain. We actually don't need APIs and can be removed.

So as you mentioned above, whenever the config file is changed, ceilometer should update the meters accordingly.

OK, I think that's something reasonable to implement, although I would have to look at the collector to make sure we could rebuild the pipelines safely without losing any data as more messages come in. But it should be possible, if not easy. :-)

The blueprint should be updated to reflect this approach.


Thanks Doug.
I shall update the blueprint accordingly.


 >In my view, we could keep the dynamic meter configuration bp with considering
 > to extend it to dynamic configuration of Ceilometer, not just the meters and
 > we could have a separate bp for the project based configuration of meters.
 >Ceilometer uses oslo.config, just like all of the rest of OpenStack. How are
 > the needs for dynamic configuration updates in ceilometer different from
 > the other services?
 >ildikov: There are some parameters in the configuration file of Ceilometer,
 > like log options and notification types, which would be good to be able to
 > configure them dynamically. I just wanted to reflect to that need. As I see,
 > there are two options here. The first one is to identify the group of the
 > dynamically modifiable parameters and move them to the API level. The other
 > option could be to make some modifications in oslo.config too, so other
 > services also could use the benefits of dynamic configuration. For example
 > the log settings could be a good candidate, as for example the change of log
 > levels, without service restart, in case debugging the system can be a useful
 > feature for all of the OpenStack services.
 >I "misspoke" earlier. If we're talking about meters, those are actually defined
 > by the pipeline file (not oslo.config). So if we do want that file re-read
 > automatically, we can implement that within ceilometer itself, though I'm still
 > reluctant to say we want to provide API access for modifying those settings.
 > That's *really* not something we've designed the rest of the system to
 > accommodate, so I don't know what side-effects we might introduce.
 >ildikov: In case of oslo.config, I meant the ceilometer.conf file in my
 > answer above, not pipeline.yaml. As for the API part, I do not know the
 > consequences of that implementation either, so now I'm kind of waiting
 > for the outcome of this Dynamic Meters bp.
 >As far as the other configuration settings, we had the conversation about
 > updating those through some sort of API early on, and decided that there
 > are already lots of operational tools out there to manage changes to those
 > files. I would need to see a list of which options people would want to
 > have changed through an API to comment further.
 >ildikov: Yes, I agree that not all the parameters should be configured
 > dynamically. It just popped into my mind regarding the dynamic configuration,
 > that there would be a need to configure other configuration parameters,
 > not just meters, that is why I mentioned it as a considerable item.
 >If it is ok for you, I will register the bp for this per-project tenant
 > settings with some details, when I'm finished with the initial design
 > of how this feature could work.
 >Best Regards,
 >-----Original Message-----
 >From: Neal, Phil [mailto:phil.neal at hp.com<mailto:phil.neal at hp.com>]
 >Sent: Tuesday, January 07, 2014 11:50 PM
 >To: OpenStack Development Mailing List (not for usage questions)
 >Subject: Re: [openstack-dev] [Ceilometer] Dynamic Meters in Ceilometer
 >For multi-node deployments, implementing something like inotify would allow
 > administrators to push configuration changes out to multiple targets using
 > puppet/chef/etc. and have the daemons pick it up without restart.
 > Thumbs up to that.
 >As Tim Bell suggested, API-based enabling/disabling would allow users to
 > update meters via script, but then there's the question of how to work out the
 > global vs. per-project tenant settings...right now we collect specified meters
 > for all available projects, and the API returns whatever data is stored minus
 > filtered values. Maybe I'm missing something in the suggestion, but turning off
 > collection for an individual project seems like it'd require some deep changes.
 >Vijay, I'll repeat dhellmann's request: do you have more detail in another doc? :-)
 >-       Phil
 >> On Mon, Jan 6, 2014 at 12:52 PM, Kodam, Vijayakumar (EXT-Tata
 >> Consultancy Ser - FI/Espoo) <vijayakumar.kodam.ext at nsn.com<mailto:vijayakumar.kodam.ext at nsn.com>> wrote:
 >> In this case, simply changing the meter properties in a configuration
 >> file should be enough. There should be an inotify signal which shall
 >> notify ceilometer of the changes in the config file. Then ceilometer
 >> should automatically update the meters without restarting.
 >> Why it cannot be something configured by the admin with inotifywait(1)
 >> command?
 >> Or this can be an API call for enabling/disabling meters which could
 >> be more useful without having to change the config files.
 >> Chmouel.
 >> I haven't tried inotifywait() in this implementation. I need to check
 >> if it will be useful for the current implementation.
 >> Yes. API call could be more useful than changing the config files manually.
 >> Thanks,
 >> VijayKumar

OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org<mailto:OpenStack-dev at lists.openstack.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140109/4611f469/attachment.html>

More information about the OpenStack-dev mailing list