Create a unified request identifier
Create a unified request identifier associated with an API request that crosses OpenStack service boundaries. This will enable more effective debugging of requests that span multiple services. For example, a Nova instance create request may touch other services including Glance. A single id will simplify the process of tracking down errors.
See related email discussion: https:/
Proposal:
-The first OpenStack service to touch a request will tag it with a "correlation_id". This will effectively be a global identifier. Inter-service requests will contain this ID in an HTTP header, "X_CORRELATION_ID". This value will be a UUID.
-Each service that touches the request will carry along this header value and use it in log messages and external notifications.
-Each service may have its own internal request identifier (request_id in Nova and Glance) and should also log this value in conjunction with the global identifier.
Question - How to guard against users supplying their own request id value? Check for uniqueness? Only accept request ID headers from certain source IPs?
Refer to https:/
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Not
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- Aditi Raveesh
- Definition:
- Obsolete
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
- Mark Washenberger
Related branches
Related bugs
Sprints
Whiteboard
<jbresnah> is this a duplicate bp: https:/
Gerrit topic: https:/
Addressed by: https:/
Implements Cross Service Unified Request id
Quoting from a similar patch review in nova:
https:/
"The result from the HKG discussion was that we won't have a unified request-id across services, but we'll log id from services when we call out to them so we can trace the request with some post processing. So on a call to Glance we'll log the Nova request_id and the Glance request_id together and send a notification."
So it looks like the only work we need now is in the client, and is covered here:
https:/
-markwash