【发布时间】:2020-05-11 22:27:54
【问题描述】:
根据我的经验,Stackdriver 错误报告服务将不相关的错误组合在一起。这在几个层面上对我来说都是一个大问题:
- 标题通常与“最近的样本”中报告的错误无关。因此,我必须查看每个错误的示例,以了解真正发生了哪些错误,因为标题确实不可信。
- 我可能会将错误设置为“静音”,因此不再报告分组在同一标题下的其他错误。我可能需要几个月的时间才能发现发生了某些我不知道的错误。
- 一般来说,我不了解发生的错误率。
这一切似乎违反了错误报告系统的基本功能,所以我想我一定遗漏了一些东西。
代码在 Firebase Functions 上运行,因此 Google Cloud Functions 的 Firebase 风格是用 Typescript 编写的(使用 Firebase 预部署脚本编译为 Javascript)。
我使用console.error 记录错误,参数格式为错误实例,如console.error(new Error('some error message'))。 AFAIK 这是在 Node.js 上运行代码的正确方法。
有什么特别的方法可以让 Stackdriver 更好地理解我的代码吗?
我在函数部署的根目录中有这个:
import * as sourceMaps from "source-map-support";
sourceMaps.install();
下面是一个错误类别的屏幕截图。您会看到错误标题为“服务当前不可用”,但示例包含“请求包含无效参数”和“此请求已被锁定...”的错误
关于服务和无效参数的错误可能与 FCM 服务有关,因此有一些相关性,尽管我认为这些错误是非常不同的。
关于请求锁的错误实际上是完全不相关的。在这种情况下,“请求”一词的含义确实不同,但这个词是我能看到的唯一关系。
【问题讨论】:
标签: firebase google-cloud-functions google-cloud-stackdriver