Trace Golang 中的数据存储调用
Posted
技术标签:
【中文标题】Trace Golang 中的数据存储调用【英文标题】:Datastore calls in Trace Golang 【发布时间】:2021-11-11 00:03:54 【问题描述】:当我使用 go111 时,我有所有 Datastore 调用的痕迹(类似于下图)。但是一旦我升级到 go115 并开始使用 cloud.google.com/go/datastore,我就完全丢失了这些信息。我尝试通过添加我的 main 来设置遥测:
projectID := os.Getenv("GOOGLE_CLOUD_PROJECT")
exporter, err := texporter.NewExporter(texporter.WithProjectID(projectID))
if err != nil
log.Fatalf(bgCtx, "texporter.NewExporter of '%v': %v", projectID, err)
tp := sdktrace.NewTracerProvider(sdktrace.WithBatcher(exporter))
defer tp.ForceFlush(bgCtx)
otel.SetTracerProvider(tp)
但这没有用。我是否遗漏了任何告诉数据存储库导出这些调用的内容?
谢谢!
【问题讨论】:
您能否添加一个可重现的代码,以便我们进一步了解问题的主要原因是什么? 【参考方案1】:终于找到https://github.com/GoogleCloudPlatform/golang-samples/blob/master/trace/trace_quickstart/main.go
并意识到我缺少以下内容:
trace.RegisterExporter(exporter)
这解决了我的问题。然后我还在localhost上添加了以下内容
trace.ApplyConfig(trace.ConfigDefaultSampler: trace.AlwaysSample())
确保跟踪所有请求:
httpHandler := &ochttp.Handler
// Use the Google Cloud propagation format.
Propagation: &propagation.HTTPFormat,
if err := http.ListenAndServe(":"+port, httpHandler); err != nil
【讨论】:
以上是关于Trace Golang 中的数据存储调用的主要内容,如果未能解决你的问题,请参考以下文章
将 Trace 数据保存到存储在发布后无法在 Azure 中工作,但在开发环境中工作