five.z2monitor looks like a nice package to add on instances used behind a load balancer; hypothetically, I could define a different port to respond even in case the main instance port is busy answering some expensive call.
I installed it successfully (I guess) but I have no idea on how to run other commands besides dbinfo main
(old-school Zope doctests don't help):
# bin/instance monitor dbinfo main
0 0 0 23 5
whatever I try besides that, the result is the same:
# bin/instance monitor help
Supported commands:
dbinfo -- Get database statistics
help -- Get help about server commands
interactive -- Turn on monitor's interactive mode
monitor -- Get general process info
quit -- Quit the monitor
zeocache -- Get ZEO client cache statistics
zeostatus -- Get ZEO client status information
# bin/instance monitor help monitor
Help for monitor:
Get general process info
The minimal output has:
- The number of open database connections to the main database, which
is the database registered without a name.
- The virtual memory size, and
- The resident memory size.
If there are old database connections, they will be listed. By
default, connections are considered old if they are greater than 100
seconds old. You can pass a minimum old connection age in seconds.
If you pass a value of 0, you'll see all connections.
If you pass a name after the integer, this is used as the database name.
The database name defaults to the empty string ('').
# bin/instance monitor monitor 0
Traceback (most recent call last):
File "/home/hvelarde/.buildout/eggs/zc.monitor-0.3.1-py2.7.egg/zc/monitor/__init__.py", line 58, in handle_input
res = command(connection, *args)
File "/home/hvelarde/.buildout/eggs/zc.z3monitor-0.8.0-py2.7.egg/zc/z3monitor/__init__.py", line 56, in monitor
db = zope.component.getUtility(ZODB.interfaces.IDatabase, database)
File "/home/hvelarde/.buildout/eggs/zope.component-3.9.5-py2.7.egg/zope/component/_api.py", line 169, in getUtility
raise ComponentLookupError(interface, name)
ComponentLookupError: (<InterfaceClass ZODB.interfaces.IDatabase>, '')
ComponentLookupError: (<InterfaceClass ZODB.interfaces.IDatabase>, '')
what I am missing here? does anybody here has used this package?
this is what I added to my instance
part in buildout.cfg
:
[instance]
eggs += five.z2monitor
zcml += five.z2monitor
zope-conf-additional +=
<product-config five.z2monitor>
bind 127.0.0.1:8888
</product-config>