haproxy/include/proto
Willy Tarreau d9bdcd5139 REORG: stats: massive code reorg and cleanup
The dumpstats code looks like a spaghetti plate. Several functions are
supposed to be able to do several things but rely on complex states to
dispatch the work to independant functions. Most of the HTML output is
performed within the switch/case statements of the whole state machine.

Let's clean this up by adding new functions to emit the data and have
a few more iterators to avoid relying on so complex states.

The new stats dump sequence looks like this for CLI and for HTTP :

  cli_io_handler()
      -> stats_dump_sess_to_buffer()      // "show sess"
      -> stats_dump_errors_to_buffer()    // "show errors"
      -> stats_dump_raw_info_to_buffer()  // "show info"
         -> stats_dump_raw_info()
      -> stats_dump_raw_stat_to_buffer()  // "show stat"
         -> stats_dump_csv_header()
         -> stats_dump_proxy()
            -> stats_dump_px_hdr()
            -> stats_dump_fe_stats()
            -> stats_dump_li_stats()
            -> stats_dump_sv_stats()
            -> stats_dump_be_stats()
            -> stats_dump_px_end()

  http_stats_io_handler()
      -> stats_http_redir()
      -> stats_dump_http()              // also emits the HTTP headers
         -> stats_dump_html_head()      // emits the HTML headers
         -> stats_dump_csv_header()     // emits the CSV headers (same as above)
         -> stats_dump_http_info()      // note: ignores non-HTML output
         -> stats_dump_proxy()          // same as above
         -> stats_dump_http_end()       // emits HTML trailer
2012-12-22 20:45:02 +01:00
..
acl.h MINOR: acl: add parse and match primitives to use binary type on ACLs 2012-10-22 18:54:24 +02:00
arg.h MEDIUM: sample: pass an empty list instead of a null for fetch args 2012-10-19 19:49:09 +02:00
auth.h MAJOR: acl: make use of the new sample struct and get rid of acl_test 2012-05-08 20:57:14 +02:00
backend.h REORG/MAJOR: use "struct channel" instead of "struct buffer" 2012-09-02 21:54:55 +02:00
channel.h CLEANUP: buffer: use buffer_empty() instead of buffer_len()==0 2012-12-17 01:14:49 +01:00
checks.h MINOR: cli: report connection status in "show sess xxx" 2012-11-19 16:22:22 +01:00
compression.h MINOR: compression: CPU usage limit 2012-11-21 02:15:16 +01:00
connection.h BUG/MEDIUM: connection: always update connection flags prior to computing polling 2012-12-17 01:14:25 +01:00
cttproxy.h [MEDIUM] check for cttproxy support when required 2007-03-24 17:24:39 +01:00
dumpstats.h REORG: stats: massive code reorg and cleanup 2012-12-22 20:45:02 +01:00
fd.h OPTIM: poll: optimize fd management functions for low register count CPUs 2012-12-13 23:34:18 +01:00
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.h REORG: connection: move the PROXY protocol management to connection.c 2012-10-05 00:32:33 +02:00
hdr_idx.h OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h [MINOR] lb_map: reorder code in order to ease integration of new hash functions 2009-10-01 21:11:15 +02:00
listener.h REORG: listener: move unix perms from the listener to the bind_conf 2012-09-20 18:07:14 +02:00
log.h MINOR: log: add lf_text_len 2012-12-21 19:24:48 +01:00
obj_type.h MINOR: stats: add a few more information on session dump 2012-12-08 17:48:47 +01:00
peers.h [CLEANUP] peers.h: fix declarations 2011-06-18 20:27:19 +02:00
pipe.h [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
proto_http.h MINOR: http: add some debugging functions to pretty-print msg state names 2012-11-21 21:50:04 +01:00
proto_tcp.h MEDIUM: tcp: add explicit support for delayed ACK in connect() 2012-11-24 10:24:27 +01:00
proto_uxst.h BUG/MEDIUM: stream_interface: restore get_src/get_dst 2012-05-11 16:48:10 +02:00
protocol.h REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.h REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
queue.h BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
raw_sock.h REORG: connection: rename the data layer the "transport layer" 2012-10-04 22:26:09 +02:00
sample.h MINOR: samples: add a function to fetch and convert any sample to a string 2012-12-21 17:57:24 +01:00
server.h MINOR: server: add minimal infrastructure to parse keywords 2012-10-10 17:42:39 +02:00
session.h CLEANUP: session: use an array for the stick counters 2012-12-09 15:57:16 +01:00
shctx.h MEDIUM: ssl: manage shared cache by blocks for huge sessions. 2012-12-04 10:56:56 +01:00
signal.h CLEANUP: includes: fix includes for a number of users of fd.h 2012-09-03 20:49:14 +02:00
ssl_sock.h MEDIUM: log: report SSL ciphers and version in logs using logformat %sslc/%sslv 2012-10-12 20:48:51 +02:00
stick_table.h MEDIUM: stick-table: allocate the table key of size buffer size 2012-10-29 21:56:59 +01:00
stream_interface.h MINOR: stats: add a few more information on session dump 2012-12-08 17:48:47 +01:00
task.h [MAJOR] proxy: finally get rid of maintain_proxies() 2011-07-25 16:33:49 +02:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00