Trace Golang 中的数据存储调用
Datastore calls in Trace Golang
当我使用 go111 时,我有所有数据存储调用的痕迹(类似于下图)。但是当我升级到 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)
但这没有用。我是否遗漏了任何信息来告诉数据存储库导出这些调用?
谢谢!
终于找到了https://github.com/GoogleCloudPlatform/golang-samples/blob/master/trace/trace_quickstart/main.go
并意识到我遗漏了以下内容:
trace.RegisterExporter(exporter)
这解决了我的问题。然后我还在 localhost
上添加了以下内容
trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
确保跟踪所有请求:
httpHandler := &ochttp.Handler{
// Use the Google Cloud propagation format.
Propagation: &propagation.HTTPFormat{},
}
if err := http.ListenAndServe(":"+port, httpHandler); err != nil {
当我使用 go111 时,我有所有数据存储调用的痕迹(类似于下图)。但是当我升级到 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)
但这没有用。我是否遗漏了任何信息来告诉数据存储库导出这些调用?
谢谢!
终于找到了https://github.com/GoogleCloudPlatform/golang-samples/blob/master/trace/trace_quickstart/main.go
并意识到我遗漏了以下内容:
trace.RegisterExporter(exporter)
这解决了我的问题。然后我还在 localhost
上添加了以下内容trace.ApplyConfig(trace.Config{DefaultSampler: trace.AlwaysSample()})
确保跟踪所有请求:
httpHandler := &ochttp.Handler{
// Use the Google Cloud propagation format.
Propagation: &propagation.HTTPFormat{},
}
if err := http.ListenAndServe(":"+port, httpHandler); err != nil {