# Tracing Zebra

Zebra supports dynamic tracing, configured using the config's 
[`TracingSection`][tracing_section] and (optionally) an HTTP RPC endpoint.

If the `endpoint_addr` is specified, `zebrad` will open an HTTP endpoint
allowing dynamic runtime configuration of the tracing filter. For instance,
if the config had `endpoint_addr = '127.0.0.1:3000'`, then

* `curl -X GET localhost:3000/filter` retrieves the current filter string;
* `curl -X POST localhost:3000/filter -d "zebrad=trace"` sets the current filter string.

See the [`filter`][filter] documentation for more details.

Zebra also has support for generating [flamegraphs] of tracing spans,
configured using the [`flamegraph`][flamegraph] option.

[tracing_section]: https://doc.zebra.zfnd.org/zebrad/config/struct.TracingSection.html
[filter]: https://doc.zebra.zfnd.org/zebrad/config/struct.TracingSection.html#structfield.filter
[flamegraph]: https://doc.zebra.zfnd.org/zebrad/config/struct.TracingSection.html#structfield.flamegraph
[flamegraphs]: http://www.brendangregg.com/flamegraphs.html
