如何在BigQuery中关联Google App Engine日志表与Error Reporting数据
解决方案
Error Reporting默认不会自动将错误状态数据同步到BigQuery,你可以通过以下两种方式实现两类数据合并:
- 方式一:通过Error Reporting API拉取错误状态后关联查询
调用Error Reporting的projects.groupStats.list接口拉取所有错误组的状态(Open/Acknowledged/Resolved)和对应唯一标识group_id,将拉取到的状态数据导入BigQuery生成独立的错误状态映射表,之后以group_id为关联键,和GAE请求日志表做JOIN查询即可统计对应状态的错误数量。 - 方式二:配置Error Reporting状态变更日志导出到BigQuery
在Cloud Logging中配置导出规则,筛选Error Reporting产生的错误状态变更事件日志,设置导出目标为指定BigQuery数据集,系统会自动生成表存储全量错误状态变更记录,之后关联该表和GAE请求日志表即可获取带状态的错误数据。
关联查询时建议同时匹配错误发生时间和错误组ID,避免同个错误组跨时间修改状态导致统计结果偏差。
你可以参考以下示例SQL完成统计:
SELECT DATE(l.timestamp) AS error_date, COUNT(DISTINCT l.insertId) AS daily_acknowledged_error_count FROM `你的项目ID.你的数据集名.appengine_googleapis_com_request_log_*` l INNER JOIN `你的项目ID.你的数据集名.error_reporting_status_map` s ON l.protoPayload.errorGroupId = s.group_id WHERE s.status = 'Acknowledged' AND l.protoPayload.status >= 500 GROUP BY error_date ORDER BY error_date DESC
内容的提问来源于stack exchange,提问作者Victor Maricato
相关产品推荐
相关产品推荐

