[openstack-dev] request-id in API response
sean at dague.net
Thu Dec 12 00:40:52 UTC 2013
On 12/11/2013 04:17 PM, Chris Buccella wrote:
> On 12/02/2013 10:18 AM, Joe Gordon wrote:
>> Thanks for bringing this up, and I'd welcome a patch in Swift that
>> would use a common library to generate the transaction id, if it
>> were installed. I can see that there would be huge advantage to
>> operators to trace requests through multiple systems.
>> Another option would be for each system that calls an another
>> OpenStack system to expect and log the transaction ID for the
>> request that was given. This would be looser coupling and be more
>> forgiving for a heterogeneous cluster. Eg when Glance makes a call
>> to Swift, Glance cloud log the transaction id that Swift used
>> (from the Swift response). Likewise, when Swift makes a call to
>> Keystone, Swift could log the Keystone transaction id. This
>> wouldn't result in a single transaction id across all systems, but
>> it would provide markers so an admin could trace the request.
>> There was a session on this at the summit, and although the notes are
>> a little scarce this was the conclusion we came up with. Every time a
>> cross service call is made, we will log and send a notification for
>> ceilometer to consume, with the request-ids of both request ids. One
>> of the benefits of this approach is that we can easily generate a tree
>> of all the API calls that are made (and clearly show when multiple
>> calls are made to the same service), something that just a cross
>> service request id would have trouble with.
>> With that in mind I think having a standard x-openstack-request-id
>> makes things a little more uniform, and means that adding new services
>> doesn't require new logic to handle new request ids.
> Two questions here:
> 1) The APIChangeGuidelines state that changing a header is frowned upon.
> So I suppose that means we'll need to add x-openstack-request-id to nova
> and cinder, keeping around x-compute-request-id for the time being?
> 2) The deadline for blueprints for icehouse-2 is next week. This
> blueprint  is still marked as "next"; should be move that up to
x-compute-request-id would need to go through the normal deprecation
path. So deprecate for icehouse, remove in J. Adding
x-openstack-request-id could happen right away, just mirror the ids
across to it.
More information about the OpenStack-dev