Я использую Google Cloud Logging в проекте python и использую его Client + CloudLoggingHandler.
from google.cloud.logging import Client
from google.cloud.logging.handlers import CloudLoggingHandler
В Google Cloud Platform у меня есть проект с включенным Stackdriver.
Пока я Журнал запросов на загрузку в минуту проблема с RESOURCE_EXHAUSTED кодом ошибки. Часть сообщения журнала:
2020-03-15 12:44:51 ERROR google.cloud.logging.handlers.transports.background_thread: Failed to submit 1 logs.
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/google/api_core/grpc_helpers.py", line 57, in error_remapped_callable
return callable_(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/grpc/_channel.py", line 826, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/usr/local/lib/python3.7/site-packages/grpc/_channel.py", line 729, in _end_unary_response_blocking
raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.RESOURCE_EXHAUSTED
details = "Quota exceeded for quota metric 'Log ingestion requests' and limit 'Log ingestion requests per minute' of service 'logging.googleapis.com' for consumer 'project_number:**********'."
debug_error_string = "{"created":"***********","description":"Error received from peer **********","file":"src/core/lib/surface/call.cc","file_line":1056,"grpc_message":"Quota exceeded for quota metric 'Log ingestion requests' and limit 'Log ingestion requests per minute' of service 'logging.googleapis.com' for consumer 'project_number:**********'.","grpc_status":8}"
>
Таким образом, в этом случае это сообщение журнала будет потеряно для Stackdriver.
Я знаю, что есть способ увеличить ограничение приема журнала в минуту на стороне GCP, но Я хочу повторить попытку отправки журналов в Stackdriver для RESOURCE_EXHAUSTED случаев с кодом ошибки.
Я обнаружил, что в google.logging.v2.LoggingServiceV2 реализован некоторый механизм повторных попыток под капотом, но только для определенных кодов ошибок:
["DEADLINE_EXCEEDED", "INTERNAL", "UNAVAILABLE"]
Так что мой вопрос, есть ли способ включить повторную попытку на RESOURCE_EXHAUSTED ошибка во время записи журналов в Stackdriver?
Заранее спасибо.
google-cloud-logging == 1.14.0