如何格式化我的 golang 错误日志记录,以便 Google Cloud StackDriver 在 GCE 上识别并解析它?

问题描述 投票:0回答:1

我一直在尝试让 StackDriver 错误报告在我的 golang 项目上工作。 我正在 GCE 中的虚拟机上运行日志记录代理。无论我尝试什么模式,它似乎都没有拾取它,尽管它拾取了一些堆栈跟踪的随机位,这似乎是这样的

/^go:.*/

下面是堆栈驱动程序发现的错误示例,以及它是如何被破坏的。

原始标签

router.go:16: goroutine 47 [running]:
github.com/org/repo/baserouter.RecoverFromPanic.func1.1(0x15267e0, 0xc420056340)
    /home/myuser/go/src/github.com/org/repo/baserouter/router.go:14 +0xe2
panic(0xf6c320, 0xc4200120b0)
    /opt/go-1.7.1/src/runtime/panic.go:458 +0x271

标题

go: 16

已解析的堆栈跟踪选项卡

“不可用”

如何通过代理注销错误和堆栈跟踪,以便 StackDriver 拾取它并正确解析它?

go google-cloud-platform stackdriver google-cloud-stackdriver
1个回答
0
投票

现在回答有点晚了,但因为我在搜索自己时偶然发现了这一点:here详细介绍了使 stackdriver 日志记录自动触发错误报告所需的步骤。 由于未指定的“堆栈跟踪检测器”不会将 go 错误捕获为正确的堆栈跟踪,因此您可以将

"@type": "type.googleapis.com/google.devtools.clouderrorreporting.v1beta1.ReportedErrorEvent"
键/值对添加到日志中(假设您使用 json 日志记录而不是文本日志记录。

对我自己来说不幸的是,我还发现此功能与区域化日志存储桶不兼容,这对我来说是一个破坏者。

© www.soinside.com 2019 - 2024. All rights reserved.