Last active
April 26, 2023 15:14
-
-
Save robbat2/6c75f78e0d857b6d8649d591bc44c452 to your computer and use it in GitHub Desktop.
HAProxy Lua AppletHTTP to dump fetches & converters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| core.register_service("dump", "http", function(applet) | |
| local response = core.concat() | |
| response:add('---\n') | |
| members = { 'sf', 'f', 'sc', 'c' } | |
| for i,m in ipairs(members) do | |
| response:add('applet.' .. m .. ':\n') | |
| for k, v in pairs(getmetatable(applet[m])) do | |
| if k == "__index" then | |
| local funcs = {} | |
| for i, j in pairs(v) do | |
| table.insert(funcs, i) | |
| end | |
| table.sort(funcs) | |
| for i,j in ipairs(funcs) do | |
| response:add('- "' .. tostring(j) .. '"\n') | |
| end | |
| break | |
| end | |
| end | |
| response:add('\n') | |
| end | |
| response = response:dump() | |
| applet:set_status(200) | |
| applet:add_header("content-length", string.len(response)) | |
| applet:add_header("content-type", "text/yaml") | |
| applet:start_response() | |
| applet:send(response) | |
| end) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| applet.sf: | |
| - "always_false" | |
| - "always_true" | |
| - "avg_queue" | |
| - "base" | |
| - "base32" | |
| - "base32_src" | |
| - "be_conn" | |
| - "be_id" | |
| - "be_name" | |
| - "be_sess_rate" | |
| - "capture_req_hdr" | |
| - "capture_req_method" | |
| - "capture_req_uri" | |
| - "capture_req_ver" | |
| - "capture_res_hdr" | |
| - "capture_res_ver" | |
| - "connslots" | |
| - "cook" | |
| - "cook_cnt" | |
| - "cook_val" | |
| - "cookie" | |
| - "date" | |
| - "date_us" | |
| - "dst" | |
| - "dst_conn" | |
| - "dst_is_local" | |
| - "dst_port" | |
| - "env" | |
| - "fc_fackets" | |
| - "fc_http_major" | |
| - "fc_lost" | |
| - "fc_rcvd_proxy" | |
| - "fc_reordering" | |
| - "fc_retrans" | |
| - "fc_rtt" | |
| - "fc_rttvar" | |
| - "fc_sacked" | |
| - "fc_unacked" | |
| - "fe_conn" | |
| - "fe_defbe" | |
| - "fe_id" | |
| - "fe_name" | |
| - "fe_req_rate" | |
| - "fe_sess_rate" | |
| - "hdr" | |
| - "hdr_cnt" | |
| - "hdr_ip" | |
| - "hdr_val" | |
| - "hostname" | |
| - "http_auth" | |
| - "http_auth_group" | |
| - "http_first_req" | |
| - "int" | |
| - "ipv4" | |
| - "ipv6" | |
| - "method" | |
| - "nbproc" | |
| - "nbsrv" | |
| - "path" | |
| - "payload" | |
| - "payload_lv" | |
| - "proc" | |
| - "query" | |
| - "queue" | |
| - "rand" | |
| - "rdp_cookie" | |
| - "rdp_cookie_cnt" | |
| - "rep_ssl_hello_type" | |
| - "req_body" | |
| - "req_body_len" | |
| - "req_body_param" | |
| - "req_body_size" | |
| - "req_cook" | |
| - "req_cook_cnt" | |
| - "req_cook_val" | |
| - "req_fhdr" | |
| - "req_fhdr_cnt" | |
| - "req_hdr" | |
| - "req_hdr_cnt" | |
| - "req_hdr_ip" | |
| - "req_hdr_names" | |
| - "req_hdr_val" | |
| - "req_hdrs" | |
| - "req_hdrs_bin" | |
| - "req_len" | |
| - "req_payload" | |
| - "req_payload_lv" | |
| - "req_proto_http" | |
| - "req_rdp_cookie" | |
| - "req_rdp_cookie_cnt" | |
| - "req_ssl_ec_ext" | |
| - "req_ssl_hello_type" | |
| - "req_ssl_sni" | |
| - "req_ssl_st_ext" | |
| - "req_ssl_ver" | |
| - "req_ver" | |
| - "res_comp" | |
| - "res_comp_algo" | |
| - "res_cook" | |
| - "res_cook_cnt" | |
| - "res_cook_val" | |
| - "res_fhdr" | |
| - "res_fhdr_cnt" | |
| - "res_hdr" | |
| - "res_hdr_cnt" | |
| - "res_hdr_ip" | |
| - "res_hdr_names" | |
| - "res_hdr_val" | |
| - "res_len" | |
| - "res_payload" | |
| - "res_payload_lv" | |
| - "res_ssl_hello_type" | |
| - "res_ver" | |
| - "resp_ver" | |
| - "sc0_bytes_in_rate" | |
| - "sc0_bytes_out_rate" | |
| - "sc0_clr_gpc0" | |
| - "sc0_clr_gpc1" | |
| - "sc0_conn_cnt" | |
| - "sc0_conn_cur" | |
| - "sc0_conn_rate" | |
| - "sc0_get_gpc0" | |
| - "sc0_get_gpc1" | |
| - "sc0_get_gpt0" | |
| - "sc0_gpc0_rate" | |
| - "sc0_gpc1_rate" | |
| - "sc0_http_err_cnt" | |
| - "sc0_http_err_rate" | |
| - "sc0_http_req_cnt" | |
| - "sc0_http_req_rate" | |
| - "sc0_inc_gpc0" | |
| - "sc0_inc_gpc1" | |
| - "sc0_kbytes_in" | |
| - "sc0_kbytes_out" | |
| - "sc0_sess_cnt" | |
| - "sc0_sess_rate" | |
| - "sc0_tracked" | |
| - "sc0_trackers" | |
| - "sc1_bytes_in_rate" | |
| - "sc1_bytes_out_rate" | |
| - "sc1_clr_gpc0" | |
| - "sc1_clr_gpc1" | |
| - "sc1_conn_cnt" | |
| - "sc1_conn_cur" | |
| - "sc1_conn_rate" | |
| - "sc1_get_gpc0" | |
| - "sc1_get_gpc1" | |
| - "sc1_get_gpt0" | |
| - "sc1_gpc0_rate" | |
| - "sc1_gpc1_rate" | |
| - "sc1_http_err_cnt" | |
| - "sc1_http_err_rate" | |
| - "sc1_http_req_cnt" | |
| - "sc1_http_req_rate" | |
| - "sc1_inc_gpc0" | |
| - "sc1_inc_gpc1" | |
| - "sc1_kbytes_in" | |
| - "sc1_kbytes_out" | |
| - "sc1_sess_cnt" | |
| - "sc1_sess_rate" | |
| - "sc1_tracked" | |
| - "sc1_trackers" | |
| - "sc2_bytes_in_rate" | |
| - "sc2_bytes_out_rate" | |
| - "sc2_clr_gpc0" | |
| - "sc2_clr_gpc1" | |
| - "sc2_conn_cnt" | |
| - "sc2_conn_cur" | |
| - "sc2_conn_rate" | |
| - "sc2_get_gpc0" | |
| - "sc2_get_gpc1" | |
| - "sc2_get_gpt0" | |
| - "sc2_gpc0_rate" | |
| - "sc2_gpc1_rate" | |
| - "sc2_http_err_cnt" | |
| - "sc2_http_err_rate" | |
| - "sc2_http_req_cnt" | |
| - "sc2_http_req_rate" | |
| - "sc2_inc_gpc0" | |
| - "sc2_inc_gpc1" | |
| - "sc2_kbytes_in" | |
| - "sc2_kbytes_out" | |
| - "sc2_sess_cnt" | |
| - "sc2_sess_rate" | |
| - "sc2_tracked" | |
| - "sc2_trackers" | |
| - "sc_bytes_in_rate" | |
| - "sc_bytes_out_rate" | |
| - "sc_clr_gpc0" | |
| - "sc_clr_gpc1" | |
| - "sc_conn_cnt" | |
| - "sc_conn_cur" | |
| - "sc_conn_rate" | |
| - "sc_get_gpc0" | |
| - "sc_get_gpc1" | |
| - "sc_get_gpt0" | |
| - "sc_gpc0_rate" | |
| - "sc_gpc1_rate" | |
| - "sc_http_err_cnt" | |
| - "sc_http_err_rate" | |
| - "sc_http_req_cnt" | |
| - "sc_http_req_rate" | |
| - "sc_inc_gpc0" | |
| - "sc_inc_gpc1" | |
| - "sc_kbytes_in" | |
| - "sc_kbytes_out" | |
| - "sc_sess_cnt" | |
| - "sc_sess_rate" | |
| - "sc_tracked" | |
| - "sc_trackers" | |
| - "scook" | |
| - "scook_cnt" | |
| - "scook_val" | |
| - "set_cookie" | |
| - "shdr" | |
| - "shdr_cnt" | |
| - "shdr_ip" | |
| - "shdr_val" | |
| - "so_id" | |
| - "src" | |
| - "src_bytes_in_rate" | |
| - "src_bytes_out_rate" | |
| - "src_clr_gpc0" | |
| - "src_clr_gpc1" | |
| - "src_conn_cnt" | |
| - "src_conn_cur" | |
| - "src_conn_rate" | |
| - "src_get_gpc0" | |
| - "src_get_gpc1" | |
| - "src_get_gpt0" | |
| - "src_gpc0_rate" | |
| - "src_gpc1_rate" | |
| - "src_http_err_cnt" | |
| - "src_http_err_rate" | |
| - "src_http_req_cnt" | |
| - "src_http_req_rate" | |
| - "src_inc_gpc0" | |
| - "src_inc_gpc1" | |
| - "src_is_local" | |
| - "src_kbytes_in" | |
| - "src_kbytes_out" | |
| - "src_port" | |
| - "src_sess_cnt" | |
| - "src_sess_rate" | |
| - "src_updt_conn_cnt" | |
| - "srv_conn" | |
| - "srv_id" | |
| - "srv_is_up" | |
| - "srv_queue" | |
| - "srv_sess_rate" | |
| - "status" | |
| - "stopping" | |
| - "str" | |
| - "table_avl" | |
| - "table_cnt" | |
| - "thread" | |
| - "unique_id" | |
| - "url" | |
| - "url32" | |
| - "url32_src" | |
| - "url_ip" | |
| - "url_param" | |
| - "url_port" | |
| - "urlp" | |
| - "urlp_val" | |
| - "wait_end" | |
| applet.f: | |
| - "always_false" | |
| - "always_true" | |
| - "avg_queue" | |
| - "base" | |
| - "base32" | |
| - "base32_src" | |
| - "be_conn" | |
| - "be_id" | |
| - "be_name" | |
| - "be_sess_rate" | |
| - "capture_req_hdr" | |
| - "capture_req_method" | |
| - "capture_req_uri" | |
| - "capture_req_ver" | |
| - "capture_res_hdr" | |
| - "capture_res_ver" | |
| - "connslots" | |
| - "cook" | |
| - "cook_cnt" | |
| - "cook_val" | |
| - "cookie" | |
| - "date" | |
| - "date_us" | |
| - "dst" | |
| - "dst_conn" | |
| - "dst_is_local" | |
| - "dst_port" | |
| - "env" | |
| - "fc_fackets" | |
| - "fc_http_major" | |
| - "fc_lost" | |
| - "fc_rcvd_proxy" | |
| - "fc_reordering" | |
| - "fc_retrans" | |
| - "fc_rtt" | |
| - "fc_rttvar" | |
| - "fc_sacked" | |
| - "fc_unacked" | |
| - "fe_conn" | |
| - "fe_defbe" | |
| - "fe_id" | |
| - "fe_name" | |
| - "fe_req_rate" | |
| - "fe_sess_rate" | |
| - "hdr" | |
| - "hdr_cnt" | |
| - "hdr_ip" | |
| - "hdr_val" | |
| - "hostname" | |
| - "http_auth" | |
| - "http_auth_group" | |
| - "http_first_req" | |
| - "int" | |
| - "ipv4" | |
| - "ipv6" | |
| - "method" | |
| - "nbproc" | |
| - "nbsrv" | |
| - "path" | |
| - "payload" | |
| - "payload_lv" | |
| - "proc" | |
| - "query" | |
| - "queue" | |
| - "rand" | |
| - "rdp_cookie" | |
| - "rdp_cookie_cnt" | |
| - "rep_ssl_hello_type" | |
| - "req_body" | |
| - "req_body_len" | |
| - "req_body_param" | |
| - "req_body_size" | |
| - "req_cook" | |
| - "req_cook_cnt" | |
| - "req_cook_val" | |
| - "req_fhdr" | |
| - "req_fhdr_cnt" | |
| - "req_hdr" | |
| - "req_hdr_cnt" | |
| - "req_hdr_ip" | |
| - "req_hdr_names" | |
| - "req_hdr_val" | |
| - "req_hdrs" | |
| - "req_hdrs_bin" | |
| - "req_len" | |
| - "req_payload" | |
| - "req_payload_lv" | |
| - "req_proto_http" | |
| - "req_rdp_cookie" | |
| - "req_rdp_cookie_cnt" | |
| - "req_ssl_ec_ext" | |
| - "req_ssl_hello_type" | |
| - "req_ssl_sni" | |
| - "req_ssl_st_ext" | |
| - "req_ssl_ver" | |
| - "req_ver" | |
| - "res_comp" | |
| - "res_comp_algo" | |
| - "res_cook" | |
| - "res_cook_cnt" | |
| - "res_cook_val" | |
| - "res_fhdr" | |
| - "res_fhdr_cnt" | |
| - "res_hdr" | |
| - "res_hdr_cnt" | |
| - "res_hdr_ip" | |
| - "res_hdr_names" | |
| - "res_hdr_val" | |
| - "res_len" | |
| - "res_payload" | |
| - "res_payload_lv" | |
| - "res_ssl_hello_type" | |
| - "res_ver" | |
| - "resp_ver" | |
| - "sc0_bytes_in_rate" | |
| - "sc0_bytes_out_rate" | |
| - "sc0_clr_gpc0" | |
| - "sc0_clr_gpc1" | |
| - "sc0_conn_cnt" | |
| - "sc0_conn_cur" | |
| - "sc0_conn_rate" | |
| - "sc0_get_gpc0" | |
| - "sc0_get_gpc1" | |
| - "sc0_get_gpt0" | |
| - "sc0_gpc0_rate" | |
| - "sc0_gpc1_rate" | |
| - "sc0_http_err_cnt" | |
| - "sc0_http_err_rate" | |
| - "sc0_http_req_cnt" | |
| - "sc0_http_req_rate" | |
| - "sc0_inc_gpc0" | |
| - "sc0_inc_gpc1" | |
| - "sc0_kbytes_in" | |
| - "sc0_kbytes_out" | |
| - "sc0_sess_cnt" | |
| - "sc0_sess_rate" | |
| - "sc0_tracked" | |
| - "sc0_trackers" | |
| - "sc1_bytes_in_rate" | |
| - "sc1_bytes_out_rate" | |
| - "sc1_clr_gpc0" | |
| - "sc1_clr_gpc1" | |
| - "sc1_conn_cnt" | |
| - "sc1_conn_cur" | |
| - "sc1_conn_rate" | |
| - "sc1_get_gpc0" | |
| - "sc1_get_gpc1" | |
| - "sc1_get_gpt0" | |
| - "sc1_gpc0_rate" | |
| - "sc1_gpc1_rate" | |
| - "sc1_http_err_cnt" | |
| - "sc1_http_err_rate" | |
| - "sc1_http_req_cnt" | |
| - "sc1_http_req_rate" | |
| - "sc1_inc_gpc0" | |
| - "sc1_inc_gpc1" | |
| - "sc1_kbytes_in" | |
| - "sc1_kbytes_out" | |
| - "sc1_sess_cnt" | |
| - "sc1_sess_rate" | |
| - "sc1_tracked" | |
| - "sc1_trackers" | |
| - "sc2_bytes_in_rate" | |
| - "sc2_bytes_out_rate" | |
| - "sc2_clr_gpc0" | |
| - "sc2_clr_gpc1" | |
| - "sc2_conn_cnt" | |
| - "sc2_conn_cur" | |
| - "sc2_conn_rate" | |
| - "sc2_get_gpc0" | |
| - "sc2_get_gpc1" | |
| - "sc2_get_gpt0" | |
| - "sc2_gpc0_rate" | |
| - "sc2_gpc1_rate" | |
| - "sc2_http_err_cnt" | |
| - "sc2_http_err_rate" | |
| - "sc2_http_req_cnt" | |
| - "sc2_http_req_rate" | |
| - "sc2_inc_gpc0" | |
| - "sc2_inc_gpc1" | |
| - "sc2_kbytes_in" | |
| - "sc2_kbytes_out" | |
| - "sc2_sess_cnt" | |
| - "sc2_sess_rate" | |
| - "sc2_tracked" | |
| - "sc2_trackers" | |
| - "sc_bytes_in_rate" | |
| - "sc_bytes_out_rate" | |
| - "sc_clr_gpc0" | |
| - "sc_clr_gpc1" | |
| - "sc_conn_cnt" | |
| - "sc_conn_cur" | |
| - "sc_conn_rate" | |
| - "sc_get_gpc0" | |
| - "sc_get_gpc1" | |
| - "sc_get_gpt0" | |
| - "sc_gpc0_rate" | |
| - "sc_gpc1_rate" | |
| - "sc_http_err_cnt" | |
| - "sc_http_err_rate" | |
| - "sc_http_req_cnt" | |
| - "sc_http_req_rate" | |
| - "sc_inc_gpc0" | |
| - "sc_inc_gpc1" | |
| - "sc_kbytes_in" | |
| - "sc_kbytes_out" | |
| - "sc_sess_cnt" | |
| - "sc_sess_rate" | |
| - "sc_tracked" | |
| - "sc_trackers" | |
| - "scook" | |
| - "scook_cnt" | |
| - "scook_val" | |
| - "set_cookie" | |
| - "shdr" | |
| - "shdr_cnt" | |
| - "shdr_ip" | |
| - "shdr_val" | |
| - "so_id" | |
| - "src" | |
| - "src_bytes_in_rate" | |
| - "src_bytes_out_rate" | |
| - "src_clr_gpc0" | |
| - "src_clr_gpc1" | |
| - "src_conn_cnt" | |
| - "src_conn_cur" | |
| - "src_conn_rate" | |
| - "src_get_gpc0" | |
| - "src_get_gpc1" | |
| - "src_get_gpt0" | |
| - "src_gpc0_rate" | |
| - "src_gpc1_rate" | |
| - "src_http_err_cnt" | |
| - "src_http_err_rate" | |
| - "src_http_req_cnt" | |
| - "src_http_req_rate" | |
| - "src_inc_gpc0" | |
| - "src_inc_gpc1" | |
| - "src_is_local" | |
| - "src_kbytes_in" | |
| - "src_kbytes_out" | |
| - "src_port" | |
| - "src_sess_cnt" | |
| - "src_sess_rate" | |
| - "src_updt_conn_cnt" | |
| - "srv_conn" | |
| - "srv_id" | |
| - "srv_is_up" | |
| - "srv_queue" | |
| - "srv_sess_rate" | |
| - "status" | |
| - "stopping" | |
| - "str" | |
| - "table_avl" | |
| - "table_cnt" | |
| - "thread" | |
| - "unique_id" | |
| - "url" | |
| - "url32" | |
| - "url32_src" | |
| - "url_ip" | |
| - "url_param" | |
| - "url_port" | |
| - "urlp" | |
| - "urlp_val" | |
| - "wait_end" | |
| applet.sc: | |
| - "b64dec" | |
| - "base64" | |
| - "bool" | |
| - "bytes" | |
| - "capture_req" | |
| - "capture_res" | |
| - "cpl" | |
| - "crc32" | |
| - "crc32c" | |
| - "djb2" | |
| - "even" | |
| - "hex" | |
| - "hex2i" | |
| - "http_date" | |
| - "in_table" | |
| - "ipmask" | |
| - "language" | |
| - "length" | |
| - "lower" | |
| - "ltime" | |
| - "nbsrv" | |
| - "neg" | |
| - "not" | |
| - "odd" | |
| - "sdbm" | |
| - "sha1" | |
| - "table_bytes_in_rate" | |
| - "table_bytes_out_rate" | |
| - "table_conn_cnt" | |
| - "table_conn_cur" | |
| - "table_conn_rate" | |
| - "table_gpc0" | |
| - "table_gpc0_rate" | |
| - "table_gpc1" | |
| - "table_gpc1_rate" | |
| - "table_gpt0" | |
| - "table_http_err_cnt" | |
| - "table_http_err_rate" | |
| - "table_http_req_cnt" | |
| - "table_http_req_rate" | |
| - "table_kbytes_in" | |
| - "table_kbytes_out" | |
| - "table_server_id" | |
| - "table_sess_cnt" | |
| - "table_sess_rate" | |
| - "table_trackers" | |
| - "upper" | |
| - "url_dec" | |
| - "utime" | |
| - "wt6" | |
| - "xxh32" | |
| - "xxh64" | |
| applet.c: | |
| - "b64dec" | |
| - "base64" | |
| - "bool" | |
| - "bytes" | |
| - "capture_req" | |
| - "capture_res" | |
| - "cpl" | |
| - "crc32" | |
| - "crc32c" | |
| - "djb2" | |
| - "even" | |
| - "hex" | |
| - "hex2i" | |
| - "http_date" | |
| - "in_table" | |
| - "ipmask" | |
| - "language" | |
| - "length" | |
| - "lower" | |
| - "ltime" | |
| - "nbsrv" | |
| - "neg" | |
| - "not" | |
| - "odd" | |
| - "sdbm" | |
| - "sha1" | |
| - "table_bytes_in_rate" | |
| - "table_bytes_out_rate" | |
| - "table_conn_cnt" | |
| - "table_conn_cur" | |
| - "table_conn_rate" | |
| - "table_gpc0" | |
| - "table_gpc0_rate" | |
| - "table_gpc1" | |
| - "table_gpc1_rate" | |
| - "table_gpt0" | |
| - "table_http_err_cnt" | |
| - "table_http_err_rate" | |
| - "table_http_req_cnt" | |
| - "table_http_req_rate" | |
| - "table_kbytes_in" | |
| - "table_kbytes_out" | |
| - "table_server_id" | |
| - "table_sess_cnt" | |
| - "table_sess_rate" | |
| - "table_trackers" | |
| - "upper" | |
| - "url_dec" | |
| - "utime" | |
| - "wt6" | |
| - "xxh32" | |
| - "xxh64" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment