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 and Quantum. 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 an "OpenStack request id". This will effectively be a global identifier. Inter-service requests will contain this ID in an HTTP header, "x-openstack-
-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.
1. There shouldn't be a cross-service request ID, but instead a mapping of the request IDs from the calling service to the answering service.
2. The log message containing the mapping will be in the n-api log.
3. The x-openstack-
4. Since nova will be the one logging the mapping, the clients will need to provide the x-openstack-
5. Since this will be rolled-out across services, common components should be shared in oslo.
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Denis M.
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Drafting
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
Can you look at the common components in oslo, and propose a bp as to how this would be implemented?