Diagram for Git traceability

Current state as of 2025-08-28

sequenceDiagram
    autonumber
    participant Runner
    participant Git
    participant Workhorse
    participant Some Service
    participant Gitaly

    Runner->>Workhorse: First request (Job Request)
    Workhorse->>Workhorse: generate X-Request-Id
    Workhorse->>Some Service: Request <br/>X-Request-Id: newly generated value
    Some Service->>Workhorse: Response
    Workhorse->>Runner: Response with X-Request-Id used for request
    Runner->Runner: Print out X-Request-Id to Runner log
    Runner->Git: Start git operation: Configure Git extraHeader <br/> X-Gitaly-Correlation-Id set to job request's X-Request-Id
    Git->>Workhorse: Git http request 1 with <br/> X-Gitaly-Correlation-Id set to First X-Request-Id value
    Workhorse->>Gitaly: Git http request 1 <br/>X-Request-Id: newly generated value
    Gitaly->>Workhorse: Response
    Workhorse->>Git: Response
    Git->>Workhorse: Git http request 2 with <br/> X-Gitaly-Correlation-Id set to First X-Request-Id value
    Workhorse->>Gitaly: Git http request 2 <br/>X-Request-Id: newly generated value
    Gitaly->>Workhorse: Response
    Workhorse->>Git: Response
    Git->>Runner: Complete Git Operation

Option 1

  • Update Workhorse to log X-Gitaly-Correlation-Id to Kibana
  • Given a problematic job that has a git problem, we can now
    • Check Job log for X-Gitaly-Correlation-Id
    • Search for this X-Gitaly-Correlation-Id in Workhorse kibana log
    • Find out all the unique X-Request-Ids that were created by workhorse during this Git Operation
    • Search Gitaly Kibana for those X-Request-Ids to see what happened.
Edited by Paul Phillips