286 lines
6.4 KiB
Plaintext
286 lines
6.4 KiB
Plaintext
varnishtest "Test log-profile feature"
|
|
feature cmd "$HAPROXY_PROGRAM -cc 'version_atleast(3.1-dev0)'"
|
|
feature ignore_unknown_macro
|
|
|
|
barrier b1 cond 4 -cyclic
|
|
barrier b2 cond 4 -cyclic
|
|
barrier b3 cond 3 -cyclic
|
|
barrier b4 cond 3 -cyclic
|
|
barrier b5 cond 2 -cyclic
|
|
|
|
server s1 {
|
|
rxreq
|
|
txresp
|
|
} -repeat 6 -start
|
|
|
|
syslog Slg1 -level info {
|
|
recv
|
|
#rfc5424, no profile and option httplog:
|
|
expect ~ ".* haproxy ${h1_pid} .* \"GET / HTTP/1.1\""
|
|
barrier b1 sync
|
|
|
|
recv
|
|
#rfc5424, no profile, tcp and option logasap
|
|
expect ~ ".* haproxy ${h1_pid} .* \\+0"
|
|
barrier b2 sync
|
|
} -start
|
|
|
|
syslog Slg2 -level info {
|
|
recv
|
|
#rfc5424, logprof1 httplog
|
|
expect ~ ".* haproxy ${h1_pid} .* sdclose close"
|
|
recv
|
|
#rfc5424, logprof2 httplog
|
|
expect ~ ".* custom ${h1_pid} .* - txn_close"
|
|
barrier b1 sync
|
|
|
|
recv
|
|
#rfc5424, logprof1 tcp logasap
|
|
expect ~ ".* haproxy ${h1_pid} .* \\+0"
|
|
barrier b2 sync
|
|
|
|
recv
|
|
#rfc5424, logprof1 tcp
|
|
expect ~ ".* haproxy ${h1_pid} .* sdclose close"
|
|
barrier b3 sync
|
|
} -start
|
|
|
|
syslog Slg3 -level info {
|
|
recv
|
|
#rfc3164, logprof1 and option httplog
|
|
expect ~ "[^:\\[ ]\\[${h1_pid}\\]: close"
|
|
barrier b1 sync
|
|
|
|
recv
|
|
#rfc5424, logprof2, tcp and option logasap
|
|
expect ~ ".* custom ${h1_pid} .* - txn_connect"
|
|
barrier b2 sync
|
|
|
|
recv
|
|
#rfc5424, logprof2 tcp
|
|
expect ~ ".* custom ${h1_pid} .* - txn_close"
|
|
barrier b3 sync
|
|
|
|
recv
|
|
#rfc5424, logprof2, tcp error
|
|
expect ~ ".* custom ${h1_pid} .* error"
|
|
barrier b4 sync
|
|
} -start
|
|
|
|
syslog Slg4 -level info {
|
|
recv
|
|
#rfc5424, logprof3, tcp error (other steps should be dropped)
|
|
expect ~ ".* haproxy ${h1_pid} .* error"
|
|
barrier b4 sync
|
|
} -start
|
|
|
|
syslog Slg5 -level info {
|
|
#rfc5424, logprof4, http connect, close
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* connect"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* close"
|
|
barrier b5 sync
|
|
|
|
#rfc5424, logprof4, http all steps
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* accept"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* request"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* connect"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* response"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* close"
|
|
} -start
|
|
|
|
syslog Slg6 -level info {
|
|
#rfc5424, logprof5:
|
|
# tcp-req-conn, http-req, http-res, http-after-res, txn.close
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* start:tcp-req-conn"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* http-req"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* http-res"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* http-after-res"
|
|
recv
|
|
expect ~ ".* haproxy ${h1_pid} .* txn_close"
|
|
} -start
|
|
|
|
haproxy h1 -arg '-dW' -conf {
|
|
defaults
|
|
timeout connect "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout client "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
timeout server "${HAPROXY_TEST_TIMEOUT-5s}"
|
|
log-tag "haproxy"
|
|
|
|
frontend fe1
|
|
bind "fd@${fe_1}"
|
|
mode http
|
|
option httplog
|
|
log udp@${Slg1_addr}:${Slg1_port} format rfc5424 local0
|
|
log udp@${Slg2_addr}:${Slg2_port} format rfc5424 profile logprof1 local0
|
|
log udp@${Slg2_addr}:${Slg2_port} format rfc5424 profile logprof2 local0
|
|
log udp@${Slg3_addr}:${Slg3_port} format rfc3164 profile logprof1 local0
|
|
|
|
default_backend be
|
|
|
|
frontend fe2
|
|
bind "fd@${fe_2}"
|
|
mode tcp
|
|
log-format "%B"
|
|
option logasap
|
|
log udp@${Slg1_addr}:${Slg1_port} format rfc5424 local0
|
|
log udp@${Slg2_addr}:${Slg2_port} format rfc5424 profile logprof1 local0
|
|
log udp@${Slg3_addr}:${Slg3_port} format rfc5424 profile logprof2 local0
|
|
log udp@${Slg4_addr}:${Slg4_port} format rfc5424 profile logprof3 local0
|
|
|
|
default_backend be_tcp
|
|
|
|
frontend fe3
|
|
bind "fd@${fe_3}"
|
|
mode tcp
|
|
log-format "%B"
|
|
log udp@${Slg2_addr}:${Slg2_port} format rfc5424 profile logprof1 local0
|
|
log udp@${Slg3_addr}:${Slg3_port} format rfc5424 profile logprof2 local0
|
|
|
|
default_backend be_tcp
|
|
|
|
listen fe4
|
|
bind "fd@${fe_4}"
|
|
timeout client 5ms
|
|
mode http
|
|
log-format "%B"
|
|
log udp@${Slg3_addr}:${Slg3_port} format rfc5424 profile logprof2 local0
|
|
log udp@${Slg4_addr}:${Slg4_port} format rfc5424 profile logprof3 local0
|
|
|
|
listen fe5
|
|
bind "fd@${fe_5}"
|
|
mode http
|
|
log-format "dummy"
|
|
log-steps connect,close
|
|
log udp@${Slg5_addr}:${Slg5_port} format rfc5424 profile logprof4 local0
|
|
default_backend be
|
|
|
|
listen fe6
|
|
bind "fd@${fe_6}"
|
|
mode http
|
|
log-format "dummy"
|
|
log-steps all
|
|
log udp@${Slg5_addr}:${Slg5_port} format rfc5424 profile logprof4 local0
|
|
default_backend be
|
|
|
|
listen fe7
|
|
bind "fd@${fe_7}"
|
|
mode http
|
|
log-format "dummy"
|
|
log-steps close
|
|
log udp@${Slg6_addr}:${Slg6_port} format rfc5424 profile logprof5 local0
|
|
default_backend be
|
|
|
|
tcp-request connection do-log
|
|
http-request do-log
|
|
http-response do-log
|
|
http-after-response do-log
|
|
|
|
log-profile logprof1
|
|
on close format "close" sd "sdclose"
|
|
|
|
log-profile logprof2
|
|
log-tag "custom"
|
|
on error format "error"
|
|
on any format "%OG"
|
|
|
|
log-profile logprof3
|
|
on error format "error"
|
|
on any drop
|
|
|
|
log-profile logprof4
|
|
on accept format "accept"
|
|
on request format "request"
|
|
on connect format "connect"
|
|
on response format "response"
|
|
on close format "close"
|
|
|
|
log-profile logprof5
|
|
on tcp-req-conn format "start:tcp-req-conn"
|
|
on any format "%OG"
|
|
|
|
backend be
|
|
mode http
|
|
server app1 ${s1_addr}:${s1_port}
|
|
|
|
backend be_tcp
|
|
mode tcp
|
|
server app1 ${s1_addr}:${s1_port}
|
|
|
|
|
|
} -start
|
|
|
|
# requests generators (to trigger log emission)
|
|
|
|
client c1 -connect ${h1_fe_1_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
# Wait matching log messages
|
|
barrier b1 sync
|
|
|
|
client c2 -connect ${h1_fe_2_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
# Wait matching log messages
|
|
barrier b2 sync
|
|
|
|
client c3 -connect ${h1_fe_3_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
# Wait matching log messages
|
|
barrier b3 sync
|
|
|
|
client c4 -connect ${h1_fe_4_sock} {
|
|
# do nothing to trigger an error (fe_4 timeouts after 5ms)
|
|
} -start -wait
|
|
|
|
# Wait matching log messages
|
|
barrier b4 sync
|
|
|
|
client c5 -connect ${h1_fe_5_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
# Wait matching log messages
|
|
barrier b5 sync
|
|
|
|
client c6 -connect ${h1_fe_6_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
client c7 -connect ${h1_fe_7_sock} {
|
|
txreq -url "/"
|
|
rxresp
|
|
expect resp.status == 200
|
|
} -start -wait
|
|
|
|
syslog Slg1 -wait
|
|
syslog Slg2 -wait
|
|
syslog Slg3 -wait
|
|
syslog Slg4 -wait
|
|
syslog Slg5 -wait
|
|
syslog Slg6 -wait
|