← Back to team overview

openstack team mailing list archive

request and transaction IDs across all projects


In nova we use a request ID to to help in finding all logs associated with
a particular request, and this has proven to be extremely useful when
debugging issues.  This should be taken a bit further, in two different

First, I'd like to see the request ID stored along with the any faults
that are registered, and I'd like to see that request ID returned in the
fault data.  Returning it in the fault data can start as an extension for
now, and that should be able to move forward into the API pretty easily.

Second, I'd like to figure out how we can extend this concept to all the
openstack services.  I see two competing desires here.  First, we want to
know about a particular request to a given service and second we want to
know about an overall transaction across all services.  So, for example, a
single create server request may cause multiple requests to glance, and
depending on the issue, it would be great to both tie those together or
investigate separately.  To this end, I'd like to see both a request ID
and a transaction ID.  I'd like to see both these items in log, and I'd
like all OpenStack services to obey the rule that if the transaction ID is
set, don't reset it to anything else, but always add a request ID.

Thoughts?  Do you buy the need for both a request ID and a transaction ID?
I think the biggest change would be for swift, which already has a tx-
header that gets set randomly no matter what (if that middleware is
enabled).  I can make blueprints for both the points above if yes.

I'd love to get request IDs into glance, melange and quantum (maybe
already there?) in particular as quickly as possible.


Follow ups