Backend OperationsΒΆ

A quick way to check if a certain backend exists

>>> backends = hap.backends()
>>> if 'backend1_proc34' in backends:
...    print('have it')
...
have it
>>> if 'backend1_proc34foo' in backends:
...    print('have it')
...
>>>

Retrieve various statistics

>>> backend = hap.backend('backend1_proc34')
>>> for m in BACKEND_METRICS:
...     print("name {} value {}".format(m, backend.metric(m)))
...
name act value 3
name bck value 0
name bin value 0
name bout value 0
name chkdown value 2
name cli_abrt value 0
name comp_byp value 0
name comp_in value 0
name comp_out value 0
name comp_rsp value 0
name ctime value 0
name downtime value 8237
name dreq value 0
name dresp value 0
name econ value 0
name eresp value 0
name hrsp_1xx value 0
name hrsp_2xx value 0
name hrsp_3xx value 0
name hrsp_4xx value 0
name hrsp_5xx value 0
name hrsp_other value 0
name lastchg value 11373
name lastsess value -1
name lbtot value 0
name qcur value 0
name qmax value 0
name qtime value 0
name rate value 0
name rate_max value 0
name rtime value 0
name scur value 0
name slim value 200000
name smax value 0
name srv_abrt value 0
name stot value 0
name ttime value 0
name weight value 3
name wredis value 0
name wretr value 0
>>>
>>>
>>> backend.process_nb
[4, 3]
>>> backend.requests_per_process()
[(4, 2), (3, 3)]
>>> backend.requests
5
>>>

Get all servers in across all backends

>>> for backend in backends:
>>> backends = hap.backends()
...    print(backend.name, backend.requests, backend.process_nb)
...    servers = backend.servers()
...    for server in servers:
...       print(" ", server.name, server.requests)
...
backend_proc2 100 [2]
  bck_proc2_srv4_proc2 25
  bck_proc2_srv3_proc2 25
  bck_proc2_srv1_proc2 25
  bck_proc2_srv2_proc2 25
haproxy 0 [4, 3, 2, 1]
backend1_proc34 16 [4, 3]
  bck1_proc34_srv1 6
  bck_all_srv1 5
  bck1_proc34_srv2 5
backend_proc1 29 [1]
  member2_proc1 14
  member1_proc1 15
  bck_all_srv1 0
backend2_proc34 100 [4, 3]
  bck2_proc34_srv2 97
  bck2_proc34_srv1 2
  bck_all_srv1 1
>>>

Get servers of a specific backend

>>> backend = hap.backend('backend1_proc34')
>>> for s in backend.servers():
...    print(s.name, s.status, s.weight)
...
bck1_proc34_srv2 UP 1
bck_all_srv1 UP 1
bck1_proc34_srv1 UP 1
>>>

Get a specific server from a backend

>>> s1 = backend.server('bck1_proc34_srv2')
>>> s1.name, s1.backendname, s1.status, s1.requests, s1.weight
('bck1_proc34_srv2', 'backend1_proc34', 'UP', 9, 1)

Read Backend class for more information.