[openstack-dev] global request identifier

Michael J Fork mjfork at us.ibm.com
Fri Apr 12 23:22:21 UTC 2013

Brian - I too am interested in this topic and am glad to see someone else
interested in moving this forward. Reading through the ML again, the
blueprint appears to diverge on identifiers (commented on whiteboard as
well).  From https://lists.launchpad.net/openstack/msg13174.html

"Seems like a likely line is when a new HTTP call is made, the request-id
is reset.  This allows us to disallow passing in a request-id for all web
services, which would lend itself well to a common middleware.  That is to
say, users of an API can pass in a transaction ID (which means the
transaction ID could originate from the customer, if that's helpful to
them) and the request id would always get set to a random UUID any time it
passed through this middleware."

Following this approach would seem to answer the open questions regarding
request-id values - middleware in the HTTP server could strip it off since
it would always be re-generated on HTTP call boundaries.  By contrast, the
transaction id would be used for the life of the API invocation, crossing
component boundaries.  If the transaction id isn't specified by the
customer, a UUID could be generated.

I would also like to propose making this statement slightly more generic:
"each service that touches the request will carry along this header value
and use it in log messages and external notifications."  Instead of just
logging those values, what if all log calls included the request object
being worked on.  I believe having the request object would open up a much
richer set of possibilities with log handlers, including 1) logging those
IDs via the formatter, and 2) in-memory buffer of debug messages with those
associated with a failed request being dumped to disk.

Anyone else interested in an ad-hoc discussion on this at the summit?


Michael Fork
Architect, OpenStack Development
IBM Systems & Technology Group

Brian Elliott <bdelliott at gmail.com> wrote on 04/12/2013 03:22:31 PM:

> From: Brian Elliott <bdelliott at gmail.com>
> To: OpenStack Development Mailing List
<openstack-dev at lists.openstack.org>,
> Date: 04/12/2013 03:33 PM
> Subject: [openstack-dev] global request identifier
> Hi folks,
> I wrote up this blueprint to add in the debugging of requests that
> span multiple OpenStack services:
> https://blueprints.launchpad.net/nova/+spec/cross-service-request-id
> There was a discussion back in June about this topic.  Feedback at
> the time was positive, but interest seems to have fallen off. (
> https://lists.launchpad.net/openstack/msg13082.html)  Please let me
> know if there are any objections to proceeding down this path!
> Thanks,
> Brian
> PS: The BP is filed under the Nova project, but it's obviously more
> cross-project.  Is there a better place to capture things like this?
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130412/a90ea2c2/attachment.html>

More information about the OpenStack-dev mailing list