Don't override X-Call-Id if it already exists in header
@@ -12,9 +12,11 @@ import (
func MakeCallIDMiddleware(next http.HandlerFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
start := time.Now()
+ if len(r.Header.Get("X-Call-Id")) == 0 {
callID := uuid.Generate().String()
r.Header.Add("X-Call-Id", callID)
w.Header().Add("X-Call-Id", callID)
+ }
r.Header.Add("X-Start-Time", fmt.Sprintf("%d", start.UTC().UnixNano()))
w.Header().Add("X-Start-Time", fmt.Sprintf("%d", start.UTC().UnixNano()))
