В моем проекте я пытаюсь реализовать распределенную трассировку, используя 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()
.
Как решить эту проблему?