Source code for django_statsd.urls
from __future__ import absolute_import
import django_statsd
try:
import httplib
[docs] class StatsdHTTPConnection(httplib.HTTPConnection):
def __init__(self, *args, **kwargs):
origHTTPConnection.__init__(self, *args, **kwargs)
def _get_host_name(self):
hostname = self.host
if self.port != 80:
hostname += '-%d' % self.port
hostname = hostname.replace('.', '-')
return hostname
[docs] def connect(self, *args, **kwargs):
django_statsd.start('url.%s' % self._get_host_name())
return origHTTPConnection.connect(self, *args, **kwargs)
[docs] def close(self, *args, **kwargs):
if self.sock is not None:
django_statsd.stop('url.%s' % self._get_host_name())
return origHTTPConnection.close(self, *args, **kwargs)
def __del__(self, *args, **kwargs):
if self.sock is not None:
django_statsd.stop('url.%s' % self._get_host_name())
return origHTTPConnection.__del__(self, *args, **kwargs)
origHTTPConnection = None
# NOTE issubclass is true if both are the same class
if not issubclass(httplib.HTTPConnection, StatsdHTTPConnection):
origHTTPConnection = httplib.HTTPConnection
httplib.HTTPConnection = StatsdHTTPConnection
except ImportError:
pass