2

我需要包含一个带有错误报告的自定义数据对象/JSON 字符串,而不会丢失 Stackdriver 似乎捕获的堆栈跟踪。将 JSON 字符串设置为message似乎不是一个理想的解决方案。

我在jsonPayload网上看到了对密钥的引用,但在报告中设置它没有成功。

在我将 Stackdriver 集成到的 Node.js 系统中(通过日志记录客户端),我有一个记录器函数,它接受有关环境、错误堆栈和任何导致错误的支持数据的附加数据,我希望将其包含在报告,以便他们可以快速调查。

在此期间,我不得不使用 Google Stackdriver Logging API 来处理这个问题,但我发现指标查看器有点复杂,而且也很难跟踪哪些日志已被处理。

我之前看到了一个过时的问题,但不想劫持它。它也没有任何解决方案。

希望有解决办法!

4

1 回答 1

2

我所做的是将自定义有效负载存储到 Datastore 并将 Datastore 查看器的链接放入错误异常消息中。例如,它在 Ruby 中的外观(我需要调试的方法存储url和字符串作为 kind 的 Datastore 实体的属性):htmlexception_details

def report_error url, html
  begin
    raise "https://console.cloud.google.com/datastore/entities/query/gql?gql=#{
            CGI.escape "SELECT * FROM exception_details WHERE __key__=Key(exception_details, #{
              Datastore.save( Datastore.entity("exception_details") do |error|
                error["url"] = url
                error["html"] = html
                error.exclude_from_indexes! "html", true
              end ).first.key.id
            })"
          }"
  rescue => e
    Google::Cloud::ErrorReporting.report e
  end
end

这是我收到的一封电子邮件:

在此处输入图像描述

我没有单击蓝色按钮,而是访问了现在可以检查html我存储的变量的超链接:

在此处输入图像描述

于 2018-07-08T20:59:21.947 回答