All TraceFlags are now configured in `src/core/lib/debug/trace_flags.yaml`. The format is: ``` my_flag: default: false # the default value; default=false description: Some Description debug_only: false # debug_only flags only work in debug builds; default=false internal: false # internal flags will not show up in documentation; default=false ``` To regenerate the trace flag source code, run `tools/codegen/core/gen_trace_flags.py` (requires mako). This script is also run when sanity checking. This PR also adds two new features: ### Glob-based flag configuration Trace flag configuration now supports `?` (single wildcard character) and `*` (one or more wildcard characters). For example, using `GRPC_TRACE='event_engine*'` will enable all flags that match that glob. It expands to: * event_engine * event_engine_client_channel_resolver * event_engine_dns * event_engine_endpoint * event_engine_endpoint_data * event_engine_poller ### A cleaner trace-logging macro in abseil logging format If your goal is only to add log statements when the `fault_injection_filter` trace flag is enabled, you can use the macro: ``` GRPC_TRACE_LOG(fault_injection, INFO) << "Filtered:" << 42; ``` When the trace flag is enabled, the the log will show something like this: ``` I0000 00:00:1715733657.430042 16 file.cc:174] Filtered:42 ``` ---- Note: just like with the gpr_log to abseil logging conversion, the pre-existing trace logging usages can be replaced with the new tracing macro across multiple PRs. Closes #36576 PiperOrigin-RevId: 641295215 |
||
|---|---|---|
| .. | ||
| api_reference | ||
| bazelify_tests | ||
| buildgen | ||
| codegen/core | ||
| debug/core | ||
| distrib | ||
| docker_runners | ||
| dockerfile | ||
| doxygen | ||
| fuzzing | ||
| gce | ||
| gcp/utils | ||
| gource | ||
| http2_interop | ||
| internal_ci | ||
| interop_matrix | ||
| package_hosting | ||
| profiling | ||
| release | ||
| remote_build | ||
| run_tests | ||
| README.md | ||
| bazel | ||
| bazel.rc | ||
| fuzztest.bazelrc | ||
README.md
buildgen: Template renderer for our build system.
distrib: Scripts to distribute language-specific packages and other distribution-related helper scripts.
dockerfile: Docker files to test gRPC.
doxygen: gRPC C/C++ documentation generation via Doxygen.
gce: Scripts to help setup testing infrastructure on GCE.
gcp: Helper scripts for interacting with various services on GCP (like Google container engine, BigQuery etc)
internal_ci: Support for running tests on an internal CI platform.
interop_matrix: Scripts to build, upload, and run gRPC clients in docker with various language/runtimes.
jenkins: Support for running tests on Jenkins.
run_tests: Scripts to run gRPC tests in parallel.
run_tests/performance: See the README for more notes on the performance tests.