Documentation ¶
Index ¶
Constants ¶
View Source
const ( // Frontend key Frontend string = "FRONTEND" // Backend key Backend string = "BACKEND" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type StatLine ¶
type StatLine struct { // [[[cog: // # Header: echo "show stat" | nc -U /var/run/haproxy.sock | head -n1 // header = ”'# pxname,svname,qcur,qmax,scur,smax,slim,stot,bin,bout,dreq,dresp,ereq,econ,eresp,wretr,wredis,status,weight,act,bck,chkfail,chkdown,lastchg,downtime,qlimit,pid,iid,sid,throttle,lbtot,tracked,type,rate,rate_lim,rate_max,check_status,check_code,check_duration,hrsp_1xx,hrsp_2xx,hrsp_3xx,hrsp_4xx,hrsp_5xx,hrsp_other,hanafail,req_rate,req_rate_max,req_tot,cli_abrt,srv_abrt,comp_in,comp_out,comp_byp,comp_rsp,lastsess,last_chk,last_agt,qtime,ctime,rtime,ttime,agent_status,agent_code,agent_duration,check_desc,agent_desc,check_rise,check_fall,check_health,agent_rise,agent_fall,agent_health,addr,cookie,mode,algo,conn_rate,conn_rate_max,conn_tot,intercepted,dcon,dses,wrew,connect,reuse,cache_lookups,cache_hits,srv_icur,src_ilim,qtime_max,ctime_max,rtime_max,ttime_max,eint,idle_conn_cur,safe_conn_cur,used_conn_cur,need_conn_est,uweight,-,h2_headers_rcvd,h2_data_rcvd,h2_settings_rcvd,h2_rst_stream_rcvd,h2_goaway_rcvd,h2_detected_conn_protocol_errors,h2_detected_strm_protocol_errors,h2_rst_stream_resp,h2_goaway_resp,h2_open_connections,h2_backend_open_streams,h2_open_connections,h2_backend_open_streams,”' // fields = [(s.replace('# ', ”).strip().title().replace('_', ”), s) for s in header.split(',') if s not in [”, '-']] // used = set() // fields = (f for f in fields if f not in used and (used.add(f) or True)) // for field in fields: // struct_name = field[0] // csv_name = field[1] // json_name = field[1].replace('# ', ”) // type_ = 'string' // #if csv_name.endswith(('name', 'desc')) or csv_name in ['status', 'mode', 'check_status']: // # type_ = 'string' // if csv_name in ['scur', 'slim']: # NOTE(vermakov): we use only a few fields in check, leave others as string // type_ = 'int' // cog.outl(f"""{struct_name:28s} {type_:6s} `csv:"{csv_name}" json:"{json_name},omitempty"`""") // ]]] Pxname string `csv:"# pxname" json:"pxname,omitempty"` Svname string `csv:"svname" json:"svname,omitempty"` Qcur string `csv:"qcur" json:"qcur,omitempty"` Qmax string `csv:"qmax" json:"qmax,omitempty"` Scur int `csv:"scur" json:"scur,omitempty"` Smax string `csv:"smax" json:"smax,omitempty"` Slim int `csv:"slim" json:"slim,omitempty"` Stot string `csv:"stot" json:"stot,omitempty"` Bin string `csv:"bin" json:"bin,omitempty"` Bout string `csv:"bout" json:"bout,omitempty"` Dreq string `csv:"dreq" json:"dreq,omitempty"` Dresp string `csv:"dresp" json:"dresp,omitempty"` Ereq string `csv:"ereq" json:"ereq,omitempty"` Econ string `csv:"econ" json:"econ,omitempty"` Eresp string `csv:"eresp" json:"eresp,omitempty"` Wretr string `csv:"wretr" json:"wretr,omitempty"` Wredis string `csv:"wredis" json:"wredis,omitempty"` Status string `csv:"status" json:"status,omitempty"` Weight string `csv:"weight" json:"weight,omitempty"` Act string `csv:"act" json:"act,omitempty"` Bck string `csv:"bck" json:"bck,omitempty"` Chkfail string `csv:"chkfail" json:"chkfail,omitempty"` Chkdown string `csv:"chkdown" json:"chkdown,omitempty"` Lastchg string `csv:"lastchg" json:"lastchg,omitempty"` Downtime string `csv:"downtime" json:"downtime,omitempty"` Qlimit string `csv:"qlimit" json:"qlimit,omitempty"` Pid string `csv:"pid" json:"pid,omitempty"` Iid string `csv:"iid" json:"iid,omitempty"` Sid string `csv:"sid" json:"sid,omitempty"` Throttle string `csv:"throttle" json:"throttle,omitempty"` Lbtot string `csv:"lbtot" json:"lbtot,omitempty"` Tracked string `csv:"tracked" json:"tracked,omitempty"` Type string `csv:"type" json:"type,omitempty"` Rate string `csv:"rate" json:"rate,omitempty"` RateLim string `csv:"rate_lim" json:"rate_lim,omitempty"` RateMax string `csv:"rate_max" json:"rate_max,omitempty"` CheckStatus string `csv:"check_status" json:"check_status,omitempty"` CheckCode string `csv:"check_code" json:"check_code,omitempty"` CheckDuration string `csv:"check_duration" json:"check_duration,omitempty"` Hrsp1Xx string `csv:"hrsp_1xx" json:"hrsp_1xx,omitempty"` Hrsp2Xx string `csv:"hrsp_2xx" json:"hrsp_2xx,omitempty"` Hrsp3Xx string `csv:"hrsp_3xx" json:"hrsp_3xx,omitempty"` Hrsp4Xx string `csv:"hrsp_4xx" json:"hrsp_4xx,omitempty"` Hrsp5Xx string `csv:"hrsp_5xx" json:"hrsp_5xx,omitempty"` HrspOther string `csv:"hrsp_other" json:"hrsp_other,omitempty"` Hanafail string `csv:"hanafail" json:"hanafail,omitempty"` ReqRate string `csv:"req_rate" json:"req_rate,omitempty"` ReqRateMax string `csv:"req_rate_max" json:"req_rate_max,omitempty"` ReqTot string `csv:"req_tot" json:"req_tot,omitempty"` CliAbrt string `csv:"cli_abrt" json:"cli_abrt,omitempty"` SrvAbrt string `csv:"srv_abrt" json:"srv_abrt,omitempty"` CompIn string `csv:"comp_in" json:"comp_in,omitempty"` CompOut string `csv:"comp_out" json:"comp_out,omitempty"` CompByp string `csv:"comp_byp" json:"comp_byp,omitempty"` CompRsp string `csv:"comp_rsp" json:"comp_rsp,omitempty"` Lastsess string `csv:"lastsess" json:"lastsess,omitempty"` LastChk string `csv:"last_chk" json:"last_chk,omitempty"` LastAgt string `csv:"last_agt" json:"last_agt,omitempty"` Qtime string `csv:"qtime" json:"qtime,omitempty"` Ctime string `csv:"ctime" json:"ctime,omitempty"` Rtime string `csv:"rtime" json:"rtime,omitempty"` Ttime string `csv:"ttime" json:"ttime,omitempty"` AgentStatus string `csv:"agent_status" json:"agent_status,omitempty"` AgentCode string `csv:"agent_code" json:"agent_code,omitempty"` AgentDuration string `csv:"agent_duration" json:"agent_duration,omitempty"` CheckDesc string `csv:"check_desc" json:"check_desc,omitempty"` AgentDesc string `csv:"agent_desc" json:"agent_desc,omitempty"` CheckRise string `csv:"check_rise" json:"check_rise,omitempty"` CheckFall string `csv:"check_fall" json:"check_fall,omitempty"` CheckHealth string `csv:"check_health" json:"check_health,omitempty"` AgentRise string `csv:"agent_rise" json:"agent_rise,omitempty"` AgentFall string `csv:"agent_fall" json:"agent_fall,omitempty"` AgentHealth string `csv:"agent_health" json:"agent_health,omitempty"` Addr string `csv:"addr" json:"addr,omitempty"` Cookie string `csv:"cookie" json:"cookie,omitempty"` Mode string `csv:"mode" json:"mode,omitempty"` Algo string `csv:"algo" json:"algo,omitempty"` ConnRate string `csv:"conn_rate" json:"conn_rate,omitempty"` ConnRateMax string `csv:"conn_rate_max" json:"conn_rate_max,omitempty"` ConnTot string `csv:"conn_tot" json:"conn_tot,omitempty"` Intercepted string `csv:"intercepted" json:"intercepted,omitempty"` Dcon string `csv:"dcon" json:"dcon,omitempty"` Dses string `csv:"dses" json:"dses,omitempty"` Wrew string `csv:"wrew" json:"wrew,omitempty"` Connect string `csv:"connect" json:"connect,omitempty"` Reuse string `csv:"reuse" json:"reuse,omitempty"` CacheLookups string `csv:"cache_lookups" json:"cache_lookups,omitempty"` CacheHits string `csv:"cache_hits" json:"cache_hits,omitempty"` SrvIcur string `csv:"srv_icur" json:"srv_icur,omitempty"` SrcIlim string `csv:"src_ilim" json:"src_ilim,omitempty"` QtimeMax string `csv:"qtime_max" json:"qtime_max,omitempty"` CtimeMax string `csv:"ctime_max" json:"ctime_max,omitempty"` RtimeMax string `csv:"rtime_max" json:"rtime_max,omitempty"` TtimeMax string `csv:"ttime_max" json:"ttime_max,omitempty"` Eint string `csv:"eint" json:"eint,omitempty"` IdleConnCur string `csv:"idle_conn_cur" json:"idle_conn_cur,omitempty"` SafeConnCur string `csv:"safe_conn_cur" json:"safe_conn_cur,omitempty"` UsedConnCur string `csv:"used_conn_cur" json:"used_conn_cur,omitempty"` NeedConnEst string `csv:"need_conn_est" json:"need_conn_est,omitempty"` Uweight string `csv:"uweight" json:"uweight,omitempty"` H2HeadersRcvd string `csv:"h2_headers_rcvd" json:"h2_headers_rcvd,omitempty"` H2DataRcvd string `csv:"h2_data_rcvd" json:"h2_data_rcvd,omitempty"` H2SettingsRcvd string `csv:"h2_settings_rcvd" json:"h2_settings_rcvd,omitempty"` H2RstStreamRcvd string `csv:"h2_rst_stream_rcvd" json:"h2_rst_stream_rcvd,omitempty"` H2GoawayRcvd string `csv:"h2_goaway_rcvd" json:"h2_goaway_rcvd,omitempty"` H2DetectedConnProtocolErrors string `csv:"h2_detected_conn_protocol_errors" json:"h2_detected_conn_protocol_errors,omitempty"` H2DetectedStrmProtocolErrors string `csv:"h2_detected_strm_protocol_errors" json:"h2_detected_strm_protocol_errors,omitempty"` H2RstStreamResp string `csv:"h2_rst_stream_resp" json:"h2_rst_stream_resp,omitempty"` H2GoawayResp string `csv:"h2_goaway_resp" json:"h2_goaway_resp,omitempty"` H2OpenConnections string `csv:"h2_open_connections" json:"h2_open_connections,omitempty"` H2BackendOpenStreams string `csv:"h2_backend_open_streams" json:"h2_backend_open_streams,omitempty"` }
StatLine represents one line from haproxy stat report
func (StatLine) SessionLimitPercentage ¶
SessionLimitPercentage calculates percentage usage of sessions limit
type StatService ¶
StatService is a mapping of all SvName lines
func (StatService) Filter ¶
func (s StatService) Filter(testFunc func(StatLine) bool) StatService
Filter return entries which passes the testFunc
func (StatService) Servers ¶
func (s StatService) Servers() StatService
Servers makes a copy of StatService without frontend and backend entries
Click to show internal directories.
Click to hide internal directories.