[Twisted-Python] Monitoring configuration of twisted calls.

Steve Lewis spiritualmechanic at yahoo.com
Thu Aug 28 09:25:40 EDT 2008


I'm fairly new to twisted, although we are using it in production. What I'd like to do, is have a simple redlight/greenlight method (over XML-RPC) to tell me which methods have been called successfully at least once. The goal of this is not so much performance or uptime, but to just tell me that we are configured correctly.

We're using twisted as a sort of service bus, so we have a decent amount of configuration that needs to be set up.

What I've considered so far:

1. Modifying each xmlrpc method individually and setting a boolean to True in a dictionary:

       if results:
            self._monitor['xmlrpc.method.name'] = True

This is okay, but I'd like something that is more generic so I don't have to write this code in every single XMLRPC method.

2. Extending/subclassing XMLRPC: 

    def _getFunction(self, functionPath):
        '''
        Overrides XMLRPC._getFunction to use our simple mapper.
        '''
        
        ## attempt default behavior for local methods
        try:
            func = XMLRPC._getFunction(self, functionPath)
            return func
        except NoSuchFunction:
            pass

This would work in my head, but in actuality, the call doesn't actually happen here, it just returns the function.

3. Extending/subclassing QueryProtocol:

    def handleStatus(self, version, status, message):
        if status != '200':
            self.factory.badStatus(status, message)

I could override QueryProtocol and in the handleStatus method set a field in a dictionary.

There are probably many ways to do this wrong, and I'm a Java guy just getting used to the twisted way of doing things. I apologize if my attempts are painful and/or hilarious.

Thanks,
Steve L.



      




More information about the Twisted-Python mailing list