如何通过执行将Cloud Function日志条目分组?

问题描述 投票:1回答:1

在第一代Google App Engine中,日志是根据请求在Logs Viewer中自动分组的,在第二代中是it's easy enough to set up。>

背景]中>云函数我找不到任何实现方法(在Logs Viewer中通过executionId手动过滤)。从网络上的各种文章中我读到,关键是调用Stackdriver Logging API时将trace参数设置为跟踪ID,并且在HTTP contexts

中可以在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')

在第一代Google App Engine中,日志是根据日志查看器中的请求自动分组的,而在第二代中,它很容易设置。在后台云函数中,我找不到...

python google-cloud-platform google-cloud-functions google-cloud-stackdriver
1个回答
1
投票

不幸的是,目前看来这不可能。

我已在内部提出了要求此功能的问题,如果有更新,我将更新此答案。

© www.soinside.com 2019 - 2024. All rights reserved.