1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-grpc-framework

Клонировать/Скачать
TROUBLESHOOTING.md 6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 28.06.2025 08:23 b4cba57

Устранение неполадок gRPC

Это руководство предназначено для устранения неполадок в реализациях gRPC, основанных на библиотеке C core (источники большинства из них находятся в репозитории grpc/grpc).

Включение дополнительного логирования и трассировки

Дополнительное логирование может быть очень полезным для диагностики проблем. Оно может использоваться для увеличения количества информации, выводимой в stderr.

Настройка уровня серьезности и детализации логирования

gRPC использует absl логирование. Детализация может быть настроена с помощью флагов absl, таких как --minloglevel, --v и --vmodule.

Эти флаги также можно программно установить с помощью этих API absl.

Пример

# Отключить все логи, кроме FATAL, для всего приложения
./helloworld_application_using_grpc --v=-1 --minloglevel=3

GRPC_VERBOSITY

Это не рекомендуется для gRPC C++. Для gRPC C++ настоятельно рекомендуется использовать absl для управления детализацией gRPC. Для Python, ObjC, PHP и Ruby, GRPC_VERBOSITY будет поддерживаться. Пользователи должны отметить, что это изменит настройки для всех библиотек/бинарников, использующих absl в приложении. GRPC_VERBOSITY изменит глобальные настройки absl, а не только настройки для gRPC.

Чтобы узнать, как установить GRPC_VERBOSITY, обратитесь к Обзору переменных окружения

GRPC_TRACE

GRPC_TRACE можно использовать для включения дополнительного логирования для конкретных внутренних компонентов gRPC. Включение правильных трассировок может быть бесценным для диагностики того, что идет не так, когда вещи не работают как предполагалось. Возможные значения для GRPC_TRACE перечислены здесь. Можно включить несколько трассировок одновременно (используйте запятую в качестве разделителя).

# Включить отладочные логи для всего приложения
./helloworld_application_using_grpc --v=2 --minloglevel=0
# Вывести информацию о вызовах низкоуровневого API C core.
# Обратите внимание, что трассировочные логи, использующие `VLOG`, не будут отображаться.
# Многие трассировщики используют уровень логирования INFO.
# Поэтому, если настройки absl не верны, трассировки не будут выводиться.
GRPC_TRACE=api ./helloworld_application_using_grpc --v=-1 --minloglevel=0
# Вывести информацию из 3 разных трассировщиков, включая трассировочные логи
GRPC_TRACE=tcp,http,api ./helloworld_application_using_grpc  --v=2 --minloglevel=0

Известные ограничения: GPRC_TRACE=tcp в настоящее время не реализован для Windows (вы не увидите никаких трассировок tcp).

Пожалуйста, обратите внимание, что переменная окружения GRPC_TRACE не имеет ничего общего с функцией "трассировки" gRPC (= трассировка RPC в среде микросервисов для получения информации о том, как запросы обрабатываются развертыванием), она используется только для включения вывода дополнительных логов.

Предотвращение шума в логах gRPC

Шум в логах может потреблять много ресурсов. Мы рекомендуем очень внимательно настраивать настройки для производственных систем.

  • Избегайте использования флага GRPC_VERBOSITY. Этот флаг устарел. Если значение этого флага отличается от "ERROR" или "NONE", это вызовет шум в логах.
  • Всегда избегайте установки --v и --vmodule на что-либо, кроме -1, для производственных систем.
  • Избегайте установки --minloglevel=0 для производственных систем. Любое значение больше 0 должно быть приемлемо.
  • Если установка этих параметров не устраняет шум в логах, проверьте наличие экземпляров функций --v, --vmodule, absl::SetVLogLevel и absl::SetMinLogLevel во всем вашем коде и любых библиотеках/компонентах/конфигурациях, которые вы можете использовать.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-grpc-framework.git
git@api.gitlife.ru:oschina-mirror/mirrors-grpc-framework.git
oschina-mirror
mirrors-grpc-framework
mirrors-grpc-framework
master