haproxy/reg-tests/log/log_profiles.vtc

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 -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