问题描述
我正在尝试在 BigQuery 中成功创建两个表 ga_sessions 和 events 时启动 Google Cloud Function(这些表可以在 3- 4 小时)。
我编写了以下日志堆栈驱动程序接收器/日志路由器,订阅了发布/订阅主题(这反过来启动了谷歌云功能)。但是,它不起作用。如果我为 ga_sessions 和 events 单独使用接收器/路由器,它可以正常工作,但是当我将它们组合在一起时,它就不起作用了。
所以我的问题是如何从日志堆栈驱动程序中获取两个不同的事件,将它们组合在一起并将它们传递给发布/订阅主题
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.datasetId="my_dataset"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.projectId="my-project"
protoPayload.authenticationInfo.principalEmail="firebase-measurement@system.gserviceaccount.com"
protoPayload.methodName="jobservice.jobcompleted"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId:"events"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.writedisposition:"WRITE_TruncATE"
protoPayload.serviceData.jobCompletedEvent.job.jobStatus.state:"DONE"
NOT protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId:"events_inTraday"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.datasetId="my_dataset"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.projectId="my-project"
protoPayload.authenticationInfo.principalEmail="analytics-processing-dev@system.gserviceaccount.com"
protoPayload.methodName="jobservice.jobcompleted"
protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId:"ga_sessions"
NOT protoPayload.serviceData.jobCompletedEvent.job.jobConfiguration.load.destinationTable.tableId:"ga_sessions_inTraday"
预先感谢您的帮助/指导。
解决方法
这里的技巧是创建一个指标,当两个条件都满足时,它实际上会显示 1。
尝试创建一个新的基于日志的指标并切换到“query editor”。您可以在那里使用 MQL language 创建自己的指标。
要能够从两个“指标”创建单个指标,您需要使用 something like this:
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization ;
fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores
} | join | div
这里有一些关于如何创建 alerting policy using MQL 的有用信息。 alerting policy 的代码如下所示:
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization ;
fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores
}
| join | div
| condition val() >1
这只是一个示例,用于证明很可能创建指标来监控 BigQuery 表的创建,但您必须自己进行测试。