[openstack-dev] [Ceilometer] Concerning get_resources/get_meters and the Ceilometer API
Sandy Walsh
sandy.walsh at rackspace.com
Wed Aug 14 12:48:37 UTC 2013
On 08/14/2013 06:17 AM, Julien Danjou wrote:
> On Tue, Aug 13 2013, Thomas Maddox wrote:
>
> Hi Thomas,
>
>> * Driving get_resources() with the Meter table instead of the
>> Resource table. This is mainly because of the additional filtering
>> available in the Meter table, which allows us to satisfy a use case
>> like getting a list of resources a user had during a period of time
>> to get meters to compute billing with. The semantics are tripping me
>> up a bit; the question this boiled down to for me was: why use a
>> resource query to get meters to show usage by a tenant? I was
>> curious about why we needed the timestamp filtering when looking at
>> Resources, and why we would use Resource as a way to get at metering
>> data, rather than a Meter request itself? This was answered by
>> resources being the current vector to get at metering data for a
>> tenant in terms of resources, if I understood correctly.
>> * With this implementation, we have to do aggregation to get at
>> the discrete Resources (via the Meter table) rather than just
>> filtering the already distinct ones in the Resource table.
>
> I think I already answered that in a previous email when I said "drop
> the resource table". :)
>
>> * This brought up some confusion with the API for me with the
>> major use cases I can think of:
>> * As a new consumer of this API, I would think that
>> /resource/<resource_id> would get me details for a resource, e.g.
>> current state, when it was created, last updated/used timestamp, who
>> owns it; not the attributes from the first sample to come through
>> about it
>
> s/first/last/ actually
>
> I wouldn't disagree if you had such improvements to propose.
> However, we're pretty flexible in Ceilometer as we don't allow only
> metering OpenStack; be careful of somethings like "who owns it" might
> change in other systems than OpenStack for example, depending on the
> time range you filter on.
>
>> * I would think that
>> /meter/?q.field=resource_id&q.value=<resource_id> ought to get me
>> a list of meter(s) details for a specific resource, e.g. name,
>> unit, and origin; but not a huge mixture of samples.
>
> That could be a nice improvement indeed.
>
>> * Additionally /meter/?q.field=user_id&q.value=<user_id>
>> would get me a list of all meters that are currently related
>> to the user
>
> Same as above.
>
>> * The ultimate use case, for billing queries, I would think
>> that /meter/<meter_id>/statistics?<time
>> filters>&<user>&(<resource_id>) would get me the measurements for
>> that meter to bill for.
>
> We'd like that too, though it's not always perfect since we don't handle
> the different counter types explicitly.
>
>> If I understand correctly, one main intent driving this is wanting to
>> avoid end users having to write a bunch of API requests themselves
>> from the billing side and instead just drill down from payloads for
>> each resource to get the billing information for their customers. It
>> also looks like there's a BP to add grouping functionality to
>> statistics queries to allow us this functionality easily (this one, I
>> think:
>> https://blueprints.launchpad.net/ceilometer/+spec/api-group-by).
>
> Yes.
>
>> I'm new to this project, so I'm trying to get a handle on how we got
>> here and maybe offer some outside perspective, if it's needed or
>> wanted. =]
>
> I think you got the picture right. We're trying to improve the API, but
> we always happy to get help. There's a sort of meta blueprint:
>
> https://blueprints.launchpad.net/ceilometer/+spec/api-v2-improvement
>
> With various ideas to improve the API. It's assigned to me, though I
> didn't implement most of the ideas there, and won't probably have time
> to implement them all, so feel free to contribute!
>
+1 ... I think that would clear up a lot of confusion not only in the
api, but the underlying db & models.
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list