Флаги трассировки gRPC
Переменная окружения GRPC_TRACE
поддерживает список, разделённый запятыми, имён трассировщиков или шаблонов, которые предоставляют дополнительные сведения о том, как gRPC C core обрабатывает запросы через отладочные журналы. Доступные трассировщики включают:
- api - Вызовы API к C core.
- backend_metric - API для записи метрик бэкенда на C++.
- backend_metric_filter - Фильтр, который заполняет данные метрик бэкенда в метаданных сервера.
- bdp_estimator - Поведение логики оценки bdp.
- call - Трассировка операций на вызове через стек gRPC.
- call_error - Возможные ошибки, влияющие на итоговые статусы вызовов.
- cares_address_sorting - Операции сортировщика адресов резолвера DNS на основе c-ares.
- cares_resolver - Операции резолвера DNS на основе c-ares.
- cds_lb - Политика балансировки нагрузки CDS.
- channel - Операции со стеком каналов C core.
- channel_stack - Конструирование набора фильтров в стеке канала.
- chaotic_good - Хаотичный транспорт.
- chttp2_hpack_parser - Парсер HTTP/2 HPACK.
- chttp2_new_stream - Создание входящих потоков HTTP/2.
- client_channel - Активность плоскости управления клиентским каналом, включая взаимодействие резолвера и политики балансировки нагрузки.
- client_channel_call - Активность клиентского канала, связанная с разрешением имени.
- client_channel_lb_call - Активность клиентского канала, связанная с выбором балансировки нагрузки.
- client_idle_filter - Фильтр простоя клиента.
- compression - Операции сжатия.
- connectivity_state - Изменения состояния подключения каналов.
- dns_resolver - Активный резолвер DNS.
- environment_autodetect - Автоматическое обнаружение среды GCP.
- event_engine - Операции высокого уровня EventEngine.
- event_engine_client_channel_resolver - Состояние и события резолвера клиентского канала на основе EventEngine.
- event_engine_dns - Резолвер DNS на основе EventEngine.
- event_engine_endpoint - Операции Endpoint на основе EventEngine.
- event_engine_endpoint_data - Подробный дамп данных TCP Endpoint на основе EventEngine.
- event_engine_poller - События Poller на основе EventEngine.
- fault_injection_filter - Внедрение ошибок.
- flowctl - Управление потоком HTTP/2.
- fork - Поддержка fork.
- glb - Балансировщик нагрузки gRPClb.
- grpc_authz_api - Авторизация gRPC.
- handshaker - Состояние рукопожатия.
- health_check_client - Код клиента проверки состояния здоровья.
- http - Двигатель транспорта HTTP/2.
- http1 - Операции HTTP/1.x, выполняемые gRPC.
- http2_ping - Ping/ping acks/antagonist writes в стеке HTTP/2.
- http2_stream_state - Изменения состояния потока HTTP/2.
- http_keepalive - Keepalive pings gRPC.
- inproc - Внутрипроцессный транспорт.
- metadata_query - Запросы метаданных GCP.
- op_failure - Информация об ошибках при добавлении ошибки в очередь завершения. Трассировщик
api
должен быть включен для того, чтобы этот флаг имел эффект.
- orca_client - Клиент для отчетности о метриках бэкенда вне основного потока.
- outlier_detection_lb - Обнаружение выбросов.
- pick_first - Политика балансировки нагрузки "выбрать первое".
- plugin_credentials - Плагинные учетные данные.
- priority_lb - Политика приоритетной балансировки нагрузки.
- queue_pluck - Извлечение из очереди завершения. Трассировщик
api
должен быть включен для того, чтобы этот флаг имел эффект.
- resource_quota - Внутренности объектов квот ресурсов.
- retry - Повторные вызовы.
- ring_hash_lb - Политика балансировки нагрузки ring hash.
- rls_lb - Политика балансировки нагрузки RLS.
- round_robin - Политика балансировки нагрузки round robin.
- secure_endpoint - Байты, проходящие через зашифрованные каналы.
- server_channel - Легковесная трассировка значимых событий серверного канала.
- stateful_session_filter - Привязка сеанса с сохранением состояния.
- subchannel - Состояние подключения подканалов.
- subchannel_pool - Пул подканалов.
- tcp - Байты, входящие и исходящие из канала.
- timer - Таймеры (alarms) в внутренностях gRPC.
- timer_check - Более подробная трассировка логики таймеров в внутренностях gRPC.
- token_fetcher_credentials - Фреймворк учетных данных для получения токенов, используемый для (например) учетных данных получения токенов oauth2.
- tsi - Безопасность транспорта TSI.
- weighted_round_robin_lb - Политика балансировки нагрузки взвешенного round robin.
- weighted_target_lb - Политика балансировки нагрузки взвешенной цели.
- xds_client - Клиент XDS.
- xds_client_refcount - Счетчик ссылок XDS клиента.
- xds_cluster_impl_lb - Политика балансировки нагрузки XDS Cluster impl.
- xds_cluster_manager_lb - Политика балансировки нагрузки XDS Cluster manager.
- xds_override_host_lb - XDS Override host LB.
- xds_resolver - Резолвер XDS.
- xds_server_config_fetcher - Получатель конфигурации сервера XDS.
- xds_wrr_locality_lb - Политика балансировки нагрузки XDS WRR locality.
Следующие трассировщики будут работать только в двоичных файлах, собранных в режиме DEBUG. Это достигается путем вызова bazel build --config=dbg <target>
- auth_context_refcount – Счетчик ссылок контекста аутентификации.
- call_combiner – Состояние комбинатора вызова.
- call_refcount – Счетчик ссылок на вызове.
- call_state – Трассировка переходов через состояние спины вызова.
- chttp2_server_refcount – Счетчик ссылок в Chttp2 Server.
- closure – Создание, планирование и завершение устаревших замыканий (closures).
- combiner – Состояние блокировки комбинатора (combiner).
- cq_refcount – Счетчик ссылок очереди завершения (completion queue).
- error_refcount – Счетчик ссылок ошибок (errors).
- fd_refcount – Счетчик ссылок файловых дескрипторов (file descriptors).
- fd_trace – Устаревшие вызовы create(), shutdown() и close() файловых дескрипторов для каналов (channels).
- lb_policy_refcount – Счетчик ссылок политики балансировки нагрузки (LB policy).
- party_state – Координация действий, связанных с вызовом (call).
- pending_tags – Незавершенные теги в очереди завершения. Трассировщик
api
должен быть включен для того, чтобы этот флаг имел эффект.
- http2_ph2_transport – Промис-базированный транспорт HTTP/2 (Promise Based HTTP2 transport).
- polling – Активный движок опроса (polling engine).
- polling_api – Вызовы API к движку опроса (polling engine).
- promise_primitives – Низкоуровневые примитивы в библиотеке промисов (promise library).
- resolver_refcount – Счетчик ссылок резолвера (resolver).
- security_connector_refcount – Счетчик ссылок соединителей безопасности (security connectors), являющихся частью учетных данных канала (channel credentials).
- slice_refcount – Счетчик ссылок сегментов (slices).
- stream_refcount – Счетчик ссылок потоков (streams).
- subchannel_refcount – Счетчик ссылок подканалов (subchannels).
- work_serializer – Механизм синхронизации, используемый для обеспечения того, чтобы только один поток выполнялся в любой момент времени (work serializer).
- ztrace – Глобальные трассировки ztrace (для отладки системы ztrace).
Шаблоны и особые случаи:
-
*
можно использовать для включения всех трассировок.
- Индивидуальные трассировки можно отключить, добавив перед ними
-
.
-
*refcount*
включит все трассировщики для отладки счетчиков ссылок (refcount debugging).
- Если присутствует
list_tracers
, то при запуске программы будут выведены все доступные трассировщики.
Пример:
export GRPC_TRACE=*,-pending_tags
Опубликовать ( 0 )