1HTTPING(1)                  General Commands Manual                 HTTPING(1)
2
3
4

NAME

6       httping - measure the latency and throughput of a webserver
7

SYNOPSIS

9       httping [options]
10
11       options: [-g url] [-h hostname] [-p portnumber] [-x proxyhost:port] [-c
12       count] [-i interval] [-t timeout] [-s] [-G] [-b]  [-L  xferlimit]  [-X]
13       [-l]  [-z]  [-f] [-m] [-o rc,...] [-e string] [-I useragent string] [-R
14       referer string] [-r] [-n warn,crit] [-N mode] [-q] [-V]
15

DESCRIPTION

17       The program httping lets you measure the latency of a webserver.  Since
18       version 1.0.6 also the throughput can be measured.
19

OPTIONS

21       -5     The proxy server selected is a SOCKS5 server.
22
23       -6     Enable IPv6 mode. Default is IPv4.
24
25       -a     Audible ping
26
27       -b     Use  this  switch  together with '-G'. When this option is used,
28              the transferspeed (in KB/s) is shown.
29
30       -B     Use this switch together with '-G'. Ask the HTTP server to  com‐
31              press  the  returned data: this will reduce the influence of the
32              bandwidth of your connection while increasing the  influence  of
33              the processorpower of the HTTP server.
34
35       -c count
36              How many probes to send before exiting.
37
38       -D     Do not draw graphs in ncurses mode (-K).
39
40       -e str When  the  status-code differs from the ones selected with '-o',
41              the given string is displayed.
42
43       -E     Retrieve proxy settings from environment variables ('http_proxy'
44              and 'https_proxy').
45
46       -F     Attempt  TCP  Fast Open while trying to connect to a server (for
47              Linux, version 3.7 onwards of the kernel)
48
49       -f     Flood ping: do not sit idle between each ping but ping  as  fast
50              as the computer and network allow you to.
51
52       -G     Do a GET request instead of a HEAD request: this means that also
53              the complete page/file must be transferred. Note  that  in  this
54              case you're no longer measuring the latency!
55
56       -g url This selects the url to probe. E.g.: http://localhost/
57
58       -h hostname
59              Instead of '-g' one can also set a hostname to probe with -h: -h
60              localhost
61
62       -I str UserAgent-string to send to the webserver (instead  of  'HTTPing
63              <version>').
64
65       -i interval
66              How many seconds to sleep between every probe sent.
67
68       -K     Enable ncurses user interface.
69
70       -L x   Use  this  switch  together  with '-G'. Limit the amount of data
71              transferred to 'x'. Note that this only affects the  content  of
72              the page/file and not the headerdata.
73
74       -l     Connect  using  SSL:  for  this  to  work  you  need  to  give a
75              'https'-url or a 443 portnumber.
76
77       -m     Show machine readable output (also check '-o' and '-e').
78
79       -N x   Switches HTTPing to Nagios-plugin mode 2: return 0  when  every‐
80              thing  is fine, 'x' when anything fails. E.g.: 1 => Nagios warn‐
81              ing state, 2 => Nagios critical state.
82
83       -n warn,crit
84              Switches HTTPing to Nagios-plugin mode 1:  return  exitcode  '1'
85              when  the  average  response  time is bigger then 'warn', return
86              exitcode '2' when the the average response time is  bigger  then
87              'crit'. In all other cases return exitcode '0'.
88
89       -o x,x,...
90              This  selects the HTTP status-codes which are regarded as an OK-
91              state (only with '-m').
92
93       -p portnumber
94              -p can be used together with -h. -p selects  the  portnumber  to
95              probe.
96
97       -q     Be quiet, only return an exit-code.
98
99       -R str Referer-string to send to the webserver.
100
101       -Q     Use  a persistent connection, i.e. reuse the same TCP connection
102              for multiple HTTP requests. Usually possible  when  'Connection:
103              Keep-Alive'  is  sent  by  server.  Adds  a 'C' to the output if
104              httping had to reconnect.
105
106       -r     Only resolve the hostname once: this takes the resolving out  of
107              the  loop  so  that the latency of the DNS is not measured. Also
108              useful when you want to measure only 1 webserver while  the  DNS
109              returns a different ip-address for each resolve ('roundrobin').
110
111       -S     Split measured latency in time to connect and time to exchange a
112              request with the HTTP server.
113
114       -s     When a successfull transaction was done, show the  HTTP  status‐
115              code (200, 404, etc.).
116
117       -T x   Read  the  password  for  website  authentication  from file 'x'
118              (instead of entering it on the command line).
119
120       -t timeout
121              How long to wait for answer from the other side.
122
123       -U     Enable authentication against website. Set username with -U, set
124              password with -P (or -T to read the password from a file).
125
126       -v     Increase verbosity mode. To show standard deviation and dates in
127              output.
128
129       -W     Do not abort program if resolving fails.
130
131       -X     Use this switch together with '-G'. For  each  "ping"  show  the
132              amount of data transferred (excluding the headers).
133
134       -x proxyhost[:port]
135              Probe  using  a proxyserver. Note that you're also measuring the
136              latency of the proxyserver!
137
138       -Y     Enable colors
139
140       -z     When connecting using SSL, display the fingerprint of  the  X509
141              certificate(s) of the peer.
142
143       --abbreviate
144              Abbreviate values bigger than thousand, million, billion, etc.
145
146       --adaptive-interval or --ai
147              (Try  to)  ping on the same interval. E.g. if interval is set to
148              1.0 seconds and ping a ping t[n] occurs at  500s  with  duration
149              250ms,  then  the  next ping (t[n+1]) will happen at 501 seconds
150              and not at 501.25 seconds. Of course when the ping duration is >
151              bigger  than  the interval, a ping will be "skipped" (not liter‐
152              ally: the sequence number will continue) and t[n+1] will then be
153              e.g. 502s instead of the expected 501s. This is useful for exam‐
154              ple in the ncurses output mode where an fft is  calculated  over
155              the ping times.
156
157       --aggregates x[,y[,z[,etc.]]]
158              Show aggregates every x[/y[/z[/etc]]] seconds.
159
160       --divert-connect x
161              Ignore  the  hostname in the URL and connect to 'x' instead. The
162              given URL will be requested at 'x'.
163
164       --draw-phase
165              Not only draw the magnitude of the fourier transform,  draw  the
166              phase as well.
167
168       --graph-limit x
169              If  values  measured are bigger than x, then they're limitted to
170              x.
171
172       --header x
173              Add an additional request-header 'x'.
174
175       --keep-cookies
176              When the server sends a cookie, it will be returned in the  next
177              request.
178
179       --max-mtu x
180              Maximum MTU to use. Cannot be larger than network interface MTU.
181
182       --no-host-header
183              Do not put a "Host:"-header in the request header.
184
185       --no-tcp-nodelay
186              Do not disable "tcp delay" (Naggle).
187
188       --priority x
189              Set priority of packets.
190
191       --tos x
192              Set type of service.
193
194       --proxy-user x
195              Use  username  'x'  to  authenticate against proxy (http/socks5)
196              server (optional).
197
198       --proxy-password x
199              Use password 'x' to  authenticate  against  proxy  (http/socks5)
200              server (optional).
201
202       --proxy-password-file x
203              Read  password  from  file  'x'  to  authenticate  against proxy
204              (http/socks5) server (optional).
205
206       --recv-buffer x
207              Set the size of the receive buffer (in bytes).
208
209       --slow-log x
210              When the duration is x or more, show ping line in the  slow  log
211              window (the middle window).
212
213       --threshold-red x
214              If  the  measured  threshold is higher than x (and -Y is given),
215              then the shown value is colored red. If you also  use  --thresh‐
216              old-yellow, then this value must be bigger.
217
218       --threshold-yellow x
219              If  the  measured  threshold is higher than x (and -Y is given),
220              then the shown value is colored yellow.
221
222       --threshold-show x
223              If the measured threshold is higher than x, then the  result  is
224              shown (default is show always). The value x is in ms.
225
226       --timestamp or --ts
227              Put  a  timestamp before the result-lines. Use -v to also show a
228              date.
229
230       --tx-buffer x
231              Set the size of the transmit buffer (in bytes).
232
233       -V     Show the version and exit.
234
235

OUTPUT

237       In        split        mode         (-S)         something         like
238       "time=0.08+24.09+23.17+15.64+0.02=62.98  ms"  is shown. The first value
239       is the time it took to resolve the hostname (or 'n/a'  if  it  did  not
240       resolve  in this iteration, e.g. in "resolve once" (-r) mode), then the
241       time it took to connect (or -1 for  example  in  persistent  connection
242       (-Q,  HTTP v1.1), after that the time it took to put the request on the
243       wire, then the time it took for the HTTP server to process the  request
244       and send it back and lastly the time it took to close the connection.
245
246

GRAPH

248       The  graph in the ncurses uses colors to encode a meaning. Green: value
249       is less than 1 block. Red: the value did not fit in  the  graph.  Blue:
250       the  value was limitted by --graph-limit. Cyan: no measurement for that
251       point in time.
252
253

KEYS

255       Press <CTRL> + <c> to exit the program. It will display  a  summary  of
256       what  was measured.  In the ncurses gui, press <CTRL> + <l> to forcibly
257       redraw the screen. Press 'H' to halt the  graphs  (and  again  to  con‐
258       tinue). Press 'q' to stop the program (<CTRL> + <c> will work too).
259
260

EXAMPLES

262       httping -g http://localhost/
263              Ping the webserver on host 'localhost'.
264
265       httping -h localhost -p 1000
266              Ping the webserver on host 'localhost' and portnumber 1000.
267
268       httping -l -g https://localhost/
269              Ping the webserver on host 'localhost' using an SSL connection.
270
271       httping -g http://localhost/ -U username -P password
272              Ping  the  webserver  on  host  'localhost' using the Basic HTTP
273              Authentication.
274

BUGS

276       None. This program is totally bug-free.
277
278

SEE ALSO

280       http://www.vanheusden.com/httping/
281
282

NOTES

284       This page describes httping as found in the httping-2.3 package;  other
285       versions may differ slightly.  Please mail corrections and additions to
286       mail@vanheusden.com.  Report  bugs  in  the  program  to  mail@vanheus‐
287       den.com.        Please      consider      sending      bitcoins      to
288       1N5Sn4jny4xVwTwSYLnf7WnFQEGoVRmTQF
289
290
291
292httping                             2016-09                         HTTPING(1)
Impressum