Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Always use the name as the log ID. #9829

Merged
merged 7 commits into from
Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/9829.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix the log lines of nested logging contexts.
15 changes: 6 additions & 9 deletions synapse/logging/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ class LoggingContext:

def __init__(
self,
name: Optional[str] = None,
name: str,
parent_context: "Optional[LoggingContext]" = None,
request: Optional[ContextRequest] = None,
) -> None:
Expand Down Expand Up @@ -315,9 +315,7 @@ def __init__(
self.request = request

def __str__(self) -> str:
if self.request:
return self.request.request_id
return "%s@%x" % (self.name, id(self))
return self.name

@classmethod
def current_context(cls) -> LoggingContextOrSentinel:
Expand Down Expand Up @@ -695,16 +693,13 @@ def nested_logging_context(suffix: str) -> LoggingContext:
)
parent_context = None
prefix = ""
clokep marked this conversation as resolved.
Show resolved Hide resolved
request = None
else:
assert isinstance(curr_context, LoggingContext)
parent_context = curr_context
prefix = str(parent_context.name)
request = parent_context.request
prefix = parent_context.name
return LoggingContext(
prefix + "-" + suffix,
parent_context=parent_context,
request=request,
)


Expand Down Expand Up @@ -890,12 +885,14 @@ def defer_to_threadpool(reactor, threadpool, f, *args, **kwargs):
"Calling defer_to_threadpool from sentinel context: metrics will be lost"
)
parent_context = None
name = ""
clokep marked this conversation as resolved.
Show resolved Hide resolved
else:
assert isinstance(curr_context, LoggingContext)
parent_context = curr_context
name = parent_context.name

def g():
with LoggingContext(parent_context=parent_context):
with LoggingContext(name, parent_context=parent_context):
return f(*args, **kwargs)

return make_deferred_yieldable(threads.deferToThreadPool(reactor, threadpool, g))
13 changes: 3 additions & 10 deletions synapse/metrics/background_process_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ async def run():
_background_process_start_count.labels(desc).inc()
_background_process_in_flight_count.labels(desc).inc()

with BackgroundProcessLoggingContext(desc, count) as context:
with BackgroundProcessLoggingContext("%s-%s" % (desc, count)) as context:
try:
ctx = noop_context_manager()
if bg_start_span:
Expand Down Expand Up @@ -242,19 +242,12 @@ class BackgroundProcessLoggingContext(LoggingContext):
processes.
"""

__slots__ = ["_id", "_proc"]
__slots__ = ["_proc"]

def __init__(self, name: str, id: Optional[Union[int, str]] = None):
def __init__(self, name: str):
super().__init__(name)
self._id = id

self._proc = _BackgroundProcess(name, self)

def __str__(self) -> str:
if self._id is not None:
return "%s-%s" % (self.name, self._id)
return "%s@%x" % (self.name, id(self))

def start(self, rusage: "Optional[resource._RUsage]"):
"""Log context has started running (again)."""

Expand Down
2 changes: 1 addition & 1 deletion synapse/replication/tcp/protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ def __init__(self, clock: Clock, handler: "ReplicationCommandHandler"):
# a logcontext which we use for processing incoming commands. We declare it as a
# background process so that the CPU stats get reported to prometheus.
self._logging_context = BackgroundProcessLoggingContext(
"replication-conn", self.conn_id
"replication-conn-%s" % (self.conn_id,)
)

def connectionMade(self):
Expand Down
2 changes: 1 addition & 1 deletion synapse/util/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ def __init__(self, clock, name):
assert isinstance(curr_context, LoggingContext)
parent_context = curr_context
self._logging_context = LoggingContext(
"Measure[%s]" % (self.name,), parent_context
self.name, parent_context
clokep marked this conversation as resolved.
Show resolved Hide resolved
)
self.start = None

Expand Down