我的 API 网关启动了一个跟踪器和一个用于验证电子邮件的跨度。然后将其传递给user-service
进行验证。
我想将此span
详细信息user-service
作为 json 对象传递并开始另一个span
作为
tracer.start_span('Validate Email', child_of=API_gateway_span)
为此,我使用了以下结构:
type checkEmail struct {
GatewayTracerSpan opentracing.SpanContext `json: gatewayTracerSpan`
Email string `json: email`
Uuid string `json: uuid`
}
在function()
validateEmailSpan := apitracer.tracer.StartSpan("Validate Email")
emailJson := checkEmail{
GatewayTracerSpan: validateEmailSpan.Context(),
Email: email,
Uuid: uuid,
}
但始终GatewayTracerSpan
是空值。我刚刚开始分布式跟踪。在这里,我选择使用 json 而不是 native http-headers
,因为它可以轻松升级任何协议更改。
这可能吗?如果是这样,我做得对吗?或者我犯了什么错误?