Распределенная трассировка с помощью golang http.PostForm - PullRequest
0 голосов
/ 02 ноября 2019

В моем проекте я пытаюсь реализовать распределенную трассировку, используя opentracing.

Моя микросервис имеет следующую структуру.

-- API-Gateway
       |_ User-Service
       |_ Notification 

В моем API-шлюзе я запускаю и в APIшлюз, я использую функцию для запуска трассировки, код взят из Настройка вашего трассировщика

в main():

gatewayTracer := &apiTracer{tracer: startTracing("API Gateway")}

http.HandleFunc("/getemail", gatewayTracer.validatemail)

func (apitracer apiTracer) validatemail(res http.ResponseWriter, req *http.Request) {

    validateEmailSpan := apitracer.tracer.StartSpan("Validate Email")
}

Я звоню своемуАбонентское обслуживание от validateemail() с использованием http.PostForm().

_, err := http.PostForm("http://user:7071/checkemail", url.Values{"uuid": {uuid}, "email": {email}})

Здесь uuid для отдельной задачи, а не для отслеживания. Я не могу опубликовать это Span в следующем сервисе, используя PostForm().

Как решить эту проблему?

...