为什么 Stackdriver 日志中会间歇性地出现空行?

Pro*_*OXO 5 python python-3.x google-cloud-logging google-cloud-functions

我每分钟都在运行一个云功能。

空行(请参阅下面的日志)间歇性地出现在 Stackdriver 日志中。

我不相信这是由于我编写的函数代码。

可以使用这个 main.py 重新创建错误:

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.info(f"Logging {__name__}")


def main(event, context):
    logger.info("Message 1")
    logger.info("Message 2")
    logger.info("Message 3")
Run Code Online (Sandbox Code Playgroud)

当 Cloud Scheduler 每分钟触发一次时,此函数会在几个小时内发出空行。

如何防止这个问题?

更新:添加了两个扩展日志

{
 insertId: "000001-redacted-but-identical"  
 labels: {
  execution_id: "894004659398898"   
 }
 logName: "projects/redacted/logs/cloudfunctions.googleapis.com%2Fcloud-functions"  
 receiveTimestamp: "2019-12-13T23:05:01.545007423Z"  
 resource: {
  labels: {
   function_name: "recreate_blank_lines"    
   project_id: "redacted"    
   region: "us-central1"    
  }
  type: "cloud_function"   
 }
 severity: "INFO"  
 timestamp: "2019-12-13T23:05:00.344Z"  
 trace: "projects/redacted/traces/c4ed0267fd9fa4bf9133043bdfe5b1e0"  
}

{
 insertId: "000000-redacted-but-identical"  
 labels: {
  execution_id: "894004659398898"   
 }
 logName: "projects/redacted/logs/cloudfunctions.googleapis.com%2Fcloud-functions"  
 receiveTimestamp: "2019-12-13T23:05:01.545007423Z"  
 resource: {
  labels: {
   function_name: "recreate_blank_lines"    
   project_id: "redacted"    
   region: "us-central1"    
  }
  type: "cloud_function"   
 }
 severity: "INFO"  
 textPayload: "Message 2"  
 timestamp: "2019-12-13T23:05:00.345Z"  
 trace: "projects/redacted/traces/c4ed0267fd9fa4bf9133043bdfe5b1e0" 
Run Code Online (Sandbox Code Playgroud)

空白日志示例

空白日志示例 2

Pro*_*OXO 0

截至 2020-02-03 13:44:20.476 PST(太平洋标准时间),这个问题似乎已经消失

来自 issuestracker.google.com 上的支持工程师

看起来 stackdriver 正在记录两次,其中两个日志之一具有空文本有效负载。

我还了解到 stackdriver 将在 2020 年第一季度更新他们的日志传递机制,这可能会解决这个问题。

我将暂时保留此 isuee 跟踪器。当问题在 2020 年第一季度得到解决时,您将收到通知。