Ошибка RPC журнала Python Stackdriver

Я имею проблему RPC с записью ошибки в GCP StackDriver. Ниже приведено сообщение об ошибке:

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

1 ответ

Решение

Я попробовал ваш код (немного измененный, чтобы адаптировать его к моему проекту, и с последней добавленной строкой для вывода журналов в консоль ведения журнала Stackdriver), и он работает для меня.

Здесь я делюсь кодом, который я использовал:

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.

Затем, если я перейду к ссылке на консоль, которую я предоставил ранее, и отфильтрую, используя тип ресурса Globalresource.type="global") вот что я вижу:

введите описание изображения здесь

Как заявлено @A.Queue, я тоже бегу google-auth версия 1.3.0 а также google-cloud-logging1.4.0, так что вы должны попробовать обновить google-auth, используя команду:

pip install --upgrade google-auth

Попробуйте и вернитесь к нам, если ошибка продолжает появляться.

Другие вопросы по тегам