Page MenuHomePhabricator

pybal 1.15.2 dies with obscure errors without python-prometheus-client
Closed, ResolvedPublic

Description

Testing pybal-1.15.2 for fundraising, it took me a while to figure out that this error was caused by missing python-prometheus-client:

Traceback (most recent call last):
  File "/usr/sbin/pybal", line 10, in <module>
    from pybal import main
  File "/usr/lib/python2.7/dist-packages/pybal/main.py", line 22, in <module>
    from pybal import util, ipvs, instrumentation, etcd
  File "/usr/lib/python2.7/dist-packages/pybal/ipvs.py", line 8, in <module>
    from pybal.bgpfailover import BGPFailover
  File "/usr/lib/python2.7/dist-packages/pybal/bgpfailover.py", line 14, in <module>
    from pybal.bgp import bgp
  File "/usr/lib/python2.7/dist-packages/pybal/bgp/bgp.py", line 807, in <module>
    class FSM(object):
  File "/usr/lib/python2.7/dist-packages/pybal/bgp/bgp.py", line 859, in FSM
    **metric_keywords)
TypeError: __init__() takes exactly 1 argument (6 given)

The package is listed in requirements.txt but it would be helpful to add it to .deb dependencies or, better, to make prometheus support optional.

Event Timeline

Change 421847 had a related patch set uploaded (by Vgutierrez; owner: Vgutierrez):
[operations/debs/pybal@master] Fix dummy metrics implementation

https://gerrit.wikimedia.org/r/421847

pybal metrics package attempts to make prometheus support optional, but it's obviously failing right now. The submitted change sorts the issue out.

RobH triaged this task as Low priority.Mar 26 2018, 7:31 PM
RobH subscribed.

Setting this to normal priority as part of SRE clinic duty. After IRC discussion with @Jgreen, it is a bug report that he was able to work around. Since he has a work around for now, we're setting this to low priority.

Change 421847 merged by Vgutierrez:
[operations/debs/pybal@master] Fix dummy metrics implementation

https://gerrit.wikimedia.org/r/421847

Change 423673 had a related patch set uploaded (by Vgutierrez; owner: Vgutierrez):
[operations/debs/pybal@1.15] Fix dummy metrics implementation

https://gerrit.wikimedia.org/r/423673

Change 423673 merged by Vgutierrez:
[operations/debs/pybal@1.15] Fix dummy metrics implementation

https://gerrit.wikimedia.org/r/423673

Change 423696 had a related patch set uploaded (by Vgutierrez; owner: Vgutierrez):
[operations/debs/pybal@master] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423696

Change 423698 had a related patch set uploaded (by Vgutierrez; owner: Vgutierrez):
[operations/debs/pybal@1.15] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423698

Change 423699 had a related patch set uploaded (by Vgutierrez; owner: Vgutierrez):
[operations/debs/pybal@1.15-stretch] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423699

Change 423696 merged by Vgutierrez:
[operations/debs/pybal@master] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423696

Change 423698 merged by Vgutierrez:
[operations/debs/pybal@1.15] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423698

Change 423699 merged by Vgutierrez:
[operations/debs/pybal@1.15-stretch] Release 1.15.3: Avoid having a hard requirement on prometheus-client

https://gerrit.wikimedia.org/r/423699

The issue has been solved on pybal 1.15.3 available for stretch

Vgutierrez claimed this task.