【问题标题】:Cloud Composer Structured Logging to StackdriverCloud Composer 结构化日志记录到 Stackdriver
【发布时间】:2018-12-18 21:54:50
【问题描述】:

我想知道对于 Cloud Composer 部署,将结构化日志记录发送到 Stackdriver 的合适方法是什么。我已经查看了 google-cloud-logging 模块供 python 调用插件或 DAG,但看起来这适用于尚未部署日志记录的项目。

我已按照this guide 将我的记录器的输出修改为 stdin / stderr 为 json 格式,输出类似于:{"message": "test error", "severity": "ERROR"}

但在检查 Stackdriver 日志时,它不会被解析为 JSON,而是按原样放置在消息正文中。

下面是它在 Stackdriver UI 中的外观(我已将敏感信息替换为泛型。消息字符串中 json 后面的新行是它在 Stackdriver 控制台中的外观)。

{
 insertId:  "xxxxxxxxx"  
 jsonPayload: {
  message:  "{"message": "This is WARN TEST", "severity": "WARNING"}
"   
  python_logger:  "airflow.processor"   
 }
 logName:  "projects/project_name/logs/airflow-scheduler"  
 receiveTimestamp:  "2000-01-01T00:00:0.0000000Z"  
 resource: {
  labels: {
   environment_name:  "ariflow-environment-name"    
   location:  "us-location2"    
   project_id:  "project_name"    
  }
  type:  "cloud_composer_environment"   
 }
 severity:  "INFO"  
 timestamp:  "2000-01-01T00:00:0.0000000Z"  
}

有没有人使用上述或其他方法成功地将结构化日志从 Composer 发送到 Stackdriver?

【问题讨论】:

    标签: google-kubernetes-engine google-cloud-stackdriver google-cloud-composer


    【解决方案1】:

    调用 log_struct 时,我被文档和 client.logger() 对象返回的 400 错误吓倒了。这意味着传递给client.logger(LOG_NAME) 的LOG_NAME 变量的格式为'/projects/[your-project-id]/logs/[log-id]'

    (例如,我收到的输入 '/projects/my-project/logs/airflow-worker' 的错误是 400 Received unexpected value: airflow-worker. Expected the form projects/[PROJECT_ID]/logs/[ID])。

    在 Composer 环境中调用它的正确方法是:

    from google.cloud import logging
    
    LOG_NAME = 'airflow-worker'  # or 'airflow-scheduler' etc.
    logger = client.logger(LOG_NAME)
    
    logger.log_struct({
       'message': 'message text to appear in StackDriver',
       'custom_key': 'value_pair'
    },
    severity='ERROR')
    

    希望这可以节省其他人一些时间。

    【讨论】:

      猜你喜欢
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2020-03-12
      • 2020-01-24
      • 2023-03-23
      • 2018-03-24
      • 2019-07-26
      • 2020-06-26
      相关资源
      最近更新 更多