如何将 AWS xray 跟踪添加到 golang 中的 SMTP 调用中

How do you add AWS xray tracing into SMTP calls in golang

我正在尝试将 Xray 跟踪添加到我的所有外部调用中,需要一些帮助。 Http 调用非常简单且有据可查,但我在 smtp 上找不到任何内容。

这就是我使用导入 "net/http".

将 xray 跟踪添加到 http 调用中的方法
// ... Created a client, then...
client = xray.Client(client)
result, err := client.Do(request.WithContext(context.Background()))

这就是我正在使用导入 "net/smtp".

将 xray 跟踪添加到 smtp 调用中的方法
connection, err := smtp.Dial("smtp.server.com")
// ... Set sender and receiver, then...
writer, err := connection.Data()
_, _ = writer.Write("Message")
_ = writer.Close()
_ = connection.Quit()

我已尝试深入研究 smtp 客户端和客户端编写器结构,但找不到要添加的 xray 跟踪。

X-Ray 目前不支持跟踪 SMTP 调用。正如@Markus W Mahlberg 提到的,SMTP 与 HTTP 有很大不同。跟踪 SMTP 需要针对 X-Ray SDK 中不同状态的显式处理程序。