Developer tools
Traces
This section applies to:
- HAProxy 3.1 and newer
- HAProxy Enterprise 3.1 and newer
- HAProxy ALOHA 17.0 and newer
Use a trace to monitor load balancer events in real time. A trace captures events related to a particular source such as HTTP/1, HTTP/2, HTTP/3 over QUIC, FastCGI, or the Peers protocol. The syntax for defining a trace in the configuration file was added in HAProxy version 2.7, but changed in version 3.1.
As an alternative, you can also use the Runtime API trace command.
Enable tracing Jump to heading
To define a trace in the configuration file, add a traces
section. In that section, add one or more trace
directives that configure the traces to start. Below, we start a single h1
trace:
haproxy
tracestrace h1 sink stdout level user event +any verbosity clean start now
haproxy
tracestrace h1 sink stdout level user event +any verbosity clean start now
Viewing the output of the trace differs depending on the sink
value. In this example, it’s sent to stdout
.
outputtext
Feb 27 22:05:37 node1 hapee-lb[22321]: [00|h1|1|mux_h1.c:2126] sending request headers :[B] [MSG_RQBEFORE, MSG_RPBEFORE] - req=(.fl=0x00001400 .curr_len=0 .body_len=0)res=(.fl=0x00001404 .curr_len=0 .body_len=0) - "GET / HTTP/1.1" - h1c=0x55ec8c41cca0(0x80002200)conn=0x55ec8c2640e0(0x00000300) h1s=0x55ec8c26e090(0x00100010) sd=0x55ec8c3dfff0(0x00000001)sc=0x55ec8c2af5f0(0x00000011)Feb 27 22:05:37 node1 hapee-lb[22321]: [00|h1|1|mux_h1.c:2529] H1 request fully xferred :[B] [MSG_DONE, MSG_RPBEFORE] - req=(.fl=0x00001511 .curr_len=0 .body_len=0)res=(.fl=0x00001404 .curr_len=0 .body_len=0) - h1c=0x55ec8c41cca0(0x80002200)conn=0x55ec8c2640e0(0x00000300) h1s=0x55ec8c26e090(0x00004010) sd=0x55ec8c3dfff0(0x00000001)sc=0x55ec8c2af5f0(0x00000011)
outputtext
Feb 27 22:05:37 node1 hapee-lb[22321]: [00|h1|1|mux_h1.c:2126] sending request headers :[B] [MSG_RQBEFORE, MSG_RPBEFORE] - req=(.fl=0x00001400 .curr_len=0 .body_len=0)res=(.fl=0x00001404 .curr_len=0 .body_len=0) - "GET / HTTP/1.1" - h1c=0x55ec8c41cca0(0x80002200)conn=0x55ec8c2640e0(0x00000300) h1s=0x55ec8c26e090(0x00100010) sd=0x55ec8c3dfff0(0x00000001)sc=0x55ec8c2af5f0(0x00000011)Feb 27 22:05:37 node1 hapee-lb[22321]: [00|h1|1|mux_h1.c:2529] H1 request fully xferred :[B] [MSG_DONE, MSG_RPBEFORE] - req=(.fl=0x00001511 .curr_len=0 .body_len=0)res=(.fl=0x00001404 .curr_len=0 .body_len=0) - h1c=0x55ec8c41cca0(0x80002200)conn=0x55ec8c2640e0(0x00000300) h1s=0x55ec8c26e090(0x00004010) sd=0x55ec8c3dfff0(0x00000001)sc=0x55ec8c2af5f0(0x00000011)
Trace syntax Jump to heading
Define traces inside a traces
section. Within that section, add one or more trace
directives. The syntax for a trace
directive is:
text
trace <source> [<args...>]optional args:* event [+|-|!]<name>|none|any* level <level>* verbosity <level>* sink <sink>* lock <criterion>* follow <other_source>* { pause | start | stop } [ [+|-|!]event|now]
text
trace <source> [<args...>]optional args:* event [+|-|!]<name>|none|any* level <level>* verbosity <level>* sink <sink>* lock <criterion>* follow <other_source>* { pause | start | stop } [ [+|-|!]event|now]
Defining a trace involves setting several arguments that can have different values depending on the source. The trace
directive expects:
- the source: the category of events to capture.
- the events: the events within the category to capture.
- the level: the depth of detail.
- the verbosity: the granularity of details reported.
- the sink: where to send the trace output.
- the lock: criteria to lock onto and follow, such a specific HTTP stream.
- the follow: passively follow another source’s locked pointer, such as
session
.
To start a trace, add a start
argument. The simplest form is start now
, which immediately starts the trace. But you can also set an event that once encountered will start the trace. Also, you can set events that will trigger pausing or stopping the trace.
Example:
haproxy
tracestrace h1 sink stdout level user event +any verbosity clean start now
haproxy
tracestrace h1 sink stdout level user event +any verbosity clean start now
Trace arguments Jump to heading
In this section, you’ll see which values are available for each argument.
Sources Jump to heading
A source defines the category of events to capture. The trace
directive supports the following sources:
Source | Description |
---|---|
applet |
Applet endpoint |
check |
Health-check |
fcgi |
FastCGI multiplexer |
h1 |
HTTP/1 multiplexer |
h2 |
HTTP/2 multiplexer |
h3 |
HTTP/3 transcoder |
peers |
Peers protocol |
pt |
Passthrough multiplexer |
qmux |
QUIC multiplexer |
quic |
QUIC xprt |
session |
Client session management |
spop |
SPOP multiplexer |
stream |
Applicative stream |
Events Jump to heading
Use the event
argument to define source-specific event reporting.
haproxy
trace event [+|-|!]<name>|none|any ...
haproxy
trace event [+|-|!]<name>|none|any ...
Set event any
to capture all events, event none
to capture none, or enable specific events by prefixing the event name with +
or disable an event by prefixing it with -
or !
. Each source supports a different set of events, described in the following sections.
Events from the applet source
Supported events for source applet
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
app_new |
new appctx |
app_free |
free appctx |
app_release |
release appctx |
app_proc |
process appctx |
app_err |
error on appctx |
app_start |
start appctx |
app_receive |
RX on appctx |
app_send |
TX on appctx |
app_blk |
appctx blocked |
app_wake |
appctx woken up |
Events from the check source
Supported events for source check
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
task_wake |
Check task woken up |
hchck_start |
Health-check started |
hchck_wake |
Health-check woken up |
hchck_run |
Health-check running |
hchck_end |
Health-check terminated |
hchck_succ |
Health-check success |
hchck_err |
Health-check failure |
tcp_check_eval |
tcp-check rules evaluation |
tcp_check_err |
tcp-check evaluation error |
tcp_check_conn |
tcp-check connection rule |
tcp_check_send |
tcp-check send rule |
tcp_check_expect |
tcp-check expect rule |
tcp_check_action |
tcp-check action rule |
rx_data |
receipt of data |
rx_blk |
receipt blocked |
rx_err |
receipt error |
tx_data |
transmission of data |
tx_blk |
transmission blocked |
tx_err |
transmission error |
Events from the fcgi source
Supported events for source fcgi
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
fconn_new |
new FCGI connection |
fconn_recv |
Rx on FCGI connection |
fconn_send |
Tx on FCGI connection |
fconn_blk |
FCGI connection blocked |
fconn_wake |
FCGI connection woken up |
fconn_end |
FCGI connection terminated |
fconn_err |
error on FCGI connection |
rx_fhdr |
FCGI record header received |
rx_record |
receipt of any FCGI record |
rx_eoi |
receipt of end of FCGI input |
rx_get_values |
receipt of FCGI GET_VALUES_RESULT record |
rx_stdout |
receipt of FCGI STDOUT record |
rx_stderr |
receipt of FCGI STDERR record |
rx_end_req |
receipt of FCGI END_REQUEST record |
tx_record |
transmission of any FCGI record |
tx_eoi |
transmission of FCGI end of input |
tx_begin_request |
transmission of FCGI BEGIN_REQUEST record |
tx_get_values |
transmission of FCGI GET_VALUES record |
tx_params |
transmission of FCGI PARAMS record |
tx_stding |
transmission of FCGI STDIN record |
tx_abort |
transmission of FCGI ABORT record |
rsp_data |
parse any data of H1 response |
rsp_eom |
reach the end of message of H1 response |
rsp_headers |
parse headers of H1 response |
rsp_body |
parse body part of H1 response |
rsp_trailerus |
parse trailers of H1 response |
fstrm_new |
new FCGI stream |
fstrm_blk |
FCGI stream blocked |
fstrm_end |
FCGI stream terminated |
fstrm_err |
error on FCGI stream |
strm_new |
app-layer stream creation |
strm_recv |
receiving data for stream |
strm_send |
sending data for stream |
strm_full |
stream buffer full |
strm_wake |
stream woken up |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
strm_err |
stream error |
Events from the h1 source
Supported events for source h1
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
h1c_new |
new H1 connection |
h1c_recv |
Rx on H1 connection |
h1c_send |
Tx on H1 connection |
h1c_blk |
H1 connection blocked |
h1c_wake |
H1 connection woken up |
h1c_end |
H1 connection terminated |
h1c_err |
error on H1 connection |
rx_data |
receipt of any H1 data |
rx_eoi |
receipt of end of H1 input |
rx_headers |
receipt of H1 headers |
rx_body |
receipt of H1 body |
rx_trailerus |
receipt of H1 trailers |
tx_data |
transmission of any H1 data |
tx_eoi |
transmission of end of H1 input |
tx_headers |
transmission of all headers |
tx_body |
transmission of H1 body |
tx_trailerus |
transmission of H1 trailers |
h1s_new |
new H1 stream |
h1s_blk |
H1 stream blocked |
h1s_end |
H1 stream terminated |
h1s_err |
error on H1 stream |
strm_new |
app-layer stream creation |
strm_recv |
receiving data for stream |
strm_send |
sending data for stream |
strm_wake |
stream woken up |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
strm_err |
stream error |
Events from the h2 source
Supported events for source h2
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
h2c_new |
new H2 connection |
h2c_recv |
Rx on H2 connection |
h2c_send |
Tx on H2 connection |
h2c_fctl |
H2 connection flow-controlled |
h2c_blk |
H2 connection blocked |
h2c_wake |
H2 connection woken up |
h2c_end |
H2 connection terminated |
h2c_err |
error on H2 connection |
rx_fhdr |
H2 frame header received |
rx_frame |
receipt of any H2 frame |
rx_eoi |
receipt of end of H2 input (ES or RST) |
rx_preface |
receipt of H2 preface |
rx_data |
receipt of H2 DATA frame |
rx_hdr |
receipt of H2 HEADERS frame |
rx_prio |
receipt of H2 PRIORITY frame |
rx_rst |
receipt of H2 RST_STREAM frame |
rx_settings |
receipt of H2 SETTINGS frame |
rx_push |
receipt of H2 PUSH_PROMISE frame |
rx_ping |
receipt of H2 PING frame |
rx_goaway |
receipt of H2 GOAWAY frame |
rx_wu |
receipt of H2 WINDOW_UPDATE frame |
rx_cont |
receipt of H2 CONTINUATION frame |
tx_frame |
transmission of any H2 frame |
tx_eoi |
transmission of H2 end of input (ES or RST) |
tx_preface |
transmission of H2 preface |
tx_data |
transmission of H2 DATA frame |
tx_hdr |
transmission of H2 HEADERS frame |
tx_prio |
transmission of H2 PRIORITY frame |
tx_rst |
transmission of H2 RST_STREAM frame |
tx_settings |
transmission of H2 SETTINGS frame |
tx_push |
transmission of H2 PUSH_PROMISE frame |
tx_ping |
transmission of H2 PING frame |
tx_goaway |
transmission of H2 GOAWAY frame |
tx_wu |
transmission of H2 WINDOW_UPDATE frame |
tx_cont |
transmission of H2 CONTINUATION frame |
h2s_new |
new H2 stream |
h2s_recv |
Rx for H2 stream |
h2s_send |
Tx for H2 stream |
h2s_fctl |
H2 stream flow-controlled |
h2s_blk |
H2 stream blocked |
h2s_wake |
H2 stream woken up |
h2s_end |
H2 stream terminated |
h2s_err |
error on H2 stream |
strm_new |
app-layer stream creation |
strm_recv |
receiving data for stream |
strm_send |
sending data for stream |
strm_full |
stream buffer full |
strm_wake |
stream woken up |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
strm_err |
stream error |
proto_err |
protocol error |
Events from the h3 source
Supported events for source h3
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
rx_frame |
receipt of any H3 frame |
rx_data |
receipt of H3 DATA frame |
rx_hdr |
receipt of H3 HEADERS frame |
rx_settings |
receipt of H3 SETTINGS frame |
tx_frame |
transmission of any H3 frame |
tx_data |
transmission of H3 DATA frame |
tx_hdr |
transmission of H3 HEADERS frame |
tx_settings |
transmission of H3 SETTINGS frame |
h3s_new |
new H3 stream |
h3s_end |
H3 stream terminated |
h3c_new |
new H3 connection |
h3c_end |
H3 connection terminated |
strm_send |
sending data for stream |
Events from the peers source
Supported events for source peers
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
updtmsg |
update message received |
ackmsg |
ack message received |
swtcmsg |
switch message received |
defmsg |
definition message received |
ctrlmsg |
control message sent/received |
sessrl |
peer session releasing |
protoerr |
protocol error |
Events from the pt source
Supported events for source pt
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
pt_conn_new |
new PT connection |
pt_conn_wake |
PT connection woken up |
pt_conn_end |
PT connection terminated |
pt_conn_err |
error on PT connection |
strm_new |
app-layer stream creation |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
strm_err |
stream error |
pt_rx_data |
Rx on PT connection |
pt_tx_data |
Tx on PT connection |
Events from the qmux source
Supported events for source qmux
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
qcc_new |
new QUIC connection |
qcc_recv |
Rx on QUIC connection |
qcc_send |
Tx on QUIC connection |
qcc_wake |
QUIC connection woken up |
qcc_end |
QUIC connection terminated |
qcc_no_qcs |
QUIC stream not found |
qcs_new |
new QUIC stream |
qcs_recv |
Rx on QUIC stream |
qcs_send |
Tx on QUIC stream |
qcs_end |
QUIC stream terminated |
strm_recv |
receiving data for stream |
strm_send |
sending data for stream |
strm_wake |
stream woken up |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
send_frm |
sending QUIC frame |
qcs_xfer_data |
qcs_xfer_data |
qcs_build_stream_frm |
qcs_build_stream_frm |
proto_err |
protocol error |
qcc_err |
connection on error |
Events from the quic source
Supported events for source quic
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
new_conn |
new QUIC connection |
new_conn_init |
new QUIC connection initialization |
init_secs |
initial secrets derivation |
read_secs |
read secrets derivation |
write_secs |
write secrets derivation |
lstnr_packet |
new listener received packet |
srv_packet |
new server received packet |
enc_hdshk_pkt |
handshake packet encryption |
tx_pkt |
TX packet |
phdshk_apkt |
post handshake application packet preparation |
phdshk_apkts |
post handshake application packets preparation |
qc_io_cb |
QUIC conn. I/O processing |
rm_hp |
Remove header protection |
parse_hpkt |
parse handshake packet |
parse_apkt |
parse application packet |
parse_frm |
parse frame |
parse_ack_frm |
parse ACK frame |
build_frm |
build frame |
phdshk_pkts |
handshake packets preparation |
rm_hp_try |
header protection removing try |
el_rm_hp |
handshake enc. level header protection removing |
rx_pkt |
RX packet |
ssl_provide_data |
CRYPTO data provision to TLS stack |
el_treat_rx_cfrms |
enc. level RX CRYPTO frames processing |
add_hdshk_data |
TLS stack ->add_handshake_data() call |
flush_flight |
TLS stack ->flush_flight() call |
send_alert |
TLS stack ->send_alert() call |
rtt_updt |
RTT sampling |
sppkts |
send prepared packets |
pktloss |
detect packet loss |
stimer |
set timer |
ptimer |
process timer |
spto |
set PTO |
bcfrms |
build CRYPTO data frames |
xprt_send |
sending XRPT subscription |
xprt_recv |
receiving XRPT subscription |
conn_freed |
releasing conn. memory |
conn_close |
closing conn. |
ack_strm |
STREAM ack. |
frm_list |
frame list |
stateless_reset |
stateless reset sent |
transport_params |
transport arguments |
idle_timer |
idle timer task |
xprt_sub |
RX/TX subscription or unsubscription to QUIC xprt |
conn_recv |
RX on connection |
conn_bind_tid |
change connection thread affinity |
Events from the session source
Supported events for source session
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
sess_new |
new session creation |
sess_end |
session termination |
sess_err |
session error |
Events from the spop source
Supported events for source spop
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
spop_conn_new |
new SPOP connection |
spop_conn_recv |
Rx on SPOP connection |
spop_conn_send |
Tx on SPOP connection |
spop_conn_blk |
SPOP connection blocked |
spop_conn_wake |
SPOP connection woken up |
spop_conn_end |
SPOP connection terminated |
spop_conn_err |
error on SPOP connection |
rx_fhdr |
SPOP frame header received |
rx_frame |
receipt of any SPOP frame |
rx_eoi |
receipt of end of SPOP input |
rx_hello |
receipt of SPOP AGENT HELLO frame |
rx_ack |
receipt of SPOP AGENT ACK frame |
rx_disconnect |
receipt of SPOP AGENT DISCONNECT frame |
tx_frame |
transmission of any SPOP frame |
tx_eoi |
transmission of SPOP end of input |
tx_hello |
transmission of SPOP HAPROXY HELLO frame |
tx_notify |
transmission of SPOP HAPROXY NOTIFY frame |
tx_disconnect |
transmission of SPOP HAPROXY DISCONNECT frame |
spop_strm_new |
new SPOP stream |
spop_strm_blk |
SPOP stream blocked |
spop_strm_end |
SPOP stream terminated |
spop_strm_err |
error on SPOP stream |
strm_new |
app-layer stream creation |
strm_recv |
receiving data for stream |
strm_send |
sending data for stream |
strm_full |
stream buffer full |
strm_wake |
stream woken up |
strm_shut |
stream shutdown |
strm_end |
detaching app-layer stream |
strm_err |
stream error |
Events from the stream source
Supported events for source stream
:
Event | Description |
---|---|
none |
disable all event types |
any |
enable all event types |
strm_new |
new stream |
strm_free |
release stream |
strm_err |
error during stream processing |
strm_ana |
stream analyzers |
strm_proc |
stream processing |
sc_state |
processing connector states |
http_ana |
HTTP analyzers |
http_err |
error during HTTP analysis |
tcp_ana |
TCP analyzers |
tcp_err |
error during TCP analysis |
flt_ana |
Filter analyzers |
flt_err |
error during filter analysis |
Levels Jump to heading
Use the level
argument to specify the depth of detail to capture.
haproxy
level <level>
haproxy
level <level>
The level can be one of the following values:
Level | Description |
---|---|
user |
Reports information suitable for observing live traffic, including HTTP requests and responses. |
proto |
Reports user-level information plus protocol-level updates such as HTTP headers and frame types. |
state |
Reports proto-level information plus transitions from one state to another. |
data |
Reports state-level information plus data transfers between layers. |
developer |
Reports everything including the names of functions that are invoked. |
Lock criteria Jump to heading
Use the lock
argument to lock onto one of the listed criteria. This means that the trace will follow a single connection or a single stream, for example, after the initial event triggers.
haproxy
lock criterion
haproxy
lock criterion
Lock-on criteria for the applet source
Supported lock-on criteria for source applet
:
Lock-on Criteria | Description |
---|---|
nothing |
do not lock on anything |
applet |
lock on the applet that started the trace |
thread |
lock on the thread that started the trace |
Lock-on criteria for the check source
Supported lock-on criteria for source check
:
Lock-on Criteria | Description |
---|---|
check |
lock on the check that started the trace |
nothing |
do not lock on anything |
thread |
lock on the thread that started the trace |
Lock-on criteria for the fcgi source
Supported lock-on criteria for source fcgi
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
fstrm |
FCGI stream |
Lock-on criteria for the h1 source
Supported lock-on criteria for source h1
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
h1s |
H1 stream |
Lock-on criteria for the h2 source
Supported lock-on criteria for source h2
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
h2s |
H2 stream |
Lock-on criteria for the h3 source
Supported lock-on criteria for source h3
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
qcs |
QUIC stream |
Lock-on criteria for the peers source
Supported lock-on criteria for source peers
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
peers |
Peers protocol |
Lock-on criteria for the pt source
Supported lock-on criteria for source pt
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
Lock-on criteria for the qmux source
Supported lock-on criteria for source qmux
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
qcs |
QUIC stream |
Lock-on criteria for the quic source
Supported lock-on criteria for source quic
:
Lock-on Criteria | Description |
---|---|
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
qconn |
lock on the QUIC connection that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
quic |
QUIC transport |
Lock-on criteria for the session source
Supported lock-on criteria for source session
:
Lock-on Criteria | Description |
---|---|
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
Lock-on criteria for the spop source
Supported lock-on criteria for source spop
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
connection |
lock on the connection that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
thread |
lock on the thread that started the trace |
spop_strm |
SPOP stream |
Lock-on criteria for the stream source
Supported lock-on criteria for source stream
:
Lock-on Criteria | Description |
---|---|
backend |
lock on the backend that started the trace |
frontend |
lock on the frontend that started the trace |
listener |
lock on the listener that started the trace |
nothing |
do not lock on anything |
server |
lock on the server that started the trace |
session |
lock on the session that started the trace |
stream |
lock on the stream that started the trace |
thread |
lock on the thread that started the trace |
Sinks Jump to heading
Use the sink
argument to specify where to send the trace data:
haproxy
sink <sink>
haproxy
sink <sink>
All sources support these sinks:
Sink | Description |
---|---|
none |
no sink |
stdout |
standard output (fd#1) |
stderr |
standard output (fd#2) |
buf0 |
in-memory ring buffer |
Examples:
-
Specify
stdout
as the sink for theh1
source:haproxytracestrace h1 sink stdout start nowhaproxytracestrace h1 sink stdout start now -
Use a ring buffer to send output to file
/tmp/h1.traces
:haproxyring buf1size 10485760 # 10MBformat timedbacking-file /tmp/h1.tracestracestrace h1 sink buf1 level user event +any verbosity complete start nowhaproxyring buf1size 10485760 # 10MBformat timedbacking-file /tmp/h1.tracestracestrace h1 sink buf1 level user event +any verbosity complete start now -
Use a ring buffer to send the output to a UDP syslog server address:
haproxyring buf1format rfc3164maxlen 1200size 32764timeout connect 5stimeout server 10sserver traffic 127.0.0.5:514 # sends over TCP to log-forwardlog-forward trafficbind 127.0.0.5:514 # TCP listenerlog 10.0.0.4:514 local0 # to remote server over UDPtracestrace h1 sink buf1 level user event +any verbosity complete start nowhaproxyring buf1format rfc3164maxlen 1200size 32764timeout connect 5stimeout server 10sserver traffic 127.0.0.5:514 # sends over TCP to log-forwardlog-forward trafficbind 127.0.0.5:514 # TCP listenerlog 10.0.0.4:514 local0 # to remote server over UDPtracestrace h1 sink buf1 level user event +any verbosity complete start now
Verbosity Jump to heading
Use the verbosity
argument to set the granularity of detail reported for the trace source:
haproxy
verbosity <level>
haproxy
verbosity <level>
The verbosity available depends on the source you have selected.
Verbosities for the applet source
Supported verbosities for source applet
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding. |
clean |
only user-friendly information, generally suitable for level user . |
minimal |
report info on streams and connectors. |
simple |
add info on request and response channels. |
advanced |
add info on channel’s buffer for data and developer levels only. |
complete |
add info on channel’s buffer. |
Verbosities for the check source
Supported verbosities for source check
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report info on streams and connectors |
simple |
add info on request and response channels |
advanced |
add info on channel’s buffer for data and developer levels only |
complete |
add info on channel’s buffer |
Verbosities for the fcgi source
Supported verbosities for source fcgi
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only fconn/fstrm state and flags, no real decoding |
simple |
add request/response status line or htx info when available |
advanced |
add header fields or record decoding when available |
complete |
add full data dump when available |
Verbosities for the h1 source
Supported verbosities for source h1
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only h1c/h1s state and flags, no real decoding |
simple |
add request/response status line or htx info when available |
advanced |
add header fields or frame decoding when available |
complete |
add full data dump when available |
Verbosities for the h2 source
Supported verbosities for source h2
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only h2c/h2s state and flags, no real decoding |
simple |
add request/response status line or frame info when available |
advanced |
add header fields or frame decoding when available |
complete |
add full data dump when available |
Verbosities for the h3 source
Supported verbosities for source h3
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only qcc/qcs state and flags, no real decoding |
Verbosities for the peers source
Supported verbosities for source peers
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
Verbosities for the pt source
Supported verbosities for source pt
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only h1c/h1s state and flags, no real decoding |
simple |
add request/response status line or htx info when available |
advanced |
add header fields or frame decoding when available |
complete |
add full data dump when available |
Verbosities for the qmux source
Supported verbosities for source qmux
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only qcc/qcs state and flags, no real decoding |
Verbosities for the quic source
Supported verbosities for source quic
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
Verbosities for the session source
Supported verbosities for source session
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
default |
report extra information when available |
Verbosities for the spop source
Supported verbosities for source spop
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report only spop_conn/spop_strm state and flags, no real decoding |
simple |
add request/response status line or htx info when available |
advanced |
add header fields or record decoding when available |
complete |
add full data dump when available |
Verbosities for the stream source
Supported verbosities for source stream
:
Verbosity | Description |
---|---|
quiet |
only report basic information with no decoding |
clean |
only user-friendly information, generally suitable for level user |
minimal |
report info on streams and connectors |
simple |
add info on request and response channels |
advanced |
add info on channel’s buffer for data and developer levels only |
complete |
add info on channel’s buffer |
See also Jump to heading
Do you have any suggestions on how we can improve the content of this page?