代码之家  ›  专栏  ›  技术社区  ›  Leif Arne Storset

如何按执行对云函数日志条目进行分组?

  •  0
  • Leif Arne Storset  · 技术社区  · 6 年前

    it's easy enough to set up .

    背景 云函数我找不到任何方法来做它(保存手动过滤) executionId 在日志查看器中)。从网上的各种文章中我了解到,关键是设置 trace 调用Stackdriver日志API时跟踪ID的参数,以及 HTTP上下文 X-Cloud-Trace-Context 标题。

    后台上下文中没有头(例如,从发布/订阅或存储触发器调用)。我试过将它设置为任意值,例如 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')
    
    0 回复  |  直到 6 年前
        1
  •  3
  •   Dustin Ingram    5 年前

    目前这是可能的。

    在我们的路线图上提供了以下支持: https://github.com/GoogleCloudPlatform/functions-framework-python/issues/79