ramonski
(Ramon Bartl)
July 5, 2020, 4:15pm
1
Hi everyone,
I added the monitor-address
option as described in https://pypi.org/project/plone.recipe.zeoserver to my buildout.cfg
option like this:
[zeoserver]
recipe = plone.recipe.zeoserver
zeo-address = 127.0.0.1:8000
monitor-address = 127.0.0.1:8001
The buildout run succeeds, but when I start the ZEO Server I get this error:
$ bin/zeoserver fg
Error: u'monitor-address' is not a known key name
For help, use bin/zeoserver -h
This worked in a previous Plone 4.3.19 setup, but not anymore for Plone 5.2.1.
Is this option replaced or completely removed?
I used this option to monitor the ZEO Server in Munin.
Thanks for your help,
Ramon
zopyx
(Andreas Jung)
July 6, 2020, 9:41am
2
Python 2 or 3? Works on Python 3...
ramonski
(Ramon Bartl)
July 6, 2020, 9:55am
3
I'm using Python 2 at the moment.
Strange error if this is related to the Python version.
zopyx
(Andreas Jung)
July 6, 2020, 10:57am
4
Likely some code that is supposed to be Python 2 and 3 compatible...take the debugger and check in the sourcecode of the recipe...it's not that long.
zopyx
(Andreas Jung)
July 6, 2020, 11:55am
5
Wrong assumption: the monitor server was removed in ZEO 5
As a consequence: the monitor-address
configuration should be removed at some point from the zeoserver recipe.
ramonski
(Ramon Bartl)
July 6, 2020, 1:38pm
6
Thanks for pointing that out @zopyx .
I was wondering if there is an alternative way to get these stats about cached objects etc.? I've seen that the plone/ansible.plone_server
playbook includes five.z2monitor
to the instances: https://github.com/plone/ansible.plone_server/blob/master/templates/buildout.cfg.j2#L237
However, this fails for me with the following error:
root@senaite:/home/senaite/senaitelims# bin/client1 monitor dbinfo
Traceback (most recent call last):
File "/home/senaite/buildout-cache/eggs/zc.monitor-0.4.0.post1-py2.7.egg/zc/monitor/__init__.py", line 58, in handle_input
res = command(connection, *args)
File "/home/senaite/buildout-cache/eggs/zc.z3monitor-0.8.0-py2.7.egg/zc/z3monitor/__init__.py", line 110, in dbinfo
db = zope.component.getUtility(ZODB.interfaces.IDatabase, database)
File "/home/senaite/buildout-cache/eggs/zope.component-4.5-py2.7.egg/zope/component/_api.py", line 154, in getUtility
raise ComponentLookupError(interface, name)
ComponentLookupError: (<InterfaceClass ZODB.interfaces.IDatabase>, '')
ComponentLookupError: (<InterfaceClass ZODB.interfaces.IDatabase>, '')
Also the repository seems to be archived?
So I assume this is no longer maintained...
Is anyone else monitoring the ZODB objects in Plone 5.2.1 on Zope 4 somehow?
Thanks, Ramon
fredvd
(Fred van Dijk)
July 16, 2020, 6:59am
7
The question is why it is no longer maintained. Guess: the whole stack of modules to support an extra zope thread to answer (monitor) request been deprecated because of the switch to wsgi?
@icemac as you archived the packages, is this the reason?
icemac
(Michael Howitz)
July 16, 2020, 11:47am
8
zc.monitor
depends on zc.ngi
which is not (yet?) ported to Python 3. So this whole monitor stack cannot be used on modern Python.
See https://github.com/zopefoundation/zc.monitor/issues/3
djay
(Dylan Jay)
May 18, 2021, 5:18am
9
Is there any other solution other than going to wsgi?
We relied on the monitor port to do proper health checks from rancher and haproxy to zope. If you use the normal http port instead then any long requests results in the instance being marked as unhealthy instead of simply busy which has undesirable consequences.
All I need is a port that responds if the instance isn't completely locked up. Any ideas?