如何通过执行对云功能日志条目进行分组



在谷歌应用程序引擎中,第一代日志是在日志查看器中根据请求自动分组的,而在第二代中,设置起来很容易。

后台云函数中,我找不到任何方法(在日志查看器中保存executionId手动过滤(。从网上的各种文章中,我读到关键是在调用Stackdriver Logging API时将trace参数设置为Trace ID,并且在HTTP上下文中,可以在X-Cloud-Trace-Context头中找到该ID。

后台上下文中没有标头(例如,从Pub/Sub或Storage触发器调用(。我尝试将其设置为任意值,例如函数上下文中的event_id,但没有进行分组。

以下是我如何尝试的缩小表示:

from google.cloud.logging.resource import Resource
import google.cloud.logging
log_name = 'cloudfunctions.googleapis.com%2Fcloud-functions'
cloud_client = google.cloud.logging.Client()
cloud_logger = cloud_client.logger(log_name)
request_id = None

def log(message):
labels = {
'project_id': 'settle-leif',
'function_name': 'group-logs',
'region': 'europe-west1',
}
resource = Resource(type='cloud_function', labels=labels)
trace_id = f'projects/settle-leif/traces/{request_id}'
cloud_logger.log_text(message, trace=trace_id, resource=resource)

def main(_data, context):
global request_id
request_id = context.event_id
log('First message')
log('Second message')

目前这是可能的。

我们的路线图上有提供这种支持的内容:https://github.com/GoogleCloudPlatform/functions-framework-python/issues/79

相关内容

  • 没有找到相关文章

最新更新