Ema has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/335844 )

Change subject: Log etcd connection status
......................................................................

Log etcd connection status

In order to ease debugging of T134893, add logging of connection
made/failed/lost events.

Bug: T134893
Change-Id: I7df7a964d76066df995fcbaa9e5f335f14e4d6b6
---
M pybal/etcd.py
1 file changed, 16 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/debs/pybal 
refs/changes/44/335844/1

diff --git a/pybal/etcd.py b/pybal/etcd.py
index 6128d79..016fe5a 100644
--- a/pybal/etcd.py
+++ b/pybal/etcd.py
@@ -17,6 +17,7 @@
 from twisted.web import error
 from twisted.web.client import HTTPClientFactory
 from twisted.web.http import HTTPClient, urlparse
+from twisted.internet.error import ConnectionDone
 
 from .config import ConfigurationObserver
 from .version import USER_AGENT_STRING
@@ -53,6 +54,8 @@
     etcdIndex = 0
 
     def connectionMade(self):
+        log.info("connected to %s" % self.factory.configUrl, system="etcd")
+
         self.sendCommand('GET', self.factory.getPath())
         self.sendHeader('Host', self.factory.host)
         self.sendHeader('User-Agent', self.factory.agent)
@@ -64,6 +67,8 @@
         self.message = message
 
     def handleResponse(self, response):
+        log.debug("%s response: %s" % (self.status, response), system="etcd")
+
         if self.status != '200':
             err = error.Error(self.status, self.message, response)
             self.factory.onFailure(failure.Failure(err))
@@ -75,7 +80,7 @@
                 msg = "Error: %s Etcd response: %s" % (err, response)
                 self.factory.onFailure(msg)
         else:
-            log.warn("etcd: empty response from server")
+            log.warn("empty response from server", system="etcd")
 
         self.transport.loseConnection()
 
@@ -112,7 +117,7 @@
         self.lastConfig = {}
 
     def startObserving(self):
-        """Start (or re-start) watching the configuration file for changes."""
+        """Start (or re-start) watching etcd for changes."""
         reactor.connectSSL(self.host, self.port, self,
                            ssl.ClientContextFactory())
 
@@ -130,9 +135,16 @@
         return path
 
     def clientConnectionFailed(self, connector, reason):
+        log.error("client connection failed: reason=%s" % reason, 
system="etcd")
         connector.connect()
 
-    def clientConnectionLost(self, connector, unused_reason):
+    def clientConnectionLost(self, connector, reason):
+        r = reason.trap(ConnectionDone)
+        if r == ConnectionDone:
+            log.info("client connection closed cleanly", system="etcd")
+        else:
+            log.error("client connection lost: reason=%s" % reason, 
system="etcd")
+
         connector.connect()
 
     def getMaxModifiedIndex(self, root):
@@ -166,4 +178,4 @@
             self.lastConfig = config
 
     def onFailure(self, reason):
-        log.error('failed: %s' % reason)
+        log.error('failed: %s' % reason, system="etcd")

-- 
To view, visit https://gerrit.wikimedia.org/r/335844
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7df7a964d76066df995fcbaa9e5f335f14e4d6b6
Gerrit-PatchSet: 1
Gerrit-Project: operations/debs/pybal
Gerrit-Branch: 1.13
Gerrit-Owner: Ema <e...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to