【问题标题】:Stackdriver python log RPC errorStackdriver python日志RPC错误
【发布时间】:2017-12-02 00:53:47
【问题描述】:

我在将错误记录到 GCP StackDriver 时遇到 RPC 问题。以下是错误信息:

grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.DEADLINE_EXCEEDED, Deadline Exceeded)>

这是用于记录的python代码:

import logging
import logging.handlers
import os
import config
import google.cloud.logging as gcp_logging
from google.oauth2 import service_account

logger = logging.getLogger('my_logger')
## using Google Stackdriver logging
#client = gcp_logging.Client(project=config.project, credentials=config.credentials_gcp_ml)
#client = gcp_logging.Client.from_service_account_json('./cred.json')
cred = service_account.Credentials.from_service_account_file('./cred.json')
client = gcp_logging.Client(project = config.project, credentials=cred)
hdlr = client.get_default_handler()
logger = logging.getLogger('cloudLogger')

formatter = logging.Formatter('%(asctime)s  %(levelname)s   %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)

我在连接到我的 GCP 帐户的本地计算机上运行此代码。

google-auth 1.2.0; google-cloud-logging 1.4.0

【问题讨论】:

  • 我的 google-auth 版本是 1.3.0,我使用的是 this code,这是基于你的。一切正常。
  • 您的代码可以在 Compute Engine 中的一个实例上运行,还是在 Cloud Shell 中运行?顺便说一下,这是the error,你得到了。

标签: python google-cloud-platform stackdriver google-cloud-stackdriver


【解决方案1】:

我已经尝试过您的代码(稍作修改以使其适应我的项目,并添加了最后一行以便将日志输出到Stackdriver Logging console)并且它对我有用。

这里分享一下我用过的代码:

import logging
import logging.handlers
import os
import google.cloud.logging as gcp_logging
from google.oauth2 import service_account

logger = logging.getLogger('my_logger')
cred = service_account.Credentials.from_service_account_file('./private-key.json')
client = gcp_logging.Client(project = "<YOUR_PROJECT_ID>", credentials=cred)
hdlr = client.get_default_handler()
logger = logging.getLogger('cloudLogger')

formatter = logging.Formatter('%(asctime)s  %(levelname)s   %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.INFO)
logger.info('This is a Logging Test.')

在我的本地机器上运行命令python test.py后,我得到的结果是:

Program shutting down, attempting to send 1 queued log entries to Stackdriver Logging...
Waiting up to 5 seconds.
Sent all pending logs.

然后,如果我转到我之前提供的控制台链接并使用全局资源类型 (resource.type="global") 进行过滤,我会看到:

正如@A.Queue 所说,我也在运行google-auth 版本1.3.0google-cloud-logging 1.4.0,所以你应该尝试升级google-auth,使用命令:

pip install --upgrade google-auth

尝试一下,如果同样的错误不断出现,请联系我们。

【讨论】:

  • 我在我的 VM 下找不到我的日志,但是,我在全局中找到了它们。有没有办法在虚拟机名称下显示特定虚拟机的日志?
猜你喜欢
  • 2021-02-07
  • 2018-10-22
  • 2019-07-26
  • 2020-11-10
  • 2014-10-26
  • 2017-08-05
  • 2020-03-16
  • 1970-01-01
  • 2014-04-15
相关资源
最近更新 更多