Fix some b'abcd' noise in logs and metrics

Python 3 compatibility: make sure that we decode some byte sequences before we
use them to create log lines and metrics labels.
This commit is contained in:
Richard van der Hoff 2018-09-17 16:15:42 +01:00
parent c9c50284d7
commit f00a9d2636
2 changed files with 8 additions and 5 deletions

View File

@ -244,7 +244,10 @@ class MatrixFederationHttpClient(object):
request_deferred,
)
log_result = "%d %s" % (response.code, response.phrase,)
log_result = "%d %s" % (
response.code,
response.phrase.decode('ascii', errors='replace'),
)
break
except Exception as e:
if not retry_on_dns_fail and isinstance(e, DNSLookupError):

View File

@ -82,7 +82,7 @@ class SynapseRequest(Request):
)
def get_request_id(self):
return "%s-%i" % (self.method, self.request_seq)
return "%s-%i" % (self.method.decode('ascii'), self.request_seq)
def get_redacted_uri(self):
uri = self.uri
@ -119,7 +119,7 @@ class SynapseRequest(Request):
# dispatching to the handler, so that the handler
# can update the servlet name in the request
# metrics
requests_counter.labels(self.method,
requests_counter.labels(self.method.decode('ascii'),
self.request_metrics.name).inc()
@contextlib.contextmanager
@ -280,9 +280,9 @@ class SynapseRequest(Request):
int(usage.db_txn_count),
self.sentLength,
code,
self.method,
self.method.decode('ascii'),
self.get_redacted_uri(),
self.clientproto,
self.clientproto.decode('ascii', errors='replace'),
user_agent,
usage.evt_db_fetch_count,
)